Table of Contents
glGetLightfv, glGetLightiv - return light source parameter values
void glGetLightfv( GLenum light,
GLenum pname,
GLfloat *params )
void glGetLightiv( GLenum light,
GLenum pname,
GLint *params )
eqn not supported
- light
- Specifies a light source. The number of
possible lights depends on the implementation, but at least eight lights
are supported. They are identified by symbolic names of the form GL_LIGHT$i$
where 0 <= $ i $ < GL_MAX_LIGHTS.
- pname
- Specifies a light source parameter
for light. Accepted symbolic names are GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR,
GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION,
GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION.
- params
- Returns the
requested data.
glGetLight returns in params the value or values
of a light source parameter. light names the light and is a symbolic name
of the form GL_LIGHT$i$ for 0 <= $i$ < GL_MAX_LIGHTS, where GL_MAX_LIGHTS
is an implementation dependent constant that is greater than or equal to
eight. pname specifies one of ten light source parameters, again by symbolic
name.
The following parameters are defined:
- GL_AMBIENT
- params returns four
integer or floating-point values representing the ambient intensity of the
light source. Integer values, when requested, are linearly mapped from the
internal floating-point representation such that 1.0 maps to the most positive
representable integer value, and -1.0 maps to the most negative representable
integer value. If the internal value is outside the range [-1, 1], the corresponding
integer return value is undefined. The initial value is (0, 0, 0, 1).
- GL_DIFFUSE
- params returns four integer or floating-point values representing the diffuse
intensity of the light source. Integer values, when requested, are linearly
mapped from the internal floating-point representation such that 1.0 maps
to the most positive representable integer value, and -1.0 maps to the most
negative representable integer value. If the internal value is outside the
range [-1, 1], the corresponding integer return value is undefined. The initial
value for GL_LIGHT0 is (1, 1, 1, 1); for other lights, the initial value
is (0, 0, 0, 0).
- GL_SPECULAR
- params returns four integer or floating-point
values representing the specular intensity of the light source. Integer
values, when requested, are linearly mapped from the internal floating-point
representation such that 1.0 maps to the most positive representable integer
value, and -1.0 maps to the most negative representable integer value. If
the internal value is outside the range [-1, 1], the corresponding integer
return value is undefined. The initial value for GL_LIGHT0 is (1, 1, 1,
1); for other lights, the initial value is (0, 0, 0, 0).
- GL_POSITION
- params
returns four integer or floating-point values representing the position
of the light source. Integer values, when requested, are computed by rounding
the internal floating-point values to the nearest integer value. The returned
values are those maintained in eye coordinates. They will not be equal to
the values specified using glLight, unless the modelview matrix was identity
at the time glLight was called. The initial value is (0, 0, 1, 0).
- GL_SPOT_DIRECTION
- params returns three integer or floating-point values representing the direction
of the light source. Integer values, when requested, are computed by rounding
the internal floating-point values to the nearest integer value. The returned
values are those maintained in eye coordinates. They will not be equal to
the values specified using glLight, unless the modelview matrix was identity
at the time glLight was called. Although spot direction is normalized before
being used in the lighting equation, the returned values are the transformed
versions of the specified values prior to normalization. The initial value
is (0, 0, -1).
- GL_SPOT_EXPONENT
- params returns a single integer or floating-point
value representing the spot exponent of the light. An integer value, when
requested, is computed by rounding the internal floating-point representation
to the nearest integer. The initial value is 0.
- GL_SPOT_CUTOFF
- params returns
a single integer or floating-point value representing the spot cutoff angle
of the light. An integer value, when requested, is computed by rounding
the internal floating-point representation to the nearest integer. The initial
value is 180.
- GL_CONSTANT_ATTENUATION
- params returns a single integer or
floating-point value representing the constant (not distance-related) attenuation
of the light. An integer value, when requested, is computed by rounding
the internal floating-point representation to the nearest integer. The initial
value is 1.
- GL_LINEAR_ATTENUATION
- params returns a single integer or floating-point
value representing the linear attenuation of the light. An integer value,
when requested, is computed by rounding the internal floating-point representation
to the nearest integer. The initial value is 0.
- GL_QUADRATIC_ATTENUATION
- params returns a single integer or floating-point value representing the
quadratic attenuation of the light. An integer value, when requested, is
computed by rounding the internal floating-point representation to the nearest
integer. The initial value is 0.
It is always the case that GL_LIGHT$i$
= GL_LIGHT0 + $i$.
If an error is generated, no change is made to the contents
of params.
GL_INVALID_ENUM is generated if light or pname is not an
accepted value.
GL_INVALID_OPERATION is generated if glGetLight is executed
between the execution of glBegin and the corresponding execution of glEnd.
glLight(3G)
Table of Contents