CubeTextureLoader.js 983 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { ImageLoader } from './ImageLoader.js';
  2. import { CubeTexture } from '../textures/CubeTexture.js';
  3. import { Loader } from './Loader.js';
  4. function CubeTextureLoader( manager ) {
  5. Loader.call( this, manager );
  6. }
  7. CubeTextureLoader.prototype = Object.assign( Object.create( Loader.prototype ), {
  8. constructor: CubeTextureLoader,
  9. load: function ( urls, onLoad, onProgress, onError ) {
  10. const texture = new CubeTexture();
  11. const loader = new ImageLoader( this.manager );
  12. loader.setCrossOrigin( this.crossOrigin );
  13. loader.setPath( this.path );
  14. let loaded = 0;
  15. function loadTexture( i ) {
  16. loader.load( urls[ i ], function ( image ) {
  17. texture.images[ i ] = image;
  18. loaded ++;
  19. if ( loaded === 6 ) {
  20. texture.needsUpdate = true;
  21. if ( onLoad ) onLoad( texture );
  22. }
  23. }, undefined, onError );
  24. }
  25. for ( let i = 0; i < urls.length; ++ i ) {
  26. loadTexture( i );
  27. }
  28. return texture;
  29. }
  30. } );
  31. export { CubeTextureLoader };