GLXMAKECURRENT() MachTen Programmer’s Manual GLXMAKECURRENT()

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

C SPECIFICATION
Bool glXMakeCurrent( Display *dpy,
GLXDrawable drawable,
GLXContext ctx )

delim $$

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 GL
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 set 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.

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 sin-
gle 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 equiva-
lent 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 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 con-
text.

GLXBadContextState is generated if glXMakeCurrent is exe-
cuted between the execution of glBegin and the correspond-
ing execution of glEnd.

GLXBadContextState is also generated if the rendering con-
text current to the calling thread has GL renderer state
GL_FEEDBACK or GL_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 allo-
cation of ancillary buffers until glXMakeCurrent is
called, only to find that it has insufficient resources to
complete the allocation.

SEE ALSO
glXCreateContext, glXCreateGLXPixmap

MachTen 2