glXCopyContext.3gl




Name

  glXCopyContext - copy	state from one rendering context to another


C Specification

  void glXCopyContext( Display *dpy,
		       GLXContext src,
		       GLXContext dst,
		       GLuint mask )


Parameters


  dpy	Specifies the connection to the	X server.


  src	Specifies the source context.


  dst	Specifies the destination context.


  mask	Specifies which	portions of src	state are to be	copied to dst.


Description

  glXCopyContext copies	selected groups	of state variables from	src to dst.
  mask indicates which groups of state variables are to	be copied.  mask
  contains the bitwise OR of the same symbolic names that are passed to	the
  OpenGL command glPushAttrib.	The single symbolic constant
  GL_ALL_ATTRIB_BITS can be used to copy the maximum possible portion of
  rendering state.

  The copy can be done only if the renderers named by src and dst share	an
  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.

  Not all values for OpenGL state can be copied.  For example, pixel pack and
  unpack state,	render mode state, and select and feedback state are not
  copied.  The state that can be copied	is exactly the state that is
  manipulated by OpenGL	command	 glPushAttrib.

  An implicit glFlush is done by glXCopyContext	if src is the current context
  for the calling thread.

  If src is not	the current context for	the thread issuing the request,	then
  the state of the src context is undefined.



Notes

  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.

  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

  BadMatch is generated	if rendering contexts src and dst do not share an
  address space	or were	not created with respect to the	same screen.

  BadAccess is generated if dst	is current to any thread (including the
  calling thread) at the time glXCopyContext is	called.

  GLXBadCurrentWindow is generated if src is the current context and the
  current drawable is a	window that is no longer valid.

  GLXBadContext	is generated if	either src or dst is not a valid GLX context.

  BadValue is generated	if undefined mask bits are specified.


See Also

  glPushAttrib,	glXCreateContext, glXIsDirect




Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV