From caf99be99976166f92d90203966a2dd42634e2af Mon Sep 17 00:00:00 2001 From: Thomas Hellstrom Date: Wed, 18 Mar 2009 12:28:31 +0100 Subject: stw: Fix makeCurrent. Flush if we change current context. Signed-off-by: Thomas Hellstrom --- src/gallium/state_trackers/wgl/shared/stw_context.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/gallium/state_trackers/wgl') diff --git a/src/gallium/state_trackers/wgl/shared/stw_context.c b/src/gallium/state_trackers/wgl/shared/stw_context.c index 708acad193..d77daac39c 100644 --- a/src/gallium/state_trackers/wgl/shared/stw_context.c +++ b/src/gallium/state_trackers/wgl/shared/stw_context.c @@ -283,6 +283,7 @@ stw_make_current( struct stw_framebuffer *fb; GLuint width = 0; GLuint height = 0; + struct stw_context *curctx; if (!stw_dev) return FALSE; @@ -297,6 +298,13 @@ stw_make_current( current_hdc = hdc; current_hglrc = hglrc; + if (glcurctx != NULL) { + curctx = (struct stw_context *) glcurctx->DriverCtx; + + if (curctx != ctx) + st_flush(glcurctx->st, PIPE_FLUSH_RENDER_CACHE, NULL); + } + if (hdc == NULL || hglrc == 0) { st_make_current( NULL, NULL, NULL ); return TRUE; @@ -305,8 +313,6 @@ stw_make_current( /* Return if already current. */ if (glcurctx != NULL) { - struct stw_context *curctx = (struct stw_context *) glcurctx->DriverCtx; - if (curctx != NULL && curctx == ctx && ctx->hdc == hdc) return TRUE; } -- cgit v1.2.3