0

私は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;
}
4

0 に答える 0