Commit 9ceda3a6 authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Move some context selection code from ActivateContext() to FindContext().

parent 219d3abd
...@@ -1608,6 +1608,13 @@ static inline WineD3DContext *FindContext(IWineD3DDeviceImpl *This, IWineD3DSurf ...@@ -1608,6 +1608,13 @@ static inline WineD3DContext *FindContext(IWineD3DDeviceImpl *This, IWineD3DSurf
const struct GlPixelFormatDesc *old, *new; const struct GlPixelFormatDesc *old, *new;
struct WineD3DContext *context; 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))) { if (SUCCEEDED(IWineD3DSurface_GetContainer(target, &IID_IWineD3DSwapChain, (void **)&swapchain))) {
TRACE("Rendering onscreen\n"); TRACE("Rendering onscreen\n");
...@@ -1763,6 +1770,9 @@ retry: ...@@ -1763,6 +1770,9 @@ retry:
This->isInDraw = oldInDraw; This->isInDraw = oldInDraw;
} }
context->draw_buffer_dirty = TRUE;
context->current_rt = target;
return context; return context;
} }
...@@ -1834,17 +1844,7 @@ void ActivateContext(IWineD3DDeviceImpl *This, IWineD3DSurface *target, ContextU ...@@ -1834,17 +1844,7 @@ void ActivateContext(IWineD3DDeviceImpl *This, IWineD3DSurface *target, ContextU
TRACE("(%p): Selecting context for render target %p, thread %d\n", This, target, tid); TRACE("(%p): Selecting context for render target %p, thread %d\n", This, target, tid);
if (!target) target = This->activeContext->current_rt; context = FindContext(This, target, tid);
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;
}
gl_info = context->gl_info; gl_info = context->gl_info;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment