Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
GLUBUILD2DMIPMAPS()					     GLUBUILD2DMIPMAPS()

NAME
     gluBuild2DMipmaps - builds a 2-D mipmap

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

     delim $$

PARAMETERS
     target	     Specifies the target texture. Must be GL_TEXTURE_2D.

     internalFormat  Requests  the internal storage format of the texture image.
		     Must be 1, 2, 3, or 4 or one of the following symbolic con-
		     stants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12,  GL_AL-
		     PHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMI-
		     NANCE12,	GL_LUMINANCE16,   GL_LUMINANCE_ALPHA,	GL_LUMI-
		     NANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2,  GL_LUMINANCE8_ALPHA8,
		     GL_LUMINANCE12_ALPHA4,   GL_LUMINANCE12_ALPHA12,	GL_LUMI-
		     NANCE16_ALPHA16,  GL_INTENSITY,  GL_INTENSITY4,   GL_INTEN-
		     SITY8, 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.

     width, height   Specifies	the width and height, respectively, in pixels of
		     the texture image.

     format	     Specifies the format of the pixel data.  Must  be	one  of:
		     GL_COLOR_INDEX,   GL_RED,	 GL_GREEN,   GL_BLUE,  GL_ALPHA,
		     GL_RGB, GL_RGBA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.

     type	     Specifies the data type for data.	Must be one  of:  GL_UN-
		     SIGNED_BYTE,    GL_BYTE,	 GL_BITMAP,   GL_UNSIGNED_SHORT,
		     GL_SHORT, GL_UNSIGNED_INT, GL_INT, or GL_FLOAT.

     data	     Specifies a pointer to the image data in memory.

DESCRIPTION
     gluBuild2DMipmaps builds a series of prefiltered 2-D texture  maps  of  de-
     creasing  resolutions called a mipmap. This is used for the antialiasing of
     texture mapped primitives.

     A return value of 0 indicates success, otherwise a GLU error  code  is  re-
     turned (see gluErrorString).

     Initially,  the  width  and height of data are checked to see if they are a
     power of two. If not, a copy of data (not data), is scaled up  or	down  to
     the  nearest power of two. 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 and down to 16,
     respectively, before mipmapping takes place.

     Then, proxy textures (see glTexImage2D) are used to determine if the imple-
     mentation can fit the requested texture. If not, both dimensions  are  con-
     tinually halved until it fits. (If the OpenGL version is <= 1.0, both maxi-
     mum  texture  dimensions are clamped to the value returned by glGetIntegerv
     with the argument GL_MAX_TEXTURE_SIZE.)

     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  corresponding  four
     texels  in the larger mipmap level. (In the case of rectangular images, the
     decimation will ultimately reach an N x 1 or 1 x N configuration. 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 log2(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,  respec-
     tively.

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

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 &
     height actually used at level 0.  (The width & height may not be  equal  to
     width  & 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)).

ERRORS
     GLU_INVALID_VALUE is returned if width or height are < 1.

     GLU_INVALID_ENUM  is returned if internalFormat, format or type are not le-
     gal.

SEE ALSO
     glDrawPixels, glTexImage1D, glTexImage2D, gluBuild1DMipmaps,
     gluErrorString, gluScaleImage

							     GLUBUILD2DMIPMAPS()

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gluBuild2DMipmaps&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help