diff options
author | marha <marha@users.sourceforge.net> | 2011-06-17 07:56:55 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-06-17 07:56:55 +0200 |
commit | 9bea2bf9069195c27824644331d4a275ea3df9f4 (patch) | |
tree | 06dcb54a49f89b8ceca5d10aa99351998071615a /mesalib/src/mesa/main/context.c | |
parent | aa5db0c31378f6dee271da6cf24f7e4da55fe9ef (diff) | |
parent | 743d2ab8160b84c62106467c50ec3871adbf5e75 (diff) | |
download | vcxsrv-9bea2bf9069195c27824644331d4a275ea3df9f4.tar.gz vcxsrv-9bea2bf9069195c27824644331d4a275ea3df9f4.tar.bz2 vcxsrv-9bea2bf9069195c27824644331d4a275ea3df9f4.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
mesalib/src/mesa/main/context.c
mesalib/src/mesa/main/fbobject.c
Diffstat (limited to 'mesalib/src/mesa/main/context.c')
-rw-r--r-- | mesalib/src/mesa/main/context.c | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/mesalib/src/mesa/main/context.c b/mesalib/src/mesa/main/context.c index 22959c69e..5e56f4fce 100644 --- a/mesalib/src/mesa/main/context.c +++ b/mesalib/src/mesa/main/context.c @@ -1430,7 +1430,8 @@ _mesa_make_current( struct gl_context *newCtx, }
if (curCtx &&
- (curCtx->WinSysDrawBuffer || curCtx->WinSysReadBuffer) && /* make sure this context is valid for flushing */
+ (curCtx->WinSysDrawBuffer || curCtx->WinSysReadBuffer) &&
+ /* make sure this context is valid for flushing */
curCtx != newCtx)
_mesa_flush(curCtx);
@@ -1445,8 +1446,6 @@ _mesa_make_current( struct gl_context *newCtx, _glapi_set_dispatch(newCtx->CurrentDispatch);
if (drawBuffer && readBuffer) {
- /* TODO: check if newCtx and buffer's visual match??? */
-
ASSERT(drawBuffer->Name == 0);
ASSERT(readBuffer->Name == 0);
_mesa_reference_framebuffer(&newCtx->WinSysDrawBuffer, drawBuffer);
@@ -1457,23 +1456,12 @@ _mesa_make_current( struct gl_context *newCtx, * or not bound to a user-created FBO.
*/
if (!newCtx->DrawBuffer || newCtx->DrawBuffer->Name == 0) {
- /* KW: merge conflict here, revisit.
- */
- /* fix up the fb fields - these will end up wrong otherwise
- * if the DRIdrawable changes, and everything relies on them.
- * This is a bit messy (same as needed in _mesa_BindFramebufferEXT)
- */
- unsigned int i;
- GLenum buffers[MAX_DRAW_BUFFERS];
-
_mesa_reference_framebuffer(&newCtx->DrawBuffer, drawBuffer);
-
- for(i = 0; i < newCtx->Const.MaxDrawBuffers; i++) {
- buffers[i] = newCtx->Color.DrawBuffer[i];
- }
-
- _mesa_drawbuffers(newCtx, newCtx->Const.MaxDrawBuffers,
- buffers, NULL);
+ /* Update the FBO's list of drawbuffers/renderbuffers.
+ * For winsys FBOs this comes from the GL state (which may have
+ * changed since the last time this FBO was bound).
+ */
+ _mesa_update_draw_buffers(newCtx);
}
if (!newCtx->ReadBuffer || newCtx->ReadBuffer->Name == 0) {
_mesa_reference_framebuffer(&newCtx->ReadBuffer, readBuffer);
|