Name
glu.Build1DMipmaps -- create 1D mipmaps
Synopsis
error = glu.Build1DMipmaps(internalformat, width, format, type, pixels)
Function
glu.Build1DMipmaps() builds a series of prefiltered 1D texture maps of decreasing resolution. Mipmaps can be used so that textures don't appear aliased.

A return value of 0 indicates success. Otherwise a GLU error code is returned (See glu.ErrorString for details.).

glu.Build1DMipmaps() first checks whether the width of data is a power of 2. If not, it scales a copy of pixels (up or down) to the nearest power of two. This copy is used as the base for subsequent mipmapping operations. For example, if width is 57, a copy of pixels scales up to 64 before mipmapping takes place. (If width is exactly between powers of 2, the copy of pixels is scaled upward.)

If the GL version is 1.1 or greater, glu.Build1DMipmaps() uses proxy textures (See gl.TexImage1D for details.) to determine if the implementation can store the requested texture in texture memory. If there isn't enough room, width is halved (and halved again) until it fits.

Next, glu.Build1DMipmaps() builds a series of mipmap levels; it halves a copy of pixels (or a scaled version of pixels, if necessary) until size 1 is reached. At each level, each texel in the halved image is an average of the corresponding two texels in the larger image.

gl.TexImage1D() is called to load each of these images by level. If width is a power of 2 which fits in the implementation, level 0 is a copy of pixels, and the highest level is log2(width). For example, if width is 64 the following images are built: 64x1, 32x1, 16x1, 8x1, 4x1, 2x1 and 1x1. These correspond to levels 0 through 6, respectively.

internalformat specifies the internal format of the texture image. See Internal pixel formats for details. This can also be one of the special values 1, 2, 3, or 4.

format must be one of #GL_COLOR_INDEX, #GL_RED, #GL_GREEN, #GL_BLUE, #GL_ALPHA, #GL_RGB, #GL_RGBA, #GL_LUMINANCE, or #GL_LUMINANCE_ALPHA

type must be one of #GL_UNSIGNED_BYTE, #GL_BYTE, #GL_BITMAP, #GL_UNSIGNED_SHORT, #GL_SHORT, #GL_UNSIGNED_INT, #GL_INT, or #GL_FLOAT.

Please note that this command operates directly with memory pointers. There is also a version which works with tables instead of memory pointers, but this is slower of course. See glu.BuildMipmaps for details. See Working with pointers for details on how to use memory pointers with Hollywood.

Please consult an OpenGL reference manual for more information.

Inputs
internalformat
specifies the internal format of the texture; must be one of the pixel format constants (see above)
width
specifies the width of the texture image
format
specifies the format of the pixel data (see above)
type
specifies the data type for pixels (see above)
pixels
specifies a pointer to the image data in memory
Results
error
error code or 0 for success

Show TOC