Преглед изворни кода

WebGLUniforms: Assign `compareFunction` lazily to retain tree-shaking. (#28670)

* WebGLUniforms: lazily create shadow texture for tree-shaking

* WebGLUniforms: lazily set compareFunction instead

* Update WebGLUniforms.js

Add comment

---------

Co-authored-by: Michael Herzog <[email protected]>
Cody Bennett пре 1 година
родитељ
комит
8a7848a422
1 измењених фајлова са 12 додато и 2 уклоњено
  1. 12 2
      src/renderers/webgl/WebGLUniforms.js

+ 12 - 2
src/renderers/webgl/WebGLUniforms.js

@@ -51,7 +51,6 @@ import { LessEqualCompare } from '../../constants.js';
 const emptyTexture = /*@__PURE__*/ new Texture();
 const emptyTexture = /*@__PURE__*/ new Texture();
 
 
 const emptyShadowTexture = /*@__PURE__*/ new DepthTexture( 1, 1 );
 const emptyShadowTexture = /*@__PURE__*/ new DepthTexture( 1, 1 );
-emptyShadowTexture.compareFunction = LessEqualCompare;
 
 
 const emptyArrayTexture = /*@__PURE__*/ new DataArrayTexture();
 const emptyArrayTexture = /*@__PURE__*/ new DataArrayTexture();
 const empty3dTexture = /*@__PURE__*/ new Data3DTexture();
 const empty3dTexture = /*@__PURE__*/ new Data3DTexture();
@@ -569,7 +568,18 @@ function setValueT1( gl, v, textures ) {
 
 
 	}
 	}
 
 
-	const emptyTexture2D = ( this.type === gl.SAMPLER_2D_SHADOW ) ? emptyShadowTexture : emptyTexture;
+	let emptyTexture2D = null;
+
+	if ( this.type === gl.SAMPLER_2D_SHADOW ) {
+
+		emptyShadowTexture.compareFunction = LessEqualCompare; // #28670
+		emptyTexture2D = emptyShadowTexture;
+
+	} else {
+
+		emptyTexture2D = emptyTexture;
+
+	}
 
 
 	textures.setTexture2D( v || emptyTexture2D, unit );
 	textures.setTexture2D( v || emptyTexture2D, unit );