Przeglądaj źródła

Avoid multiple lookups in WebGLRenderStates.get (#24534)

Degubi 2 lat temu
rodzic
commit
8a36b63216
1 zmienionych plików z 5 dodań i 4 usunięć
  1. 5 4
      src/renderers/webgl/WebGLRenderStates.js

+ 5 - 4
src/renderers/webgl/WebGLRenderStates.js

@@ -63,23 +63,24 @@ function WebGLRenderStates( extensions, capabilities ) {
 
 	function get( scene, renderCallDepth = 0 ) {
 
+		const renderStateArray = renderStates.get( scene );
 		let renderState;
 
-		if ( renderStates.has( scene ) === false ) {
+		if ( renderStateArray === undefined ) {
 
 			renderState = new WebGLRenderState( extensions, capabilities );
 			renderStates.set( scene, [ renderState ] );
 
 		} else {
 
-			if ( renderCallDepth >= renderStates.get( scene ).length ) {
+			if ( renderCallDepth >= renderStateArray.length ) {
 
 				renderState = new WebGLRenderState( extensions, capabilities );
-				renderStates.get( scene ).push( renderState );
+				renderStateArray.push( renderState );
 
 			} else {
 
-				renderState = renderStates.get( scene )[ renderCallDepth ];
+				renderState = renderStateArray[ renderCallDepth ];
 
 			}