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

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


glColorPointer(3G)	       OpenGL Reference		    glColorPointer(3G)

NAME    [Toc]    [Back]

     glColorPointer - define an	array of colors

C SPECIFICATION    [Toc]    [Back]

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

PARAMETERS    [Toc]    [Back]

     size     Specifies	the number of components per color. Must be 3 or 4.
	      The initial value	is 4.

     type     Specifies	the data type of each color component in the array.
	      Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT,
	      GL_DOUBLE	are accepted. The initial value	is GL_FLOAT.

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

     pointer  Specifies	a pointer to the first component of the	first color
	      element in the array.

DESCRIPTION    [Toc]    [Back]

     glColorPointer specifies the location and data format of an array of
     color components to use when rendering.  size specifies the number	of
     components	per color, and must be 3 or 4.	type specifies the data	type
     of	each color component, and stride specifies the byte stride from	one
     color 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 color array	is specified, size, type, stride, and pointer are
     saved as client-side state.

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

NOTES    [Toc]    [Back]

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

     The color array is	initially disabled and isn't accessed when
     glArrayElement, glDrawArrays, glDrawRangeElements,	or glDrawElements is

									Page 1

glColorPointer(3G)	       OpenGL Reference		    glColorPointer(3G)

     Execution of glColorPointer 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.

     glColorPointer is typically implemented on	the client side.

     Color 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 3 or 4.

     GL_INVALID_ENUM is	generated if type is not an accepted value.

     GL_INVALID_VALUE is generated if stride is	negative.

ASSOCIATED GETS    [Toc]    [Back]

     glIsEnabled with argument GL_COLOR_ARRAY
     glGet with	argument GL_COLOR_ARRAY_SIZE
     glGet with	argument GL_COLOR_ARRAY_TYPE
     glGet with	argument GL_COLOR_ARRAY_STRIDE
     glGetPointerv with	argument GL_COLOR_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];}
	  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];}

									Page 2

glColorPointer(3G)	       OpenGL Reference		    glColorPointer(3G)

	  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, glDrawArrays, glDrawElements, glEdgeFlagPointer,
     glEnable, glGetPointerv, glIndexPointer, glInterleavedArrays,
     glNormalPointer, glPopClientAttrib, glPushClientAttrib,
     glTexCoordPointer,	glVertexPointer

									PPPPaaaaggggeeee 3333
[ Back ]
 Similar pages
Name OS Title
glcolorpointerext IRIX define a array of colors
glNormalPointer Tru64 define an array of normals
glnormalpointerext IRIX define a array of normals
glnormalpointer IRIX define an array of normals
glVertexPointer Tru64 define an array of vertex data
gledgeflagpointer IRIX define an array of edge flags
gledgeflagpointerext IRIX define an array of edge flags
glindexpointer IRIX define an array of color indexes
glindexpointerext IRIX define an array of color indexes
glvertexpointerext IRIX define an array of vertex data
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service