Module: wine Branch: master Commit: 5737efe71a42c8b9b3b7953583fda6e0b6a6246a URL: http://source.winehq.org/git/wine.git/?a=commit;h=5737efe71a42c8b9b3b7953583...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Wed Sep 30 10:49:09 2009 +0200
wined3d: Explicitly pass gl_info to stateblock_savedstates_set().
---
dlls/wined3d/stateblock.c | 17 +++++++---------- 1 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c index bd868d7..91bd925 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c @@ -113,12 +113,9 @@ static inline void stateblock_set_bits(DWORD *map, UINT map_size) if (mask) map[map_size >> 5] = mask; }
-/** Set all members of a stateblock savedstate to the given value */ -static void stateblock_savedstates_set(IWineD3DStateBlock *iface, SAVEDSTATES *states, BOOL value) +/* Set all members of a stateblock savedstate to the given value */ +static void stateblock_savedstates_set(SAVEDSTATES *states, BOOL value, const struct wined3d_gl_info *gl_info) { - IWineD3DStateBlockImpl *This = (IWineD3DStateBlockImpl *)iface; - unsigned bsize = sizeof(BOOL); - /* Single values */ states->primitive_type = value; states->indices = value; @@ -163,8 +160,8 @@ static void stateblock_savedstates_set(IWineD3DStateBlock *iface, SAVEDSTATES *s }
/* Dynamically sized arrays */ - memset(states->pixelShaderConstantsF, value, bsize * GL_LIMITS(pshader_constantsF)); - memset(states->vertexShaderConstantsF, value, bsize * GL_LIMITS(vshader_constantsF)); + memset(states->pixelShaderConstantsF, value, sizeof(BOOL) * gl_info->max_pshader_constantsF); + memset(states->vertexShaderConstantsF, value, sizeof(BOOL) * gl_info->max_vshader_constantsF); }
static void stateblock_copy(IWineD3DStateBlockImpl *dst, IWineD3DStateBlockImpl *src) @@ -1393,7 +1390,7 @@ HRESULT stateblock_init(IWineD3DStateBlockImpl *stateblock, IWineD3DDeviceImpl * if (type == WINED3DSBT_ALL) { TRACE("ALL => Pretend everything has changed.\n"); - stateblock_savedstates_set((IWineD3DStateBlock *)stateblock, &stateblock->changed, TRUE); + stateblock_savedstates_set(&stateblock->changed, TRUE, gl_info);
/* Lights are not part of the changed / set structure. */ for (i = 0; i < LIGHTMAP_SIZE; ++i) @@ -1488,7 +1485,7 @@ HRESULT stateblock_init(IWineD3DStateBlockImpl *stateblock, IWineD3DDeviceImpl * else if (type == WINED3DSBT_PIXELSTATE) { TRACE("PIXELSTATE => Pretend all pixel states have changed.\n"); - stateblock_savedstates_set((IWineD3DStateBlock *)stateblock, &stateblock->changed, FALSE); + stateblock_savedstates_set(&stateblock->changed, FALSE, gl_info);
/* Pixel Shader Constants. */ for (i = 0; i < gl_info->max_pshader_constantsF; ++i) @@ -1560,7 +1557,7 @@ HRESULT stateblock_init(IWineD3DStateBlockImpl *stateblock, IWineD3DDeviceImpl * else if (type == WINED3DSBT_VERTEXSTATE) { TRACE("VERTEXSTATE => Pretend all vertex shates have changed.\n"); - stateblock_savedstates_set((IWineD3DStateBlock *)stateblock, &stateblock->changed, FALSE); + stateblock_savedstates_set(&stateblock->changed, FALSE, gl_info);
/* Vertex Shader Constants. */ for (i = 0; i < gl_info->max_vshader_constantsF; ++i)