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

FreeBSD Manual Pages

  
 
  

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 im-
		       age.   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_LUMI-
		       NANCE_ALPHA,  GL_LUMINANCE4_ALPHA4,   GL_LUMINANCE6_AL-
		       PHA2,	GL_LUMINANCE8_ALPHA8,	GL_LUMINANCE12_ALPHA4,
		       GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16,	GL_IN-
		       TENSITY,	 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.

       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_AL-
		       PHA,   GL_RGB,	GL_RGBA,  GL_LUMINANCE,	 and  GL_LUMI-
		       NANCE_ALPHA.

       type	       Specifies the data type for  data.   Must  be  one  of:
		       GL_UNSIGNED_BYTE,     GL_BYTE,	  GL_BITMAP,	GL_UN-
		       SIGNED_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
       decreasing resolutions called a mipmap. This is used for	the antialias-
       ing of texture mapped primitives.

       A return	value of 0 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 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
       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 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 correspond-
       ing 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 configu-
       ration. 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 ex-
       ample, 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. See	the glDrawPixels reference page	for a descrip-
       tion 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
       legal.

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.0.quarterly>

home | help