MyWebUniversity.com Home Page
 



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



NAME
       gluBuild2Dipmaps - builds a two-dimensional mipmap


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


PARAMETERS
       target          Specifies the target texture.  Must be GLTEXTURE2D.

       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, height   Specifies in pixels the width and height, respectively,
                       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, or 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
       gluBuild2Dipmaps builds a series of prefiltered  two-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 and height of data are checked to see if they are
       a power of 2. If not, a copy of data (not data), is scaled up  or  down
       to  the  nearest  power  of  2.  This  copy will be used for subsequent
       mipmapping operations described below. (If width or height  is  exactly
       between  powers  of  2, then the copy of data will scale upwards.)  For
       example, if width is 57 and height is 23 then a copy of data will scale
       up  to  64  in  width  and down to 16 in depth, before mipmapping takes
       place.

       Then, proxy textures (see glTexImage2D) are used to  determine  if  the
       implementation  can  fit the requested texture. If not, both dimensions
       are continually halved until it fits. (If the OpenGL version is <= 1.0,
       both  maximum  texture  dimensions are clamped to the value returned by
       glGetIntegerv with the argument GLMAXTEXTURESIZE.)

       Next, a series of mipmap levels is built by decimating a copy  of  data
       in half along both dimensions until size 1x1 is reached. At each level,
       each texel in the halved mipmap level is an average of the  correspond-
       ing four texels in the larger mipmap level. (In the case of rectangular
       images, the decimation will ultimately reach an Nx1 or  1xN  configura-
       tion. Here, two texels are averaged instead.)

       glTexImage2D is called to load each of these mipmap levels.  Level 0 is
       a  copy  of  data.   The  highest  level  is  {log   sub   2}   (   max
       ("width","height")).   For example, if width is 64 and height is 16 and
       the implementation can store a texture  of  this  size,  the  following
       mipmap  levels  are  built:  64x16,  32x8, 16x4, 8x2, 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 format parameter. See the glDrawPixels reference page for a
       description of the acceptable values for type 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 and height actually used at level 0.  (The width  and  height
       may  not be equal to width and height respectively since proxy textures
       might have scaled them to fit the implementation.)   Then  the  maximum
       level can be derived from the formula log2( max (width,height)).

NOTES
       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, or height is < 1.

       GLUINVALIDENUM is returned if internalFormat, format, or type is  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,
       gluBuild1Dipmaps,  gluBuild3Dipmaps,  gluErrorString,  glGetTexImage,
       glGetTexLevelParameter, gluBuild1DipmapLevels, gluBuild2DipmapLevels,
       gluBuild3DipmapLevels



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

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