*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> OpenGL/glvertexpointer (3)              


glVertexPointer(3G)	       OpenGL Reference		   glVertexPointer(3G)

NAME    [Toc]    [Back]

     glVertexPointer - define an array of vertex data

C SPECIFICATION    [Toc]    [Back]

     void glVertexPointer( GLint size,
			   GLenum type,
			   GLsizei stride,
			   const GLvoid	*pointer )

PARAMETERS    [Toc]    [Back]

     size     Specifies	the number of coordinates per vertex; must be 2, 3, or
	      4. The initial value is 4.

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

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

     pointer  Specifies	a pointer to the first coordinate of the first vertex
	      in the array. The	initial	value is 0.

DESCRIPTION    [Toc]    [Back]

     glVertexPointer specifies the location and	data format of an array	of
     vertex coordinates	to use when rendering.	size specifies the number of
     coordinates per vertex and	type the data type of the coordinates. stride
     specifies the byte	stride from one	vertex 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 glInterleavedArrays.)	 When a	vertex array is
     specified,	size, type, stride, and	pointer	are saved as client-side

     To	enable and disable the vertex array, call glEnableClientState and
     glDisableClientState with the argument GL_VERTEX_ARRAY. If	enabled, the
     vertex 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 vertices and vertex
     attributes	 and glDrawElements to construct a sequence of primitives by
     indexing vertices and vertex attributes.

NOTES    [Toc]    [Back]

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

									Page 1

glVertexPointer(3G)	       OpenGL Reference		   glVertexPointer(3G)

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

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

     glVertexPointer is	typically implemented on the client side.

     Vertex array parameters are client-side state and are therefore not saved
     or	restored by glPushAttrib and glPopAttrib.  Use glPushClientAttrib and
     glPopClientAttrib instead.

ERRORS    [Toc]    [Back]

     GL_INVALID_VALUE is generated if size is not 2, 3,	or 4.

     GL_INVALID_ENUM is	generated if type is is	not an accepted	value.

     GL_INVALID_VALUE is generated if stride is	negative.

ASSOCIATED GETS    [Toc]    [Back]

     glIsEnabled with argument GL_VERTEX_ARRAY
     glGet with	argument GL_VERTEX_ARRAY_SIZE
     glGet with	argument GL_VERTEX_ARRAY_TYPE
     glGet with	argument GL_VERTEX_ARRAY_STRIDE
     glGetPointerv with	argument GL_VERTEX_ARRAY_POINTER

     On	RealityEngine, RealityEngine2, and VTX systems,	do not enable or
     between a call to glNewList and the corresponding call to glEndList.
     Instead, enable or	disable	before the call	to glNewList.

     On	InfiniteReality	systems	it is particularly important to	minimize the
     amount of data transferred	from the application to	the graphics pipe,
     since the host-to-pipe bandwidth limit can	cause a	performance
     bottleneck.  One way to reduce the	amount of data transferred per vertex
     is	to use properly-aligned	byte and short data types whenever possible.
     Accordingly, the EXT_vertex_array extension on InfiniteReality systems
     has been optimized	for vertex information packed into the following data
     structures.  (Note: v represents vertex coordinates, c represents color
     components, n represents normal coordinates, and t	represents texture
     coordinates.  Normals must	have unit length.)

	  struct {GLfloat v[3];}
	  struct {GLubyte c[4];	GLfloat	v[3];}
	  struct {GLshort n[3];	GLfloat	v[3];}
	  struct {GLubyte c[4];	GLshort	n[3]; GLfloat v[3];}

									Page 2

glVertexPointer(3G)	       OpenGL Reference		   glVertexPointer(3G)

	  struct {GLshort t[2];	GLfloat	v[3];}
	  struct {GLshort t[2];	GLubyte	c[4]; GLfloat v[3];}
	  struct {GLshort t[2];	GLshort	n[3]; GLfloat v[3];}
	  struct {GLshort t[2];	GLubyte	c[4]; GLshort n[3]; GLfloat v[3];}
	  struct {GLfloat t[2];	GLfloat	v[3];}
	  struct {GLfloat t[2];	GLubyte	c[4]; GLfloat v[3];}
	  struct {GLfloat t[2];	GLshort	n[3]; GLfloat v[3];}
	  struct {GLfloat t[2];	GLubyte	c[4]; GLshort n[3]; GLfloat v[3];}

     Application-specific fields may be	added to these structures, provided
     that all the fields described above retain	their relative order and word

     An	additional constraint applies when glTexGen is being used.  The
     implementation normally generates all four	texture	coordinates in
     parallel, and must	take special action to generate	just a subset of the
     four coordinates.	Therefore performance is best when none	of the texture
     coordinates are being generated, or when all of them are being generated.
     For example, when using 2D	texturing (generating s	and t coordinates) it
     will be faster to enable texture coordinate generation for	the r and q
     coordinates as well as s and t.  Choose a texture generation mode of
     GL_OBJECT_LINEAR and use the plane	equations (0,0,0,0) and	(0,0,0,1) for
     r and q, respectively.

     Using these structures on InfiniteReality systems can improve performance
     considerably, compared to structures in which all values are singleprecision
 floating	point.

SEE ALSO    [Toc]    [Back]

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

									PPPPaaaaggggeeee 3333
[ Back ]
 Similar pages
Name OS Title
glarrayelement IRIX render a vertex using the specified vertex array element
glArrayElement Tru64 render a vertex using the specified vertex array element
glarrayelementext IRIX specify the array elements used to render a vertex
glgetpointervext IRIX return the address of a buffer or vertex array
glcolorpointerext IRIX define a array of colors
glnormalpointer IRIX define an array of normals
glnormalpointerext IRIX define a array of normals
glColorPointer Tru64 define an array of colors
glNormalPointer Tru64 define an array of normals
glcolorpointer IRIX define an array of colors
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service