On 09/04/2012 09:38 AM, ext song.7....@nokia.com wrote:
> Hi,
> 
> We are trying to port the mesa. But there is one question related with OpenGL.
> 
> In Linux, we can create OpengGL context using glXCreateContextAttribsARB, 
> then glXMakeCurrent will binding this context to a window.
> But we don't understand how does the GL operation such as glClearColor etc. 
> know what's the current context for drawing ?
> 
> For example:
>     ctx = glXCreateContextAttribsARB( display, bestFbc, 0, True, 
> context_attribs );
>     glXMakeCurrent( display, win, ctx );
> 
>     glClearColor ( 1, 0.5, 0, 1 );
>     glClear ( GL_COLOR_BUFFER_BIT );
> 
> Thanks,
> Song

The OpenGL driver typically keeps the current context as a static
variable in thread local storage.

glXMakeCurrent() sets this variable, and each of the OpenGL calls will
query it. Read the documentation for glXMakeCurrent:
http://www.opengl.org/sdk/docs/man/xhtml/glXMakeCurrent.xml

The current context can be queried by glXGetCurrentContext().

Qt wraps these APIs with QOpenGLContext::makeCurrent() and
QOpenGLContext::currentContext().

--
Samuel
_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to