Browse Source

WebGLState: Made EXT_blend_minmax code safer.

Mr.doob 5 years ago
parent
commit
bcbade2130
1 changed files with 19 additions and 3 deletions
  1. 19 3
      src/renderers/webgl/WebGLState.js

+ 19 - 3
src/renderers/webgl/WebGLState.js

@@ -503,11 +503,27 @@ function WebGLState( gl, extensions, capabilities ) {
 	var equationToGL = {
 	var equationToGL = {
 		[ AddEquation ]: gl.FUNC_ADD,
 		[ AddEquation ]: gl.FUNC_ADD,
 		[ SubtractEquation ]: gl.FUNC_SUBTRACT,
 		[ SubtractEquation ]: gl.FUNC_SUBTRACT,
-		[ ReverseSubtractEquation ]: gl.FUNC_REVERSE_SUBTRACT,
-		[ MinEquation ]: isWebGL2 ? gl.MIN : extensions.get( 'EXT_blend_minmax' ).MIN_EXT,
-		[ MaxEquation ]: isWebGL2 ? gl.MAX : extensions.get( 'EXT_blend_minmax' ).MAX_EXT
+		[ ReverseSubtractEquation ]: gl.FUNC_REVERSE_SUBTRACT
 	};
 	};
 
 
+	if ( isWebGL2 ) {
+
+		equationToGL[ MinEquation ] = gl.MIN;
+		equationToGL[ MaxEquation ] = gl.MAX;
+
+	} else {
+
+		var extension = extensions.get( 'EXT_blend_minmax' );
+
+		if ( extension !== null ) {
+
+			equationToGL[ MinEquation ] = extension.MIN_EXT;
+			equationToGL[ MaxEquation ] = extension.MIN_EXT;
+
+		}
+
+	}
+
 	var factorToGL = {
 	var factorToGL = {
 		[ ZeroFactor ]: gl.ZERO,
 		[ ZeroFactor ]: gl.ZERO,
 		[ OneFactor ]: gl.ONE,
 		[ OneFactor ]: gl.ONE,