Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > eee00533ac83fd7ebbf9846dc6d3b77b > files > 133

Io-language-graphics-and-sound-20080330-6.fc15.i686.rpm

<HTML>
<BODY>
<PRE>
     <STRONG>NAME</STRONG>
	  <STRONG>glNormalPointer</STRONG> - define an array of normals


     <STRONG>C</STRONG> <STRONG>SPECIFICATION</STRONG>
	  void <STRONG>glNormalPointer</STRONG>(	GLenum <EM>type</EM>,
				GLsizei	<EM>stride</EM>,
				const GLvoid *<EM>pointer</EM> )


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

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

	  <EM>pointer</EM>  Specifies a pointer to the first coordinate of the
		   first normal	in the array.

     <STRONG>DESCRIPTION</STRONG>
	  <STRONG>glNormalPointer</STRONG> specifies the	location and data format of an
	  array	of normals to use when rendering.  <EM>type</EM>	specifies the
	  data type of the normal coordinates and <EM>stride</EM> 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 <STRONG>glInterleavedArrays</STRONG>.)
	  When a normal	array is specified, <EM>type</EM>, <EM>stride</EM>, and <EM>pointer</EM>
	  are saved as client-side state.

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

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

     <STRONG>NOTES</STRONG>
	  <STRONG>glNormalPointer</STRONG> is available only if the GL version is 1.1
	  or greater.

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

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

	  <STRONG>glNormalPointer</STRONG> is typically implemented on the client side.

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

     <STRONG>ERRORS</STRONG>
	  <STRONG>GL_INVALID_ENUM</STRONG> is generated if <EM>type</EM> is not an accepted
	  value.

	  <STRONG>GL_INVALID_VALUE</STRONG> is generated	if <EM>stride</EM> is negative.

     <STRONG>ASSOCIATED</STRONG>	<STRONG>GETS</STRONG>
	  <STRONG>glIsEnabled</STRONG> with argument <STRONG>GL_NORMAL_ARRAY</STRONG>
	  <STRONG>glGet</STRONG>	with argument <STRONG>GL_NORMAL_ARRAY_TYPE</STRONG>
	  <STRONG>glGet</STRONG>	with argument <STRONG>GL_NORMAL_ARRAY_STRIDE</STRONG>
	  <STRONG>glGetPointerv</STRONG>	with argument <STRONG>GL_NORMAL_ARRAY_POINTER</STRONG>

     <STRONG>SEE</STRONG> <STRONG>ALSO</STRONG>
	  <STRONG>glArrayElement</STRONG>, <STRONG>glColorPointer</STRONG>, <STRONG>glDrawArrays</STRONG>,
	  <STRONG>glDrawElements</STRONG>, <STRONG>glEdgeFlagPointer</STRONG>, <STRONG>glEnable</STRONG>, <STRONG>glGetPointerv</STRONG>,
	  <STRONG>glIndexPointer</STRONG>, <STRONG>glInterleavedArrays</STRONG>, <STRONG>glPopClientAttrib</STRONG>,
	  <STRONG>glPushClientAttrib</STRONG>, <STRONG>glTexCoordPointer</STRONG>, <STRONG>glVertexPointer</STRONG>



















</PRE>
</BODY>
</HTML>