2013-01-13 59 views
1

我看着约glReadPixels多个教程,但我感到困惑:glReadPixels用法与glPixelStore

空隙glReadPixels(闪烁的x,闪烁Y,GLsizei宽度,高度GLsizei,GLenum格式,GLenum类型,GLvoid *数据)

最后一个参数是void? 我看到了教程,他们宣布参数为矢量,无符号字符,GLubyte,... 但它是什么意思? 你需要调用glPixelStoref(,)吗?

回答

3

A void*是C/C++代表“指向内存块的指针”。 glReadPixels的目的是获取framebuffer的一部分,并将该像素数据写入内存。 data参数是它写入的“你的记忆”。

究竟什么写入以及如何很大程度上取决于pixel transfer parametersformattype。这就是为什么它需要一个void*;因为它可能会写入字节数组,int数组,浮点数组等等。这完全取决于这两个参数所说的内容。

+0

我会添加一件事(这可能会有所帮助)是,您不能在antialiased缓冲区上使用glReadPixels。这意味着您可能需要创建拥有场景副本的自己的屏幕外缓冲区,但禁用了AA。 –