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

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

最后一个参数是空吗?
我看到了教程,他们将参数声明为 vector ,无符号字符,GLubyte,...
但这到底是什么意思?
并且您需要调用glPixelStoref(,)吗?

最佳答案

void*是C / C++的代名词,它是“指向内存块的指针”。 glReadPixels的目的是占用帧缓冲区的一部分并将该像素数据写入内存。 data参数是它写入的“您的内存”。

究竟写什么以及写多少取决于pixel transfer parametersformattype。这就是为什么需要void*的原因;因为它可能正在写字节数组,整数数组,浮点数等。所有这些都取决于这两个参数的含义。

10-08 08:28
查看更多