Stefan Dösinger : wined3d: Reject opengl accelerated blits with system memory surfaces.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Aug 30 06:20:26 CDT 2007


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

Author: Stefan Dösinger <stefan at codeweavers.com>
Date:   Tue Aug 21 23:24:16 2007 +0200

wined3d: Reject opengl accelerated blits with system memory surfaces.

---

 dlls/wined3d/surface.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index f8becfe..d85a9d7 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -2805,9 +2805,17 @@ static HRESULT IWineD3DSurfaceImpl_BltOverride(IWineD3DSurfaceImpl *This, RECT *
     TRACE("(%p)->(%p,%p,%p,%08x,%p)\n", This, DestRect, SrcSurface, SrcRect, Flags, DDBltFx);
 
     /* Get the swapchain. One of the surfaces has to be a primary surface */
+    if(This->resource.pool == WINED3DPOOL_SYSTEMMEM) {
+        WARN("Destination is in sysmem, rejecting gl blt\n");
+        return WINED3DERR_INVALIDCALL;
+    }
     IWineD3DSurface_GetContainer( (IWineD3DSurface *) This, &IID_IWineD3DSwapChain, (void **)&dstSwapchain);
     if(dstSwapchain) IWineD3DSwapChain_Release((IWineD3DSwapChain *) dstSwapchain);
     if(Src) {
+        if(Src->resource.pool == WINED3DPOOL_SYSTEMMEM) {
+            WARN("Src is in sysmem, rejecting gl blt\n");
+            return WINED3DERR_INVALIDCALL;
+        }
         IWineD3DSurface_GetContainer( (IWineD3DSurface *) Src, &IID_IWineD3DSwapChain, (void **)&srcSwapchain);
         if(srcSwapchain) IWineD3DSwapChain_Release((IWineD3DSwapChain *) srcSwapchain);
     }




More information about the wine-cvs mailing list