1

我看了多个关于 glReadPixels 的教程,但我很困惑:

void glReadPixels(GLint x, GLint y, GLsizei 宽度, GLsizei 高度, GLenum 格式, GLenum 类型, GLvoid * 数据)

最后一个参数是无效的?我看到了教程,他们将参数声明为向量,无符号字符,GLubyte,......但它的真正含义是什么?你需要调用 glPixelStoref( , ) 吗?

4

1 回答 1

3

Avoid*是 C/C++ 表示“指向内存块的指针”。的目的glReadPixels是获取帧缓冲区的一部分并将像素数据写入内存。data参数是它写入的“你的记忆” 。

它写入的确切内容和多少取决于像素传输参数format以及type。这就是为什么它需要一个void*; 因为它可能正在写入一个字节数组、一个整数数组、一个浮点数组等。这完全取决于这两个参数的含义。

于 2013-01-13T10:10:01.877 回答