Felix Nawothnig : wined3d: Issue an error when the render target is read back without SFLAG_INDRAWABLE being set .

Alexandre Julliard julliard at wine.codeweavers.com
Mon Apr 9 07:35:59 CDT 2007


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

Author: Felix Nawothnig <flexo at holycrap.org>
Date:   Sun Apr  8 00:56:45 2007 +0200

wined3d: Issue an error when the render target is read back without SFLAG_INDRAWABLE being set.

---

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

diff --git a/dlls/wined3d/surface.c b/dlls/wined3d/surface.c
index af90b61..526c311 100644
--- a/dlls/wined3d/surface.c
+++ b/dlls/wined3d/surface.c
@@ -1788,6 +1788,7 @@ static BOOL palette9_changed(IWineD3DSurfaceImpl *This) {
 
 static HRESULT WINAPI IWineD3DSurfaceImpl_LoadTexture(IWineD3DSurface *iface) {
     IWineD3DSurfaceImpl *This = (IWineD3DSurfaceImpl *)iface;
+    IWineD3DDeviceImpl *device = This->resource.wineD3DDevice;
     GLenum format, internal, type;
     CONVERT_TYPES convert;
     int bpp;
@@ -1862,7 +1863,13 @@ static HRESULT WINAPI IWineD3DSurfaceImpl_LoadTexture(IWineD3DSurface *iface) {
             TRACE("Updated target %d\n", This->glDescription.target);
         }
         return WINED3D_OK;
-    }
+    } else
+        /* The only place where LoadTexture() might get called when isInDraw=1
+         * is ActivateContext where lastActiveRenderTarget is preloaded.
+         */
+        if(iface == device->lastActiveRenderTarget && device->isInDraw)
+            ERR("Reading back render target but SFLAG_INDRAWABLE not set\n");
+
     /* Otherwise: System memory copy must be most up to date */
 
     if(This->CKeyFlags & DDSD_CKSRCBLT) {




More information about the wine-cvs mailing list