# glPixelStorei

## Name

glPixelStorei — set pixel storage modes

## C Specification

 void glPixelStorei( GLenum pname, GLint param);

## Parameters

pname

Specifies the symbolic name of the parameter to be set. One value affects the packing of pixel data into memory: GL_PACK_ALIGNMENT. The other affects the unpacking of pixel data from memory: GL_UNPACK_ALIGNMENT.

param

Specifies the value that pname is set to.

## Description

glPixelStorei sets pixel storage modes that affect the operation of subsequent glReadPixels as well as the unpacking of texture patterns (see glTexImage2D and glTexSubImage2D).

pname is a symbolic constant indicating the parameter to be set, and param is the new value. One storage parameter affects how pixel data is returned to client memory:

GL_PACK_ALIGNMENT

Specifies the alignment requirements for the start of each pixel row in memory. The allowable values are 1 (byte-alignment), 2 (rows aligned to even-numbered bytes), 4 (word-alignment), and 8 (rows start on double-word boundaries).

The other storage parameter affects how pixel data is read from client memory:

GL_UNPACK_ALIGNMENT

Specifies the alignment requirements for the start of each pixel row in memory. The allowable values are 1 (byte-alignment), 2 (rows aligned to even-numbered bytes), 4 (word-alignment), and 8 (rows start on double-word boundaries).

The following table gives the type, initial value, and range of valid values for each storage parameter that can be set with glPixelStorei.

pname Type Initial Value Valid Range
GL_PACK_ALIGNMENT integer 4 1, 2, 4, or 8
GL_UNPACK_ALIGNMENT integer 4 1, 2, 4, or 8

Boolean parameters are set to false if param is 0 and true otherwise.

## Errors

GL_INVALID_ENUM is generated if pname is not an accepted value.

GL_INVALID_VALUE is generated if alignment is specified as other than 1, 2, 4, or 8.

## Associated Gets

glGet with argument GL_PACK_ALIGNMENT or GL_UNPACK_ALIGNMENT