设置像素的存储模式,对后续的glDrawPixels,glReadPixels,glPolygonStipple,glBitmap,glTexImage{1,2,3}D,glTexSubImage{1,2,3}D产生影响,如果OpenGL支持ARB_imaging扩展,那么还会影响glConvolutionFilter{1,2,3}D,glColorTable,glColorSubTable,glHistogram,glMinmax。
glPixelStore 设置像素存储模式,这些模式会影响后续 glReadPixels 的操作以及纹理图案的解包(请参阅 glTexImage1D, glTexImage2D, glTexImage3D, glTexSubImage1D, glTexSubImage2D, glTexSubImage3D)、glCompressedTexImage1D, glCompressedTexImage2D, glCompressedTexImage3D, glCompressedTexSubImage1D, glCompressedTexSubImage2D or glCompressedTexSubImage1D.
函数原型:
oid glPixelStoref( GLenum pname,
GLfloat param);
void glPixelStorei( GLenum pname,
GLint param);
参数描述:
1. pname:代表某种特性的标识符。六个值影响像素数据到内存的打包:GL_PACK_SWAP_BYTES, GL_PACK_LSB_FIRST, GL_PACK_ROW_LENGTH, GL_PACK_IMAGE_HEIGHT, GL_PACK_SKIP_PIXELS, GL_PACK_SKIP_ROWS, GL_PACK_SKIP_IMAGES, and GL_PACK_ALIGNMENT. 还有六个影响从内存中解包像素数据:GL_UNPACK_SWAP_BYTES, GL_UNPACK_LSB_FIRST, GL_UNPACK_ROW_LENGTH, GL_UNPACK_IMAGE_HEIGHT, GL_UNPACK_SKIP_PIXELS, GL_UNPACK_SKIP_ROWS, GL_UNPACK_SKIP_IMAGES, and GL_UNPACK_ALIGNMENT.
Six values affect the packing of pixel data into memory: GL_PACK_SWAP_BYTES, GL_PACK_LSB_FIRST, GL_PACK_ROW_LENGTH, GL_PACK_IMAGE_HEIGHT, GL_PACK_SKIP_PIXELS, GL_PACK_SKIP_ROWS, GL_PACK_SKIP_IMAGES, and GL_PACK_ALIGNMENT. Six more affect the unpacking of pixel data from memory: GL_UNPACK_SWAP_BYTES, GL_UNPACK_LSB_FIRST, GL_UNPACK_ROW_LENGTH, GL_UNPACK_IMAGE_HEIGHT, GL_UNPACK_SKIP_PIXELS, GL_UNPACK_SKIP_ROWS, GL_UNPACK_SKIP_IMAGES, and GL_UNPACK_ALIGNMENT.
es 中只提供GL_PACK_ALIGNMENT和GL_UNPACK_ALIGNMENT两个可选参数。
2. param:设置对应pname的值,类似于key-value
panme参数主要包含16个标识符,其中带GL_PACK前缀的是压包(将数据从OpenGL中读入内存)参数,带GL_UNPACK前缀的是解包(从内存读入OpenGL)参数。
pname is a symbolic constant indicating the parameter to be set, and param is the new value. Six of the twelve storage parameters affect how pixel data is returned to client memory. They are as follows:
GL_PACK_SWAP_BYTES