Stefan Dösinger : wined3d: Split up the render target -> render target blit.

Alexandre Julliard julliard at winehq.org
Tue Dec 18 07:34:52 CST 2007


Module: wine
Branch: master
Commit: 83c0b13c5b2bf710542f365b6aa876b103a46147
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=83c0b13c5b2bf710542f365b6aa876b103a46147

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Sun Dec 16 00:18:20 2007 +0100

wined3d: Split up the render target -> render target blit.

---

 dlls/wined3d/surface.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index bedb306..7971908 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -2967,9 +2967,23 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
 
         TRACE("Unsupported blit between buffers on the same swapchain\n");
         return WINED3DERR_INVALIDCALL;
-    } else if((dstSwapchain || This == (IWineD3DSurfaceImpl *) myDevice->render_targets[0]) &&
-              (srcSwapchain || SrcSurface == myDevice->render_targets[0]) ) {
-        ERR("Can't perform hardware blit between 2 different swapchains, falling back to software\n");
+    } else if(dstSwapchain && dstSwapchain == srcSwapchain) {
+        FIXME("Implement hardware blit between two surfaces on the same swapchain\n");
+        return WINED3DERR_INVALIDCALL;
+    } else if(dstSwapchain && srcSwapchain) {
+        FIXME("Implement hardware blit between two different swapchains\n");
+        return WINED3DERR_INVALIDCALL;
+    } else if(dstSwapchain) {
+        if(SrcSurface != myDevice->render_targets[0]) {
+            ERR("Unexpected render target -> render target blit\n");
+        }
+        FIXME("Implement blit from active render target to a swapchain\n");
+        return WINED3DERR_INVALIDCALL;
+    } else if(srcSwapchain) {
+        if(This != (IWineD3DSurfaceImpl *) myDevice->render_targets[0]) {
+            ERR("Unexpected render target -> render target blit\n");
+        }
+        FIXME("Implement blit from a swapchain to the active render target\n");
         return WINED3DERR_INVALIDCALL;
     }
 




More information about the wine-cvs mailing list