Re: What can i await as status
Posted by Danny02 on Feb 12, 2013; 2:55pm
URL: https://forum.jogamp.org/What-can-i-await-as-status-after-linking-shaders-tp4028126p4028204.html
I check for shader errors like this:
int programObject=...;
gl.glValidateProgram(programObject);
int[] error = new int[]{-1};
gl.glGetProgramiv(programObject, GL2GL3.GL_LINK_STATUS, error, 0);
if (error[0] != GL.GL_TRUE) {
int[] len = new int[1];
gl.glGetProgramiv(programObject, GL2ES2.GL_INFO_LOG_LENGTH, len, 0);
if (len[0] == 0) {
return null;
}
byte[] errormessage = new byte[len[0]];
gl.glGetProgramInfoLog(programObject, len[0], len, 0, errormessage, 0);
return new String(errormessage, 0, len[0]);
}
and for the single shaderobjects(fragment, vertex ...)
it is qutie similiar:
int[] error = new int[]{-1};
gl.glGetShaderiv(shader, GL2ES2.GL_COMPILE_STATUS, error, 0);
if (error[0] != GL.GL_TRUE) {
int[] len = new int[1];
gl.glGetShaderiv(shader, GL2ES2.GL_INFO_LOG_LENGTH, len, 0);
if (len[0] == 0) {
return null;
}
byte[] errormessage = new byte[len[0]];
gl.glGetShaderInfoLog(shader, len[0], len, 0, errormessage, 0);
return new String(errormessage, 0, len[0] + 1);
}