GLUBUILD2DMIPMAPLEVELS(3G) GLUBUILD2DMIPMAPLEVELS(3G)
NAME
gluBuild2DipmapLevels - builds a subset of two-dimensional mipmap lev-
els
C SPECIFICATION
GLint gluBuild2DipmapLevels( GLenum target,
GLint internalFormat,
GLsizei width,
GLsizei height,
GLenum format,
GLenum type,
GLint level,
GLint base,
GLint max,
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 the width and height, respectively, in pixels
of the texture image. These should be a power of 2.
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.
level Specifies the mipmap level of the image data.
base Specifies the minimum mipmap level to pass to glTexIm-
age2D.
max Specifies the maximum mipmap level to pass to glTexIm-
age2D.
data Specifies a pointer to the image data in memory.
DESCRIPTION
gluBuild2DipmapLevels builds a subset of prefiltered two-dimensional
texture 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).
A series of mipmap levels from base to max is built by decimating 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 these mipmap levels from base to max. If max is larger than the
highest mipmap level for the texture of the specified size, then a GLU
error code is returned (see gluErrorString) and nothing is loaded.
For example, if level is 2 and width is 16 and height is 8, the follow-
ing levels are possible: 16x8, 8x4, 4x2, 2x1, 1x1. These correspond to
levels 2 through 6 respectively. If base is 3 and max is 5, then only
mipmap levels 8x4, 4x2 and 2x1 are loaded. However, if max is 7 then an
error is returned and nothing is loaded since max is larger than the
highest mipmap level which is, in this case, 6.
The highest mipmap level can be derived from the formula
log2(max(width,height)*(2^level)).
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
gluBuild2DipmapLevels is only available if the GLU version is 1.3 or
greater.
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.
ERORS
GLUINVALIDVALUE is returned if level > base, base < 0, max < base or
max is > the highest mipmap level for data.
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, gluBuild2Dipmaps, gluBuild3Dipmaps,
gluErrorString, glGetTexImage, glGetTexLevelParameter,
gluBuild1DipmapLevels, gluBuild3DipmapLevels
GLUBUILD2DMIPMAPLEVELS(3G)
|