[PATCH 3/4] d2d1/tests: Add version independent resource_readback members.

Rémi Bernon rbernon at codeweavers.com
Thu Jan 7 13:43:55 CST 2021


Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
 dlls/d2d1/tests/d2d1.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c
index 78a16a90252..43155bfb79a 100644
--- a/dlls/d2d1/tests/d2d1.c
+++ b/dlls/d2d1/tests/d2d1.c
@@ -43,7 +43,8 @@ struct resource_readback
 {
     ID3D10Resource *resource;
     D3D10_MAPPED_TEXTURE2D map_desc;
-    unsigned int width, height;
+    unsigned int pitch, width, height;
+    void *data;
 };
 
 struct figure
@@ -336,6 +337,9 @@ static void get_surface_readback(IDXGISurface *surface, struct resource_readback
 
     hr = ID3D10Texture2D_Map((ID3D10Texture2D *)rb->resource, 0, D3D10_MAP_READ, 0, &rb->map_desc);
     ok(SUCCEEDED(hr), "Failed to map texture, hr %#x.\n", hr);
+
+    rb->pitch = rb->map_desc.RowPitch;
+    rb->data = rb->map_desc.pData;
 }
 
 static void release_resource_readback(struct resource_readback *rb)
@@ -346,7 +350,7 @@ static void release_resource_readback(struct resource_readback *rb)
 
 static DWORD get_readback_colour(struct resource_readback *rb, unsigned int x, unsigned int y)
 {
-    return ((DWORD *)((BYTE *)rb->map_desc.pData + y * rb->map_desc.RowPitch))[x];
+    return ((DWORD *)((BYTE *)rb->data + y * rb->pitch))[x];
 }
 
 static BOOL compare_uint(unsigned int x, unsigned int y, unsigned int max_diff)
@@ -451,8 +455,7 @@ static BOOL compare_surface(IDXGISurface *surface, const char *ref_sha1)
     BOOL ret;
 
     get_surface_readback(surface, &rb);
-    ret = compare_sha1(rb.map_desc.pData, rb.map_desc.RowPitch, 4,
-            rb.width, rb.height, ref_sha1);
+    ret = compare_sha1(rb.data, rb.pitch, 4, rb.width, rb.height, ref_sha1);
     release_resource_readback(&rb);
 
     return ret;
@@ -629,7 +632,7 @@ static BOOL compare_figure(IDXGISurface *surface, unsigned int x, unsigned int y
     figure.spans_size = 64;
     figure.spans = HeapAlloc(GetProcessHeap(), 0, figure.spans_size * sizeof(*figure.spans));
 
-    read_figure(&figure, rb.map_desc.pData, rb.map_desc.RowPitch, x, y, w, h, prev);
+    read_figure(&figure, rb.data, rb.pitch, x, y, w, h, prev);
 
     deserialize_figure(&ref_figure, (BYTE *)ref);
     span = w * h;
@@ -667,7 +670,7 @@ static BOOL compare_figure(IDXGISurface *surface, unsigned int x, unsigned int y
     if (diff > max_diff)
     {
         trace("diff %u > max_diff %u.\n", diff, max_diff);
-        read_figure(&figure, rb.map_desc.pData, rb.map_desc.RowPitch, x, y, w, h, prev);
+        read_figure(&figure, rb.data, rb.pitch, x, y, w, h, prev);
         serialize_figure(&figure);
     }
 
-- 
2.29.2




More information about the wine-devel mailing list