glXMakeCurrent — attach a GLX context to a window or a GLX pixmap
Bool glXMakeCurrent( | Display * | dpy, |
GLXDrawable | drawable, | |
GLXContext | ctx) ; |
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
.
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 GL rendering calls
use rendering context ctx
to modify GLX drawable drawable
(for
reading and writing).
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
set to None
and ctx
set to NULL
.
glXMakeCurrent
returns True
if it is successful,
False
otherwise.
If False
is returned, the previously current rendering context
and drawable (if any) remain unchanged.
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.
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
NULL
.
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 executed between
the execution of glBegin and the corresponding execution of glEnd.
GLXBadContextState
is also generated if the rendering context current
to the calling thread has GL renderer state GLX_FEEDBACK
or
GLX_SELECT
.
GLXBadCurrentWindow
is generated if there are pending GL
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.
glXCreateContext, glXCreateGLXPixmap glXGetCurrentContext, glXGetCurrentDisplay, glXGetCurrentDrawable, glXGetCurrentReadDrawable, glXMakeContextCurrent
Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.