- specify a one-dimensional texture image



C SPECIFICATION


PARAMETERS

       _param1  Specifies    the   target   texture.    Must   be
                GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.

       _param2  Specifies the level-of-detail number.  Level 0 is
                the  base image level.  Level n is the nth mipmap
                reduction image.

       _param3  Specifies the number of color components  in  the
                texture.   Must  be  1, 2, 3, or 4, or one of the
                following    symbolic    constants:     GL_ALPHA,
                GL_ALPHA4,   GL_ALPHA8,  GL_ALPHA12,  GL_ALPHA16,
                GL_LUMINANCE,    GL_LUMINANCE4,    GL_LUMINANCE8,
                GL_LUMINANCE12,                   GL_LUMINANCE16,
                GL_LUMINANCE_ALPHA,         GL_LUMINANCE4_ALPHA4,
                GL_LUMINANCE6_ALPHA2,       GL_LUMINANCE8_ALPHA8,
                GL_LUMINANCE12_ALPHA4,    GL_LUMINANCE12_ALPHA12,
                GL_LUMINANCE16_ALPHA16,             GL_INTENSITY,
                GL_INTENSITY4,   GL_INTENSITY8,   GL_INTENSITY12,
                GL_INTENSITY16,   GL_RGB,  GL_R3_G3_B2,  GL_RGB4,
                GL_RGB5, GL_RGB8, GL_RGB10,  GL_RGB12,  GL_RGB16,
                GL_RGBA,    GL_RGBA2,    GL_RGBA4,    GL_RGB5_A1,
                GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.

       _param4  Specifies the width of the texture  image.   Must
                be  2n+2(_eqnparam5)  for  some  integer  n.  All
                implementations support texture images  that  are
                at  least  64  texels  wide. The height of the 1D
                texture image is 1.

       _param5  Specifies the  width  of  the  border.   Must  be
                either 0 or 1.

       _param6  Specifies  the  of the pixel data.  The following
                symbolic  values  are  accepted:  GL_COLOR_INDEX,
                GL_RED,   GL_GREEN,  GL_BLUE,  GL_ALPHA,  GL_RGB,
                GL_BGR,  GL_RGBA,  GL_BGRA,   GL_LUMINANCE,   and
                GL_LUMINANCE_ALPHA.

       _param7  Specifies  the  data type of the pixel data.  The
                following   symbolic   values    are    accepted:
                GL_UNSIGNED_BYTE,       GL_BYTE,       GL_BITMAP,
                GL_UNSIGNED_SHORT,   GL_SHORT,   GL_UNSIGNED_INT,
                GL_INT,     GL_FLOAT,     GL_UNSIGNED_BYTE_3_3_2,
                GL_UNSIGNED_BYTE_2_3_3_REV,
                GL_UNSIGNED_SHORT_5_6_5,
                GL_UNSIGNED_SHORT_5_6_5_REV,
                GL_UNSIGNED_SHORT_4_4_4_4,

       glEnable and glDisable with argument GL_TEXTURE_1D.

       Texture images are defined with glTexImage1D.   The  argu-
       ments  describe  the parameters of the texture image, such
       as width, width of the border, level-of-detail number (see
       glTexParameter),  and the internal resolution and  used to
       store the image.  The last three  arguments  describe  how
       the  image is represented in memory; they are identical to
       the pixel formats used for glDrawPixels.

       If _param1 is GL_PROXY_TEXTURE_1D, no data  is  read  from
       _param8,  but  all  of the texture image state is recalcu-
       lated, checked for consistency, and  checked  against  the
       implementation's capabilities.  If the implementation can-
       not handle a texture of the  requested  texture  size,  it
       sets all of the image state to 0, but does not generate an
       error (see glGetError). To  query  for  an  entire  mipmap
       array,  use  an image array level greater than or equal to
       1.

       If _param1 is GL_TEXTURE_1D, data is read from _param8  as
       a  sequence of signed or unsigned bytes, shorts, or longs,
       or single-precision floating-point  values,  depending  on
       _param7.   These values are grouped into sets of one, two,
       three, or four values, depending on _param6, to form  ele-
       ments.  If _param7 is GL_BITMAP, the data is considered as
       a  string  of  unsigned  bytes  (and   _param6   must   be
       GL_COLOR_INDEX).  Each data byte is treated as eight 1-bit
       elements,    with    bit    ordering     determined     by
       GL_UNPACK_LSB_FIRST (see glPixelStore).

       The  first element corresponds to the left end of the tex-
       ture array.  Subsequent  elements  progress  left-to-right
       through  the  remaining  texels in the texture array.  The
       final element corresponds to the right end of the  texture
       array.

       _param6  determines  the  composition  of  each element in
       _param8.  It can assume one of eleven symbolic values:

       GL_COLOR_INDEX
                 Each element is a single value, a  color  index.
                 The  GL  converts  it  to  fixed  point (with an
                 unspecified number of zero bits to the right  of
                 the binary point), shifted left or right depend-
                 ing on the value and sign of GL_INDEX_SHIFT, and
                 added  to GL_INDEX_OFFSET (see glPixelTransfer).
                 The resulting index is converted  to  a  set  of
                 color  components using the GL_PIXEL_MAP_I_TO_R,
                 GL_PIXEL_MAP_I_TO_G,  GL_PIXEL_MAP_I_TO_B,   and
                 GL_PIXEL_MAP_I_TO_A  tables,  and clamped to the
                 range [0,1].
                 then  multiplied  by  the  signed  scale  factor
                 GL_c_SCALE, added to the signed bias  GL_c_BIAS,
                 and    clamped   to   the   range   [0,1]   (see
                 glPixelTransfer).

       GL_BLUE   Each element is a single blue component.  The GL
                 converts  it  to floating point and assembles it
                 into an RGBA element by attaching 0 for red  and
                 green,  and 1 for alpha.  Each component is then
                 multiplied   by   the   signed   scale    factor
                 GL_c_SCALE,  added to the signed bias GL_c_BIAS,
                 and   clamped   to   the   range   [0,1]    (see
                 glPixelTransfer).

       GL_ALPHA  Each  element  is a single alpha component.  The
                 GL converts it to floating point  and  assembles
                 it  into an RGBA element by attaching 0 for red,
                 green, and blue.  Each component is then  multi-
                 plied  by  the  signed  scale factor GL_c_SCALE,
                 added to the signed bias GL_c_BIAS, and  clamped
                 to the range [0,1] (see glPixelTransfer).

       GL_RGB

       GL_BGR    Each  element is an RGB triple.  The GL converts
                 it to floating point and assembles  it  into  an
                 RGBA  element  by  attaching  1 for alpha.  Each
                 component is then multiplied by the signed scale
                 factor  GL_c_SCALE,  added  to  the  signed bias
                 GL_c_BIAS, and clamped to the range  [0,1]  (see
                 glPixelTransfer).

       GL_RGBA

       GL_BGRA   Each element contains all four components.  Each
                 component is then multiplied by the signed scale
                 factor  GL_c_SCALE,  added  to  the  signed bias
                 GL_c_BIAS, and clamped to the range  [0,1]  (see
                 glPixelTransfer).

       GL_LUMINANCE
                 Each  element  is a single luminance value.  The
                 GL converts it to floating point, then assembles
                 it into an RGBA element by replicating the lumi-
                 nance value three times for red, green, and blue
                 and  attaching  1  for alpha.  Each component is
                 then  multiplied  by  the  signed  scale  factor
                 GL_c_SCALE,  added to the signed bias GL_c_BIAS,
                 and   clamped   to   the   range   [0,1]    (see
                 glPixelTransfer).

       GL_LUMINANCE_ALPHA
       tions   specified   by  GL_LUMINANCE,  GL_LUMINANCE_ALPHA,
       GL_RGB, and GL_RGBA must match exactly. The numeric values
       1,  2,  3, and 4 may also be used to specify the preceding
       representations.)

       Use the GL_PROXY_TEXTURE_1D target to try out a resolution
       and  update and recompute its best match for the requested
       storage  resolution  and  .  To  query  this  state,  call
       glGetTexLevelParameter.  If the texture cannot be accommo-
       dated, texture state is set to 0.

       A one-component texture image uses only the red  component
       of  the  RGBA  color  from _param8.  A two-component image
       uses the R and A values.  A three-component image uses the
       R,  G,  and  B values.  A four-component image uses all of
       the RGBA components.


