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 and enumerated type 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
				main 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