glReadPixels: 从frame buffer里读取一段pixels
void glReadPixels( GLint x, GLint y, GLsizei width,GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
x,y:
起始像素点,即矩形区域的左下角的点
width,height
指定像素矩形的尺寸
format
指定像素数据的格式,可以选择:GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT,GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB,GL_RGBA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.
type:
指出每个元素的数据类型:
数据类型+++++++++++++++++++
GL_UNSIGNED_BYTE 无符号的8位整数 GL_BYTE 8位整数 GL_BITMAP 无符号的8位整数数组中的单个数位 GL_UNSIGNED_SHORT 无符号的16位整数 GL_SHORT 16位整数 GL_UNSIGNED_INT 无符号的32位整数 GL_INT 32位整数 GL_FLOAT 单精度浮点数
图像的每个元素按上面表给出的数据类型存储。若元素表示连续的值,如红、绿、蓝或亮度分量,每个值都按比例放缩使之适合于可用的位数。例如,红色分量是0.0到1.0之 间的浮点值。若它需要放到无符号单字节整数中,也仅有8位精度保存下来,其他无符号整数类型同理。对于有符号的数据类型还要少一位,例如颜色索引存到有符号的8位整数中,它的第一位被0xfe屏蔽掉了(即这个掩码包含7个1)。若类型是GL_FLOAT,索引值简单地转化成单精度浮点值,例如索引17转化成17.0,
pixels:
返回的像素数据