[PATCH 3/5] wined3d: Add a separate function for copying stateblock values.

Henri Verbeet hverbeet at codeweavers.com
Wed Sep 30 03:49:11 CDT 2009


---
 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
  **********************************************************/
-- 
1.6.0.6




More information about the wine-patches mailing list