我看了多个关于 glReadPixels 的教程,但我很困惑:
void glReadPixels(GLint x, GLint y, GLsizei 宽度, GLsizei 高度, GLenum 格式, GLenum 类型, GLvoid * 数据)
最后一个参数是无效的?我看到了教程,他们将参数声明为向量,无符号字符,GLubyte,......但它的真正含义是什么?你需要调用 glPixelStoref( , ) 吗?
我看了多个关于 glReadPixels 的教程,但我很困惑:
void glReadPixels(GLint x, GLint y, GLsizei 宽度, GLsizei 高度, GLenum 格式, GLenum 类型, GLvoid * 数据)
最后一个参数是无效的?我看到了教程,他们将参数声明为向量,无符号字符,GLubyte,......但它的真正含义是什么?你需要调用 glPixelStoref( , ) 吗?
Avoid*
是 C/C++ 表示“指向内存块的指针”。的目的glReadPixels
是获取帧缓冲区的一部分并将像素数据写入内存。data
参数是它写入的“你的记忆” 。
它写入的确切内容和多少取决于像素传输参数,format
以及type
。这就是为什么它需要一个void*
; 因为它可能正在写入一个字节数组、一个整数数组、一个浮点数组等。这完全取决于这两个参数的含义。