我有一个函数可以检查共享的顶点/片段是否已成功编译并且是否可以在 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,即使当我跳过此检查并仅使用着色器时,它也可以正常工作。那么,这个着色器有效性检查有什么问题呢?