Name

glNormalPointer - define an array of normals

Python Specification

glNormalPointer
	glNormalPointer(size, type, stride, pointer) -> None
glNormalPointerb
	glNormalPointerub(pointer[][3]) -> None
glNormalPointerd
	glNormalPointerd(pointer[][3]) -> None
glNormalPointerf
	glNormalPointerf(pointer[][3]) -> None
glNormalPointeri
	glNormalPointeri(pointer[][3]) -> None
glNormalPointers
	glNormalPointers(pointer[][3]) -> None

C Specification

void glNormalPointer(	GLenum type,
                      GLsizei	stride,
                      const GLvoid *pointer )

Parameters

type	   Specifies the data type of each coordinate in the
         array. Symbolic constants GL_BYTE, GL_SHORT,
         GL_INT, GL_FLOAT, and GL_DOUBLE are accepted. The
         initial value is GL_FLOAT.

stride   Specifies the byte offset between consecutive
         normals. If stride is 0- the	initial	value-the
         normals are understood to be	tightly	packed in the
         array.

pointer  Specifies a pointer to the first coordinate of the
         first normal	in the array.

Description

glNormalPointer specifies the	location and data format of an
array	of normals to use when rendering.  type	specifies the
data type of the normal coordinates and stride gives the
byte stride from one normal to the next, allowing vertexes
and attributes to be packed into a single array or stored in
separate arrays.  (Single-array storage may be more
efficient on some implementations; see glInterleavedArrays.)
When a normal	array is specified, type, stride, and pointer
are saved as client-side state.

To enable and	disable	the normal array, call
glEnableClientState and glDisableClientState with the
argument GL_NORMAL_ARRAY. If enabled,	the normal array is
used when glDrawArrays, glDrawElements, or glArrayElement is
called.

Use glDrawArrays to construct	a sequence of primitives (all
of the same type) from prespecified vertex and vertex
attribute arrays.  Use glArrayElement	to specify primitives
by indexing vertexes and vertex attributes and
glDrawElements to construct a	sequence of primitives by
indexing vertexes and	vertex attributes.

Notes

glNormalPointer is available only if the GL version is 1.1
or greater.

The normal array is initially	disabled and isn't accessed
when glArrayElement, glDrawElements, or glDrawArrays is
called.

Execution of glNormalPointer is not allowed between glBegin
and the corresponding	glEnd, but an error may	or may not be
generated. If	an error is not	generated, the operation is
undefined.

glNormalPointer is typically implemented on the client side.

Since	the normal array parameters are	client-side state,
they are not saved or	restored by glPushAttrib and
glPopAttrib.	Use glPushClientAttrib and glPopClientAttrib
instead.

Errors

GL_INVALID_ENUM is generated if type is not an accepted
value.

GL_INVALID_VALUE is generated	if stride is negative.

Associated Gets

glIsEnabled with argument GL_NORMAL_ARRAY
glGet	with argument GL_NORMAL_ARRAY_TYPE
glGet	with argument GL_NORMAL_ARRAY_STRIDE
glGetPointerv	with argument GL_NORMAL_ARRAY_POINTER

See Also

glArrayElement, glColorPointer, glDrawArrays,
glDrawElements, glEdgeFlagPointer, glEnable, glGetPointerv,
glIndexPointer, glInterleavedArrays, glPopClientAttrib,
glPushClientAttrib, glTexCoordPointer, glVertexPointer

:: Documentation :: References :: GL ::
:: Index (n/a) ::