我在以下代码中遇到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
  }