Почему glTexSubImage2D () внезапно вызывает GL_INVALID_OPERATION?
Я пытаюсь обновить безнадежно устаревшее приложение дополненной реальности с iOS4.x до iOS5.xно у меня трудности.Я запускаю iOS5.0.На прошлой неделе я запускал iOS4.3.Мое устройство iPhone4.
Вот фрагмент из моего captureOutput:didOutputSampleBuffer:fromConnection:
кода
uint8_t *baseAddress = /* pointer to camera buffer */
GLuint texture = /* the texture name */
glBindTexture(GL_TEXTURE_2D, texture);
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 480, 360, GL_BGRA, GL_UNSIGNED_BYTE, baseAddress);
/* now glGetError(); -> returns 0x0502 GL_INVALID_OPERATION on iOS5.0, works fine on iOS4.x */
Вот фрагмент из моего установочного кода
GLuint texture = /* the texture name */
glGenTextures(1, &texture);
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 512, 512, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
Для простоты я вставил здесь жестко закодированные значения.В моем реальном коде я получаю эти значения с помощью CVPixelBufferGetWidth / Height / BaseAddress.EAGLContext инициализируется с помощью kEAGLRenderingAPIOpenGLES2.