我正在使用 OpenGLES 开发Symbian第五版的移动应用程序 这个应用程序是一个非常标准的2D应用程序,我不使用DepthBuffer。
我需要获取显示的快照,然后将相同的快照绘制回后备缓冲区。
我正在使用glReadPixels((GLint)0, (GLint)0,
(GLint)nWidth-1, (GLint)nHeight-1,
GL_RGB, GL_UNSIGNED_BYTE, m_pPixelData)
为了获得我需要的像素数据,但我对OpenGLES比较新,我不知道如何将数据绘制回后备缓冲区。 (在OpenGL中,使用DrawPixels很容易..)
我读过我应该根据数据生成纹理,所以我做了。 但现在我不确定如何绘制这种纹理。
我是否需要将其绘制为矩形元素的纹理?如果是这样,我想如何定义这个矩形? (坐标对我来说没有意义..)
显示尺寸为480x640,这是我想用来绘制矩形的代码:
glEnable(GL_TEXTURE_2D);
//displayTex is my texture built out of the pixel data
glBindTexture(GL_TEXTURE_2D, m_pESSharedData->displayTex);
//Bottom
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glBegin(GL_QUADS);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-2.5f, -2.5f, 2.5f);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(2.5f, -2.5f, 2.5f);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(2.5f, -2.5f, -2.5f);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-2.5f, -2.5f, -2.5f);
glEnd();
请注意,上面的代码是我在此过程中提到的内容,我认为这是我想要做的概述。随意带我离开这条赛道。 :)
我感谢你的时间。
答案 0 :(得分:1)
首先需要确保Series60 5th Edition上的OpenGL-ES版本能够处理高度和宽度不是2的纹理。
我会建议forum nokia进行此类查询。
无耻插头:
Quick Recipes On Symbian OS包含一整章,解释了Symbian OS上OpenGL-ES的基础知识。 3D代码示例为here。