|
@@ -783,16 +783,26 @@ function WebGLProgram( renderer, cacheKey, parameters, bindingStates ) {
|
|
|
|
|
|
runnable = false;
|
|
|
|
|
|
- const vertexErrors = getShaderErrors( gl, glVertexShader, 'vertex' );
|
|
|
- const fragmentErrors = getShaderErrors( gl, glFragmentShader, 'fragment' );
|
|
|
-
|
|
|
- console.error(
|
|
|
- 'THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' +
|
|
|
- 'VALIDATE_STATUS ' + gl.getProgramParameter( program, gl.VALIDATE_STATUS ) + '\n\n' +
|
|
|
- 'Program Info Log: ' + programLog + '\n' +
|
|
|
- vertexErrors + '\n' +
|
|
|
- fragmentErrors
|
|
|
- );
|
|
|
+ if ( typeof renderer.debug.onShaderError === 'function' ) {
|
|
|
+
|
|
|
+ renderer.debug.onShaderError( gl, program, glVertexShader, glFragmentShader );
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ // default error reporting
|
|
|
+
|
|
|
+ const vertexErrors = getShaderErrors( gl, glVertexShader, 'vertex' );
|
|
|
+ const fragmentErrors = getShaderErrors( gl, glFragmentShader, 'fragment' );
|
|
|
+
|
|
|
+ console.error(
|
|
|
+ 'THREE.WebGLProgram: Shader Error ' + gl.getError() + ' - ' +
|
|
|
+ 'VALIDATE_STATUS ' + gl.getProgramParameter( program, gl.VALIDATE_STATUS ) + '\n\n' +
|
|
|
+ 'Program Info Log: ' + programLog + '\n' +
|
|
|
+ vertexErrors + '\n' +
|
|
|
+ fragmentErrors
|
|
|
+ );
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
} else if ( programLog !== '' ) {
|
|
|
|