-
在嵌入式系统编程的C/C++中,函数参数的说明
资源介绍
3.1 函数的参数说明
该函数总共有七个参数。前四个参数可以得到一个矩形,该矩形所包括的像素都会被读取出来。
(第一、二个参数表示了矩形的左下角横、纵坐标,坐标以窗口最左下角为零,最右上角为最大
值;第三、四个参数表示了矩形的宽度和高度)
第五个参数表示读取的内容,例如:GL_RGB 就会依次读取像素的红、绿、蓝三种数据,GL_RGBA
则会依次读取像素的红、绿、蓝、alpha 四种数据,GL_RED 则只读取像素的红色数据(类似的还
有 GL_GREEN,GL_BLUE,以及 GL_ALPHA)。如果采用的不是 RGBA 颜色模式,而是采用颜
色索引模式,则也可以使用 GL_COLOR_INDEX 来读取像素的颜色索引。目前仅需要知道这些,
但实际上还可以读取其它内容,例如深度缓冲区的深度数据等。
第六个参数表示读取的内容保存到内存时所使用的格式,例如:GL_UNSIGNED_BYTE 会把各种
数据保存为 GLubyte,GL_FLOAT 会把各种数据保存为 GLfloat 等。
第七个参数表示一个指针,像素数据被读取后,将被保存到这个指针所表示的地址。注意,需要
保证该地址有足够的可以使用的空间,以容纳读取的像素数据。例如一幅大小为 256*256 的图象,
如果读取其 RGB 数据,且每一数据被保存为 GLubyte,总大小就是:256*256*3 = 196608 字节,
即 192 千字节。如果是读取 RGBA 数据,则总大小就是 256*256*4 = 262144 字节,即 256 千字节。
注意:glReadPixels 实际上是从缓冲区中读取数据,如果使用了双缓冲区,则默认是从正在显示的
缓冲(即前缓冲)中读取,而绘制工作是默认绘制到后缓冲区的。因此,如果需要读取已经绘制
好的像素,往往需要先交换前后缓冲。
- 上一篇: 法线向量-c/c++嵌入式系统编程
- 下一篇: 源因子和目标因子-c/c++嵌入式系统编程