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