glXCreateContext.3gl




Name

  glXCreateContext - create a new GLX rendering	context


C Specification

  GLXContext glXCreateContext( Display *dpy,
			       XVisualInfo *vis,
			       GLXContext shareList,
			       Bool direct )


Parameters


  dpy	     Specifies the connection to the X server.


  vis	     Specifies the visual that defines the frame buffer	resources
	     available to the rendering	context.  It is	a pointer to an
	     XVisualInfo structure, not	a visual ID or a pointer to a Visual.


  shareList  Specifies the context with	which to share display lists.  NULL
	     indicates that no sharing is to take place.


  direct     Specifies whether rendering is to be done with a direct
	     connection	to the graphics	system if possible (True) or through
	     the X server (False).


Description

  glXCreateContext creates a GLX rendering context and returns its handle.
  This context can be used to render into both windows and GLX pixmaps.	 If
  glXCreateContext fails to create a rendering context,	NULL is	returned.

  If direct is True, then a direct rendering context is	created	if the
  implementation supports direct rendering and the connection is to an X
  server that is local.	 If direct is False, then a rendering context that
  renders through the X	server is always created.  Direct rendering provides
  a performance	advantage in some implementations.  However, direct rendering
  contexts cannot be shared outside a single process, and they cannot be used
  to render to GLX pixmaps.

  If shareList is not NULL, then all display-list indexes and definitions are
  shared by context shareList and by the newly created context.	 An arbitrary
  number of contexts can share a single	display-list space.  However, all
  rendering contexts that share	a single display-list space must themselves
  exist	in the same address space.  Two	rendering contexts share an address
  space	if both	are nondirect using the	same server, or	if both	are direct
  and owned by a single	process.  Note that in the nondirect case, it is not
  necessary for	the calling threads to share an	address	space, only for	their
  related rendering contexts to	share an address space.


Notes

  XVisualInfo is defined in Xutil.h.  It is a structure	that includes visual,
  visualID, screen, and	depth elements.


  A process is a single	execution environment, implemented in a	single
  address space, consisting of one or more threads.

  A thread is one of a set of subprocesses that	share a	single address space,
  but maintain separate	program	counters, stack	spaces,	and other related
  global data.	A thread that is the only member of its	subprocess group is
  equivalent to	a process.


Errors

  NULL is returned if execution	fails on the client side.

  BadMatch is generated	if the context to be created would not share the
  address space	or the screen of the context specified by shareList.

  BadValue is generated	if vis is not a	valid visual (e.g., if the GLX
  implementation does not support it).

  GLXBadContext	is generated if	shareList is not a GLX context and is not
  NULL.

  BadAlloc is generated	if the server does not have enough resources to
  allocate the new context.


See Also

  glXDestroyContext, glXGetConfig, glXIsDirect,	glXMakeCurrent




Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV