glXMakeCurrent.3gl








Name


  glXMakeCurrent - attach a GLX	context	to a window or a GLX pixmap





C Specification


  Bool glXMakeCurrent( Display *dpy,

		       GLXDrawable drawable,

		       GLXContext ctx )





Parameters




  dpy	    Specifies the connection to	the X server.





  drawable  Specifies a	GLX drawable.  Must be either an X window ID or	a GLX

	    pixmap ID.





  ctx	    Specifies a	GLX rendering context that is to be attached to

	    drawable.





Description


  glXMakeCurrent does two things: It makes ctx the current GLX rendering

  context of the calling thread, replacing the previously current context if

  there	was one, and it	attaches ctx to	a GLX drawable,	either a window	or a

  GLX pixmap.  As a result of these two	actions, subsequent OpenGL rendering

  calls	use rendering context ctx to modify GLX	drawable drawable.  Because

  glXMakeCurrent always	replaces the current rendering context with ctx,

  there	can be only one	current	context	per thread.



  Pending commands to the previous context, if any, are	flushed	before it is

  released.



  The first time ctx is	made current to	any thread, its	viewport is set	to

  the full size	of drawable.  Subsequent calls by any thread to

  glXMakeCurrent with ctx have no effect on its	viewport.



  To release the current context without assigning a new one, call

  glXMakeCurrent with drawable and ctx set to None and NULL respectively.



  glXMakeCurrent returns True if it is successful, False otherwise.  If	False

  is returned, the previously current rendering	context	and drawable (if any)

  remain unchanged.







Notes


  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 drawable was	not created with the same X screen

  and visual as	ctx.  It is also generated if drawable is None and ctx is not

  None.



  BadAccess is generated if ctx	was current to another thread at the time

  glXMakeCurrent was called.



  GLXBadDrawable is generated if drawable is not a valid GLX drawable.



  GLXBadContext	is generated if	ctx is not a valid GLX context.



  GLXBadContextState is	generated if glXMakeCurrent is called between a

  glBegin and the corresponding	call to	glEnd.



  GLXBadContextState is	also generated if the rendering	context	current	to

  the calling thread has OpenGL	renderer state GL_FEEDBACK or GL_SELECT.



  GLXBadCurrentWindow is generated if there are	pending	OpenGL commands	for

  the previous context and the current drawable	is a window that is no longer

  valid.



  BadAlloc may be generated if the server has delayed allocation of ancillary

  buffers until	glXMakeCurrent is called, only to find that it has

  insufficient resources to complete the allocation.





See Also


  glXCreateContext, glXCreateGLXPixmap








Introduction | Alphabetic | Specification

Last Edited: Mon, May 22, 1995

AFV