【发布时间】:2014-04-23 23:24:21
【问题描述】:
我正在尝试从绑定到 GL_TEXTURE_EXTERNAL_OES 的 OpenGL 纹理中读取像素/数据。
将纹理绑定到该目标的原因是,为了在 android 上获得实时摄像头馈送,需要从绑定到 GL_TEXTURE_EXTERNAL_OES 的 OpenGL 纹理创建 SurfaceTexture。
由于 android 使用 OpenGL ES,我不能使用 glGetTexImage() 来读取图像数据。
因此,我将目标绑定到 FBO,然后使用 readPixels() 读取它。这是我的代码:
GLuint framebuffer;
glGenFramebuffers(1, &framebuffer);
glBindFramebuffer(GL_FRAMEBUFFER, framebuffer);
//Attach 2D texture to this FBO
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_EXTERNAL_OES, cameraTexture, 0);
status("glFramebufferTexture2D() returned error %d", glGetError());
但是由于某种原因,我收到错误 1282 (GL_INVALID_OPERATION)。
【问题讨论】: