本文讨论完整的图像管线,像素存储模式和像素传输操作
glCopyPixels()的像素路径:
glBitmap的像素路径:
从纹理内存读取纹理或者把纹理写入到纹理内存时(glTexImage*()、glTexSubImage*())的像素路径:
当像素数据从帧缓存区中复制到纹理内存时(glCopyTexImage*()、glCopyTexSubImage*())的像素路径:
1.像素的包装和解包
包装和解包是指像素数据写入到内存以及从处理器内存读取的方式
2.控制像素的存储模式
void glPixelStorei (GLenum pname, GLint param);
//设置像素的存储模式。pname参数可见下表,GL_UNPACK*参数控制数据在内存中是如何由函数解包的
//GL_PACK*参数控制数据如何包装到内存的
3.像素传输操作
void glPixelTransferi (GLenum pname, GLint param);
//设置像素传输模式。pname、param见下表
4.像素映射
void glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values);
//加载由map所确定的像素映射表,它有mapsize个项,values表示它们的值。见表
5.放大、缩小和翻转图像
void glPixelZoom (GLfloat xfactor, GLfloat yfactor);
//设置图像的写入操作。默认情况下,xfactor、yfactor都是1.0,如果它们都是2.0,
//那么图像的每个像素被绘制成4个屏幕像素,负的缩放因子执行翻转操作