WebGLRenderingContext: pixelStorei() method

Note: This feature is available in Web Workers.

The WebGLRenderingContext.pixelStorei() method of the WebGL API specifies the pixel storage modes.

Syntax

js
pixelStorei(pname, param)

Parameters

pname

A GLenum specifying which parameter to set. See below for possible values.

param

A GLint specifying a value to set the pname parameter to. See below for possible values.

Return value

None (undefined).

Pixel storage parameters

Parameter name (for pname)DescriptionTypeDefault valueAllowed values (for param)Specified in
gl.PACK_ALIGNMENTPacking of pixel data into memoryGLint41, 2, 4, 8OpenGL ES 2.0
gl.UNPACK_ALIGNMENTUnpacking of pixel data from memory.GLint41, 2, 4, 8OpenGL ES 2.0
gl.UNPACK_FLIP_Y_WEBGLFlips the source data along its vertical axis if true.GLbooleanfalsetrue, falseWebGL
gl.UNPACK_PREMULTIPLY_ALPHA_WEBGLMultiplies the alpha channel into the other color channelsGLbooleanfalsetrue, falseWebGL
gl.UNPACK_COLORSPACE_CONVERSION_WEBGLDefault color space conversion or no color space conversion.GLenumgl.BROWSER_DEFAULT_WEBGLgl.BROWSER_DEFAULT_WEBGL, gl.NONEWebGL

When using a WebGL 2 context, the following values are available additionally:

ConstantDescriptionTypeDefault valueAllowed values (for param)Specified in
gl.PACK_ROW_LENGTHNumber of pixels in a row.GLint00 to InfinityOpenGL ES 3.0
gl.PACK_SKIP_PIXELSNumber of pixel locations skipped before the first pixel is written into memory.GLint00 to InfinityOpenGL ES 3.0
gl.PACK_SKIP_ROWSNumber of rows of pixel locations skipped before the first pixel is written into memoryGLint00 to InfinityOpenGL ES 3.0
gl.UNPACK_ROW_LENGTHNumber of pixels in a row.GLint00 to InfinityOpenGL ES 3.0
gl.UNPACK_IMAGE_HEIGHTImage height used for reading pixel data from memoryGLint00 to InfinityOpenGL ES 3.0
gl.UNPACK_SKIP_PIXELSNumber of pixel images skipped before the first pixel is read from memoryGLint00 to InfinityOpenGL ES 3.0
gl.UNPACK_SKIP_ROWSNumber of rows of pixel locations skipped before the first pixel is read from memoryGLint00 to InfinityOpenGL ES 3.0
gl.UNPACK_SKIP_IMAGESNumber of pixel images skipped before the first pixel is read from memoryGLint00 to InfinityOpenGL ES 3.0

Examples

Setting the pixel storage mode affects the WebGLRenderingContext.readPixels() operations, as well as unpacking of textures with the WebGLRenderingContext.texImage2D() and WebGLRenderingContext.texSubImage2D() methods.

js
const tex = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tex);
gl.pixelStorei(gl.PACK_ALIGNMENT, 4);

To check the values for packing and unpacking of pixel data, you can query the same pixel storage parameters with WebGLRenderingContext.getParameter().

js
gl.getParameter(gl.PACK_ALIGNMENT);
gl.getParameter(gl.UNPACK_ALIGNMENT);

Specifications

See also