114 lines
3.7 KiB
Plaintext
114 lines
3.7 KiB
Plaintext
'\" te
|
|
'\"! tbl|eqn | mmdoc
|
|
'\"macro stdmacro
|
|
.ds Vn Version 1.2
|
|
.ds Dt 24 September 1999
|
|
.ds Re Release 1.2.1
|
|
.ds Dp Jan 14 18:30
|
|
.ds Dm 01 normalpoi
|
|
.ds Xs 28721 6 normalpointer.gl
|
|
.TH GLNORMALPOINTER 3G
|
|
.SH NAME
|
|
.B "glNormalPointer
|
|
\- define an array of normals
|
|
|
|
.SH C SPECIFICATION
|
|
void \f3glNormalPointer\fP(
|
|
GLenum \fItype\fP,
|
|
.nf
|
|
.ta \w'\f3void \fPglNormalPointer( 'u
|
|
GLsizei \fIstride\fP,
|
|
const GLvoid \fI*ptr\fP )
|
|
.fi
|
|
|
|
.EQ
|
|
delim $$
|
|
.EN
|
|
.SH PARAMETERS
|
|
.TP \w'\fIstride\fP\ \ 'u
|
|
\f2type\fP
|
|
Specifies the data type of each coordinate in the array.
|
|
Symbolic constants
|
|
\%\f3GL_BYTE\fP,
|
|
\%\f3GL_SHORT\fP,
|
|
\%\f3GL_INT\fP,
|
|
\%\f3GL_FLOAT\fP, and
|
|
\%\f3GL_DOUBLE\fP
|
|
are accepted. The initial value is \%\f3GL_FLOAT\fP.
|
|
.TP
|
|
\f2stride\fP
|
|
Specifies the byte offset between consecutive normals. If \f2stride\fP is 0\-
|
|
the initial value\-the normals are understood to be tightly packed in
|
|
the array.
|
|
The initial value is 0.
|
|
.TP
|
|
\f2ptr\fP
|
|
Specifies a pointer to the first coordinate of the first normal in the
|
|
array.
|
|
The initial value is 0.
|
|
.SH DESCRIPTION
|
|
\%\f3glNormalPointer\fP specifies the location and data of an array of normals
|
|
to use when rendering.
|
|
\f2type\fP specifies the data type of
|
|
the normal coordinates and \f2stride\fP gives the byte stride from one
|
|
normal to the next, allowing vertices 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 \%\f3glInterleavedArrays\fP.)
|
|
When a normal array is specified, \f2type\fP, \f2stride\fP, and \f2ptr\fP are
|
|
saved as client-side state.
|
|
.P
|
|
To enable and disable the normal array, call \%\f3glEnableClientState\fP and
|
|
\%\f3glDisableClientState\fP with the argument \%\f3GL_NORMAL_ARRAY\fP. If
|
|
enabled, the normal array is used
|
|
when \%\f3glDrawArrays\fP, \%\f3glDrawElements\fP, or \%\f3glArrayElement\fP is called.
|
|
.P
|
|
Use \%\f3glDrawArrays\fP to construct a sequence of primitives (all of the
|
|
same type) from prespecified vertex and vertex attribute arrays.
|
|
Use \%\f3glArrayElement\fP to specify primitives
|
|
by indexing vertices and vertex attributes and \%\f3glDrawElements\fP to
|
|
construct a sequence of primitives by indexing vertices and vertex attributes.
|
|
.SH NOTES
|
|
\%\f3glNormalPointer\fP is available only if the GL version is 1.1 or greater.
|
|
.P
|
|
The normal array is initially disabled and isn't accessed when
|
|
\%\f3glArrayElement\fP, \%\f3glDrawElements\fP, or \%\f3glDrawArrays\fP is called.
|
|
.P
|
|
Execution of \%\f3glNormalPointer\fP is not allowed between
|
|
\%\f3glBegin\fP and the corresponding \%\f3glEnd\fP,
|
|
but an error may or may not be generated. If an error is not generated,
|
|
the operation is undefined.
|
|
.P
|
|
\%\f3glNormalPointer\fP is typically implemented on the client side.
|
|
.P
|
|
Since the normal array parameters are client-side state, they are not
|
|
saved or restored by \%\f3glPushAttrib\fP and \%\f3glPopAttrib\fP.
|
|
Use \%\f3glPushClientAttrib\fP and
|
|
\%\f3glPopClientAttrib\fP instead.
|
|
.SH ERRORS
|
|
\%\f3GL_INVALID_ENUM\fP is generated if \f2type\fP is not an accepted value.
|
|
.P
|
|
\%\f3GL_INVALID_VALUE\fP is generated if \f2stride\fP is negative.
|
|
.SH ASSOCIATED GETS
|
|
\%\f3glIsEnabled\fP with argument \%\f3GL_NORMAL_ARRAY\fP
|
|
.br
|
|
\%\f3glGet\fP with argument \%\f3GL_NORMAL_ARRAY_TYPE\fP
|
|
.br
|
|
\%\f3glGet\fP with argument \%\f3GL_NORMAL_ARRAY_STRIDE\fP
|
|
.br
|
|
\%\f3glGetPointerv\fP with argument \%\f3GL_NORMAL_ARRAY_POINTER\fP
|
|
.SH SEE ALSO
|
|
\%\f3glArrayElement(3G)\fP,
|
|
\%\f3glColorPointer(3G)\fP,
|
|
\%\f3glDrawArrays(3G)\fP,
|
|
\%\f3glDrawElements(3G)\fP,
|
|
\%\f3glEdgeFlagPointer(3G)\fP,
|
|
\%\f3glEnable(3G)\fP,
|
|
\%\f3glGetPointerv(3G)\fP,
|
|
\%\f3glIndexPointer(3G)\fP,
|
|
\%\f3glInterleavedArrays(3G)\fP,
|
|
\%\f3glPopClientAttrib(3G)\fP,
|
|
\%\f3glPushClientAttrib(3G)\fP,
|
|
\%\f3glTexCoordPointer(3G)\fP,
|
|
\%\f3glVertexPointer(3G)\fP
|