NAME

glPixelMapfv, glPixelMapuiv, glPixelMapusv - set up pixel transfer maps

C SPECIFICATION

void ggllPPiixxeellMMaappffvv( GLenum _m_a_p,
                   GLint _m_a_p_s_i_z_e,
                   const GLfloat _*_v_a_l_u_e_s )
void ggllPPiixxeellMMaappuuiivv( GLenum _m_a_p,
                    GLint _m_a_p_s_i_z_e,
                    const GLuint _*_v_a_l_u_e_s )
void ggllPPiixxeellMMaappuussvv( GLenum _m_a_p,
                    GLint _m_a_p_s_i_z_e,
                    const GLushort _*_v_a_l_u_e_s )

delim $$

PARAMETERS

_m_a_p
Specifies a symbolic map name. Must be one of the following: GGLL__PPIIXXEELL__MMAAPP__II__TTOO__II, GGLL__PPIIXXEELL__MMAAPP__SS__TTOO__SS, GGLL__PPIIXXEELL__MMAAPP__II__TTOO__RR, GGLL__PPIIXXEELL__MMAAPP__II__TTOO__GG, GGLL__PPIIXXEELL__MMAAPP__II__TTOO__BB, GGLL__PPIIXXEELL__MMAAPP__II__TTOO__AA, GGLL__PPIIXXEELL__MMAAPP__RR__TTOO__RR, GGLL__PPIIXXEELL__MMAAPP__GG__TTOO__GG, GGLL__PPIIXXEELL__MMAAPP__BB__TTOO__BB, or GGLL__PPIIXXEELL__MMAAPP__AA__TTOO__AA.
_m_a_p_s_i_z_e
Specifies the size of the map being defined.
_v_a_l_u_e_s
Specifies an array of _m_a_p_s_i_z_e values.

DESCRIPTION

ggllPPiixxeellMMaapp sets up translation tables, or _m_a_p_s, used by ggllCCooppyyPPiixxeellss, ggllCCooppyyTTeexxIImmaaggee11DD, ggllCCooppyyTTeexxIImmaaggee22DD, ggllCCooppyyTTeexxSSuubbIImmaaggee11DD, ggllCCooppyyTTeexxSSuubbIImmaaggee22DD, ggllCCooppyyTTeexxSSuubbIImmaaggee33DD, ggllDDrraawwPPiixxeellss, ggllRReeaaddPPiixxeellss, ggllTTeexxIImmaaggee11DD, ggllTTeexxIImmaaggee22DD, ggllTTeexxIImmaaggee33DD, ggllTTeexxSSuubbIImmaaggee11DD, ggllTTeexxSSuubbIImmaaggee22DD, and ggllTTeexxSSuubbIImmaaggee33DD. Additionally, if the GGLL__AARRBB__iimmaaggiinngg subset is supported, the routines ggllCCoolloorrTTaabbllee, ggllCCoolloorrSSuubbTTaabbllee, ggllCCoonnvvoolluuttiioonnFFiilltteerr11DD, ggllCCoonnvvoolluuttiioonnFFiilltteerr22DD, ggllHHiissttooggrraamm, ggllMMiinnmmaaxx, and ggllSSeeppaarraabblleeFFiilltteerr22DD. Use of these maps is described completely in the ggllPPiixxeellTTrraannssffeerr reference page, and partly in the reference pages for the pixel and texture image commands. Only the specification of the maps is described in this reference page.

_m_a_p is a symbolic map name, indicating one of ten maps to set. _m_a_p_s_i_z_e specifies the number of entries in the map, and _v_a_l_u_e_s is a pointer to an array of _m_a_p_s_i_z_e map values.

The ten maps are as follows:

