- set up pixel transfer maps



C SPECIFICATION


PARAMETERS

       _param1  Specifies a symbolic map name.  Must be one of
                the following: GL_PIXEL_MAP_I_TO_I,
                GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R,
                GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B,
                GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R,
                GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, or
                GL_PIXEL_MAP_A_TO_A.

       _param2  Specifies the size of the map being defined.

       _param3  Specifies an array of _param2 values.


DESCRIPTION

       glPixelMap sets up translation tables, or maps, used by
       glCopyPixels, glCopyTexImage1D, glCopyTexImage2D,
       glCopyTexSubImage1D, glCopyTexSubImage2D,
       glCopyTexSubImage3D, glDrawPixels, glReadPixels,
       glTexImage1D, glTexImage2D, glTexImage3D, glTexSubImage1D,
       glTexSubImage2D, and glTexSubImage3D.  Additionally, if
       the GL_ARB_imaging subset is supported, the routines
       glColorTable, glColorSubTable, glConvolutionFilter1D,
       glConvolutionFilter2D, glHistogram, glMinmax, and
       glSeparableFilter2D.  Use of these maps is described com-
       pletely in the glPixelTransfer 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.

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

       The ten maps are as follows:

       GL_PIXEL_MAP_I_TO_I           Maps color indices to color
                                     indices.

       GL_PIXEL_MAP_S_TO_S           Maps stencil indices to
                                     stencil indices.

       GL_PIXEL_MAP_I_TO_R           Maps color indices to red
                                     components.

       GL_PIXEL_MAP_I_TO_G           Maps color indices to green
                                     components.


       GL_PIXEL_MAP_A_TO_A           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 GL_PIXEL_MAP_I_TO_I and
       GL_PIXEL_MAP_S_TO_S) retain their values in floating-point
       , with unspecified mantissa and exponent sizes.  Floating-
       point values specified by glPixelMapfv are converted
       directly to the internal floating-point  of these maps,
       then clamped to the range [0,1].  Unsigned integer values
       specified by glPixelMapusv and glPixelMapuiv are converted
       linearly such that the largest representable integer maps
       to 1.0, and 0 maps to 0.0.

       Maps that store indices, GL_PIXEL_MAP_I_TO_I and
       GL_PIXEL_MAP_S_TO_S, retain their values in fixed-point ,
       with an unspecified number of bits to the right of the
       binary point.  Floating-point values specified by
       glPixelMapfv are converted directly to the internal fixed-
       point  of these maps.  Unsigned integer values specified
       by glPixelMapusv and glPixelMapuiv 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 _param2 = 2n for some n or
       the results are undefined.  The maximum allowable size for
       each map depends on the implementation and can be deter-
       mined by calling glGet with argument
       GL_MAX_PIXEL_MAP_TABLE.  The single maximum applies to all
       maps; it is at least 32.



















GL_PIXEL_MAP_I_TO_B color index B 1 0


GL_PIXEL_MAP_I_TO_A color index A 1 0


GL_PIXEL_MAP_R_TO_R R R 1 0


GL_PIXEL_MAP_G_TO_G G G 1 0


GL_PIXEL_MAP_B_TO_B B B 1 0


GL_PIXEL_MAP_A_TO_A A A 1 0

-------------------------------------------------------------------------------------



ERRORS

       GL_INVALID_ENUM is generated if _param1 is not an accepted
       value.

       GL_INVALID_VALUE is generated if _param2 is less than one
       or larger than GL_MAX_PIXEL_MAP_TABLE.

       GL_INVALID_VALUE is generated if _param1 is
       GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S,
       GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G,
       GL_PIXEL_MAP_I_TO_B, or GL_PIXEL_MAP_I_TO_A, and _param2
       is not a power of two.

       GL_INVALID_OPERATION is generated if glPixelMap is exe-
       cuted between the execution of glBegin and the correspond-
       ing execution of glEnd.


ASSOCIATED GETS

       glGetPixelMap
       glGet with argument GL_PIXEL_MAP_I_TO_I_SIZE
       glGet with argument GL_PIXEL_MAP_S_TO_S_SIZE
       glGet with argument GL_PIXEL_MAP_I_TO_R_SIZE
       glGet with argument GL_PIXEL_MAP_I_TO_G_SIZE
       glGet with argument GL_PIXEL_MAP_I_TO_B_SIZE
       glGet with argument GL_PIXEL_MAP_I_TO_A_SIZE
       glGet with argument GL_PIXEL_MAP_R_TO_R_SIZE
       glGet with argument GL_PIXEL_MAP_G_TO_G_SIZE
       glGet with argument GL_PIXEL_MAP_B_TO_B_SIZE
       glGet with argument GL_PIXEL_MAP_A_TO_A_SIZE
       glGet with argument GL_MAX_PIXEL_MAP_TABLE


SEE ALSO

       glColorTable, glColorSubTable, glConvolutionFilter1D,
       glConvolutionFilter2D, glCopyPixels, glCopyTexImage1D,
       glCopyTexImage2D, glCopyTexSubImage1D,
       glCopyTexSubImage2D, glDrawPixels, glHistogram, glMinmax,
       glPixelStore, glPixelTransfer, glReadPixels,
       glSeparableFilter2D, glTexImage1D, glTexImage2D,
       glTexImage3D, glTexSubImage1D, glTexSubImage2D,
       glTexSubImage3D