| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- /**
- * @author mrdoob / http://mrdoob.com/
- */
- import { RGBAFormat, RGBFormat } from '../constants';
- import { ImageLoader } from './ImageLoader';
- import { Texture } from '../textures/Texture';
- import { DefaultLoadingManager } from './LoadingManager';
- function TextureLoader( manager ) {
- this.manager = ( manager !== undefined ) ? manager : DefaultLoadingManager;
- }
- Object.assign( TextureLoader.prototype, {
- 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 ) {
- // JPEGs can't have an alpha channel, so memory can be saved by storing them as RGB.
- var isJPEG = url.search( /\.(jpg|jpeg)$/ ) > 0 || url.search( /^data\:image\/jpeg/ ) === 0;
- texture.format = isJPEG ? RGBFormat : RGBAFormat;
- texture.image = image;
- 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 };
|