glXChooseVisual.3gl








Name


  glXChooseVisual - return a visual that matches specified attributes





C Specification


  XVisualInfo* glXChooseVisual(	Display	*dpy,

				int screen,

				int *attribList	)





Parameters




  dpy	      Specifies	the connection to the X	server.





  screen      Specifies	the screen number.





  attribList  Specifies	a list of Boolean attributes and integer

	      attribute/value pairs.  The last attribute must be None.





Description


  glXChooseVisual returns a pointer to an XVisualInfo structure	describing

  the visual that best meets a minimum specification.  The Boolean GLX

  attributes of	the visual that	is returned will match the specified values,

  and the integer GLX attributes will meet or exceed the specified minimum

  values.  If all other	attributes are equivalent, then	TrueColor and

  PseudoColor visuals have priority over DirectColor and StaticColor visuals,

  respectively.	 If no conforming visual exists, NULL is returned.  To free

  the data returned by this function, use XFree.



  All Boolean GLX attributes default to	False except GLX_USE_GL, which

  defaults to True.  All integer GLX attributes	default	to zero.  Default

  specifications are superseded	by attributes included in attribList.

  Boolean attributes included in attribList are	understood to be True.

  Integer attributes are followed immediately by the corresponding desired or

  minimum value.  The list must	be terminated with None.



  The interpretations of the various GLX visual	attributes are as follows:



  GLX_USE_GL		Ignored.  Only visuals that can	be rendered with GLX

			are considered.



  GLX_BUFFER_SIZE	Must be	followed by a nonnegative integer that

			indicates the desired color index buffer size.	The

			smallest index buffer of at least the specified	size

			is preferred.  Ignored if GLX_RGBA is asserted.



  GLX_LEVEL		Must be	followed by an integer buffer-level

			specification.	This specification is honored

			exactly.  Buffer level zero corresponds	to the

			default	frame buffer of	the display.  Buffer level

			one is the first overlay frame buffer, level two the

			second overlay frame buffer, and so on.	 Negative

			buffer levels correspond to underlay frame buffers.



  GLX_RGBA		If present, only TrueColor and DirectColor visuals

			are considered.	 Otherwise, only PseudoColor and

			StaticColor visuals are	considered.



  GLX_DOUBLEBUFFER	If present, only double-buffered visuals are

			considered.   Otherwise, only single-buffered visuals

			are considered.



  GLX_STEREO		If present, only stereo	visuals	are considered.

			Otherwise, only	monoscopic visuals are considered.



  GLX_AUX_BUFFERS	Must be	followed by a nonnegative integer that

			indicates the desired number of	auxiliary buffers.

			Visuals	with the  smallest number of auxiliary

			buffers	that meets or exceeds the specified number

			are preferred.



  GLX_RED_SIZE		Must be	followed by a nonnegative minimum size

			specification.	If this	value is zero, the smallest

			available red buffer is	preferred.  Otherwise, the

			largest	available red buffer of	at least the minimum

			size is	preferred.



  GLX_GREEN_SIZE	Must be	followed by a nonnegative minimum size

			specification.	If this	value is zero, the smallest

			available green	buffer is preferred.  Otherwise, the

			largest	available green	buffer of at least the

			minimum	size is	preferred.



  GLX_BLUE_SIZE		Must be	followed by a nonnegative minimum size

			specification.	If this	value is zero, the smallest

			available blue buffer is preferred.  Otherwise,	the

			largest	available blue buffer of at least the minimum

			size is	preferred.



  GLX_ALPHA_SIZE	Must be	followed by a nonnegative minimum size

			specification.	If this	value is zero, the smallest

			available alpha	buffer is preferred.  Otherwise, the

			largest	available alpha	buffer of at least the

			minimum	size is	preferred.



  GLX_DEPTH_SIZE	Must be	followed by a nonnegative minimum size

			specification.	If this	value is zero, visuals with

			no depth buffer	are preferred.	Otherwise, the

			largest	available depth	buffer of at least the

			minimum	size is	preferred.



  GLX_STENCIL_SIZE	Must be	followed by a nonnegative integer that

			indicates the desired number of	stencil	bitplanes.

			The smallest stencil buffer of at least	the specified

			size is	preferred.  If the desired value is zero,

			visuals	with no	stencil	buffer are preferred.



  GLX_ACCUM_RED_SIZE	Must be	followed by a nonnegative minimum size

			specification.	If this	value is zero, visuals with

			no red accumulation buffer are preferred.  Otherwise,

			the largest possible red accumulation buffer of	at

			least the minimum size is preferred.



  GLX_ACCUM_GREEN_SIZE	Must be	followed by a nonnegative minimum size

			specification.	If this	value is zero, visuals with

			no green accumulation buffer are preferred.

			Otherwise, the largest possible	green accumulation

			buffer of at least the minimum size is preferred.



  GLX_ACCUM_BLUE_SIZE	Must be	followed by a nonnegative minimum size

			specification.	If this	value is zero, visuals with

			no blue	accumulation buffer are	preferred.

			Otherwise, the largest possible	blue accumulation

			buffer of at least the minimum size is preferred.



  GLX_ACCUM_ALPHA_SIZE	Must be	followed by a nonnegative minimum size

			specification.	If this	value is zero, visuals with

			no alpha accumulation buffer are preferred.

			Otherwise, the largest possible	alpha accumulation

			buffer of at least the minimum size is preferred.





Examples






  attribList =

	      {GLX_RGBA, GLX_RED_SIZE, 4, GLX_GREEN_SIZE, 4, GLX_BLUE_SIZE,

	      4, None};



  Specifies a single-buffered RGB visual in the	normal frame buffer, not an

  overlay or underlay buffer.  The returned visual supports at least four

  bits each of red, green, and blue, and possibly no bits of alpha.  It	does

  not support color index mode,	double-buffering, or stereo display.  It may

  or may not have one or more auxiliary	color buffers, a depth buffer, a

  stencil buffer, or an	accumulation buffer.







Notes


  XVisualInfo is defined in Xutil.h.  It is a structure	that includes visual,

  visualID, screen, and	depth elements.



  glXChooseVisual is implemented as a client-side utility using	only

  XGetVisualInfo and glXGetConfig.  Calls to these two routines	can be used

  to implement selection algorithms other than the generic one implemented by

  glXChooseVisual.



  GLX implementers are strongly	discouraged, but not proscribed, from

  changing the selection algorithm used	by glXChooseVisual.  Therefore,

  selections may change	from release to	release	of the client-side library.



  There	is no direct filter for	picking	only visuals that support GLXPixmaps.

  GLXPixmaps are supported for visuals whose GLX_BUFFER_SIZE.  is one of the

  Pixmap depths	supported by the X server.





Errors




  NULL is returned if an undefined GLX attribute is encountered	in

  attribList.





See Also


  glXCreateContext, glXGetConfig








Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV