Pārlūkot izejas kodu

ImageLoader: Fixed data: links breakage.

Mr.doob 9 gadi atpakaļ
vecāks
revīzija
0576c7c80c
1 mainītis faili ar 17 papildinājumiem un 10 dzēšanām
  1. 17 10
      src/loaders/ImageLoader.js

+ 17 - 10
src/loaders/ImageLoader.js

@@ -13,22 +13,29 @@ Object.assign( THREE.ImageLoader.prototype, {
 	load: function ( url, onLoad, onProgress, onError ) {
 
 		var image = document.createElement( 'img' );
+		image.onload = function () {
 
-		var loader = new THREE.XHRLoader( this.manager );
-		loader.setPath( this.path );
-		loader.setResponseType( 'blob' );
-		loader.load( url, function ( blob ) {
+			URL.revokeObjectURL( image.src );
+			if ( onLoad ) onLoad( image );
 
-			image.onload = function () {
+		};
 
-				URL.revokeObjectURL( image.src );
-				if ( onLoad ) onLoad( image );
+		if ( url.indexOf( 'data:' ) === 0 ) {
 
-			};
+			image.src = url;
 
-			image.src = URL.createObjectURL( blob );
+		} else {
 
-		}, onProgress, onError );
+			var loader = new THREE.XHRLoader( this.manager );
+			loader.setPath( this.path );
+			loader.setResponseType( 'blob' );
+			loader.load( url, function ( blob ) {
+
+				image.src = URL.createObjectURL( blob );
+
+			}, onProgress, onError );
+
+		}
 
 		return image;