expo-three
Version:
Utilities for using THREE.js with Expo
28 lines • 1.11 kB
JavaScript
import THREE from './Three';
import { loadTextureAsync } from './loaders/loadTextureAsync';
import parseAssetCallback from './loaders/parseAssetCallback';
export function loadTexture(url, onLoad, onProgress, onError) {
const texture = new THREE.Texture();
if (
// @ts-ignore
typeof this.path === 'function' ||
// @ts-ignore
(this.path !== null && typeof this.path === 'object')) {
(async () => {
url = url.split('/').pop();
// @ts-ignore
const asset = await parseAssetCallback(url, this.path);
const { minFilter, image } = await loadTextureAsync({ asset });
texture.image = image;
texture.needsUpdate = true;
texture['isDataTexture'] = true; // Forces passing to `gl.texImage2D(...)` verbatim
texture.minFilter = minFilter; // Pass-through non-power-of-two
if (onLoad !== undefined) {
console.warn('loaded tex', texture);
onLoad(texture);
}
})();
}
return texture;
}
//# sourceMappingURL=loadTexture.js.map