Переглянути джерело

Merge pull request #19738 from Mugen87/dev43

GLTFLoader: Fix usage of ImageBitmapLoader.
Mr.doob 5 роки тому
батько
коміт
fb2c4aa8ac

+ 2 - 5
examples/js/loaders/GLTFLoader.js

@@ -1468,11 +1468,9 @@ THREE.GLTFLoader = ( function () {
 		// BufferGeometry caching
 		this.primitiveCache = {};
 
-		this.useImageBitmap = typeof createImageBitmap !== 'undefined' && /Firefox/.test( navigator.userAgent ) === false;
-
 		// Use an ImageBitmapLoader if imageBitmaps are supported. Moves much of the
 		// expensive work of uploading a texture to the GPU off the main thread.
-		if ( this.useImageBitmap ) {
+		if ( typeof createImageBitmap !== 'undefined' && /Firefox/.test( navigator.userAgent ) === false ) {
 
 			this.textureLoader = new THREE.ImageBitmapLoader( this.options.manager );
 
@@ -1956,7 +1954,6 @@ THREE.GLTFLoader = ( function () {
 		var parser = this;
 		var json = this.json;
 		var options = this.options;
-		var useImageBitmap = this.useImageBitmap;
 		var textureLoader = this.textureLoader;
 
 		var URL = self.URL || self.webkitURL;
@@ -2013,7 +2010,7 @@ THREE.GLTFLoader = ( function () {
 
 				var onLoad = resolve;
 
-				if ( useImageBitmap ) {
+				if ( loader.isImageBitmapLoader === true ) {
 
 					onLoad = function ( imageBitmap ) {
 

+ 2 - 5
examples/jsm/loaders/GLTFLoader.js

@@ -1533,11 +1533,9 @@ var GLTFLoader = ( function () {
 		// BufferGeometry caching
 		this.primitiveCache = {};
 
-		this.useImageBitmap = typeof createImageBitmap !== 'undefined' && /Firefox/.test( navigator.userAgent ) === false;
-
 		// Use an ImageBitmapLoader if imageBitmaps are supported. Moves much of the
 		// expensive work of uploading a texture to the GPU off the main thread.
-		if ( this.useImageBitmap ) {
+		if ( typeof createImageBitmap !== 'undefined' && /Firefox/.test( navigator.userAgent ) === false ) {
 
 			this.textureLoader = new ImageBitmapLoader( this.options.manager );
 
@@ -2021,7 +2019,6 @@ var GLTFLoader = ( function () {
 		var parser = this;
 		var json = this.json;
 		var options = this.options;
-		var useImageBitmap = this.useImageBitmap;
 		var textureLoader = this.textureLoader;
 
 		var URL = self.URL || self.webkitURL;
@@ -2078,7 +2075,7 @@ var GLTFLoader = ( function () {
 
 				var onLoad = resolve;
 
-				if ( useImageBitmap ) {
+				if ( loader.isImageBitmapLoader === true ) {
 
 					onLoad = function ( imageBitmap ) {
 

+ 2 - 0
src/loaders/ImageBitmapLoader.d.ts

@@ -7,6 +7,8 @@ export class ImageBitmapLoader extends Loader {
 
 	options: undefined | object;
 
+	readonly isImageBitmapLoader: true;
+
 	setOptions( options: object ): ImageBitmapLoader;
 	load(
 		url: string,

+ 2 - 0
src/loaders/ImageBitmapLoader.js

@@ -30,6 +30,8 @@ ImageBitmapLoader.prototype = Object.assign( Object.create( Loader.prototype ),
 
 	constructor: ImageBitmapLoader,
 
+	isImageBitmapLoader: true,
+
 	setOptions: function setOptions( options ) {
 
 		this.options = options;