texbind(3G)texbind(3G)NAMEtexbind - selects a texture function
C SPECIFICATION
void texbind(target, index)
long target, index;
PARAMETERS
target expects the texture resource to which the texture function
definition is to be bound. There are three appropriate
resources, TX_TEXTURE_0 , TX_TEXTURE_DETAIL and TX_TEXTURE_IDLE.
index expects the name of the texture function that is being bound.
Name is the index passed to texdef2d when the texture function
was defined.
DESCRIPTION
Texture coordinates, s,t,u may be specified at geometry vertices,
similarly to color, depth, and vertex normals. The texture coordinates
are interpolated from the values specified at the vertices for each
screen pixel touched by the geometry. A texture function maps the
texture coordinates s,t, or s,t,u, corresponding to a screen pixel into
nc values, called texture function outputs, using an image and a set of
properties. The texture function outputs may be translated with a texture
look-up table. The texture function outputs are used by the texture
environment function to modify the screen pixel color.
texdef2d and texdef3d define a texture function and texbind selects which
texture function definition to use. The texture environment function is
defined by tevdef and selected by tevbind. The texture look-up table is
defined by tlutdef and selected by tlutbind. The texture coordinates are
specified with the t family of commands.
By default texture function definition 0 is bound to TX_TEXTURE_0.
Texture mapping is enabled when an texture function definition other than
0 is bound to TX_TEXTURE_0, and a texture environment definition other
than 0 is bound to TV_ENV0. (See tevbind.) If the texture bound to
TX_TEXTURE_0, uses a detail enhancing magnification algorithm, the
texture bound to TX_TEXTURE_DETAIL, is used in that calculation. If no
texture is bound to TX_TEXTURE_DETAIL, and the magnification algorithm
reqires a detail texture results are undefined.
TX_TEXTURE_IDLE can be used in the following way to control texture
memory management. The N most recently loaded (a texbind that required a
load) textures that fit in texture memory are tracked by the GL. If
texture memory is full and a new texture is bound, the texture that has
been in texture memory the longest replaced by the new texture. If the
user wishes some other texture to be replaced, he can idle that texture
first and the new texture will use the space vacated by the idled
texture. A simple example is the case where two textures can fit in
texture memory and user wishes to keep one texture, texture A, in memory
always and cycle through three other textures, B, C, D, of which only one
Page 1
texbind(3G)texbind(3G)
will fit. To avoid replacing texture A, the user can idle texture B after
primitives are drawn with it, and when C is bound (and loaded), it will
take the space vacated by B, and leave the texture A alone.
SEE ALSO
t, tevbind, tevdef, texdef2d
NOTES
IRIS-4D G, GT, and GTX models, and the Personal Iris, do not support
texture mapping. texbind is ignored by these machines. The Iris Indy,
Indigo Entry, and XL support texture mapping except for lines. Use
getgdesc to determine whether texture mapping is supported.
texbind cannot be used while mmode is MSINGLE.
Page 2