| |
| |
| |
|
|
| 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; |
|
|
| |
| 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 }; |
|
|