Henri Verbeet : wined3d: Remove some unnecessary code.
Alexandre Julliard
julliard at winehq.org
Thu Jul 23 09:59:43 CDT 2009
Module: wine
Branch: master
Commit: 401e99b0c074af848379b2602df37fb1e6c7536b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=401e99b0c074af848379b2602df37fb1e6c7536b
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Thu Jul 23 10:54:33 2009 +0200
wined3d: Remove some unnecessary code.
Now that we don't depend on activeContext and lastActiveRenderTarget to be
non-NULL this code can go.
---
dlls/wined3d/context.c | 52 ++-------------------------------------------
dlls/wined3d/swapchain.c | 16 --------------
2 files changed, 3 insertions(+), 65 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index 02159fb..2e50634 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -467,59 +467,13 @@ void context_resource_released(IWineD3DDevice *iface, IWineD3DResource *resource
IWineD3DDeviceImpl *This = (IWineD3DDeviceImpl *)iface;
UINT i;
+ if (!This->d3d_initialized) return;
+
switch(type)
{
case WINED3DRTYPE_SURFACE:
{
- if (This->activeContext && (IWineD3DSurface *)resource == This->activeContext->current_rt)
- {
- IWineD3DSwapChainImpl *swapchain;
-
- TRACE("Last active render target destroyed.\n");
-
- /* Find a replacement surface for the currently active back
- * buffer. The context manager does not do NULL checks, so
- * switch to a valid target as long as the currently set
- * surface is still valid. Use the surface of the implicit
- * swpchain. If that is the same as the destroyed surface the
- * device is destroyed and the lastActiveRenderTarget member
- * shouldn't matter. */
- swapchain = This->swapchains ? (IWineD3DSwapChainImpl *)This->swapchains[0] : NULL;
- if (swapchain)
- {
- if (swapchain->backBuffer && swapchain->backBuffer[0] != (IWineD3DSurface *)resource)
- {
- TRACE("Activating primary back buffer.\n");
- ActivateContext(This, swapchain->backBuffer[0], CTXUSAGE_RESOURCELOAD);
- }
- else if (!swapchain->backBuffer && swapchain->frontBuffer != (IWineD3DSurface *)resource)
- {
- /* Single buffering environment */
- TRACE("Activating primary front buffer.\n");
-
- ActivateContext(This, swapchain->frontBuffer, CTXUSAGE_RESOURCELOAD);
- }
- else
- {
- /* Implicit render target destroyed, that means the
- * device is being destroyed whatever we set here, it
- * shouldn't matter. */
- TRACE("Device is being destroyed, setting current_rt to 0xdeadbabe.\n");
- This->activeContext->current_rt = (IWineD3DSurface *)0xdeadbabe;
- }
- }
- else
- {
- WARN("Render target set, but swapchain does not exist!\n");
-
- /* May happen during ddraw uninitialization. */
- This->activeContext->current_rt = (IWineD3DSurface *)0xdeadcafe;
- }
- }
- else if (This->d3d_initialized)
- {
- ActivateContext(This, NULL, CTXUSAGE_RESOURCELOAD);
- }
+ ActivateContext(This, NULL, CTXUSAGE_RESOURCELOAD);
for (i = 0; i < This->numContexts; ++i)
{
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
index 27770ca..683640a 100644
--- a/dlls/wined3d/swapchain.c
+++ b/dlls/wined3d/swapchain.c
@@ -66,22 +66,6 @@ static void WINAPI IWineD3DSwapChainImpl_Destroy(IWineD3DSwapChain *iface, D3DCB
for (i = 0; i < This->num_contexts; ++i)
{
- if (This->context[i] == This->wineD3DDevice->activeContext)
- {
- IWineD3DSwapChainImpl *swapchain = (IWineD3DSwapChainImpl *)This->wineD3DDevice->swapchains[0];
-
- /* Avoid destroying the currently active context for non-implicit swapchains. */
- if (This != swapchain)
- {
- TRACE("Would destroy currently active context %p on a non-implicit swapchain.\n", This->context[i]);
-
- if (swapchain->backBuffer)
- ActivateContext(This->wineD3DDevice, swapchain->backBuffer[0], CTXUSAGE_RESOURCELOAD);
- else
- ActivateContext(This->wineD3DDevice, swapchain->frontBuffer, CTXUSAGE_RESOURCELOAD);
- }
- }
-
DestroyContext(This->wineD3DDevice, This->context[i]);
}
/* Restore the screen resolution if we rendered in fullscreen
More information about the wine-cvs
mailing list