wined3d: Assign to structs instead of using memcpy.
diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c
index 0c7edad..e81a8ed 100644
--- a/dlls/wined3d/stateblock.c
+++ b/dlls/wined3d/stateblock.c
@@ -170,7 +170,7 @@
     Dest->material = This->material;
     Dest->pixelShader = This->pixelShader;
     Dest->glsl_program = This->glsl_program;
-    memcpy(&Dest->scissorRect, &This->scissorRect, sizeof(Dest->scissorRect));
+    Dest->scissorRect = This->scissorRect;
 
     /* Lights */
     memset(This->activeLights, 0, sizeof(This->activeLights));
@@ -185,7 +185,7 @@
         LIST_FOR_EACH(e1, &This->lightMap[l]) {
             PLIGHTINFOEL *light = LIST_ENTRY(e1, PLIGHTINFOEL, entry), *light2;
             light2 = HeapAlloc(GetProcessHeap(), 0, sizeof(*light));
-            memcpy(light2, light, sizeof(*light));
+            *light2 = *light;
             list_add_tail(&Dest->lightMap[l], &light2->entry);
             if(light2->glIndex != -1) Dest->activeLights[light2->glIndex] = light2;
         }
@@ -342,7 +342,7 @@
                 realLight = LIST_ENTRY(f, PLIGHTINFOEL, entry);
                 if(realLight->OriginalIndex == src->OriginalIndex) {
                     if(src->changed) {
-                        memcpy(&src->OriginalParms, &realLight->OriginalParms, sizeof(src->OriginalParms));
+                        src->OriginalParms = realLight->OriginalParms;
                     }
                     if(src->enabledChanged) {
                             /* Need to double check because enabledChanged does not catch enabled -> disabled -> enabled
@@ -367,7 +367,7 @@
                 continue;
             } else if(src->changed) {
                 /* Otherwise assign defaul params */
-                memcpy(&src->OriginalParms, &WINED3D_default_light, sizeof(src->OriginalParms));
+                src->OriginalParms = WINED3D_default_light;
             } else {
                 /* Not enabled by default */
                 src->glIndex = -1;
@@ -477,9 +477,8 @@
         /* Others + Render & Texture */
         for (i = 0; i < This->num_contained_transform_states; i++) {
             TRACE("Updating transform %d\n", i);
-            memcpy(&This->transforms[This->contained_transform_states[i]],
-                   &targetStateBlock->transforms[This->contained_transform_states[i]],
-                   sizeof(WINED3DMATRIX));
+            This->transforms[This->contained_transform_states[i]] =
+                targetStateBlock->transforms[This->contained_transform_states[i]];
         }
 
         if (This->changed.indices && ((This->pIndexData != targetStateBlock->pIndexData)
@@ -506,14 +505,14 @@
                                                     &This->material,
                                                     sizeof(WINED3DMATERIAL)) != 0) {
             TRACE("Updating material\n");
-            memcpy(&This->material, &targetStateBlock->material, sizeof(WINED3DMATERIAL));
+            This->material = targetStateBlock->material;
         }
 
         if (This->changed.viewport && memcmp(&targetStateBlock->viewport,
                                                     &This->viewport,
                                                     sizeof(WINED3DVIEWPORT)) != 0) {
             TRACE("Updating viewport\n");
-            memcpy(&This->viewport, &targetStateBlock->viewport, sizeof(WINED3DVIEWPORT));
+            This->viewport = targetStateBlock->viewport;
         }
 
         if(This->changed.scissorRect && memcmp(&targetStateBlock->scissorRect,
@@ -521,7 +520,7 @@
                                            sizeof(targetStateBlock->scissorRect)))
         {
             TRACE("Updating scissor rect\n");
-            memcpy(&targetStateBlock->scissorRect, &This->scissorRect, sizeof(targetStateBlock->scissorRect));
+            targetStateBlock->scissorRect = This->scissorRect;
         }
 
         for (i = 0; i < MAX_STREAMS; i++) {