NOTES

       Texturing has no effect in color index mode.

       If the GL_ARB_imaging extension is  supported,  RGBA  ele-
       ments  may also be processed by the imaging pipeline.  The
       following stages may be applied to an  RGBA  color  before
       color component clamping to the range [0, 1]:

       1. Color component replacement by the color table
       specified for
          GL_COLOR_TABLE, if enabled. See glColorTable.

       2. One-dimensional convolution filtering, if enabled. See
          glConvolutionFilter1D.

          If a convolution filter changes the __width of the tex-
          ture  (by  processing with a GL_CONVOLUTION_BORDER_MODE
          of GL_REDUCE, for example), the _param4 must 2n+2(_eqn-
          param5), for some integer n, after filtering.

       3.      RGBA      components     may     be     multiplied
       by GL_POST_CONVOLUTION_c_SCALE,
          and  added  to  GL_POST_CONVOLUTION_c_BIAS, if enabled.
          See glPixelTransfer.

       4. Color component replacement by the color table
       specified for
          GL_POST_CONVOLUTION_COLOR_TABLE,   if   enabled.    See
          glColorTable.

       5. Transformation by the color matrix.  See glMatrixMode.

       6.     RGBA     components     may     be      multiplied
       by GL_POST_COLOR_MATRIX_c_SCALE,
          and added to GL_POST_COLOR_MATRIX_c_BIAS,  if  enabled.

       1.1 or greater.

       Internal formats other than 1, 2, 3, or 4 may be used only
       if the GL version is 1.1 or greater.

       In  GL  version  1.1  or  greater,  _param8  may be a null
       pointer. In this  case  texture  memory  is  allocated  to
       accommodate  a  texture  of  width  _param4.  You can then
       download subtextures to initialize the texture memory. The
       image is undefined if the program tries to apply an unini-
       tialized portion of the texture image to a primitive.

       Formats     GL_BGR,     and     GL_BGRA     and      types
       GL_UNSIGNED_BYTE_3_3_2,        GL_UNSIGNED_BYTE_2_3_3_REV,
       GL_UNSIGNED_SHORT_5_6_5,      GL_UNSIGNED_SHORT_5_6_5_REV,
       GL_UNSIGNED_SHORT_4_4_4_4,  GL_UNSIGNED_SHORT_4_4_4_4_REV,
       GL_UNSIGNED_SHORT_5_5_5_1,  GL_UNSIGNED_SHORT_1_5_5_5_REV,
       GL_UNSIGNED_INT_8_8_8_8,      GL_UNSIGNED_INT_8_8_8_8_REV,
       GL_UNSIGNED_INT_10_10_10_2,                            and
       GL_UNSIGNED_INT_2_10_10_10_REV  are  available only if the
       GL version is 1.2 or greater.

       When  the  GL_ARB_multitexture  extension  is   supported,
       glTexImage1D specifies the one-dimensional texture for the
       current texture unit, specified with glActiveTextureARB.


