[ Previous | Next | Contents | Glossary | Home | Search ]
OpenGL 1.1 for AIX: Reference Manual

glXMakeCurrent Subroutine


Attaches a GLX context to a window or GLX pixmap.


OpenGL C bindings library: libGL.a

C Syntax

Bool glXMakeCurrent(Display *dpy
         GLXDrawable Drawable
         GLXContext Context)


The glXMakeCurrent subroutine does two things: (1) it makes the specified Context parameter the current GLX rendering context of the calling thread, replacing the previously current context if one exists, and (2) it attaches Context to a GLX drawable (either a window or GLX pixmap). As a result of these two actions, subsequent OpenGL rendering calls use Context as a rendering context to modify the Drawable GLX drawable. Since the glXMakeCurrent subroutine always replaces the current rendering context with the specified Context, 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 Context is made current to any thread, its viewport is set to the full size of Drawable. Subsequent calls by any thread to the glXMakeCurrent subroutine using Context have no effect on its viewport.

To release the current context without assigning a new one, call the glXMakeCurrent subroutine with the Drawable and Context parameters set to None and Null, respectively.

The glXMakeCurrent subroutine returns True if it is successful, False otherwise. If False is returned, the previously current rendering context and drawable (if any) remain unchanged.


dpy Specifies the connection to the X server.
Drawable Specifies a GLX drawable. This value must reflect either an X window ID or a GLX pixmap ID.
Context Specifies a GLX rendering context to be attached to the specified Drawable.

Return Values

True Returned if the glXMakeCurrent subroutine is successful.
False Returned if the glXMakeCurrent subroutine is not successful. 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 is the only member of its subprocess group that is equivalent to a process.

Error Codes

BadMatch The specified Drawable was not created with the same X screen and visual as Context. It is also generated if Drawable is None and Context is not None.
BadAccess Context is current to another thread at the time that the glXMakeCurrent subroutine is called.
GLXBadDrawable The specified Drawable is not a valid GLX drawable.
GLXBadContext The specified Context is not a valid GLX context.
GLXBadContextState The rendering context current to the calling thread has an OpenGL renderer state of GL_FEEDBACK or GL_SELECT.
GLXBadCurrentWindow Pending OpenGL commands exist for the previous context, and the current drawable is a window that is no longer valid.
BadAlloc The server has delayed allocation of ancillary buffers until glXMakeCurrent is called, only to find that it has insufficient resources to complete the allocation.


/usr/include/GL/gl.h Contains C language constants, variable type definitions, and ANSI function prototypes for OpenGL.

Related Information

The glXCreateContext subroutine, glXCreateGLXPixmap subroutine.

OpenGL in the AIXwindows (GLX) Environment.

OpenGL Overview.

[ Previous | Next | Contents | Glossary | Home | Search ]