GGLL__PPIIXXEELL__MMAAPP__II__TTOO__II
Maps color indices to color indices.
GGLL__PPIIXXEELL__MMAAPP__SS__TTOO__SS
Maps stencil indices to stencil indices.
GGLL__PPIIXXEELL__MMAAPP__II__TTOO__RR
Maps color indices to red components.
GGLL__PPIIXXEELL__MMAAPP__II__TTOO__GG
Maps color indices to green components.
GGLL__PPIIXXEELL__MMAAPP__II__TTOO__BB
Maps color indices to blue components.
GGLL__PPIIXXEELL__MMAAPP__II__TTOO__AA
Maps color indices to alpha components.
GGLL__PPIIXXEELL__MMAAPP__RR__TTOO__RR
Maps red components to red components.
GGLL__PPIIXXEELL__MMAAPP__GG__TTOO__GG
Maps green components to green components.
GGLL__PPIIXXEELL__MMAAPP__BB__TTOO__BB
Maps blue components to blue components.
GGLL__PPIIXXEELL__MMAAPP__AA__TTOO__AA
Maps alpha components to alpha components.

The entries in a map can be specified as single-precision floating-point numbers, unsigned short integers, or unsigned long integers. Maps that store color component values (all but GGLL__PPIIXXEELL__MMAAPP__II__TTOO__II and GGLL__PPIIXXEELL__MMAAPP__SS__TTOO__SS) retain their values in floating-point , with unspecified mantissa and exponent sizes. Floating-point values specified by ggllPPiixxeellMMaappffvv are converted directly to the internal floating-point of these maps, then clamped to the range [0,1]. Unsigned integer values specified by ggllPPiixxeellMMaappuussvv and ggllPPiixxeellMMaappuuiivv are converted linearly such that the largest representable integer maps to 1.0, and 0 maps to 0.0.

Maps that store indices, GGLL__PPIIXXEELL__MMAAPP__II__TTOO__II and GGLL__PPIIXXEELL__MMAAPP__SS__TTOO__SS, retain their values in fixed-point , with an unspecified number of bits to the right of the binary point. Floating-point values specified by ggllPPiixxeellMMaappffvv are converted directly to the internal fixed-point of these maps. Unsigned integer values specified by ggllPPiixxeellMMaappuussvv and ggllPPiixxeellMMaappuuiivv specify integer values, with all 0's to the right of the binary point.

The following table shows the initial sizes and values for each of the maps. Maps that are indexed by either color or stencil indices must have _m_a_p_s_i_z_e = $2 sup n$ for some $n$ or the results are undefined. The maximum allowable size for each map depends on the implementation and can be determined by calling ggllGGeett with argument GGLL__MMAAXX__PPIIXXEELL__MMAAPP__TTAABBLLEE. The single maximum applies to all maps; it is at least 32.

center tab(:) delim($$) ;
lb cb cb cb cb
l c c c c.
_
_m_a_p:Lookup Index:Lookup Value:Initial Size:Initial Value
_
GGLL__PPIIXXEELL__MMAAPP__II__TTOO__II:color index:color index:1:0
GGLL__PPIIXXEELL__MMAAPP__SS__TTOO__SS:stencil index :stencil index :1:0
GGLL__PPIIXXEELL__MMAAPP__II__TTOO__RR:color index :R:1:0
GGLL__PPIIXXEELL__MMAAPP__II__TTOO__GG:color index :G:1:0
GGLL__PPIIXXEELL__MMAAPP__II__TTOO__BB:color index:B:1:0
GGLL__PPIIXXEELL__MMAAPP__II__TTOO__AA:color index:A:1:0
GGLL__PPIIXXEELL__MMAAPP__RR__TTOO__RR:R:R:1:0
GGLL__PPIIXXEELL__MMAAPP__GG__TTOO__GG:G:G:1:0
GGLL__PPIIXXEELL__MMAAPP__BB__TTOO__BB:B:B:1:0
GGLL__PPIIXXEELL__MMAAPP__AA__TTOO__AA:A:A:1:0
_

ERRORS

GGLL__IINNVVAALLIIDD__EENNUUMM is generated if _m_a_p is not an accepted value.

GGLL__IINNVVAALLIIDD__VVAALLUUEE is generated if _m_a_p_s_i_z_e is less than one or larger than GGLL__MMAAXX__PPIIXXEELL__MMAAPP__TTAABBLLEE.

