[PATCH 5/6] wined3d: Move some context selection code from ActivateContext() to FindContext().
Henri Verbeet
hverbeet at codeweavers.com
Wed Jul 22 03:41:09 CDT 2009
---
dlls/wined3d/context.c | 22 +++++++++++-----------
1 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 8af2b82..468b2a1 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1614,6 +1614,13 @@ static inline WineD3DContext *FindContext(IWineD3DDeviceImpl *This, IWineD3DSurf
const struct GlPixelFormatDesc *old, *new;
struct WineD3DContext *context;
+ if (!target) target = This->activeContext->current_rt;
+
+ if (This->activeContext->current_rt == target && This->activeContext->tid == tid)
+ {
+ return This->activeContext;
+ }
+
if (SUCCEEDED(IWineD3DSurface_GetContainer(target, &IID_IWineD3DSwapChain, (void **)&swapchain))) {
TRACE("Rendering onscreen\n");
@@ -1769,6 +1776,9 @@ retry:
This->isInDraw = oldInDraw;
}
+ context->draw_buffer_dirty = TRUE;
+ context->current_rt = target;
+
return context;
}
@@ -1840,17 +1850,7 @@ void ActivateContext(IWineD3DDeviceImpl *This, IWineD3DSurface *target, ContextU
TRACE("(%p): Selecting context for render target %p, thread %d\n", This, target, tid);
- if (!target) target = This->activeContext->current_rt;
-
- if (This->activeContext->current_rt != target || This->activeContext->tid != tid)
- {
- context = FindContext(This, target, tid);
- context->draw_buffer_dirty = TRUE;
- context->current_rt = target;
- } else {
- /* Stick to the old context */
- context = This->activeContext;
- }
+ context = FindContext(This, target, tid);
gl_info = context->gl_info;
--
1.6.0.6
More information about the wine-patches
mailing list