Note: This feature is available in Web Workers.
The WebGLRenderingContext.pixelStorei() method of the WebGL API specifies the pixel storage modes.
pixelStorei(pname, param)pnameA GLenum specifying which parameter to set. See below for possible values.
paramA GLint specifying a value to set the pname parameter to. See below for possible values.
None (undefined).
Parameter name (for pname) | Description | Type | Default value | Allowed values (for param) | Specified in |
|---|---|---|---|---|---|
gl.PACK_ALIGNMENT | Packing of pixel data into memory | GLint | 4 | 1, 2, 4, 8 | OpenGL ES 2.0 |
gl.UNPACK_ALIGNMENT | Unpacking of pixel data from memory. | GLint | 4 | 1, 2, 4, 8 | OpenGL ES 2.0 |
gl.UNPACK_FLIP_Y_WEBGL | Flips the source data along its vertical axis if true. | GLboolean | false | true, false | WebGL |
gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL | Multiplies the alpha channel into the other color channels | GLboolean | false | true, false | WebGL |
gl.UNPACK_COLORSPACE_CONVERSION_WEBGL | Default color space conversion or no color space conversion. | GLenum | gl.BROWSER_DEFAULT_WEBGL | gl.BROWSER_DEFAULT_WEBGL, gl.NONE | WebGL |
When using a WebGL 2 context, the following values are available additionally:Constant Description Type Default value Allowed values (for param)Specified in gl.PACK_ROW_LENGTHNumber of pixels in a row. GLint0 0 to InfinityOpenGL ES 3.0 gl.PACK_SKIP_PIXELSNumber of pixel locations skipped before the first pixel is written into memory. GLint0 0 to InfinityOpenGL ES 3.0 gl.PACK_SKIP_ROWSNumber of rows of pixel locations skipped before the first pixel is written into memory GLint0 0 to InfinityOpenGL ES 3.0 gl.UNPACK_ROW_LENGTHNumber of pixels in a row. GLint0 0 to InfinityOpenGL ES 3.0 gl.UNPACK_IMAGE_HEIGHTImage height used for reading pixel data from memory GLint0 0 to InfinityOpenGL ES 3.0 gl.UNPACK_SKIP_PIXELSNumber of pixel images skipped before the first pixel is read from memory GLint0 0 to InfinityOpenGL ES 3.0 gl.UNPACK_SKIP_ROWSNumber of rows of pixel locations skipped before the first pixel is read from memory GLint0 0 to InfinityOpenGL ES 3.0 gl.UNPACK_SKIP_IMAGESNumber of pixel images skipped before the first pixel is read from memory GLint0 0 to InfinityOpenGL ES 3.0
Setting the pixel storage mode affects the WebGLRenderingContext.readPixels() operations, as well as unpacking of textures with the WebGLRenderingContext.texImage2D() and WebGLRenderingContext.texSubImage2D() methods.
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().
gl.getParameter(gl.PACK_ALIGNMENT);
gl.getParameter(gl.UNPACK_ALIGNMENT);