私はWindows7でglewを使用していますが、電話をかけると次のようになります。
int compileResult = 0;
int infoLogLength = 0;
//compile code
glGetShaderiv(_vertexShaderID, GL_COMPILE_STATUS, &compileResult);
glGetShaderiv(_vertexShaderID, GL_INFO_LOG_LENGTH, &infoLogLength);
GLchar vInfoLogMessage[512];
glGetShaderInfoLog(_vertexShaderID, infoLogLength, NULL, vInfoLogMessage);
infoLogLengthが常に0を返すため、512をハードコーディングする必要がありました。グーグルで検索したところ、Androidで時々発生するバグであることがわかりましたが、Android SDK/NDKを使用していません...それでもvInfoLogMessageは成功か失敗かにかかわらず、情報がまったく入力されていません。
compileResultは正常にコンパイルされたように表示されますが、失敗した場合に情報を取得できるようにしたいと思います。
これを引き起こしている可能性がありますか?
編集:プログラムリンクはエラーを返しますが、infoLogMessageを埋めていないため、取得できません...
これは私のエラーであり、同様に成功して返されます。
シェーダーのコードは、該当する場合、次のとおりです。
//fragmentShader
#version 330 core
out vec3 color;
void main()
{
color = vec3(1, 0, 0);
}
//vertexShader
#version 330 core
layout(location = 0) in vec3 vertexPosition_modelspace;
void main()
{
gl_Position.xyz = vertexPosition_modelspace;
gl_Position.w = 1.0;
}