GGLL__IINNVVAALLIIDD__VVAALLUUEE is generated if _m_a_p is GGLL__PPIIXXEELL__MMAAPP__II__TTOO__II, GGLL__PPIIXXEELL__MMAAPP__SS__TTOO__SS, GGLL__PPIIXXEELL__MMAAPP__II__TTOO__RR, GGLL__PPIIXXEELL__MMAAPP__II__TTOO__GG, GGLL__PPIIXXEELL__MMAAPP__II__TTOO__BB, or GGLL__PPIIXXEELL__MMAAPP__II__TTOO__AA, and _m_a_p_s_i_z_e is not a power of two.

GGLL__IINNVVAALLIIDD__OOPPEERRAATTIIOONN is generated if ggllPPiixxeellMMaapp is executed between the execution of ggllBBeeggiinn and the corresponding execution of ggllEEnndd.

ASSOCIATED GETS

ggllGGeettPPiixxeellMMaapp
ggllGGeett with argument GGLL__PPIIXXEELL__MMAAPP__II__TTOO__II__SSIIZZEE
ggllGGeett with argument GGLL__PPIIXXEELL__MMAAPP__SS__TTOO__SS__SSIIZZEE
ggllGGeett with argument GGLL__PPIIXXEELL__MMAAPP__II__TTOO__RR__SSIIZZEE
ggllGGeett with argument GGLL__PPIIXXEELL__MMAAPP__II__TTOO__GG__SSIIZZEE
ggllGGeett with argument GGLL__PPIIXXEELL__MMAAPP__II__TTOO__BB__SSIIZZEE
ggllGGeett with argument GGLL__PPIIXXEELL__MMAAPP__II__TTOO__AA__SSIIZZEE
ggllGGeett with argument GGLL__PPIIXXEELL__MMAAPP__RR__TTOO__RR__SSIIZZEE
ggllGGeett with argument GGLL__PPIIXXEELL__MMAAPP__GG__TTOO__GG__SSIIZZEE
ggllGGeett with argument GGLL__PPIIXXEELL__MMAAPP__BB__TTOO__BB__SSIIZZEE
ggllGGeett with argument GGLL__PPIIXXEELL__MMAAPP__AA__TTOO__AA__SSIIZZEE
ggllGGeett with argument GGLL__MMAAXX__PPIIXXEELL__MMAAPP__TTAABBLLEE

SEE ALSO

ggllCCoolloorrTTaabbllee((33GG)), ggllCCoolloorrSSuubbTTaabbllee((33GG)), ggllCCoonnvvoolluuttiioonnFFiilltteerr11DD((33GG)), ggllCCoonnvvoolluuttiioonnFFiilltteerr22DD((33GG)), ggllCCooppyyPPiixxeellss((33GG)), ggllCCooppyyTTeexxIImmaaggee11DD((33GG)), ggllCCooppyyTTeexxIImmaaggee22DD((33GG)), ggllCCooppyyTTeexxSSuubbIImmaaggee11DD((33GG)), ggllCCooppyyTTeexxSSuubbIImmaaggee22DD((33GG)), ggllDDrraawwPPiixxeellss((33GG)), ggllHHiissttooggrraamm((33GG)), ggllMMiinnmmaaxx((33GG)), ggllPPiixxeellSSttoorree((33GG)), ggllPPiixxeellTTrraannssffeerr((33GG)), ggllRReeaaddPPiixxeellss((33GG)), ggllSSeeppaarraabblleeFFiilltteerr22DD((33GG)), ggllTTeexxIImmaaggee11DD((33GG)), ggllTTeexxIImmaaggee22DD((33GG)), ggllTTeexxIImmaaggee33DD((33GG)), ggllTTeexxSSuubbIImmaaggee11DD((33GG)), ggllTTeexxSSuubbIImmaaggee22DD((33GG)), ggllTTeexxSSuubbIImmaaggee33DD((33GG))