glNormalPointer
[New
- Windows 95, OEM Service Release 2]
The glNormalPointer
function defines an array of normals.
void glNormalPointer(
GLenum type, |
|
GLsizei stride, |
|
GLsizei count, |
|
const GLvoid *pointer |
|
); |
|
Parameters
type
The data type
of each coordinate in the array using the following symbolic constants:
GL_BYTE, GL_SHORT, GL_INT, GL_FLOAT, and GL_DOUBLE.
stride
The byte
offset between consecutive normals. When stride is zero, the normals are
tightly packed in the array.
count
The number of
normals, counting from the first, that are static.
pointer
A pointer to
the first normal in the array.
Remarks
The
glNormalPointer function specifies the location and data of an array of
normals to use when rendering. The type parameter specifies the data
type of each normal coordinate. The stride parameter determines the byte
offset from one normal to the next, enabling the packing of vertices and attributes
in a single array or storage in separate arrays. In some implementations storing
the vertices and attributes in a single array can be more efficient than using
separate arrays. Starting from the first normal element, count indicates
the total number of static elements. Your application can modify static
elements, but once the elements are modified, the application must explicitly
specify the array again before using the array for any rendering. Non-static
array elements are not accessed until you call glDrawArrays
A normal
array is enabled when you specify the GL_NORMAL_ARRAY constant with glEnableClientState
You cannot
include glNormalPointer in display lists.
When you
specify a normal array using glNormalPointer, the values of all the
function s normal array parameters are saved in a client-side state and static
array elements can be cached. Because the normal array parameters are saved in
a client-side state, their values are not saved or restored by glPushAttrib
Although no
error is generated when you call glNormalPointer within glBegin
The following
functions are associated with glNormalPointer:
glGet
with argument GL_NORMAL_ARRAY_STRIDE
glGet with
argument GL_NORMAL_ARRAY_COUNT
glGet with
argument GL_NORMAL_ARRAY_TYPE
glGetPointerv
with argument GL_NORMAL_ARRAY_POINTER
glIsEnabled with argument GL_NORMAL_ARRAY
Error Codes
The following
are the error codes generated and their conditions.
Error
Code |
Condition |
GL_INVALID_ENUM
|
type was not an accepted value. |
GL_INVALID_VALUE
|
stride or count was negative. |
See Also