=?UTF-8?Q?Rico=20Sch=C3=BCller=20?=: d3dx9: Warn when submitting invalid flags to ID3DXEffect::Begin().

Alexandre Julliard julliard at winehq.org
Fri Aug 2 09:53:39 CDT 2013


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

Author: Rico Schüller <kgbricola at web.de>
Date:   Thu Aug  1 22:48:19 2013 +0200

d3dx9: Warn when submitting invalid flags to ID3DXEffect::Begin().

---

 dlls/d3dx9_36/effect.c |   19 ++++++++++++++++++-
 1 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/dlls/d3dx9_36/effect.c b/dlls/d3dx9_36/effect.c
index 2c8eedf..44957db 100644
--- a/dlls/d3dx9_36/effect.c
+++ b/dlls/d3dx9_36/effect.c
@@ -177,6 +177,7 @@ struct ID3DXEffectImpl
     struct d3dx_technique *active_technique;
     struct d3dx_pass *active_pass;
     BOOL started;
+    DWORD flags;
 
     ID3DXBaseEffect *base_effect;
 };
@@ -3457,10 +3458,13 @@ static HRESULT WINAPI ID3DXEffectImpl_Begin(ID3DXEffect *iface, UINT *passes, DW
     struct ID3DXEffectImpl *This = impl_from_ID3DXEffect(iface);
     struct d3dx_technique *technique = This->active_technique;
 
-    FIXME("iface %p, passes %p, flags %#x partial stub\n", This, passes, flags);
+    FIXME("iface %p, passes %p, flags %#x partial stub\n", iface, passes, flags);
 
     if (passes && technique)
     {
+        if (flags & ~(D3DXFX_DONOTSAVESTATE | D3DXFX_DONOTSAVESAMPLERSTATE | D3DXFX_DONOTSAVESHADERSTATE))
+            WARN("Invalid flags (%#x) specified.\n", flags);
+
         if (This->manager || flags & D3DXFX_DONOTSAVESTATE)
         {
             TRACE("State capturing disabled.\n");
@@ -3472,6 +3476,7 @@ static HRESULT WINAPI ID3DXEffectImpl_Begin(ID3DXEffect *iface, UINT *passes, DW
 
         *passes = technique->pass_count;
         This->started = TRUE;
+        This->flags = flags;
 
         return D3D_OK;
     }
@@ -3534,6 +3539,18 @@ static HRESULT WINAPI ID3DXEffectImpl_End(ID3DXEffect *iface)
 
     FIXME("iface %p partial stub\n", iface);
 
+    if (!This->started)
+        return D3D_OK;
+
+    if (This->manager || This->flags & D3DXFX_DONOTSAVESTATE)
+    {
+        TRACE("State restoring disabled.\n");
+    }
+    else
+    {
+        FIXME("State restoring not supported, yet!\n");
+    }
+
     This->started = FALSE;
 
     return D3D_OK;




More information about the wine-cvs mailing list