我看了关于glReadPixels的多个教程,但我很困惑:
void glReadPixels(GLint x,GLint y,GLsizei宽度,GLsizei高度,GLenum格式,GLenum类型,GLvoid *数据)
最后一个参数是空吗?
我看到了教程,他们将参数声明为 vector ,无符号字符,GLubyte,...
但这到底是什么意思?
并且您需要调用glPixelStoref(,)吗?
最佳答案
void*
是C / C++的代名词,它是“指向内存块的指针”。 glReadPixels
的目的是占用帧缓冲区的一部分并将该像素数据写入内存。 data
参数是它写入的“您的内存”。
究竟写什么以及写多少取决于pixel transfer parameters,format
和type
。这就是为什么需要void*
的原因;因为它可能正在写字节数组,整数数组,浮点数等。所有这些都取决于这两个参数的含义。