Module: wine Branch: master Commit: 4ec2b09d8f62489dd4246d04511c0950a549df29 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4ec2b09d8f62489dd4246d0451...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Fri Aug 21 09:12:28 2009 +0200
wined3d: Don't check for a "representative" in the MarkStateDirty() functions.
States without representative should never be called. Arguably they shouldn't exist in the first place, but allowing them simplifies the state table.
---
dlls/wined3d/context.c | 5 +++-- dlls/wined3d/device.c | 1 - dlls/wined3d/state.c | 6 +----- 3 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index be40f04..c4cd436 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -794,7 +794,7 @@ static void Context_MarkStateDirty(struct wined3d_context *context, DWORD state, DWORD idx; BYTE shift;
- if(!rep || isStateDirty(context, rep)) return; + if (isStateDirty(context, rep)) return;
context->dirtyArray[context->numDirtyEntries++] = rep; idx = rep >> 5; @@ -851,7 +851,8 @@ static struct wined3d_context *AddContextToArray(IWineD3DDeviceImpl *This, /* Mark all states dirty to force a proper initialization of the states on the first use of the context */ for(state = 0; state <= STATE_HIGHEST; state++) { - Context_MarkStateDirty(This->contexts[This->numContexts], state, This->StateTable); + if (This->StateTable[state].representative) + Context_MarkStateDirty(This->contexts[This->numContexts], state, This->StateTable); }
This->numContexts++; diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 5d77931..75904ed 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -7686,7 +7686,6 @@ void IWineD3DDeviceImpl_MarkStateDirty(IWineD3DDeviceImpl *This, DWORD state) { BYTE shift; UINT i;
- if(!rep) return; for(i = 0; i < This->numContexts; i++) { context = This->contexts[i]; if(isStateDirty(context, rep)) continue; diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c index a8394c1..97f1f79 100644 --- a/dlls/wined3d/state.c +++ b/dlls/wined3d/state.c @@ -56,11 +56,7 @@ static void state_nogl(DWORD state, IWineD3DStateBlockImpl *stateblock, struct w
static void state_undefined(DWORD state, IWineD3DStateBlockImpl *stateblock, struct wined3d_context *context) { - /* Print a WARN, this allows the stateblock code to loop over all states to generate a display - * list without causing confusing terminal output. Deliberately no special debug name here - * because its undefined. - */ - WARN("undefined state %d\n", state); + ERR("Undefined state.\n"); }
static void state_fillmode(DWORD state, IWineD3DStateBlockImpl *stateblock, struct wined3d_context *context)