st/nine: Refactor volume GetSystemMemPointer
authorAxel Davy <davyaxel0@gmail.com>
Wed, 10 Apr 2019 20:53:02 +0000 (22:53 +0200)
committerAxel Davy <davyaxel0@gmail.com>
Tue, 30 Apr 2019 17:18:51 +0000 (19:18 +0200)
It will make it easier to reuse in another place.

Signed-off-by: Axel Davy <davyaxel0@gmail.com>
src/gallium/state_trackers/nine/volume9.c

index 3857124be207599a885340fcb84dc6cd1d00cee4..1d562f5dd8de92e912e04593635466d0749a49b2 100644 (file)
@@ -232,15 +232,16 @@ NineVolume9_AddDirtyRegion( struct NineVolume9 *This,
     }
 }
 
-static inline uint8_t *
-NineVolume9_GetSystemMemPointer(struct NineVolume9 *This, int x, int y, int z)
+static inline unsigned
+NineVolume9_GetSystemMemOffset(enum pipe_format format, unsigned stride,
+                               unsigned layer_stride,
+                               int x, int y, int z)
 {
-    unsigned x_offset = util_format_get_stride(This->info.format, x);
+    unsigned x_offset = util_format_get_stride(format, x);
 
-    y = util_format_get_nblocksy(This->info.format, y);
+    y = util_format_get_nblocksy(format, y);
 
-    assert(This->data);
-    return This->data + (z * This->layer_stride + y * This->stride + x_offset);
+    return z * layer_stride + y * stride + x_offset;
 }
 
 HRESULT NINE_WINAPI
@@ -324,8 +325,10 @@ NineVolume9_LockBox( struct NineVolume9 *This,
     } else if (This->data) {
         pLockedVolume->RowPitch = This->stride;
         pLockedVolume->SlicePitch = This->layer_stride;
-        pLockedVolume->pBits =
-            NineVolume9_GetSystemMemPointer(This, box.x, box.y, box.z);
+        pLockedVolume->pBits = This->data +
+            NineVolume9_GetSystemMemOffset(This->info.format, This->stride,
+                                           This->layer_stride,
+                                           box.x, box.y, box.z);
     } else {
         bool no_refs = !p_atomic_read(&This->base.bind) &&
             !p_atomic_read(&This->base.container->bind);