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