gpt4 book ai didi

c++ - 如何将从后台缓冲区获取的像素数据绘制回自身?

转载 作者:太空宇宙 更新时间:2023-11-04 12:27:14 24 4
gpt4 key购买 nike

我正在使用 OpenGLES 开发 Symbian 第 5 版的移动应用程序。
这个应用程序是一个非常标准的 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();

请注意,上面的代码是我一路走来的,我认为这是我应该做的事情的大纲。随时让我离开这条轨道。 :)

感谢您的宝贵时间。

最佳答案

您首先需要确保第 5 版 Series60 上的 OpenGL-ES 版本可以处理高度和宽度不是 2 的幂的纹理。

我会建议 forum nokia对于那种查询。

不要脸的外挂:

Quick Recipes On Symbian OS包含一整章解释 OpenGL-ES 在 Symbian OS 上的基础知识。 3D 代码示例为 here .

关于c++ - 如何将从后台缓冲区获取的像素数据绘制回自身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1561910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com