MyWebUniversity.com Home Page
 



Darwin Mac OS X man pages main menu
GLUBUILD1DMIPMAPS(3G)                                    GLUBUILD1DMIPMAPS(3G)



NAME
       gluBuild1Dipmaps - builds a one-dimensional mipmap


C SPECIFICATION
       GLint gluBuild1Dipmaps( GLenum target,
                                GLint internalFormat,
                                GLsizei width,
                                GLenum format,
                                GLenum type,
                                const void *data )


PARAMETERS
       target          Specifies the target texture.  Must be GLTEXTURE1D.

       internalFormat  Requests  the  internal  storage  format of the texture
                       image.  The most current version of the SGI implementa-
                       tion  of  GLU  does  not  check this value for validity
                       before passing it on to the underlying OpenGL implemen-
                       tation.   A  value  that  is not accepted by the OpenGL
                       implementation will lead to an OpenGL error.  The bene-
                       fit of not checking this value at the GLU level is that
                       OpenGL extensions can add new internal texture  formats
                       without requiring a revision of the GLU implementation.
                       Older implementations of GLU check this value and raise
                       a  GLU  error  if it is not 1, 2, 3, or 4 or one of the
                       following  symbolic  constants:  GLALPHA,   GLALPHA4,
                       GLALPHA8,    GLALPHA12,   GLALPHA16,   GLUMINANCE,
                       GLUMINANCE4,      GLUMINANCE8,      GLUMINANCE12,
                       GLUMINANCE16,                     GLUMINANCEALPHA,
                       GLUMINANCE4ALPHA4,             GLUMINANCE6ALPHA2,
                       GLUMINANCE8ALPHA8,            GLUMINANCE12ALPHA4,
                       GLUMINANCE12ALPHA12,         GLUMINANCE16ALPHA16,
                       GLINTENSITY,       GLINTENSITY4,       GLINTENSITY8,
                       GLINTENSITY12,  GLINTENSITY16,  GLRGB,  GLR3G3B2,
                       GLRGB4,    GLRGB5,   GLRGB8,   GLRGB100,   GLRGB12,
                       GLRGB16,  GLRGBA,  GLRGBA2,  GLRGBA4,   GLRGB5A1,
                       GLRGBA8, GLRGB100A2, GLRGBA12, or GLRGBA16.

       width           Specifies the width, in pixels, of the texture image.

       format          Specifies the format of the pixel data.  Must be one of
                       GLCOLORINDEX, GLDEPTHCOMPONENT,  GLRED,  GLGREN,
                       GLBLUE,  GLALPHA,  GLRGB,  GLRGBA, GLBGR, GLBGRA,
                       GLUMINANCE, GLUMINANCEALPHA.

       type            Specifies the data type  for  data.   Must  be  one  of
                       GLUNSIGNEDBYTE,          GLBYTE,          GLBITMAP,
                       GLUNSIGNEDSHORT, GLSHORT,  GLUNSIGNEDINT,  GLINT,
                       GLFLOAT,                       GLUNSIGNEDBYTE332,
                       GLUNSIGNEDBYTE233REV,    GLUNSIGNEDSHORT565,
                       GLUNSIGNEDSHORT565REV, GLUNSIGNEDSHORT4444,
                       GLUNSIGNEDSHORT4444REV,
                       GLUNSIGNEDSHORT5551,
                       GLUNSIGNEDSHORT1555REV, GLUNSIGNEDINT8888,
                       GLUNSIGNEDINT8888REV,
                       GLUNSIGNEDINT1001001002,                          or
                       GLUNSIGNEDINT2100100100REV.

       data            Specifies a pointer to the image data in memory.

