设置像素的存储模式,对后续的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