Module: wine Branch: master Commit: 345b329217f0279f899d2311fc4ca974bdb91322 URL: http://source.winehq.org/git/wine.git/?a=commit;h=345b329217f0279f899d2311fc...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Wed Sep 30 10:49:11 2009 +0200
wined3d: Add a separate function for copying stateblock values.
---
dlls/wined3d/stateblock.c | 30 +++++++++++++++++++----------- 1 files changed, 19 insertions(+), 11 deletions(-)
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c index e568ec6..c637de0 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c @@ -164,20 +164,11 @@ static void stateblock_savedstates_set(SAVEDSTATES *states, BOOL value, const st memset(states->vertexShaderConstantsF, value, sizeof(BOOL) * gl_info->max_vshader_constantsF); }
-static void stateblock_copy(IWineD3DStateBlockImpl *dst, const IWineD3DStateBlockImpl *src) +static void stateblock_copy_values(IWineD3DStateBlockImpl *dst, const IWineD3DStateBlockImpl *src, + const struct wined3d_gl_info *gl_info) { - const struct wined3d_gl_info *gl_info = &src->wineD3DDevice->adapter->gl_info; unsigned int l;
- dst->lpVtbl = src->lpVtbl; - dst->ref = src->ref; - dst->parent = src->parent; - dst->wineD3DDevice = src->wineD3DDevice; - dst->blockType = src->blockType; - - /* Saved states */ - stateblock_savedstates_copy(&dst->changed, &src->changed, gl_info); - /* Single items */ dst->gl_primitive_type = src->gl_primitive_type; dst->vertexDecl = src->vertexDecl; @@ -237,6 +228,23 @@ static void stateblock_copy(IWineD3DStateBlockImpl *dst, const IWineD3DStateBloc memcpy(dst->pixelShaderConstantF, src->pixelShaderConstantF, sizeof(float) * gl_info->max_pshader_constantsF * 4); }
+static void stateblock_copy(IWineD3DStateBlockImpl *dst, const IWineD3DStateBlockImpl *src) +{ + const struct wined3d_gl_info *gl_info = &src->wineD3DDevice->adapter->gl_info; + + dst->lpVtbl = src->lpVtbl; + dst->ref = src->ref; + dst->parent = src->parent; + dst->wineD3DDevice = src->wineD3DDevice; + dst->blockType = src->blockType; + + /* Saved states */ + stateblock_savedstates_copy(&dst->changed, &src->changed, gl_info); + + /* Saved values */ + stateblock_copy_values(dst, src, gl_info); +} + /********************************************************** * IWineD3DStateBlockImpl IUnknown parts follows **********************************************************/