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)
|