From f73340a9069563be4ee1f0767be5533bf427f07c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zef=20Kucia?= Date: Fri, 24 Mar 2017 17:14:47 +0100 Subject: [PATCH] d3d11/tests: Introduce get_resource_data() helper function. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Józef Kucia Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/d3d11/tests/d3d11.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c index 303f973b47b..a22d4de1850 100644 --- a/dlls/d3d11/tests/d3d11.c +++ b/dlls/d3d11/tests/d3d11.c @@ -716,24 +716,29 @@ static void get_texture_readback(ID3D11Texture2D *texture, unsigned int sub_reso ID3D11Device_Release(device); } +static void *get_readback_data(struct resource_readback *rb, unsigned int x, unsigned int y, unsigned byte_width) +{ + return (BYTE *)rb->map_desc.pData + y * rb->map_desc.RowPitch + x * byte_width; +} + static DWORD get_readback_color(struct resource_readback *rb, unsigned int x, unsigned int y) { - return ((DWORD *)rb->map_desc.pData)[rb->map_desc.RowPitch * y / sizeof(DWORD) + x]; + return *(DWORD *)get_readback_data(rb, x, y, sizeof(DWORD)); } static float get_readback_float(struct resource_readback *rb, unsigned int x, unsigned int y) { - return ((float *)rb->map_desc.pData)[rb->map_desc.RowPitch * y / sizeof(float) + x]; + return *(float *)get_readback_data(rb, x, y, sizeof(float)); } static const struct vec4 *get_readback_vec4(struct resource_readback *rb, unsigned int x, unsigned int y) { - return &((const struct vec4 *)rb->map_desc.pData)[rb->map_desc.RowPitch * y / sizeof(struct vec4) + x]; + return get_readback_data(rb, x, y, sizeof(struct vec4)); } static const struct uvec4 *get_readback_uvec4(struct resource_readback *rb, unsigned int x, unsigned int y) { - return &((const struct uvec4 *)rb->map_desc.pData)[rb->map_desc.RowPitch * y / sizeof(struct uvec4) + x]; + return get_readback_data(rb, x, y, sizeof(struct uvec4)); } static void release_resource_readback(struct resource_readback *rb)