iphone - iphone 上的 glreadPixels 问题

标签 iphone c++ opengl-es

我在屏幕上绘制纹理没有问题,但从内存中打印时无法获得正确的像素。我有一个带有 4 个黑色像素的 4x4 png 图像,我正在尝试打印它们。这就是我所做的:

glBindTexture(GL_TEXTURE_2D, m_textureId);

const int size = m_width * m_height * 4;
GLubyte pixels[size];

glReadPixels(0, 0, m_width, m_height, GL_RGBA, GL_UNSIGNED_BYTE, pixels);
if(glGetError() != GL_NO_ERROR)
    assert(false && "opengl error");


for(int index = 0; index < size; index+=4)
{
    cout << "red " << (unsigned)pixels[index+0] << endl;
    cout << "green " << (unsigned)pixels[index+1] << endl;
    cout << "blue " << (unsigned)pixels[index+2] << endl;
}

但我得到的是所有随机值,而不是我期望的值。谁能看出我做错了什么?

最佳答案

glReadPixels 从帧缓冲区而不是纹理中读取。要检索纹理对象的内容,请使用 glGetTexImage:http://www.opengl.org/sdk/docs/man/xhtml/glGetTexImage.xml

关于iphone - iphone 上的 glreadPixels 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4700641/

相关文章:

iphone - 无法在 iPhone 6.0 Simulator Retina 4 Inch 上全屏启动我的应用程序

ios - Phonegap GPS 询问两次

android - 关于 OpenGL ES 2 的问题

iPhone游戏2D阴影

c++ - Open gl es - 如何提高性能、渲染到纹理、混合

iphone - isEqualToString故障

iphone - Iphone 4 上的 HTML5 视频标签问题

c++ - 从内存不足故障中恢复

c++ - 在 Qt4 中有效地使用 QListView 或类似的

c++ - 强制程序以 root 身份启动并稍后删除