DESCRIPTION
       gluBuild1Dipmaps  builds  a series of prefiltered one-dimensional tex-
       ture maps of decreasing resolutions called a mipmap. This is  used  for
       the antialiasing of texture mapped primitives.

       A return value of zero indicates success, otherwise a GLU error code is
       returned (see gluErrorString).

       Initially, the width of data is checked to see if it is a power  of  2.
       If  not, a copy of data is scaled up or down to the nearest power of 2.
       (If width is exactly between powers of 2, then the copy  of  data  will
       scale upwards.)  This copy will be used for subsequent mipmapping oper-
       ations described below.  For example, if width is 57  then  a  copy  of
       data will scale up to 64 before mipmapping takes place.

       Then,  proxy  textures  (see glTexImage1D) are used to determine if the
       implementation can fit the requested texture. If not, width is continu-
       ally halved until it fits.

       Next,  a  series of mipmap levels is built by decimating a copy of data
       in half until size 1x1 is reached. At each level,  each  texel  in  the
       halved  mipmap  level  is an average of the corresponding two texels in
       the larger mipmap level.

       glTexImage1D is called to load each of these mipmap levels.  Level 0 is
       a copy of data.  The highest level is {log sub 2}(width).  For example,
       if width is 64 and the implementation can store a texture of this size,
       the  following mipmap levels are built: 64x1, 32x1, 16x1, 8x1, 4x1, 2x1
       and 1x1. These correspond to levels 0 through 6, respectively.

       See the glTexImage1D reference page for a description of the acceptable
       values  for the type parameter. See the glDrawPixels reference page for
       a description of the acceptable values for the data parameter.

NOTES
       Note that there is no direct way of querying the  maximum  level.  This
       can  be derived indirectly via glGetTexLevelParameter. First, query for
       the width actually used at level 0.  (The width may  not  be  equal  to
       width  since proxy textures might have scaled it to fit the implementa-
       tion.)  Then  the  maximum  level  can  be  derived  from  the  formula
       log2(width).

       Formats   GLBGR,   and   GLBGRA,  and  types  GLUNSIGNEDBYTE332,
       GLUNSIGNEDBYTE233REV,                    GLUNSIGNEDSHORT565,
       GLUNSIGNEDSHORT565REV,                 GLUNSIGNEDSHORT4444,
       GLUNSIGNEDSHORT4444REV,               GLUNSIGNEDSHORT5551,
       GLUNSIGNEDSHORT1555REV,                 GLUNSIGNEDINT8888,
       GLUNSIGNEDINT8888REV,      GLUNSIGNEDINT1001001002,       and
       GLUNSIGNEDINT2100100100REV  are only available if the GL version is
       1.2 or greater, and if the GLU version is 1.3 or greater.

ERORS
       GLUINVALIDVALUE is returned if width is < 1.

       GLUINVALIDENUM is returned if format or type are not legal.

       GLUINVALIDOPERATION is returned if type is GLUNSIGNEDBYTE332  or
       GLUNSIGNEDBYTE233REV and format is not GLRGB.

       GLUINVALIDOPERATION is returned if type is GLUNSIGNEDSHORT565 or
       GLUNSIGNEDSHORT565REV and format is not GLRGB.

       GLUINVALIDOPERATION is returned if type is  GLUNSIGNEDSHORT4444
       or  GLUNSIGNEDSHORT4444REV  and  format  is  neither GLRGBA nor
       GLBGRA.

       GLUINVALIDOPERATION is returned if type is  GLUNSIGNEDSHORT5551
       or  GLUNSIGNEDSHORT1555REV  and  format  is  neither GLRGBA nor
       GLBGRA.

       GLUINVALIDOPERATION is returned if type is GLUNSIGNEDINT8888 or
       GLUNSIGNEDINT8888REV  and format is neither GLRGBA nor GLBGRA.

       GLUINVALIDOPERATION is returned if type is GLUNSIGNEDINT1001001002
       or  GLUNSIGNEDINT2100100100REV  and  format  is neither GLRGBA nor
       GLBGRA.

SEE ALSO
       glDrawPixels,      glTexImage1D,      glTexImage2D,       glTexImage3D,
       gluBuild2Dipmaps,  gluBuild3Dipmaps,  gluErrorString,  glGetTexImage,
       glGetTexLevelParameter, gluBuild1DipmapLevels, gluBuild2DipmapLevels,
       gluBuild3DipmapLevels



                                                         GLUBUILD1DMIPMAPS(3G)
Darwin Mac OS X man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™