ユニフォーム バッファ オブジェクトを複数のシェーダにバインドする際に問題があります。
次のコードの実行:
for(auto& shaderIter : shaderHandler.getShaderPrograms()){
shaderIter.second->bind();
GLuint programID = shaderIter.second->programId();
GLuint index = glFuncs->glGetUniformBlockIndex(programID, "MatrixUBO");
glFuncs->glUniformBlockBinding(programID, index, UBO_MATRICES_BINDING_POINT);
shaderIter.second->release();
}
エラーメッセージが発生します
QOpenGLDebugMessage("APISource", 1281, "GL_INVALID_VALUE error generated. Uniform block index exceeds the maximum supported uniform buffers.", "HighSeverity", "ErrorType")
シェーダー プログラムのタイプは QOpenGLShaderProgram です。これらのシェーダー プログラムでは、頂点シェーダー、ジオメトリ シェーダー、フラグメント シェーダー、計算シェーダーを使用します。
の値GL_MAX_{VERTEX, FRAGMENT, GEOMETRY}_UNIFORM_BLOCKS
は 14 です。 の出力はindex
、4294967295 のプログラムを除いて、各プログラム 0 です。