[PATCH 1/4] wined3d: Pass an IWineD3DVolumeImpl pointer to volume_add_dirty_box().

Henri Verbeet hverbeet at codeweavers.com
Tue Jan 18 10:55:19 CST 2011


---
 dlls/wined3d/volume.c          |   34 ++++++++++++++++------------------
 dlls/wined3d/volumetexture.c   |    8 ++++----
 dlls/wined3d/wined3d_private.h |    2 +-
 3 files changed, 21 insertions(+), 23 deletions(-)

diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
index 566135c..b98d638 100644
--- a/dlls/wined3d/volume.c
+++ b/dlls/wined3d/volume.c
@@ -63,28 +63,26 @@ static void volume_bind_and_dirtify(IWineD3DVolume *iface) {
     container->baseTexture.texture_ops->texture_bind(container, FALSE);
 }
 
-void volume_add_dirty_box(IWineD3DVolume *iface, const WINED3DBOX *dirty_box)
+void volume_add_dirty_box(struct IWineD3DVolumeImpl *volume, const WINED3DBOX *dirty_box)
 {
-    IWineD3DVolumeImpl *This = (IWineD3DVolumeImpl *)iface;
-
-    This->dirty = TRUE;
+    volume->dirty = TRUE;
     if (dirty_box)
     {
-        This->lockedBox.Left = min(This->lockedBox.Left, dirty_box->Left);
-        This->lockedBox.Top = min(This->lockedBox.Top, dirty_box->Top);
-        This->lockedBox.Front = min(This->lockedBox.Front, dirty_box->Front);
-        This->lockedBox.Right = max(This->lockedBox.Right, dirty_box->Right);
-        This->lockedBox.Bottom = max(This->lockedBox.Bottom, dirty_box->Bottom);
-        This->lockedBox.Back = max(This->lockedBox.Back, dirty_box->Back);
+        volume->lockedBox.Left = min(volume->lockedBox.Left, dirty_box->Left);
+        volume->lockedBox.Top = min(volume->lockedBox.Top, dirty_box->Top);
+        volume->lockedBox.Front = min(volume->lockedBox.Front, dirty_box->Front);
+        volume->lockedBox.Right = max(volume->lockedBox.Right, dirty_box->Right);
+        volume->lockedBox.Bottom = max(volume->lockedBox.Bottom, dirty_box->Bottom);
+        volume->lockedBox.Back = max(volume->lockedBox.Back, dirty_box->Back);
     }
     else
     {
-        This->lockedBox.Left = 0;
-        This->lockedBox.Top = 0;
-        This->lockedBox.Front = 0;
-        This->lockedBox.Right = This->currentDesc.Width;
-        This->lockedBox.Bottom = This->currentDesc.Height;
-        This->lockedBox.Back = This->currentDesc.Depth;
+        volume->lockedBox.Left = 0;
+        volume->lockedBox.Top = 0;
+        volume->lockedBox.Front = 0;
+        volume->lockedBox.Right = volume->currentDesc.Width;
+        volume->lockedBox.Bottom = volume->currentDesc.Height;
+        volume->lockedBox.Back = volume->currentDesc.Depth;
     }
 }
 
@@ -255,7 +253,7 @@ static HRESULT WINAPI IWineD3DVolumeImpl_Map(IWineD3DVolume *iface,
 
     if (!(flags & (WINED3DLOCK_NO_DIRTY_UPDATE | WINED3DLOCK_READONLY)))
     {
-        volume_add_dirty_box(iface, &This->lockedBox);
+        volume_add_dirty_box(This, &This->lockedBox);
         This->container->baseTexture.texture_rgb.dirty = TRUE;
         This->container->baseTexture.texture_srgb.dirty = TRUE;
     }
@@ -368,7 +366,7 @@ HRESULT volume_init(IWineD3DVolumeImpl *volume, IWineD3DDeviceImpl *device, UINT
     memset(&volume->lockedBox, 0, sizeof(volume->lockedBox));
     volume->dirty = TRUE;
 
-    volume_add_dirty_box((IWineD3DVolume *)volume, NULL);
+    volume_add_dirty_box(volume, NULL);
 
     return WINED3D_OK;
 }
diff --git a/dlls/wined3d/volumetexture.c b/dlls/wined3d/volumetexture.c
index 94f5b05..4a744eb 100644
--- a/dlls/wined3d/volumetexture.c
+++ b/dlls/wined3d/volumetexture.c
@@ -70,9 +70,9 @@ static void volumetexture_preload(IWineD3DBaseTextureImpl *texture, enum WINED3D
     {
         for (i = 0; i < texture->baseTexture.level_count; ++i)
         {
-            IWineD3DVolume *volume = (IWineD3DVolume *)texture->baseTexture.sub_resources[i];
+            IWineD3DVolumeImpl *volume = (IWineD3DVolumeImpl *)texture->baseTexture.sub_resources[i];
             volume_add_dirty_box(volume, NULL);
-            IWineD3DVolume_LoadTexture(volume, i, srgb_mode);
+            IWineD3DVolume_LoadTexture((IWineD3DVolume *)volume, i, srgb_mode);
         }
     }
     else
@@ -336,11 +336,11 @@ static HRESULT WINAPI IWineD3DVolumeTextureImpl_Unmap(IWineD3DVolumeTexture *ifa
 static HRESULT WINAPI IWineD3DVolumeTextureImpl_AddDirtyBox(IWineD3DVolumeTexture *iface, const WINED3DBOX *dirty_box)
 {
     IWineD3DBaseTextureImpl *texture = (IWineD3DBaseTextureImpl *)iface;
-    IWineD3DVolume *volume;
+    IWineD3DVolumeImpl *volume;
 
     TRACE("iface %p, dirty_box %p.\n", iface, dirty_box);
 
-    if (!(volume = (IWineD3DVolume *)basetexture_get_sub_resource(texture, 0)))
+    if (!(volume = (IWineD3DVolumeImpl *)basetexture_get_sub_resource(texture, 0)))
     {
         WARN("Failed to get sub-resource.\n");
         return WINED3DERR_INVALIDCALL;
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index b1202f3..115846a 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2001,7 +2001,7 @@ typedef struct IWineD3DVolumeImpl
     BOOL                    dirty;
 } IWineD3DVolumeImpl;
 
-void volume_add_dirty_box(IWineD3DVolume *iface, const WINED3DBOX *dirty_box) DECLSPEC_HIDDEN;
+void volume_add_dirty_box(struct IWineD3DVolumeImpl *volume, const WINED3DBOX *dirty_box) DECLSPEC_HIDDEN;
 HRESULT volume_init(IWineD3DVolumeImpl *volume, IWineD3DDeviceImpl *device, UINT width,
         UINT height, UINT depth, DWORD usage, enum wined3d_format_id format_id, WINED3DPOOL pool,
         void *parent, const struct wined3d_parent_ops *parent_ops) DECLSPEC_HIDDEN;
-- 
1.7.3.4




More information about the wine-patches mailing list