glXMakeContextCurrent — attach a GLX context to a GLX drawable
Bool glXMakeContextCurrent( | Display * | display, | 
| GLXDrawable | draw, | |
| GLXDrawable | read, | |
| GLXContext | ctx); | 
displaySpecifies the connection to the X server.
drawSpecifies a GLX drawable to render into. Must be an XID representing a GLXWindow, GLXPixmap, or GLXPbuffer.
readSpecifies a GLX drawable to read from. Must be an XID representing a GLXWindow, GLXPixmap, or GLXPbuffer.
ctx
                    Specifies the GLX context to be bound to read and ctx.
                
            glXMakeContextCurrent binds ctx to the current rendering thread and to the draw
            and read GLX drawables. draw and read may be the same.
        
            draw is used for all OpenGL operations except:
        
            Any pixel data that are read based on the value of GLX_READ_BUFFER.
            Note that accumulation operations use the value of GLX_READ_BUFFER,
            but are not allowed unless draw is identical to read.
        
Any depth values that are retrieved by glReadPixels or glCopyPixels.
Any stencil values that are retrieved by glReadPixels or glCopyPixels.
            Frame buffer values are taken from draw.
        
            If the current rendering thread has a current rendering context, that
            context is flushed and replaced by ctx.
        
            The first time that ctx is made current, the viewport and scissor
            dimensions are set to the size of the draw drawable.  The viewport
            and scissor are not modified when ctx is subsequently made current.
        
            To release the current context without assigning a new one,
            call glXMakeContextCurrent with draw and read set to None and ctx
            set to NULL.
        
            glXMakeContextCurrent returns True if it is successful,
            False otherwise.
            If False is returned, the previously current rendering context
            and drawable (if any) remain unchanged.
        
            glXMakeContextCurrent is available only if the GLX version is 1.3 or greater.
        
If the GLX version is 1.1 or 1.0, the GL version must be 1.0. If the GLX version is 1.2, then the GL version must be 1.1. If the GLX version is 1.3, then the GL version must be 1.2.
            BadMatch is generated if draw and read are not compatible.
        
            BadAccess is generated if ctx is current to some other
            thread.
        
            GLXContextState is generated if there is a current rendering
            context and its render mode is either GLX_FEEDBACK or
            GLX_SELECT.
        
            GLXBadContext is generated if ctx is not a valid GLX
            rendering context.
        
            GLXBadDrawable is generated if draw or read is not a valid 
            GLX drawable.
        
            GLXBadWindow is generated if the underlying X window for either
            draw or read is no longer valid.
        
            GLXBadCurrentDrawable is generated if the previous context of
            the calling thread has unflushed commands and the previous drawable is
            no longer valid.
        
            BadAlloc is generated if the X server does not have enough
            resources to allocate the buffers.
        
            BadMatch is generated if:
        
            draw and read cannot fit into frame buffer memory simultaneously.
        
            draw or read is a GLXPixmap and ctx is a direct-rendering
            context.
        
            draw or read is a GLXPixmap and ctx was previously bound to a
            GLXWindow or GLXPbuffer.
        
            draw or read is a GLXWindow or GLXPbuffer and ctx was
            previously bound to a GLXPixmap.
        
glXCreateNewContext, glXCreateWindow, glXCreatePixmap, glXCreatePbuffer, glXDestroyContext, glXGetCurrentContext, glXGetCurrentDisplay, glXGetCurrentDrawable, glXGetCurrentReadDrawable, glXMakeCurrent
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/.