共有されている頂点/フラグメントが正常にコンパイルされ、LWJGL 内で使用できるかどうかをチェックする関数があります。
public static boolean isShaderValid(int shaderToCheck) {
IntBuffer iVal = BufferUtils.createIntBuffer(1);
glGetObjectParameterARB(shaderToCheck, GL_OBJECT_INFO_LOG_LENGTH_ARB, iVal);
int length = iVal.get();
boolean isValid = length>1;
if (isValid && verboseValidityCheck) {
printShaderLogInfo(shaderToCheck, iVal, length);
}
return isValid;
}
ただし、これは常に false を返します。このチェックをスキップしてシェーダーだけを使用しても問題なく動作します。では、このシェーダーの有効性チェックの何が問題になっているのでしょうか?