ERRORS

       GL_INVALID_ENUM   is   generated   if   _param1   is   not
       GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.

       GL_INVALID_ENUM is generated if _param6 is not an accepted
        constant.  Format constants other  than  GL_STENCIL_INDEX
       and GL_DEPTH_COMPONENT are accepted.

       GL_INVALID_ENUM is generated if _param7 is not a type con-
       stant.

       GL_INVALID_ENUM is generated if _param7 is  GL_BITMAP  and
       _param6 is not GL_COLOR_INDEX.

       GL_INVALID_VALUE is generated if _param2 is less than 0.

       GL_INVALID_VALUE  may  be  generated if _param2 is greater
       than  log2max,  where  max  is  the  returned   value   of
       GL_MAX_TEXTURE_SIZE.

       GL_INVALID_VALUE  is  generated if _param3 is not 1, 2, 3,
       4, or one of the accepted resolution  and   symbolic  con-
       stants.

       GL_INVALID_VALUE is generated if _param4 is less than 0 or
       greater than 2 + GL_MAX_TEXTURE_SIZE, or if it  cannot  be
       GL_INVALID_OPERATION  is  generated  if  _param7 is one of
       GL_UNSIGNED_SHORT_4_4_4_4,  GL_UNSIGNED_SHORT_4_4_4_4_REV,
       GL_UNSIGNED_SHORT_5_5_5_1,  GL_UNSIGNED_SHORT_1_5_5_5_REV,
       GL_UNSIGNED_INT_8_8_8_8,      GL_UNSIGNED_INT_8_8_8_8_REV,
       GL_UNSIGNED_INT_10_10_10_2,                             or
       GL_UNSIGNED_INT_2_10_10_10_REV  and  _param6  is   neither
       GL_RGBA nor GL_BGRA.


ASSOCIATED GETS

       glGetTexImage
       glIsEnabled with argument GL_TEXTURE_1D


SEE ALSO

       glActiveTextureARB,  glColorTable,  glConvolutionFilter1D,
       glCopyPixels,     glCopyTexImage1D,      glCopyTexImage2D,
       glCopyTexSubImage1D,                  glCopyTexSubImage2D,
       glCopyTexSubImage3D,      glDrawPixels,      glMatrixMode,
       glPixelStore,    glPixelTransfer,    glTexEnv,   glTexGen,
       glTexImage2D,        glTexImage3D,        glTexSubImage1D,
       glTexSubImage2D, glTexSubImage3D, glTexParameter




                                                                1