[PATCH 3/5] wined3d: Move volume booleans into a flags field (try 2)

Stefan Dösinger stefan at codeweavers.com
Tue Aug 20 05:07:57 CDT 2013


Try 2: Just drop volume->lockable for now and reintroduce it in a later
patch that implements mapping restrictions.
---
 dlls/wined3d/volume.c          | 10 +++-------
 dlls/wined3d/wined3d_private.h |  8 +++++---
 2 files changed, 8 insertions(+), 10 deletions(-)

diff --git a/dlls/wined3d/volume.c b/dlls/wined3d/volume.c
index 97abb0d..fd54a35 100644
--- a/dlls/wined3d/volume.c
+++ b/dlls/wined3d/volume.c
@@ -49,7 +49,6 @@ static void volume_bind_and_dirtify(const struct wined3d_volume *volume, struct
 
 void volume_add_dirty_box(struct wined3d_volume *volume, const struct wined3d_box *dirty_box)
 {
-    volume->dirty = TRUE;
     if (dirty_box)
     {
         volume->lockedBox.left = min(volume->lockedBox.left, dirty_box->left);
@@ -233,7 +232,7 @@ HRESULT CDECL wined3d_volume_map(struct wined3d_volume *volume,
         wined3d_texture_set_dirty(volume->container, TRUE);
     }
 
-    volume->locked = TRUE;
+    volume->flags |= WINED3D_VFLAG_LOCKED;
 
     TRACE("Returning memory %p, row pitch %d, slice pitch %d.\n",
             map_desc->data, map_desc->row_pitch, map_desc->slice_pitch);
@@ -250,13 +249,13 @@ HRESULT CDECL wined3d_volume_unmap(struct wined3d_volume *volume)
 {
     TRACE("volume %p.\n", volume);
 
-    if (!volume->locked)
+    if (!(volume->flags & WINED3D_VFLAG_LOCKED))
     {
         WARN("Trying to unlock unlocked volume %p.\n", volume);
         return WINED3DERR_INVALIDCALL;
     }
 
-    volume->locked = FALSE;
+    volume->flags &= ~WINED3D_VFLAG_LOCKED;
     memset(&volume->lockedBox, 0, sizeof(volume->lockedBox));
 
     return WINED3D_OK;
@@ -291,10 +290,7 @@ static HRESULT volume_init(struct wined3d_volume *volume, struct wined3d_device
         return hr;
     }
 
-    volume->lockable = TRUE;
-    volume->locked = FALSE;
     memset(&volume->lockedBox, 0, sizeof(volume->lockedBox));
-    volume->dirty = TRUE;
 
     volume_add_dirty_box(volume, NULL);
 
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 1a886b4..f8ba5a5 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2050,15 +2050,17 @@ void wined3d_texture_apply_state_changes(struct wined3d_texture *texture,
         const struct wined3d_gl_info *gl_info) DECLSPEC_HIDDEN;
 void wined3d_texture_set_dirty(struct wined3d_texture *texture, BOOL dirty) DECLSPEC_HIDDEN;
 
+#define WINED3D_VFLAG_LOCKED            0x00000001
+
 struct wined3d_volume
 {
     struct wined3d_resource resource;
     struct wined3d_texture *container;
-    BOOL                    lockable;
-    BOOL                    locked;
+
     struct wined3d_box lockedBox;
     struct wined3d_box dirtyBox;
-    BOOL                    dirty;
+
+    DWORD flags;
 };
 
 static inline struct wined3d_volume *volume_from_resource(struct wined3d_resource *resource)
-- 
1.8.1.5




More information about the wine-patches mailing list