Groups of elements are placed in memory just as they are taken from memory for DrawPixels . That is, the ith group of the jth row (corresponding to the ith pixel in the jth row) is placed in memory just where the ith group of the jth row would be taken from for DrawPixels . See Unpacking under section 3.6.3. The only difference is that the storage mode parameters whose names begin with PACK_ are used instead of those whose names begin with UNPACK_. If the format is RED, GREEN, BLUE, ALPHA, or LUMINANCE, only the corresponding single element is written. Likewise if the format is LUMINANCE_ALPHA or RGB, only the corresponding two or three elements are written. Otherwise all the elements of each group are written.