| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /**
- * @author mrdoob / http://mrdoob.com/
- */
- import { RGBAFormat, RGBFormat } from '../constants.js';
- import { ImageLoader } from './ImageLoader.js';
- import { Texture } from '../textures/Texture.js';
- import { DefaultLoadingManager } from './LoadingManager.js';
- function TextureLoader( manager ) {
- this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;
- }
- Object.assign( TextureLoader.prototype, {
- crossOrigin: 'anonymous',
- load: function ( url, onLoad, onProgress, onError ) {
- var texture = new Texture();
- var loader = new ImageLoader( this.manager );
- loader.setCrossOrigin( this.crossOrigin );
- loader.setPath( this.path );
- loader.load( url, function ( image ) {
- texture.image = image;
- // JPEGs can't have an alpha channel, so memory can be saved by storing them as RGB.
- var isJPEG = url.search( /\.jpe?g$/i ) > 0 || url.search( /^data\:image\/jpeg/ ) === 0;
- texture.format = isJPEG ? RGBFormat : RGBAFormat;
- texture.needsUpdate = true;
- if ( onLoad !== undefined ) {
- onLoad( texture );
- }
- }, onProgress, onError );
- return texture;
- },
- setCrossOrigin: function ( value ) {
- this.crossOrigin = value;
- return this;
- },
- setPath: function ( value ) {
- this.path = value;
- return this;
- }
- } );
- export { TextureLoader };
|