我在以下代码中遇到GL_INVALID_VALUE, 0x0501
错误。glUseProgram(mYUVProgram);
它发生在恢复应用程序时。根据glUseProgram 文档
如果程序既不是 0 也不是 OpenGL 生成的值,则生成 GL_INVALID_VALUE。
我想知道在应用程序恢复后如何检查 的值mYUVProgram
,它是否有效。这样如果mYUVProgram
的值无效,我可以再次创建着色器程序。(我只是 OpenGL 的初学者,所以如果这个问题太琐碎,请原谅我)
代码
void draw() {
if (!mFrameTexture) {
glGenTextures( 1, &mFrameTexture );
mProgram = Shaders::addProgram(this, (char *) Shaders::vertexShader,
(char *) Shaders::fragmentShader);
//other initialization code
CCLOG("draw:: added shader");
}
glUseProgram(mYUVProgram);
//other drawing code
}