Module: wine Branch: master Commit: d3b4dc92d9f5f37e659dbc75510461c3586000e3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d3b4dc92d9f5f37e659dbc7551...
Author: Rico Schüller kgbricola@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;