|
@@ -379,22 +379,52 @@ THREE.WebGLProgram = ( function () {
|
|
|
|
|
|
gl.linkProgram( program );
|
|
gl.linkProgram( program );
|
|
|
|
|
|
- var programLogInfo = gl.getProgramInfoLog( program );
|
|
|
|
- var vertexErrorLogInfo = gl.getShaderInfoLog( glVertexShader );
|
|
|
|
- var fragmentErrorLogInfo = gl.getShaderInfoLog( glFragmentShader );
|
|
|
|
|
|
+ var programLog = gl.getProgramInfoLog( program );
|
|
|
|
+ var vertexLog = gl.getShaderInfoLog( glVertexShader );
|
|
|
|
+ var fragmentLog = gl.getShaderInfoLog( glFragmentShader );
|
|
|
|
+
|
|
|
|
+ var runnable = true;
|
|
|
|
+ var haveDiagnostics = true;
|
|
|
|
|
|
if ( gl.getProgramParameter( program, gl.LINK_STATUS ) === false ) {
|
|
if ( gl.getProgramParameter( program, gl.LINK_STATUS ) === false ) {
|
|
|
|
|
|
- console.error( 'THREE.WebGLProgram: shader error: ', gl.getError(), 'gl.VALIDATE_STATUS', gl.getProgramParameter( program, gl.VALIDATE_STATUS ), 'gl.getProgramInfoLog', programLogInfo, vertexErrorLogInfo, fragmentErrorLogInfo );
|
|
|
|
|
|
+ runnable = false;
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ console.error( 'THREE.WebGLProgram: shader error: ', gl.getError(), 'gl.VALIDATE_STATUS', gl.getProgramParameter( program, gl.VALIDATE_STATUS ), 'gl.getProgramInfoLog', programLog, vertexLog, fragmentLog );
|
|
|
|
+
|
|
|
|
+ } else if ( programLog !== '' ) {
|
|
|
|
|
|
- else if ( programLogInfo !== '' ) {
|
|
|
|
|
|
+ console.warn( 'THREE.WebGLProgram: gl.getProgramInfoLog()', programLog );
|
|
|
|
|
|
- console.warn( 'THREE.WebGLProgram: gl.getProgramInfoLog()', programLogInfo );
|
|
|
|
|
|
+ } else if ( vertexLog === '' || fragmentLog === '' ) {
|
|
|
|
+
|
|
|
|
+ haveDiagnostics = false;
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if ( haveDiagnostics ) this.diagnostics = {
|
|
|
|
+
|
|
|
|
+ runnable: runnable,
|
|
|
|
+ material: material,
|
|
|
|
+
|
|
|
|
+ programLog: programLog,
|
|
|
|
+
|
|
|
|
+ vertexShader: {
|
|
|
|
+
|
|
|
|
+ log: vertexLog,
|
|
|
|
+ prefix: prefixVertex
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ fragmentShader: {
|
|
|
|
+
|
|
|
|
+ log: fragmentLog,
|
|
|
|
+ prefix: prefixFragment
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ };
|
|
|
|
+
|
|
// clean up
|
|
// clean up
|
|
|
|
|
|
gl.deleteShader( glVertexShader );
|
|
gl.deleteShader( glVertexShader );
|