Signed-off-by: Rémi Bernon rbernon@codeweavers.com --- dlls/d2d1/tests/Makefile.in | 2 +- dlls/d2d1/tests/d2d1.c | 760 +++++++++++++++++++++--------------- 2 files changed, 457 insertions(+), 305 deletions(-)
diff --git a/dlls/d2d1/tests/Makefile.in b/dlls/d2d1/tests/Makefile.in index 91ede7888aa..5eeb815e07f 100644 --- a/dlls/d2d1/tests/Makefile.in +++ b/dlls/d2d1/tests/Makefile.in @@ -1,5 +1,5 @@ TESTDLL = d2d1.dll -IMPORTS = d2d1 d3d10_1 dwrite dxguid uuid user32 advapi32 ole32 gdi32 +IMPORTS = d2d1 d3d10_1 d3d11 dwrite dxguid uuid user32 advapi32 ole32 gdi32
C_SRCS = \ d2d1.c diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c index 43155bfb79a..8dc52a9e0ac 100644 --- a/dlls/d2d1/tests/d2d1.c +++ b/dlls/d2d1/tests/d2d1.c @@ -21,6 +21,7 @@ #include <math.h> #include <float.h> #include "d2d1_1.h" +#include "d3d11.h" #include "wincrypt.h" #include "wine/test.h" #include "initguid.h" @@ -36,13 +37,17 @@ static BOOL use_mt = TRUE; static struct test_entry { void (*test)(void); + void (*d3d1x_test)(BOOL d3d11); + BOOL d3d11; } *mt_tests; size_t mt_tests_size, mt_test_count;
struct resource_readback { - ID3D10Resource *resource; - D3D10_MAPPED_TEXTURE2D map_desc; + ID3D10Resource *d3d10_resource; + ID3D11Resource *d3d11_resource; + D3D10_MAPPED_TEXTURE2D d3d10_map_desc; + D3D11_MAPPED_SUBRESOURCE d3d11_map_desc; unsigned int pitch, width, height; void *data; }; @@ -104,7 +109,29 @@ static void queue_test(void (*test)(void)) mt_tests_size = max(16, mt_tests_size * 2); mt_tests = heap_realloc(mt_tests, mt_tests_size * sizeof(*mt_tests)); } - mt_tests[mt_test_count++].test = test; + mt_tests[mt_test_count].test = test; + mt_tests[mt_test_count++].d3d1x_test = NULL; +} + +static void queue_d3d1x_test(void (*test)(BOOL d3d11)) +{ + if (mt_test_count >= mt_tests_size) + { + mt_tests_size = max(16, mt_tests_size * 2); + mt_tests = heap_realloc(mt_tests, mt_tests_size * sizeof(*mt_tests)); + } + mt_tests[mt_test_count].test = NULL; + mt_tests[mt_test_count].d3d1x_test = test; + mt_tests[mt_test_count++].d3d11 = FALSE; + + if (mt_test_count >= mt_tests_size) + { + mt_tests_size = max(16, mt_tests_size * 2); + mt_tests = heap_realloc(mt_tests, mt_tests_size * sizeof(*mt_tests)); + } + mt_tests[mt_test_count].test = NULL; + mt_tests[mt_test_count].d3d1x_test = test; + mt_tests[mt_test_count++].d3d11 = TRUE; }
static DWORD WINAPI thread_func(void *ctx) @@ -115,7 +142,10 @@ static DWORD WINAPI thread_func(void *ctx) { j = *i; if (InterlockedCompareExchange(i, j + 1, j) == j) - mt_tests[j].test(); + { + if (mt_tests[j].test) mt_tests[j].test(); + else if (mt_tests[j].d3d1x_test) mt_tests[j].d3d1x_test(mt_tests[j].d3d11); + } }
return 0; @@ -132,7 +162,8 @@ static void run_queued_tests(void) { for (i = 0; i < mt_test_count; ++i) { - mt_tests[i].test(); + if (mt_tests[i].test) mt_tests[i].test(); + else if (mt_tests[i].d3d1x_test) mt_tests[i].d3d1x_test(mt_tests[i].d3d11); }
return; @@ -300,7 +331,7 @@ static void cubic_to(ID2D1GeometrySink *sink, float x1, float y1, float x2, floa ID2D1GeometrySink_AddBezier(sink, &b); }
-static void get_surface_readback(IDXGISurface *surface, struct resource_readback *rb) +static void get_d3d10_surface_readback(IDXGISurface *surface, struct resource_readback *rb) { D3D10_TEXTURE2D_DESC texture_desc; DXGI_SURFACE_DESC surface_desc; @@ -325,27 +356,101 @@ static void get_surface_readback(IDXGISurface *surface, struct resource_readback texture_desc.BindFlags = 0; texture_desc.CPUAccessFlags = D3D10_CPU_ACCESS_READ; texture_desc.MiscFlags = 0; - hr = ID3D10Device_CreateTexture2D(device, &texture_desc, NULL, (ID3D10Texture2D **)&rb->resource); + hr = ID3D10Device_CreateTexture2D(device, &texture_desc, NULL, (ID3D10Texture2D **)&rb->d3d10_resource); ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr);
rb->width = texture_desc.Width; rb->height = texture_desc.Height;
- ID3D10Device_CopyResource(device, rb->resource, src_resource); + ID3D10Device_CopyResource(device, rb->d3d10_resource, src_resource); ID3D10Resource_Release(src_resource); ID3D10Device_Release(device);
- hr = ID3D10Texture2D_Map((ID3D10Texture2D *)rb->resource, 0, D3D10_MAP_READ, 0, &rb->map_desc); + hr = ID3D10Texture2D_Map((ID3D10Texture2D *)rb->d3d10_resource, 0, D3D10_MAP_READ, 0, &rb->d3d10_map_desc); + ok(SUCCEEDED(hr), "Failed to map texture, hr %#x.\n", hr); + + rb->pitch = rb->d3d10_map_desc.RowPitch; + rb->data = rb->d3d10_map_desc.pData; +} + +static void get_d3d11_surface_readback(IDXGISurface *surface, struct resource_readback *rb) +{ + D3D11_TEXTURE2D_DESC texture_desc; + DXGI_SURFACE_DESC surface_desc; + ID3D11Resource *src_resource; + ID3D11DeviceContext *context; + ID3D11Device *device; + HRESULT hr; + + hr = IDXGISurface_GetDevice(surface, &IID_ID3D11Device, (void **)&device); + ok(SUCCEEDED(hr), "Failed to get device, hr %#x.\n", hr); + hr = IDXGISurface_QueryInterface(surface, &IID_ID3D11Resource, (void **)&src_resource); + ok(SUCCEEDED(hr), "Failed to query resource interface, hr %#x.\n", hr); + + hr = IDXGISurface_GetDesc(surface, &surface_desc); + ok(SUCCEEDED(hr), "Failed to get surface desc, hr %#x.\n", hr); + texture_desc.Width = surface_desc.Width; + texture_desc.Height = surface_desc.Height; + texture_desc.MipLevels = 1; + texture_desc.ArraySize = 1; + texture_desc.Format = surface_desc.Format; + texture_desc.SampleDesc = surface_desc.SampleDesc; + texture_desc.Usage = D3D11_USAGE_STAGING; + texture_desc.BindFlags = 0; + texture_desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; + texture_desc.MiscFlags = 0; + hr = ID3D11Device_CreateTexture2D(device, &texture_desc, NULL, (ID3D11Texture2D **)&rb->d3d11_resource); + ok(SUCCEEDED(hr), "Failed to create texture, hr %#x.\n", hr); + + rb->width = texture_desc.Width; + rb->height = texture_desc.Height; + + ID3D11Device_GetImmediateContext(device, &context); + ID3D11DeviceContext_CopyResource(context, rb->d3d11_resource, src_resource); + ID3D11Resource_Release(src_resource); + ID3D11Device_Release(device); + + hr = ID3D11DeviceContext_Map(context, (ID3D11Resource *)rb->d3d11_resource, 0, D3D11_MAP_READ, 0, &rb->d3d11_map_desc); ok(SUCCEEDED(hr), "Failed to map texture, hr %#x.\n", hr); + ID3D11DeviceContext_Release(context);
- rb->pitch = rb->map_desc.RowPitch; - rb->data = rb->map_desc.pData; + rb->pitch = rb->d3d11_map_desc.RowPitch; + rb->data = rb->d3d11_map_desc.pData; }
-static void release_resource_readback(struct resource_readback *rb) +static void get_surface_readback(IDXGISurface *surface, struct resource_readback *rb, BOOL d3d11) { - ID3D10Texture2D_Unmap((ID3D10Texture2D *)rb->resource, 0); - ID3D10Resource_Release(rb->resource); + if (d3d11) get_d3d11_surface_readback(surface, rb); + else get_d3d10_surface_readback(surface, rb); +} + +static void release_d3d10_resource_readback(IDXGISurface *surface, struct resource_readback *rb) +{ + ID3D10Texture2D_Unmap((ID3D10Texture2D *)rb->d3d10_resource, 0); + ID3D10Resource_Release(rb->d3d10_resource); +} + +static void release_d3d11_resource_readback(IDXGISurface *surface, struct resource_readback *rb) +{ + ID3D11DeviceContext *context; + ID3D11Device *device; + HRESULT hr; + + hr = IDXGISurface_GetDevice(surface, &IID_ID3D11Device, (void **)&device); + ok(SUCCEEDED(hr), "Failed to get device, hr %#x.\n", hr); + + ID3D11Device_GetImmediateContext(device, &context); + ID3D11Device_Release(device); + + ID3D11DeviceContext_Unmap(context, rb->d3d11_resource, 0); + ID3D11Resource_Release(rb->d3d11_resource); + ID3D11DeviceContext_Release(context); +} + +static void release_resource_readback(IDXGISurface *surface, struct resource_readback *rb, BOOL d3d11) +{ + if (d3d11) release_d3d11_resource_readback(surface, rb); + else release_d3d10_resource_readback(surface, rb); }
static DWORD get_readback_colour(struct resource_readback *rb, unsigned int x, unsigned int y) @@ -449,14 +554,14 @@ static BOOL compare_sha1(void *data, unsigned int pitch, unsigned int bpp, return !strcmp(ref_sha1, (char *)sha1); }
-static BOOL compare_surface(IDXGISurface *surface, const char *ref_sha1) +static BOOL compare_surface(IDXGISurface *surface, const char *ref_sha1, BOOL d3d11) { struct resource_readback rb; BOOL ret;
- get_surface_readback(surface, &rb); + get_surface_readback(surface, &rb, d3d11); ret = compare_sha1(rb.data, rb.pitch, 4, rb.width, rb.height, ref_sha1); - release_resource_readback(&rb); + release_resource_readback(surface, &rb, d3d11);
return ret; } @@ -620,13 +725,14 @@ static void read_figure(struct figure *figure, BYTE *data, unsigned int pitch, }
static BOOL compare_figure(IDXGISurface *surface, unsigned int x, unsigned int y, - unsigned int w, unsigned int h, DWORD prev, unsigned int max_diff, const char *ref) + unsigned int w, unsigned int h, DWORD prev, unsigned int max_diff, const char *ref, + BOOL d3d11) { struct figure ref_figure, figure; unsigned int i, j, span, diff; struct resource_readback rb;
- get_surface_readback(surface, &rb); + get_surface_readback(surface, &rb, d3d11);
figure.span_count = 0; figure.spans_size = 64; @@ -676,7 +782,7 @@ static BOOL compare_figure(IDXGISurface *surface, unsigned int x, unsigned int y
HeapFree(GetProcessHeap(), 0, ref_figure.spans); HeapFree(GetProcessHeap(), 0, figure.spans); - release_resource_readback(&rb); + release_resource_readback(surface, &rb, d3d11);
return diff <= max_diff; } @@ -698,19 +804,47 @@ static ID3D10Device1 *create_d3d10_device(void) return NULL; }
-static IDXGIDevice *create_device(void) +static ID3D11Device *create_d3d11_device(void) +{ + ID3D11Device *device; + DWORD level = D3D_FEATURE_LEVEL_11_0; + + if (SUCCEEDED(D3D11CreateDevice(NULL, D3D_DRIVER_TYPE_HARDWARE, NULL, + D3D10_CREATE_DEVICE_BGRA_SUPPORT, &level, 1, D3D11_SDK_VERSION, &device, NULL, NULL))) + return device; + if (SUCCEEDED(D3D11CreateDevice(NULL, D3D_DRIVER_TYPE_WARP, NULL, + D3D10_CREATE_DEVICE_BGRA_SUPPORT, &level, 1, D3D11_SDK_VERSION, &device, NULL, NULL))) + return device; + if (SUCCEEDED(D3D11CreateDevice(NULL, D3D_DRIVER_TYPE_REFERENCE, NULL, + D3D10_CREATE_DEVICE_BGRA_SUPPORT, &level, 1, D3D11_SDK_VERSION, &device, NULL, NULL))) + return device; + + return NULL; +} + +static IDXGIDevice *create_device(BOOL d3d11) { ID3D10Device1 *d3d10_device; + ID3D11Device *d3d11_device; IDXGIDevice *device; HRESULT hr;
- if (!(d3d10_device = create_d3d10_device())) - return NULL; + if (d3d11) + { + if (!(d3d11_device = create_d3d11_device())) + return NULL; + hr = ID3D11Device_QueryInterface(d3d11_device, &IID_IDXGIDevice, (void **)&device); + ID3D11Device_Release(d3d11_device); + } + else + { + if (!(d3d10_device = create_d3d10_device())) + return NULL; + hr = ID3D10Device1_QueryInterface(d3d10_device, &IID_IDXGIDevice, (void **)&device); + ID3D10Device1_Release(d3d10_device); + }
- hr = ID3D10Device1_QueryInterface(d3d10_device, &IID_IDXGIDevice, (void **)&device); ok(SUCCEEDED(hr), "Failed to get DXGI device, hr %#x.\n", hr); - ID3D10Device1_Release(d3d10_device); - if (FAILED(hr)) return NULL;
@@ -777,7 +911,7 @@ static IDXGISwapChain *create_d3d10_swapchain(ID3D10Device1 *device, HWND window return swapchain; }
-static ID2D1RenderTarget *create_render_target_desc(IDXGISurface *surface, const D2D1_RENDER_TARGET_PROPERTIES *desc) +static ID2D1RenderTarget *create_render_target_desc(IDXGISurface *surface, const D2D1_RENDER_TARGET_PROPERTIES *desc, BOOL d3d11) { ID2D1RenderTarget *render_target; ID2D1Factory *factory; @@ -786,13 +920,14 @@ static ID2D1RenderTarget *create_render_target_desc(IDXGISurface *surface, const hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory, NULL, (void **)&factory); ok(SUCCEEDED(hr), "Failed to create factory, hr %#x.\n", hr); hr = ID2D1Factory_CreateDxgiSurfaceRenderTarget(factory, surface, desc, &render_target); - ok(SUCCEEDED(hr), "Failed to create render target, hr %#x.\n", hr); + todo_wine_if(d3d11) ok(SUCCEEDED(hr), "Failed to create render target, hr %#x.\n", hr); ID2D1Factory_Release(factory);
+ if (!SUCCEEDED(hr)) return NULL; return render_target; }
-static ID2D1RenderTarget *create_render_target(IDXGISurface *surface) +static ID2D1RenderTarget *create_render_target(IDXGISurface *surface, BOOL d3d11) { D2D1_RENDER_TARGET_PROPERTIES desc;
@@ -804,7 +939,7 @@ static ID2D1RenderTarget *create_render_target(IDXGISurface *surface) desc.usage = D2D1_RENDER_TARGET_USAGE_NONE; desc.minLevel = D2D1_FEATURE_LEVEL_DEFAULT;
- return create_render_target_desc(surface, &desc); + return create_render_target_desc(surface, &desc, d3d11); }
#define check_bitmap_surface(b, s, o) check_bitmap_surface_(__LINE__, b, s, o) @@ -1113,12 +1248,12 @@ static void geometry_sink_check_(unsigned int line, const struct geometry_sink * } }
-#define init_test(a, b, c, d, e) init_test_(__LINE__, a, b, c, d, e) -static BOOL init_test_(int line, IDXGIDevice **device, HWND *window, IDXGISwapChain **swapchain, IDXGISurface **surface, ID2D1RenderTarget **rt) +#define init_test(a, b, c, d, e, f) init_test_(__LINE__, a, b, c, d, e, f) +static BOOL init_test_(int line, IDXGIDevice **device, HWND *window, IDXGISwapChain **swapchain, IDXGISurface **surface, ID2D1RenderTarget **rt, BOOL d3d11) { HRESULT hr;
- if (!(*device = create_device())) + if (!(*device = create_device(d3d11))) { skip_(__FILE__, line)("Failed to create device, skipping tests.\n"); return FALSE; @@ -1127,13 +1262,23 @@ static BOOL init_test_(int line, IDXGIDevice **device, HWND *window, IDXGISwapCh *swapchain = create_swapchain(*device, *window, TRUE); hr = IDXGISwapChain_GetBuffer(*swapchain, 0, &IID_IDXGISurface, (void **)surface); ok_(__FILE__, line)(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr); - *rt = create_render_target(*surface); - ok_(__FILE__, line)(!!*rt, "Failed to create render target.\n"); + *rt = create_render_target(*surface, d3d11);
+ if (!*rt && d3d11) + { + todo_wine win_skip_(__FILE__, line)("Skipping D3D11 tests.\n"); + IDXGISurface_Release(*surface); + IDXGISwapChain_Release(*swapchain); + IDXGIDevice_Release(*device); + DestroyWindow(*window); + return FALSE; + } + + ok_(__FILE__, line)(!!*rt, "Failed to create render target.\n"); return TRUE; }
-static void test_clip(void) +static void test_clip(BOOL d3d11) { IDXGISwapChain *swapchain; D2D1_MATRIX_3X2_F matrix; @@ -1156,7 +1301,7 @@ static void test_clip(void) 0.0f, 0.0f, }}};
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_GetDpi(rt, &dpi_x, &dpi_y); @@ -1255,7 +1400,7 @@ static void test_clip(void)
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "035a44d4198d6e422e9de6185b5b2c2bac5e33c9"); + match = compare_surface(surface, "035a44d4198d6e422e9de6185b5b2c2bac5e33c9", d3d11); ok(match, "Surface does not match.\n");
/* Fractional clip rectangle coordinates, aliased mode. */ @@ -1321,7 +1466,7 @@ static void test_clip(void)
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "cb418ec4a7c8407b5e36db06fc6292a06bb8476c"); + match = compare_surface(surface, "cb418ec4a7c8407b5e36db06fc6292a06bb8476c", d3d11); ok(match, "Surface does not match.\n");
ID2D1RenderTarget_Release(rt); @@ -1331,7 +1476,7 @@ static void test_clip(void) DestroyWindow(window); }
-static void test_state_block(void) +static void test_state_block(BOOL d3d11) { IDWriteRenderingParams *text_rendering_params1, *text_rendering_params2; D2D1_DRAWING_STATE_DESCRIPTION drawing_state; @@ -1365,7 +1510,7 @@ static void test_state_block(void) 11.0f, 12.0f, }}};
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_GetFactory(rt, &factory); @@ -1597,7 +1742,7 @@ static void test_state_block(void) DestroyWindow(window); }
-static void test_color_brush(void) +static void test_color_brush(BOOL d3d11) { D2D1_MATRIX_3X2_F matrix, tmp_matrix; D2D1_BRUSH_PROPERTIES brush_desc; @@ -1613,7 +1758,7 @@ static void test_color_brush(void) HRESULT hr; BOOL match;
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_SetDpi(rt, 192.0f, 48.0f); @@ -1677,7 +1822,7 @@ static void test_color_brush(void)
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "6d1218fca5e21fb7e287b3a439d60dbc251f5ceb"); + match = compare_surface(surface, "6d1218fca5e21fb7e287b3a439d60dbc251f5ceb", d3d11); ok(match, "Surface does not match.\n");
ID2D1SolidColorBrush_Release(brush); @@ -1688,7 +1833,7 @@ static void test_color_brush(void) DestroyWindow(window); }
-static void test_bitmap_brush(void) +static void test_bitmap_brush(BOOL d3d11) { D2D1_BITMAP_INTERPOLATION_MODE interpolation_mode; ID2D1TransformedGeometry *transformed_geometry; @@ -1743,7 +1888,7 @@ static void test_bitmap_brush(void) 0xffffffff, 0xff000000, 0xff000000, 0xff000000, };
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_SetDpi(rt, 192.0f, 48.0f); @@ -1831,7 +1976,7 @@ static void test_bitmap_brush(void)
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "9437f4447d98feaad41a1c4202ee90aadc718ee6"); + match = compare_surface(surface, "9437f4447d98feaad41a1c4202ee90aadc718ee6", d3d11); ok(match, "Surface does not match.\n");
/* Invalid interpolation mode. */ @@ -1844,7 +1989,7 @@ static void test_bitmap_brush(void)
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr); - match = compare_surface(surface, "9437f4447d98feaad41a1c4202ee90aadc718ee6"); + match = compare_surface(surface, "9437f4447d98feaad41a1c4202ee90aadc718ee6", d3d11); ok(match, "Surface does not match.\n");
ID2D1RenderTarget_BeginDraw(rt); @@ -1873,7 +2018,7 @@ static void test_bitmap_brush(void)
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "b4b775afecdae2d26642001f4faff73663bb8b31"); + match = compare_surface(surface, "b4b775afecdae2d26642001f4faff73663bb8b31", d3d11); ok(match, "Surface does not match.\n");
ID2D1Bitmap_Release(bitmap); @@ -1922,7 +2067,7 @@ static void test_bitmap_brush(void)
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "cf7b90ba7b139fdfbe9347e1907d635cfb4ed197"); + match = compare_surface(surface, "cf7b90ba7b139fdfbe9347e1907d635cfb4ed197", d3d11); ok(match, "Surface does not match.\n");
if (SUCCEEDED(ID2D1BitmapBrush_QueryInterface(brush, &IID_ID2D1BitmapBrush1, (void **)&brush1))) @@ -1978,7 +2123,7 @@ static void test_bitmap_brush(void) DestroyWindow(window); }
-static void test_linear_brush(void) +static void test_linear_brush(BOOL d3d11) { D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES gradient_properties; ID2D1GradientStopCollection *gradient, *tmp_gradient; @@ -2038,7 +2183,7 @@ static void test_linear_brush(void) {520, 390, 0xff90ae40}, };
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_SetDpi(rt, 192.0f, 48.0f); @@ -2080,7 +2225,7 @@ static void test_linear_brush(void) hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
- get_surface_readback(surface, &rb); + get_surface_readback(surface, &rb, d3d11); for (i = 0; i < ARRAY_SIZE(test1); ++i) { DWORD colour; @@ -2090,7 +2235,7 @@ static void test_linear_brush(void) "Got unexpected colour 0x%08x at position {%u, %u}.\n", colour, test1[i].x, test1[i].y); } - release_resource_readback(&rb); + release_resource_readback(surface, &rb, d3d11);
ID2D1RenderTarget_BeginDraw(rt);
@@ -2153,7 +2298,7 @@ static void test_linear_brush(void) hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
- get_surface_readback(surface, &rb); + get_surface_readback(surface, &rb, d3d11); for (i = 0; i < ARRAY_SIZE(test2); ++i) { DWORD colour; @@ -2163,7 +2308,7 @@ static void test_linear_brush(void) "Got unexpected colour 0x%08x at position {%u, %u}.\n", colour, test2[i].x, test2[i].y); } - release_resource_readback(&rb); + release_resource_readback(surface, &rb, d3d11);
ID2D1LinearGradientBrush_Release(brush); refcount = ID2D1GradientStopCollection_Release(gradient); @@ -2175,7 +2320,7 @@ static void test_linear_brush(void) DestroyWindow(window); }
-static void test_radial_brush(void) +static void test_radial_brush(BOOL d3d11) { D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES gradient_properties; ID2D1GradientStopCollection *gradient, *tmp_gradient; @@ -2235,7 +2380,7 @@ static void test_radial_brush(void) {520, 390, 0xff4059e6}, };
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_SetDpi(rt, 192.0f, 48.0f); @@ -2283,7 +2428,7 @@ static void test_radial_brush(void) hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
- get_surface_readback(surface, &rb); + get_surface_readback(surface, &rb, d3d11); for (i = 0; i < ARRAY_SIZE(test1); ++i) { DWORD colour; @@ -2293,7 +2438,7 @@ static void test_radial_brush(void) "Got unexpected colour 0x%08x at position {%u, %u}.\n", colour, test1[i].x, test1[i].y); } - release_resource_readback(&rb); + release_resource_readback(surface, &rb, d3d11);
ID2D1RenderTarget_BeginDraw(rt);
@@ -2358,7 +2503,7 @@ static void test_radial_brush(void) hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
- get_surface_readback(surface, &rb); + get_surface_readback(surface, &rb, d3d11); for (i = 0; i < ARRAY_SIZE(test2); ++i) { DWORD colour; @@ -2368,7 +2513,7 @@ static void test_radial_brush(void) "Got unexpected colour 0x%08x at position {%u, %u}.\n", colour, test2[i].x, test2[i].y); } - release_resource_readback(&rb); + release_resource_readback(surface, &rb, d3d11);
ID2D1RadialGradientBrush_Release(brush); refcount = ID2D1GradientStopCollection_Release(gradient); @@ -2495,7 +2640,7 @@ static void fill_geometry_sink_bezier(ID2D1GeometrySink *sink, unsigned int holl ID2D1GeometrySink_EndFigure(sink, D2D1_FIGURE_END_CLOSED); }
-static void test_path_geometry(void) +static void test_path_geometry(BOOL d3d11) { ID2D1TransformedGeometry *transformed_geometry; D2D1_MATRIX_3X2_F matrix, tmp_matrix; @@ -2832,7 +2977,7 @@ static void test_path_geometry(void) {D2D1_FIGURE_BEGIN_HOLLOW, D2D1_FIGURE_END_OPEN, { 40.0f, 20.0f}, 2, &expected_segments[172]}, };
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_GetFactory(rt, &factory); @@ -3219,7 +3364,7 @@ static void test_path_geometry(void) ID2D1RenderTarget_FillGeometry(rt, (ID2D1Geometry *)transformed_geometry, (ID2D1Brush *)brush, NULL); hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "3aace1b22aae111cb577614fed16e4eb1650dba5"); + match = compare_surface(surface, "3aace1b22aae111cb577614fed16e4eb1650dba5", d3d11); ok(match, "Surface does not match.\n");
/* Edge test. */ @@ -3300,7 +3445,7 @@ static void test_path_geometry(void) ID2D1RenderTarget_FillGeometry(rt, (ID2D1Geometry *)transformed_geometry, (ID2D1Brush *)brush, NULL); hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "bfb40a1f007694fa07dbd3b854f3f5d9c3e1d76b"); + match = compare_surface(surface, "bfb40a1f007694fa07dbd3b854f3f5d9c3e1d76b", d3d11); ok(match, "Surface does not match.\n"); ID2D1TransformedGeometry_Release(transformed_geometry); ID2D1PathGeometry_Release(geometry); @@ -3368,7 +3513,7 @@ static void test_path_geometry(void) "PwZQBkgCUAJOAU4BUARIBFAGRAZQCEAIUQk8CVILOAtSDTQNUg4yDlIQLhBTECwQVBEqEVQSKBJU" "EyYTVBQjFFYUIhRWFSAVVxUeFVgWHBZZFhoWWhcYF1sWGBZcFxYWXhcUF18WFBZhFhIWYxUSFWUV" "EBVnFBAUaRQOFGsTDhJvEgwSchAMEHYPCg96DQoMggEICgiLAQQIBJQBCJgBCJkBBpoBBpoBBpoB" - "BpsBBJwBBJwBBJwBBJwBBJ0BAp4BAp4BAp4BAp4BAp4BAp4BAp4BAgAA"); + "BpsBBJwBBJwBBJwBBJwBBJ0BAp4BAp4BAp4BAp4BAp4BAp4BAp4BAgAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 0, 226, 160, 160, 0xff652e89, 64, "7xoCngECngECngECngECngECngECngECnQEEnAEEnAEEnAEEnAEEmwEGmgEGmgEGmgEGmQEImAEI" @@ -3378,7 +3523,7 @@ static void test_path_geometry(void) "PwZQBkgCUAJOAU4BUARIBFAGRAZQCEAIUQk8CVILOAtSDTQNUg4yDlIQLhBTECwQVBEqEVQSKBJU" "EyYTVBQjFFYUIhRWFSAVVxUeFVgWHBZZFhoWWhcYF1sWGBZcFxYWXhcUF18WFBZhFhIWYxUSFWUV" "EBVnFBAUaRQOFGsTDhJvEgwSchAMEHYPCg96DQoMggEICgiLAQQIBJQBCJgBCJkBBpoBBpoBBpoB" - "BpsBBJwBBJwBBJwBBJwBBJ0BAp4BAp4BAp4BAp4BAp4BAp4BAp4BAgAA"); + "BpsBBJwBBJwBBJwBBJwBBJ0BAp4BAp4BAp4BAp4BAp4BAp4BAp4BAgAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 0, 320, 160, 0xff652e89, 64, "gVQBwAIBWgHlAQFYAecBAVYB6QEBVAHrAQEjDCMB7AECHhQeAu0BAxoYGgPvAQMWHhYD8QEDFCAU" @@ -3390,7 +3535,7 @@ static void test_path_geometry(void) "C/QBCzcK9QEJOAn3AQg4CfcBBzoH+QEGOgb7AQU6BfwBBDwE/QEDPAP/AQE+AZkCDpkCAhIYEgKA" "AgMNIA0D/wEFCSYJBf4BBgYqBgf8AQgDLgMI+wFG+gEIAzADCPkBBwYuBgf3AQYKKgoG9gEFDCgM" "BfUBBBAlDwTzAQQSIhIE8QEDFh4WA/ABAhkaGQLvAQIcFhwC7QECIBAgAusBASgEKAHpAQFWAecB" - "AVgB5QEBWgHAAgHhUgAA"); + "AVgB5QEBWgHAAgHhUgAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 160, 320, 160, 0xff652e89, 64, "/VUB5QEBWAHnAQFWAekBAVQB6wECIQ8hAe0BAh0VHQLuAQIZGhkD7wEDFh4WA/EBBBMhEwPzAQQQ" @@ -3402,7 +3547,7 @@ static void test_path_geometry(void) "CvUBCTgJ9wEIOAn4AQc5B/kBBjoG+wEFOwT9AQM8BP4BAj0C/wEBPgGYAhAXAYACAhEaEQKAAgMN" "IA0E/gEFCSYJBf4BBgYrBQf8AQgDLwII+wE8AQn6AQgELwQI+AEHBy0HBvcBBgoqCgb2AQUNJw0F" "9AEEECQQBfIBBBMhEwPxAQMWHhYD8AECGRoZA+4BAh0VHQLsAQIhDiIB6wEBVAHpAQFWAecBAVgB" - "wAIBwlYA"); + "wAIBwlYA", d3d11); ok(match, "Figure does not match.\n"); ID2D1TransformedGeometry_Release(transformed_geometry); ID2D1PathGeometry_Release(geometry); @@ -3461,14 +3606,14 @@ static void test_path_geometry(void) "lAEQiwEagQEjeyh2LHIwbjNsNmk4ZzplPGM+YUBfQl1DXURbRlpGWUhYSFdKVkpVS1VMVExUTFRM" "U05STlJOUk5STlFQUFBQUFBQTlRIXD9mMnYqdjJmP1xIVE5QUFBQUFBQUU5STlJOUk5STlNMVExU" "TFRMVEtWSlZKV0hYSFlGWkZbRFxDXkJfQGE+YzxlOmc4aTZrM28wcix2KHojggEaiwEQlAEImAEI" - "mQEGmgEGmgEGmgEGmwEEnAEEnAEEnAEEnAEEnQECngECngECngECngECngECngECngEC"); + "mQEGmgEGmgEGmgEGmwEEnAEEnAEEnAEEnAEEnQECngECngECngECngECngECngECngEC", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 0, 226, 160, 160, 0xff652e89, 64, "7xoCngECngECngECngECngECngECngECnQEEnAEEnAEEnAEEnAEEmwEGmgEGmgEGmgEGmQEImAEI" "lAEQiwEagQEjeyh2LHIwbjNsNmk4ZzplPGM+YUBfQl1DXURbRlpGWUhYSFdKVkpVS1VMVExUTFRM" "U05STlJOUk5STlFQUFBQUFBQTlRIXD9mMnYqdjJmP1xIVE5QUFBQUFBQUU5STlJOUk5STlNMVExU" "TFRMVEtWSlZKV0hYSFlGWkZbRFxDXkJfQGE+YzxlOmc4aTZrM28wcix2KHojggEaiwEQlAEImAEI" - "mQEGmgEGmgEGmgEGmwEEnAEEnAEEnAEEnAEEnQECngECngECngECngECngECngECngEC"); + "mQEGmgEGmgEGmgEGmwEEnAEEnAEEnAEEnAEEnQECngECngECngECngECngECngECngEC", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 0, 320, 160, 0xff652e89, 64, "4VIBwAIBWgHlAQFYAecBAVYB6QEBVAHrAQIhDiIB7QECHRUdAu4BAhkaGQPvAQMWHhYD8QEEEyET" @@ -3477,7 +3622,7 @@ static void test_path_geometry(void) "U+0BU+wBVOwBVOwBVOwBVOwBVesBVesBVesBVesBVOwBVOwBVOwBVO0BU+0BU+0BUu4BUu8BUe8B" "UPEBT/EBTvIBTvMBTPUBS/UBSvcBSfcBSPkBRvsBRP0BQ/4BQf8BQIECP4ACQIACQf4BQv4BQ/wB" "RPsBCQEyAQn6AQgELwQI+AEHBy0GB/cBBgoqCgb2AQUMKA0F9AEEECUPBPMBBBIiEwPxAQMWHhYD" - "8AECGRoZA+4BAh0VHQLsAQIhDiIB6wEBVAHpAQFWAecBAVgB5QEBWgHAAgEA"); + "8AECGRoZA+4BAh0VHQLsAQIhDiIB6wEBVAHpAQFWAecBAVgB5QEBWgHAAgEA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 160, 320, 160, 0xff652e89, 64, "gVQBXAHjAQFaAeUBAVgB5wEBVgHpAQEpAikB6wECIBAgAu0BAhwWHALvAQIZGhkC8AEDFh4WA/EB" @@ -3486,7 +3631,7 @@ static void test_path_geometry(void) "Uu0BVOwBVOwBVOwBVOwBVOwBVOwBVOwBVOwBVOwBVOwBVOwBVOwBVOwBVO0BUu4BUu4BUu8BUPAB" "UPABUPEBTvIBTvMBTPQBS/YBSvcBSPgBSPkBRvsBRP0BQv8BQIACQIECPoECQP8BQv4BQv0BRPwB" "RPsBCQEyAQn5AQgFLgUI+AEGCCwIBvcBBgoqCgb1AQUNJw4F9AEEECQQBPMBAxQgFAPxAQMWHhYD" - "7wEDGhgaA+0BAh4UHgLsAQEjDCMB6wEBVAHpAQFWAecBAVgB5QEBWgGiVQAA"); + "7wEDGhgaA+0BAh4UHgLsAQEjDCMB6wEBVAHpAQFWAecBAVgB5QEBWgGiVQAA", d3d11); ok(match, "Figure does not match.\n"); ID2D1TransformedGeometry_Release(transformed_geometry); ID2D1PathGeometry_Release(geometry); @@ -3523,7 +3668,7 @@ static void test_path_geometry(void) ID2D1RenderTarget_FillGeometry(rt, (ID2D1Geometry *)geometry, (ID2D1Brush *)brush, NULL); hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "a875e68e0cb9c055927b1b50b879f90b24e38470"); + match = compare_surface(surface, "a875e68e0cb9c055927b1b50b879f90b24e38470", d3d11); ok(match, "Surface does not match.\n"); ID2D1PathGeometry_Release(geometry);
@@ -3889,7 +4034,7 @@ static void test_rounded_rectangle_geometry(void) ID2D1Factory_Release(factory); }
-static void test_bitmap_formats(void) +static void test_bitmap_formats(BOOL d3d11) { D2D1_BITMAP_PROPERTIES bitmap_desc; IDXGISwapChain *swapchain; @@ -3925,7 +4070,7 @@ static void test_bitmap_formats(void) {DXGI_FORMAT_B8G8R8A8_UNORM_SRGB, 0x8a}, };
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
bitmap_desc.dpiX = 96.0f; @@ -3958,7 +4103,7 @@ static void test_bitmap_formats(void) DestroyWindow(window); }
-static void test_alpha_mode(void) +static void test_alpha_mode(BOOL d3d11) { D2D1_RENDER_TARGET_PROPERTIES rt_desc; D2D1_BITMAP_PROPERTIES bitmap_desc; @@ -3985,7 +4130,7 @@ static void test_alpha_mode(void) 0x7f7f7f7f, 0x7f000000, 0x7f000000, 0x7f000000, };
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_SetAntialiasMode(rt, D2D1_ANTIALIAS_MODE_ALIASED); @@ -4012,7 +4157,7 @@ static void test_alpha_mode(void) ID2D1RenderTarget_Clear(rt, NULL); hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "48c41aff3a130a17ee210866b2ab7d36763934d5"); + match = compare_surface(surface, "48c41aff3a130a17ee210866b2ab7d36763934d5", d3d11); ok(match, "Surface does not match.\n");
ID2D1RenderTarget_BeginDraw(rt); @@ -4020,7 +4165,7 @@ static void test_alpha_mode(void) ID2D1RenderTarget_Clear(rt, &color); hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "6487e683730fb5a77c1911388d00b04664c5c4e4"); + match = compare_surface(surface, "6487e683730fb5a77c1911388d00b04664c5c4e4", d3d11); ok(match, "Surface does not match.\n");
ID2D1RenderTarget_BeginDraw(rt); @@ -4028,7 +4173,7 @@ static void test_alpha_mode(void) ID2D1RenderTarget_Clear(rt, &color); hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "7a35ba09e43cbaf591388ff1ef8de56157630c98"); + match = compare_surface(surface, "7a35ba09e43cbaf591388ff1ef8de56157630c98", d3d11); ok(match, "Surface does not match.\n");
ID2D1RenderTarget_BeginDraw(rt); @@ -4069,7 +4214,7 @@ static void test_alpha_mode(void)
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "14f8ac64b70966c7c3c6281c59aaecdb17c3b16a"); + match = compare_surface(surface, "14f8ac64b70966c7c3c6281c59aaecdb17c3b16a", d3d11); ok(match, "Surface does not match.\n");
ID2D1RenderTarget_Release(rt); @@ -4080,7 +4225,7 @@ static void test_alpha_mode(void) rt_desc.dpiY = 0.0f; rt_desc.usage = D2D1_RENDER_TARGET_USAGE_NONE; rt_desc.minLevel = D2D1_FEATURE_LEVEL_DEFAULT; - rt = create_render_target_desc(surface, &rt_desc); + rt = create_render_target_desc(surface, &rt_desc, d3d11); ok(!!rt, "Failed to create render target.\n");
ID2D1RenderTarget_SetAntialiasMode(rt, D2D1_ANTIALIAS_MODE_ALIASED); @@ -4107,7 +4252,7 @@ static void test_alpha_mode(void) ID2D1RenderTarget_Clear(rt, NULL); hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "b44510bf2d2e61a8d7c0ad862de49a471f1fd13f"); + match = compare_surface(surface, "b44510bf2d2e61a8d7c0ad862de49a471f1fd13f", d3d11); ok(match, "Surface does not match.\n");
ID2D1RenderTarget_BeginDraw(rt); @@ -4115,7 +4260,7 @@ static void test_alpha_mode(void) ID2D1RenderTarget_Clear(rt, &color); hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "2184f4a9198fc1de09ac85301b7a03eebadd9b81"); + match = compare_surface(surface, "2184f4a9198fc1de09ac85301b7a03eebadd9b81", d3d11); ok(match, "Surface does not match.\n");
ID2D1RenderTarget_BeginDraw(rt); @@ -4123,7 +4268,7 @@ static void test_alpha_mode(void) ID2D1RenderTarget_Clear(rt, &color); hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "6527ec83b4039c895b50f9b3e144fe0cf90d1889"); + match = compare_surface(surface, "6527ec83b4039c895b50f9b3e144fe0cf90d1889", d3d11); ok(match, "Surface does not match.\n");
ID2D1RenderTarget_BeginDraw(rt); @@ -4164,7 +4309,7 @@ static void test_alpha_mode(void)
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "465f5a3190d7bde408b3206b4be939fb22f8a3d6"); + match = compare_surface(surface, "465f5a3190d7bde408b3206b4be939fb22f8a3d6", d3d11); ok(match, "Surface does not match.\n");
refcount = ID2D1Bitmap_Release(bitmap); @@ -4178,7 +4323,7 @@ static void test_alpha_mode(void) DestroyWindow(window); }
-static void test_shared_bitmap(void) +static void test_shared_bitmap(BOOL d3d11) { IDXGISwapChain *swapchain1, *swapchain2; IWICBitmap *wic_bitmap1, *wic_bitmap2; @@ -4198,7 +4343,7 @@ static void test_shared_bitmap(void) HWND window1, window2; HRESULT hr;
- if (!init_test(&device1, &window1, &swapchain1, &surface1, &rt)) + if (!init_test(&device1, &window1, &swapchain1, &surface1, &rt, d3d11)) return; ID2D1RenderTarget_Release(rt);
@@ -4264,7 +4409,7 @@ static void test_shared_bitmap(void) /* DXGI surface render targets with different devices but the same factory. */ IDXGISurface_Release(surface2); IDXGISwapChain_Release(swapchain2); - device2 = create_device(); + device2 = create_device(d3d11); ok(!!device2, "Failed to create device.\n"); swapchain2 = create_swapchain(device2, window2, TRUE); hr = IDXGISwapChain_GetBuffer(swapchain2, 0, &IID_IDXGISurface, (void **)&surface2); @@ -4428,7 +4573,7 @@ static void test_shared_bitmap(void) CoUninitialize(); }
-static void test_bitmap_updates(void) +static void test_bitmap_updates(BOOL d3d11) { D2D1_BITMAP_PROPERTIES bitmap_desc; IDXGISwapChain *swapchain; @@ -4452,7 +4597,7 @@ static void test_bitmap_updates(void) 0xffffffff, 0xff000000, 0xff000000, 0xff000000, };
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_SetAntialiasMode(rt, D2D1_ANTIALIAS_MODE_ALIASED); @@ -4511,7 +4656,7 @@ static void test_bitmap_updates(void) hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
- match = compare_surface(surface, "cb8136c91fbbdc76bb83b8c09edc1907b0a5d0a6"); + match = compare_surface(surface, "cb8136c91fbbdc76bb83b8c09edc1907b0a5d0a6", d3d11); ok(match, "Surface does not match.\n");
ID2D1Bitmap_Release(bitmap); @@ -4522,7 +4667,7 @@ static void test_bitmap_updates(void) DestroyWindow(window); }
-static void test_opacity_brush(void) +static void test_opacity_brush(BOOL d3d11) { ID2D1BitmapBrush *bitmap_brush, *opacity_brush; D2D1_BITMAP_PROPERTIES bitmap_desc; @@ -4551,7 +4696,7 @@ static void test_opacity_brush(void) 0xffffffff, 0x40000000, 0x40000000, 0xff000000, };
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_GetFactory(rt, &factory); @@ -4638,7 +4783,7 @@ static void test_opacity_brush(void)
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(hr == D2DERR_INCOMPATIBLE_BRUSH_TYPES, "Got unexpected hr %#x.\n", hr); - match = compare_surface(surface, "7141c6c7b3decb91196428efb1856bcbf9872935"); + match = compare_surface(surface, "7141c6c7b3decb91196428efb1856bcbf9872935", d3d11); ok(match, "Surface does not match.\n"); ID2D1RenderTarget_BeginDraw(rt);
@@ -4680,7 +4825,7 @@ static void test_opacity_brush(void)
hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); - match = compare_surface(surface, "c3a5802d1750efa3e9122c1a92f6064df3872732"); + match = compare_surface(surface, "c3a5802d1750efa3e9122c1a92f6064df3872732", d3d11); ok(match, "Surface does not match.\n");
ID2D1BitmapBrush_Release(bitmap_brush); @@ -4695,7 +4840,7 @@ static void test_opacity_brush(void) DestroyWindow(window); }
-static void test_create_target(void) +static void test_create_target(BOOL d3d11) { IDXGISwapChain *swapchain; ID2D1Factory *factory; @@ -4721,7 +4866,7 @@ static void test_create_target(void) }; unsigned int i;
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return; ID2D1RenderTarget_Release(rt);
@@ -4780,7 +4925,7 @@ static void test_create_target(void) DestroyWindow(window); }
-static void test_draw_text_layout(void) +static void test_draw_text_layout(BOOL d3d11) { static const struct { @@ -4832,7 +4977,7 @@ static void test_draw_text_layout(void) D2D1_RECT_F rect; unsigned int i;
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return; ID2D1RenderTarget_Release(rt);
@@ -4964,7 +5109,7 @@ static void create_target_dibsection(HDC hdc, UINT32 width, UINT32 height) DeleteObject(SelectObject(hdc, hbm)); }
-static void test_dc_target(void) +static void test_dc_target(BOOL d3d11) { static const D2D1_PIXEL_FORMAT invalid_formats[] = { @@ -4994,7 +5139,7 @@ static void test_dc_target(void) HRESULT hr; RECT rect;
- if (!(device = create_device())) + if (!(device = create_device(d3d11))) { skip("Failed to create device, skipping tests.\n"); return; @@ -5195,7 +5340,7 @@ todo_wine ID2D1Factory_Release(factory); }
-static void test_hwnd_target(void) +static void test_hwnd_target(BOOL d3d11) { D2D1_HWND_RENDER_TARGET_PROPERTIES hwnd_rt_desc; ID2D1GdiInteropRenderTarget *interop; @@ -5207,7 +5352,7 @@ static void test_hwnd_target(void) D2D1_SIZE_U size; HRESULT hr;
- if (!(device = create_device())) + if (!(device = create_device(d3d11))) { skip("Failed to create device, skipping tests.\n"); return; @@ -5358,7 +5503,7 @@ static void test_compatible_target_size_(unsigned int line, ID2D1RenderTarget *r ID2D1BitmapRenderTarget_Release(bitmap_rt); }
-static void test_bitmap_target(void) +static void test_bitmap_target(BOOL d3d11) { D2D1_HWND_RENDER_TARGET_PROPERTIES hwnd_rt_desc; ID2D1GdiInteropRenderTarget *interop; @@ -5377,7 +5522,7 @@ static void test_bitmap_target(void) ULONG refcount; HRESULT hr;
- if (!(device = create_device())) + if (!(device = create_device(d3d11))) { skip("Failed to create device, skipping tests.\n"); return; @@ -5707,7 +5852,7 @@ static void test_stroke_style(void) ID2D1Factory_Release(factory); }
-static void test_gradient(void) +static void test_gradient(BOOL d3d11) { ID2D1GradientStopCollection *gradient; D2D1_GRADIENT_STOP stops[3], stops2[3]; @@ -5721,7 +5866,7 @@ static void test_gradient(void) HWND window; HRESULT hr;
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
stops2[0].position = 0.5f; @@ -5756,7 +5901,7 @@ static void test_gradient(void) DestroyWindow(window); }
-static void test_draw_geometry(void) +static void test_draw_geometry(BOOL d3d11) { ID2D1TransformedGeometry *transformed_geometry[4]; ID2D1RectangleGeometry *rect_geometry[2]; @@ -5780,7 +5925,7 @@ static void test_draw_geometry(void) HRESULT hr; BOOL match;
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_GetFactory(rt, &factory); @@ -5828,35 +5973,35 @@ static void test_draw_geometry(void) hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
- match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, ""); + match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "yGBQUFBQUFBQUFDoYQAA"); + match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "yGBQUFBQUFBQUFDoYQAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, "xjIUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" - "jAEUjAEUjAEUjAEUxjIA"); + "jAEUjAEUjAEUjAEUxjIA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 0, 160, 160, 0xff652e89, 2, "zjECnQETjAEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEV" "igEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEV" "igEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEV" "igEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEVigEV" - "igEVigEVigEVigEVjAETnQECzjEA"); + "igEVigEVigEVigEVjAETnQECzjEA", d3d11); ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "5mAUjAEUjAEUjAEUjAEUhmIA"); + match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "5mAUjAEUjAEUjAEUjAEUhmIA", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "vmBkPGQ8ZDxkPGTeYQAA"); + match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "vmBkPGQ8ZDxkPGTeYQAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "5i4UjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" - "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUhjAA"); + "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUhjAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 160, 160, 160, 0xff652e89, 0, "vi5kPGQ8ZDxkPGQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" @@ -5864,19 +6009,19 @@ static void test_draw_geometry(void) "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8" "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" - "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZDxkPGQ8ZDxk3i8A"); + "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZDxkPGQ8ZDxk3i8A", d3d11); ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA"); + match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA", d3d11); todo_wine ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA"); + match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 0, "iDAQjgEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" - "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA"); + "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 320, 160, 160, 0xff652e89, 10, "hDAYgwEieyh1LnAybBcIF2gWDhZkFhIWYRUWFV4VGhVbFRwVWRUeFVcVIBVVFCQUUxQmFFEUKBRP" @@ -5884,7 +6029,7 @@ static void test_draw_geometry(void) "OBQ/FDoUPhQ6FD4UOhQ+FDoUPhQ6FD0UPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8" "FDwUPBQ8FDwUPBQ8FD0UOhQ+FDoUPhQ6FD4UOhQ+FDoUPxQ4FEAUOBRAFDgUQRQ2FEIUNhRDFDQU" "RBQ0FEUUMhRGFDIURxQwFEgUMBRJFC4USxQsFEwVKhVNFSgVTxQoFFEUJhRTFCQUVRUgFVcVHhVZ" - "FRwVWxUaFV4VFhVhFhIWZBYOFmgXCBdsMnAudSh7IoMBGIQw"); + "FRwVWxUaFV4VFhVhFhIWZBYOFmgXCBdsMnAudSh7IoMBGIQw", d3d11); todo_wine ok(match, "Figure does not match.\n");
ID2D1RenderTarget_BeginDraw(rt); @@ -5921,16 +6066,16 @@ static void test_draw_geometry(void) hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
- match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA"); + match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA", d3d11); todo_wine ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA"); + match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, "iDAQjgEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" - "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA"); + "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 0, 160, 160, 0xff652e89, 0, "3C4oaUZVUExYRlxCHCgcPxU4FT0UPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" @@ -5938,19 +6083,19 @@ static void test_draw_geometry(void) "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8" "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" - "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FD0VOBU/YEJcRlhMUFVG7S8A"); + "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FD0VOBU/YEJcRlhMUFVG7S8A", d3d11); todo_wine ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA"); + match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA", d3d11); todo_wine ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA"); + match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "iDAQjgEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" - "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA"); + "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 160, 160, 160, 0xff652e89, 8, "3C4obT5dSFRQTlRKGCgYRhYwFkMVNBVBFTYVPxU5FD4UOhQ9FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" @@ -5958,19 +6103,19 @@ static void test_draw_geometry(void) "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8" "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" - "PBQ8FDwUPRQ6FD4UOhQ/FTYVQRU0FUMWMBZGWEpVTVBTSltA8C8A"); + "PBQ8FDwUPRQ6FD4UOhQ/FTYVQRU0FUMWMBZGWEpVTVBTSltA8C8A", d3d11); todo_wine ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA"); + match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA", d3d11); todo_wine ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA"); + match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 0, "iDAQjgEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" - "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA"); + "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 320, 160, 160, 0xff652e89, 0, "3C4oZU5NWERgP2I9HigePBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" @@ -5978,7 +6123,7 @@ static void test_draw_geometry(void) "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8" "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" - "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZD1iP2BEWE1O6S8A"); + "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZD1iP2BEWE1O6S8A", d3d11); todo_wine ok(match, "Figure does not match.\n");
ID2D1RenderTarget_BeginDraw(rt); @@ -6015,16 +6160,16 @@ static void test_draw_geometry(void) hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
- match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA"); + match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA", d3d11); todo_wine ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA"); + match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, "iDAQjgEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" - "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA"); + "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 0, 160, 160, 0xff652e89, 16, "hDAYgwEieyh1LnAybBcIF2gWDhZkFhIWYRUWFV4WGRVbFRwVWRUeFVcVIBVVFSMUUxQmFFEVJxRP" @@ -6032,19 +6177,19 @@ static void test_draw_geometry(void) "OBQ/FTkUPhQ6FD4UOhQ+FDoUPhQ6FD0UPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8" "FDwUPBQ8FDwUPBQ8FD0UOhQ+FDoUPhQ6FD4UOhQ+FDoUPxQ4FEAUOBRAFDgUQRQ2FEIUNhRDFDQU" "RBQ0FEUUMhRGFDIURxQwFEgUMBRJFC4USxQsFEwVKhVNFSgVTxQoFFEUJhRTFCQUVRUgFVcVHhVZ" - "FRwVWxUaFV4VFhVhFhIWZBYOFmgWChZsMnAudCp6IoMBGIQw"); + "FRwVWxUaFV4VFhVhFhIWZBYOFmgWChZsMnAudCp6IoMBGIQw", d3d11); todo_wine ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA"); + match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA", d3d11); todo_wine ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA"); + match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "iDAQjgEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" - "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA"); + "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 160, 160, 160, 0xff652e89, 16, "3C4obzpjQF5EWkhXFSAVVRQkFFMUJhRRFCgUTxQqFE0VKhVMFCwUSxQuFEoULhVIFDAUSBQwFUYU" @@ -6052,19 +6197,19 @@ static void test_draw_geometry(void) "FD4UOhQ+FDoUPhQ6FD0VOxQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBU7FD0UOhQ+FDoUPhQ6FD4UOhQ+FDoUPhQ6FD8UOBRA" "FDgUQBQ4FEAUOBRBFDYUQhQ2FEIUNhRCFTQVQxQ0FEQUNBRFFDIURhQyFEYVMBVHFDAUSBUuFUkU" - "LhRLFCwUTBUrFE0UKhRPFCgUURQmFFMUJBRVSldIWUZdQWI78i8A"); + "LhRLFCwUTBUrFE0UKhRPFCgUURQmFFMUJBRVSldIWUZdQWI78i8A", d3d11); todo_wine ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA"); + match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "iGIQjgEUjAEUjgEQiGIA", d3d11); todo_wine ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA"); + match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "yGBQSGA+ZDxkPmDgYQAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 0, "iDAQjgEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEUjAEU" - "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA"); + "jAEUjAEUjAEUjAEUjAEUjAEUjAEUjgEQiDAA", d3d11); todo_wine ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 320, 160, 160, 0xff652e89, 8, "9i80ZERWUExYRV5AHCocPRY4FjwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" @@ -6072,7 +6217,7 @@ static void test_draw_geometry(void) "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8" "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" - "PBQ8FDwUPBQ8FDwUPBQ8FToVPRssG0BeRFpLUFVGYzT2LwAA"); + "PBQ8FDwUPBQ8FDwUPBQ8FToVPRssG0BeRFpLUFVGYzT2LwAA", d3d11); todo_wine ok(match, "Figure does not match.\n");
hr = ID2D1Factory_CreatePathGeometry(factory, &geometry); @@ -6158,16 +6303,16 @@ static void test_draw_geometry(void) ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); ID2D1PathGeometry_Release(geometry);
- match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, ""); + match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, ""); + match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, ""); + match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, "", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 480, 0, 160, 160, 0xff652e89, 0, "q2MKlgEKq2MA"); + match = compare_figure(surface, 480, 0, 160, 160, 0xff652e89, 0, "q2MKlgEKq2MA", d3d11); todo_wine ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "iGNQUFCIYwAA"); + match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "iGNQUFCIYwAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "qyIKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEK" @@ -6175,9 +6320,9 @@ static void test_draw_geometry(void) "lgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKQQpLCkEKSwqWAQqW" "AQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqW" "AQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqW" - "AQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQrLIwAA"); + "AQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQrLIwAA", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "4GLAAuBi"); + match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "4GLAAuBi", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 160, 160, 160, 0xff652e89, 0, "qyIKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEK" @@ -6185,7 +6330,7 @@ static void test_draw_geometry(void) "lgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKlgEKSwpBCksKQQqWAQqWAQqW" "AQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqW" "AQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqW" - "AQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQrLIwAA"); + "AQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQqWAQrLIwAA", d3d11); ok(match, "Figure does not match.\n");
match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, @@ -6195,7 +6340,7 @@ static void test_draw_geometry(void) "CnIKGgpxChwKcAocCm8KHgpuCh4KbQogCmwKIAprCiIKagoiCmkKJApoCiQKZwomCmYKJgplCigK" "ZAooCmMKKgpiCioKYQosCmAKLApfCi4KXgouCl0KMApcCjAKWwoyCloKMgpZCjQKWAo0ClcKNgpW" "CjYKVQo4ClQKOApTCjoKUgo6ClEKPApQCjwKTwo+Ck4KPgpNCkAKTApACksKQgpKCkIKSQpECkgK" - "RApHCkYKozIA"); + "RApHCkYKozIA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "ozIKRgpHCkQKSApECkkKQgpKCkIKSwpACkwKQApNCj4KTgo+Ck8KPApQCjwKUQo6ClIKOgpTCjgK" @@ -6204,7 +6349,7 @@ static void test_draw_geometry(void) "HApxChoKcgoaCnMKGAp0ChgKdQoWCnYKFgp3ChQKeAoUCnkKEgp6ChIKewoQCnwKEAp9Cg4KfgoO" "Cn8KDAqAAQoMCoEBCgoKggEKCgqDAQoICoQBCggKhQEKBgqGAQoGCocBCgQKiAEKBAqJAQoCCooB" "CgIKiwEUjAEUjQESjgESjwEQkAEQkQEOkgEOkwEMlAEMlQEKlgEKlwEImAEImQEGmgEGmwEEnAEE" - "nQECngECrycA"); + "nQECngECrycA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 0, "rycCngECnQEEnAEEmwEGmgEGmQEImAEIlwEKlgEKlQEMlAEMkwEOkgEOkQEQkAEQjwESjgESjQEU" @@ -6213,7 +6358,7 @@ static void test_draw_geometry(void) "CnIKGgpxChwKcAocCm8KHgpuCh4KbQogCmwKIAprCiIKagoiCmkKJApoCiQKZwomCmYKJgplCigK" "ZAooCmMKKgpiCioKYQosCmAKLApfCi4KXgouCl0KMApcCjAKWwoyCloKMgpZCjQKWAo0ClcKNgpW" "CjYKVQo4ClQKOApTCjoKUgo6ClEKPApQCjwKTwo+Ck4KPgpNCkAKTApACksKQgpKCkIKSQpECkgK" - "RApHWkZagzEA"); + "RApHWkZagzEA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 320, 160, 160, 0xff652e89, 0, "gzFaRlpHCkQKSApECkkKQgpKCkIKSwpACkwKQApNCj4KTgo+Ck8KPApQCjwKUQo6ClIKOgpTCjgK" @@ -6222,7 +6367,7 @@ static void test_draw_geometry(void) "HApxChoKcgoaCnMKGAp0ChgKdQoWCnYKFgp3ChQKeAoUCnkKEgp6ChIKewoQCnwKEAp9Cg4KfgoO" "Cn8KDAqAAQoMCoEBCgoKggEKCgqDAQoICoQBCggKhQEKBgqGAQoGCocBCgQKiAEKBAqJAQoCCooB" "CgIKiwEUjAEUjQESjgESjwEQkAEQkQEOkgEOkwEMlAEMlQEKlgEKlwEImAEImQEGmgEGmwEEnAEE" - "nQECngECrycA"); + "nQECngECrycA", d3d11); ok(match, "Figure does not match.\n");
set_rect(&rect, 20.0f, 80.0f, 60.0f, 240.0f); @@ -6276,7 +6421,7 @@ static void test_draw_geometry(void) "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8" "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" - "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZDxkPGQ8ZDxk3i8A"); + "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZDxkPGQ8ZDxk3i8A", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 0, 320, 160, 0xff652e89, 32, "8XYGtQIOrAIXpAIfmwIokwIwigI4gwJA+gFJ8gFR6QEzAiXhATMKJdgBMxMl0AEzGyXHATMkJb8B" @@ -6284,7 +6429,7 @@ static void test_draw_geometry(void) "M5ABJVgtmQElWCWhASVYJaEBJVgloQElWCWhASVYJaEBJVgloQElWCWhASVYJaEBJVglmQEtWCWQ" "ATNaJogBM2IlgAEzayV4M3MlbzN8JWczhAElXjONASVWM5UBJU0zngElRTOmASU8M68BJTQztgEm" "KzO/ASUkM8cBJRsz0AElEzPYASUKM+EBJQIz6QFR8gFJ+gFAgwI4igIwkwIomwIfpAIXrAIOtQIG" - "8XYA"); + "8XYA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 0, 160, 160, 320, 0xff652e89, 32, "ujEBngECnQEDnQEEmwEFmgEHmQEHmAEIlwEKlgEKlQELlAENkwENkgEOkQEQjwERjwESjQETjAEU" @@ -6303,7 +6448,7 @@ static void test_draw_geometry(void) "ZgolCmcKJQpnCiQKaQoiCmoKIQtrCiAKbAofCm0KHgtuCh0KbwocCnAKGwpyChoKcgoZCnMKGAp1" "ChcKdQoWCncKFAp4ChQKeAoTCnoKEQp7ChALewoQCn0KDgp+Cg0LfgoNCoABCgsKgQEKCgqDAQoJ" "CoMBCggKhAEKBwqGAQoGCoYBCgUKhwEKBAqJAQoDCokBCgIKigEKAQqMARSMARONARKPARGPARCR" - "AQ6SAQ2TAQ2UAQuVAQqWAQqXAQiYAQeZAQeaAQWbAQSdAQOdAQKeAQG6MQAA"); + "AQ6SAQ2TAQ2UAQuVAQqWAQqXAQiYAQeZAQeaAQWbAQSdAQOdAQKeAQG6MQAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 160, 320, 320, 0xff652e89, 64, "82ICvQIEugIHuAIJtgIKtAINsgIPsAIRrQITrAIVqQIYpwIZpgIbowIeoQIgnwIhnQIkmwImmAIp" @@ -6326,7 +6471,7 @@ static void test_draw_geometry(void) "ARQ1FeIBFTMV5AEUMRbmARQvFegBFS0V6gEUKxbsARQpFe8BFCcV8AEVJBXzARQjFfUBFCAW9wEU" "HhX5ARUcFfsBFBoV/gEUGBX/ARUWFYECFBQVhAIUEhWGAhQPFocCFQ0VigIUDBWMAhQJFY8CFAcV" "kAIVBRWSAhQDFZUCFAEVlgIpmAImmwIknQIhnwIgoQIeowIbpgIZpwIYqQIVrAITrQIRsAIPsgIN" - "tAIKtgIJuAIHugIEvQIC82IA"); + "tAIKtgIJuAIHugIEvQIC82IA", d3d11); ok(match, "Figure does not match.\n");
hr = ID2D1Factory_CreatePathGeometry(factory, &geometry); @@ -6447,7 +6592,7 @@ static void test_draw_geometry(void) "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8" "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" - "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZDxkPGQ8ZDxk3i8A"); + "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZDxkPGQ8ZDxk3i8A", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "vi5kPGQ8ZDxkPGQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" @@ -6455,7 +6600,7 @@ static void test_draw_geometry(void) "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8" "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" - "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZDxkPGQ8ZDxk3i8A"); + "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZDxkPGQ8ZDxk3i8A", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, "vi5kPGQ8ZDxkPGQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" @@ -6463,7 +6608,7 @@ static void test_draw_geometry(void) "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8" "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" - "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZDxkPGQ8ZDxk3i8A"); + "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZDxkPGQ8ZDxk3i8A", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 0, 160, 160, 0xff652e89, 0, "yC5aRlpGWjxkPGQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" @@ -6471,7 +6616,7 @@ static void test_draw_geometry(void) "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8" "FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwU" - "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZDxkPGQ8ZDxk3i8A"); + "PBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8FDwUPBQ8ZDxkPGQ8ZDxk3i8A", d3d11); ok(match, "Figure does not match.\n");
match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 64, @@ -6481,7 +6626,7 @@ static void test_draw_geometry(void) "RhQyFEYUMhRGFDIURhQyFEYUMhRGFDIURhQyFEYUMhRGFDIURhQyFEYUMhRGFDIURhQyFEYUMhRG" "FDIURRQ0FEQUNBREFDQURBQ0FEQUNBREFDQURBQ0FEQUNBREFDQURBQ0FEMUNhRCFDYUQhQ2FEIU" "NhRCFDYUQhQ2FEEUOBRAFDgUQBQ4FEAUOBRAFDgUPxQKJgoUPhQBOAEUPmI+Yj5iPSIgIjwcLBw8" - "FzYXPBJAEjsPSA86C1ALOgdYBzoDYAPdKgAA"); + "FzYXPBJAEjsPSA86C1ALOgdYBzoDYAPdKgAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 1024, "uxUBnwECngEDnQEEnAEFmwEGmwEGmgEHmQEImAEJlwEKlgELlQEMlQEMlAENkwEOkgEPkQEQkAER" @@ -6492,7 +6637,7 @@ static void test_draw_geometry(void) "RBQ0FEQUNBREFDQURBQ0FEQUNBREFDQURBQ0FEQUNRRDFDUUQxQ1FEMUNRRDFDUUQhQ2FEIUNhRC" "FDYUQhQ3FEEUNxRBFDcUQBQ4FEAUFDhAFAlDQGA/Yj5iPS0eGDwkKxU7HDUUOhY9EzkQRRI4Ck0S" "NgRVEZABEJEBD5IBDpMBDZQBDJUBDJUBC5YBCpcBCZgBCJkBB5oBBpsBBpsBBZwBBJ0BA54BAp8B" - "AbsV"); + "AbsV", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 1024, "pBYBngECnQEDnAEEmwEFmgEGmQEGmQEHmAEIlwEJlgEKlQELlAEMkwEMkwENkgEOkQEPkAEQNgRV" @@ -6503,7 +6648,7 @@ static void test_draw_geometry(void) "FDQURBQ0FEQUNBREFDQURBQ0FEQUNBREFDQUQxQ1FEMUNRRDFDUUQxQ1FEMUNRRDFDYUQhQ2FEIU" "NhRBFDcUQRQ3FEEUNxRBFDgUQDgUFEBDCRRAYD9iPmI+GB4tPRUrJDwUNRw7Ez0WOhJFEDgSTQo3" "EVUENhCQAQ+RAQ6SAQ2TAQyTAQyUAQuVAQqWAQmXAQiYAQeZAQaZAQaaAQWbAQScAQOdAQKeAQGk" - "FgAA"); + "FgAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 160, 160, 160, 0xff652e89, 64, "wCsDmQEHlQELkQEPSwJAEkgLNhc8HCwcPCIgIj1iPmI+Yj4UATgBFD4UCiYKFD8UOBRAFDgUQBQ4" @@ -6512,7 +6657,7 @@ static void test_draw_geometry(void) "FDIURhQyFEYUMhRGFDIURhQyFEYUMhRGFDIURhQyFEYUMhRGFDIURhQyFEYUMhRGFDIURhQyFEUU" "NBREFDQURBQ0FEQUNBREFDQURBQ0FEQUNBREFDQURBQ0FEQUNBRDFDYUQhQ2FEIUNhRCFDYUQhQ2" "FEIUNhRBFDgUQBQ4FEAUOBRAFDgUQBQ4FD8UCiYKFD4UATgBFD5iPmI+Yj0iICI8HCwcPBc2FzwS" - "QBI7D0gPOgtQCzoHWAc6A2AD3SoA"); + "QBI7D0gPOgtQCzoHWAc6A2AD3SoA", d3d11); ok(match, "Figure does not match.\n");
match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 64, @@ -6522,7 +6667,7 @@ static void test_draw_geometry(void) "MhRGFDIURhQyFEYUMhRGFDIURhQyFEYUMhRGFDIURhQyFEYUMhRGFDIURhQyFEYUMhRGFDIURhQz" "FEQUNBREFDQURBQ0FEQUNBREFDQURBQ0FEQUNBREFDQURBQ0FEQUNRRCFDYUQhQ2FEIUNhRCFDYU" "QhQ2FEIUNxRAFDgUQBQ4FEAUOBRAFDgUQBQ5FD4UOhQ+FDoUPhQ6FD4UOhQ+FDsUPBQ8FzYXPBws" - "HD4gICBEWE1OV0RiOHEm3SkA"); + "HD4gICBEWE1OV0RiOHEm3SkA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 1024, "zykoczhkRVhQTlpEFx4tPRUrJDwUNRw7FDwVOxQ+FDoUPhQ5FEAUOBRAFDgUQBQ4FEAUOBRBFDcU" @@ -6531,7 +6676,7 @@ static void test_draw_geometry(void) "MxRFFDMURBQ0FEQUMxRFFDMURRQzFEUUMxRFFDMURRQzFEUUMxRFFDMURRQzFEUUMxRFFDMURBQ0" "FEQUNBREFDQURBQ0FEQUNBREFDQURBQ0FEQUNBREFDQURBQ0FEMUNRRDFDUUQxQ1FEMUNRRDFDYU" "QhQ2FEIUNhRCFDYUQRQ3FEEUNxRBFDgUQBQ4FEAUOBRAFDgUQBQ5FD4UOhQ+FDsVPBQ7HDUUPCQr" - "FT0tHhdEWk5QWEVkOHMozykA"); + "FT0tHhdEWk5QWEVkOHMozykA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 1024, "6SkobThfRVNQSFpALR4XPSQrFTscNRQ7FTwUOhQ+FDoUPhQ5FEAUOBRAFDgUQBQ4FEAUNxRBFDcU" @@ -6540,7 +6685,7 @@ static void test_draw_geometry(void) "MxRFFDQURBQ0FEQUNBRFFDMURRQzFEUUMxRFFDMURRQzFEUUMxRFFDMURRQzFEUUMxRFFDQURBQ0" "FEQUNBREFDQURBQ0FEQUNBREFDQURBQ0FEQUNBREFDQURBQ1FEMUNRRDFDUUQxQ1FEMUNRRDFDUU" "QhQ2FEIUNhRCFDcUQRQ3FEEUNxRBFDcUQBQ4FEAUOBRAFDgUQBQ5FD4UOhQ+FDoUPBU7FDUcOxUr" - "JD0XHi1AWkhQU0VfOG0o6SkA"); + "JD0XHi1AWkhQU0VfOG0o6SkA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 320, 160, 160, 0xff652e89, 64, "3SkmcThiRFdOTVhGHiAgRhQsHDwXNhc8FDwUOxQ+FDoUPhQ6FD4UOhQ+FDoUPhQ5FEAUOBRAFDgU" @@ -6549,7 +6694,7 @@ static void test_draw_geometry(void) "MhRGFDIURhQyFEYUMhRGFDIURhQyFEYUMhRGFDIURhQyFEYUMhRGFDIURhQyFEYUMhRGFDIURhQz" "FEQUNBREFDQURBQ0FEQUNBREFDQURBQ0FEQUNBREFDQURBQ0FEQUNRRCFDYUQhQ2FEIUNhRCFDYU" "QhQ2FEIUNxRAFDgUQBQ4FEAUOBRAFDgUQBQ5FD4UOhQ+FDoUPhQ6FD4UOhQ+FDsUPBQ8FzYXPBws" - "HD4gICBEWE1OV0RiOHEm3SkA"); + "HD4gICBEWE1OV0RiOHEm3SkA", d3d11); ok(match, "Figure does not match.\n");
hr = ID2D1Factory_CreatePathGeometry(factory, &geometry); @@ -6628,13 +6773,13 @@ static void test_draw_geometry(void) "EgSGAQQSBIYBBBIEhgEEEgSGAQQRBIgBBBAEiAEEEASIAQQQBIkBBA4EigEEDgSLAQQMBIwBBAwE" "jQEECgSOAQQJBJABBAgEkAEFBgSSAQQGBJMBBAQElAEEBASVAQQDBJUBBAIElwEEAQSXAQiZAQeZ" "AQaaAQaaAQaaAQabAQWbAQWbAQWbAQWaAQeZAQeZAQeZAQiXAQQBBJYBBAMElQEEAwWRAQUGBY0B" - "BQwFhwEFEgSCAQUXBYABBBoFfgUYBIIBBhEFiAEUpTEA"); + "BQwFhwEFEgSCAQUXBYABBBoFfgUYBIIBBhEFiAEUpTEA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 0, 320, 160, 0xff652e89, 512, "yJIBArkCDa4CGKMCIZoCK5ECM4gCO4ECQ/gBS/EBUesBLAYl5QEsDiPeASwWIdkBLBwh0wEsISHO" "ASsgKMsBKR4vyAEnHDPIASUaNMsBIxg1mQEFMCIUN54BCygiDzijAREhIgY9qAEYGWGuAR4RXbMB" "JAhbuQGAAcABesYBc84Ba9YBTvQBP4MCOIoCNI4CM5ACMZICL5QCLZYCK5kCKJsCJ54CI6MCHq8C" - "EraSAQAA"); + "EraSAQAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 0, 160, 160, 320, 0xff652e89, 512, "xWkCmwEFmAEJlQELlAENkgEOkQEPjwESjQETjAEVigELAQqJAQsCCogBCwQKhwEKBQqGAQoGCoYB" @@ -6648,7 +6793,7 @@ static void test_draw_geometry(void) "DBUCfgwSBH4MEQV/DA4GgAEMDAiAAQ0KCYEBDAgLgQENBQ2BAQ0EDoIBDQEPgwEdgwEdgwEdgwEc" "hAEKAgQCCoUBCgYKhgEKBgqGAQoFC4YBCgUKhwEKBAqIAQoECogBCgMKiQEKAwqIAQoDCokBCgMK" "iQEKAgqJAQoCCooBCgIKiQEKAgqKAQoBCosBCgEKigEKAQqLARSMARSLARSMAROMARONARKOARGO" - "ARGPARCQAQ6RAQ2YAQTEZAAA"); + "ARGPARCQAQ6RAQ2YAQTEZAAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 160, 320, 320, 0xff652e89, 1024, "ytABA7gCCbICD60CFKkCF6cCGqMCHqACIZ0CJJoCJpgCKZUCFgIUkgIWBBWPAhYHFI4CFQoUjAIV" @@ -6663,7 +6808,7 @@ static void test_draw_geometry(void) "qAIYKwP7ARgnBf0BGCMI/QEZHgz+ARgbD/8BGBcSgAIYEhaAAhoNGIICGggcgwIaBB+DAjyEAjyF" "AjqGAjmIAjiIAiECFIkCFAIIBBSKAhQNFIsCFAwUjAIUCxSNAhQKFI4CFAkUjwIUBxWQAhQGFZEC" "FAUVkQIUBRWRAhQFFZECFQMVkwIUAxWTAhQDFZMCFAIVlAIVARWVAiqVAimWAimWAiiYAiaZAiaZ" - "AiWaAiScAiKdAiGeAh+hAhyjAhmuAg3GxgEA"); + "AiWaAiScAiKdAiGeAh+hAhyjAhmuAg3GxgEA", d3d11); ok(match, "Figure does not match.\n");
ID2D1SolidColorBrush_Release(brush); @@ -6676,7 +6821,7 @@ static void test_draw_geometry(void) DestroyWindow(window); }
-static void test_fill_geometry(void) +static void test_fill_geometry(BOOL d3d11) { ID2D1TransformedGeometry *transformed_geometry[4]; ID2D1RectangleGeometry *rect_geometry[2]; @@ -6699,7 +6844,7 @@ static void test_fill_geometry(void) HRESULT hr; BOOL match;
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_GetFactory(rt, &factory); @@ -6735,28 +6880,28 @@ static void test_fill_geometry(void) hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
- match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 160, 160, 160, 0xff652e89, 0, "qDJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" - "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCoMgAA"); + "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCoMgAA", d3d11); ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 320, 160, 160, 0xff652e89, 8, "yjIMjwEWhwEcggEgfiR6KHYscy5xMG40azZpOGc6ZTxjPmI+YUBfQl1EXERbRlpGWUhYSFdKVkpV" "TFRMVExTTlJOUk5STlJOUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUU5STlJOUk5STlNMVExUTFVK" - "VkpXSFhIWUZaRltEXERdQl9AYT5iPmM8ZTpnOGk2azRuMHEucyx2KHokfiCCARyHARaPAQzKMgAA"); + "VkpXSFhIWUZaRltEXERdQl9AYT5iPmM8ZTpnOGk2azRuMHEucyx2KHokfiCCARyHARaPAQzKMgAA", d3d11); ok(match, "Figure does not match.\n");
ID2D1RenderTarget_BeginDraw(rt); @@ -6793,40 +6938,40 @@ static void test_fill_geometry(void) hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
- match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 0, 160, 160, 0xff652e89, 0, "szI6YURZSlROUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" - "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUU5USllEYTqzMgAA"); + "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUU5USllEYTqzMgAA", d3d11); ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 160, 160, 160, 0xff652e89, 2, "tjI0aDxhQlxGWEpVTFNOUk5RUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" - "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFOUk5TTFVKWEZcQmA+ZzS2MgAA"); + "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFOUk5TTFVKWEZcQmA+ZzS2MgAA", d3d11); ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 320, 160, 160, 0xff652e89, 0, "sDJAWkxSUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" - "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJMWkCwMgAA"); + "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFJMWkCwMgAA", d3d11); ok(match, "Figure does not match.\n");
ID2D1RenderTarget_BeginDraw(rt); @@ -6863,40 +7008,40 @@ static void test_fill_geometry(void) hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL); ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr);
- match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 0, 160, 160, 0xff652e89, 10, "yjIMjwEWhwEcggEgfiR6KHYscy5xMG40azZpOGc6ZTxjPmI+YUBfQl1EXERbRlpGWUhYSFdKVkpV" "TFRMVExTTlJOUk5STlJOUVBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUU5STlJOUk5STlNMVExUTFVK" - "VkpXSFhIWUZaRltEXERdQl9AYT5iPmM8ZTpnOGk2azRuMHEucyx2KHokfiCCARyHARaPAQzKMgAA"); + "VkpXSFhIWUZaRltEXERdQl9AYT5iPmM8ZTpnOGk2azRuMHEucyx2KHokfiCCARyHARaPAQzKMgAA", d3d11); ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 160, 160, 160, 0xff652e89, 10, "uTIucDJsNmk4ZzplPGM+YUBgQF9CXkJdRFxEW0ZaRllIWEhXSlZKVkpWSlVMVExUTFRMU05STlJO" "Uk5STlJOUk9QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFPUU5STlJOUk5STlJOU0xU" - "TFRMVExVSlZKVkpWSldIWEhZRlpGW0RcRF1CXkJfQGBAYT5jPGU6ZzhpNmwycC65MgAA"); + "TFRMVExVSlZKVkpWSldIWEhZRlpGW0RcRF1CXkJfQGBAYT5jPGU6ZzhpNmwycC65MgAA", d3d11); ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 320, 160, 160, 0xff652e89, 10, "vzIiczhhRldMUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" - "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUkxXRmA6cSS+MgAA"); + "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUkxXRmA6cSS+MgAA", d3d11); ok(match, "Figure does not match.\n");
hr = ID2D1Factory_CreatePathGeometry(factory, &geometry); @@ -6982,47 +7127,47 @@ static void test_fill_geometry(void) ok(SUCCEEDED(hr), "Failed to end draw, hr %#x.\n", hr); ID2D1PathGeometry_Release(geometry);
- match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 480, 0, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 480, 0, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n");
- match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 480, 160, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 480, 160, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n");
match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 0, "7zMCngECnQEEnAEEmwEGmgEGmQEImAEIlwEKlgEKlQEMlAEMkwEOkgEOkQEQkAEQjwESjgESjQEU" "jAEUiwEWigEWiQEYiAEYhwEahgEahQEchAEcgwEeggEegQEggAEgfyJ+In0kfCR7JnomeSh4KHcq" "dip1LHQscy5yLnEwcDBvMm4ybTRsNGs2ajZpOGg4ZzpmOmU8ZDxjPmI+YUBgQF9CXkJdRFxEW0Za" - "RllIWEhXSlZKVUxUTFNOUk5RUKgy"); + "RllIWEhXSlZKVUxUTFNOUk5RUKgy", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 0, "qDJQUU5STlNMVExVSlZKV0hYSFlGWkZbRFxEXUJeQl9AYEBhPmI+YzxkPGU6ZjpnOGg4aTZqNms0" "bDRtMm4ybzBwMHEuci5zLHQsdSp2KncoeCh5JnomeyR8JH0ifiJ/IIABIIEBHoIBHoMBHIQBHIUB" "GoYBGocBGIgBGIkBFooBFosBFIwBFI0BEo4BEo8BEJABEJEBDpIBDpMBDJQBDJUBCpYBCpcBCJgB" - "CJkBBpoBBpsBBJwBBJ0BAp4BAu8z"); + "CJkBBpoBBpsBBJwBBJ0BAp4BAu8z", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 0, "7zMCngECnQEEnAEEmwEGmgEGmQEImAEIlwEKlgEKlQEMlAEMkwEOkgEOkQEQkAEQjwESjgESjQEU" "jAEUiwEWigEWiQEYiAEYhwEahgEahQEchAEcgwEeggEegQEggAEgfyJ+In0kfCR7JnomeSh4KHcq" "dip1LHQscy5yLnEwcDBvMm4ybTRsNGs2ajZpOGg4ZzpmOmU8ZDxjPmI+YUBgQF9CXkJdRFxEW0Za" - "RllIWEhXSlZKVUxUTFNOUk5RUKgy"); + "RllIWEhXSlZKVUxUTFNOUk5RUKgy", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 320, 160, 160, 0xff652e89, 0, "qDJQUU5STlNMVExVSlZKV0hYSFlGWkZbRFxEXUJeQl9AYEBhPmI+YzxkPGU6ZjpnOGg4aTZqNms0" "bDRtMm4ybzBwMHEuci5zLHQsdSp2KncoeCh5JnomeyR8JH0ifiJ/IIABIIEBHoIBHoMBHIQBHIUB" "GoYBGocBGIgBGIkBFooBFosBFIwBFI0BEo4BEo8BEJABEJEBDpIBDpMBDJQBDJUBCpYBCpcBCJgB" - "CJkBBpoBBpsBBJwBBJ0BAp4BAu8z"); + "CJkBBpoBBpsBBJwBBJ0BAp4BAu8z", d3d11); ok(match, "Figure does not match.\n");
set_rect(&rect, 20.0f, 80.0f, 60.0f, 240.0f); @@ -7073,13 +7218,13 @@ static void test_fill_geometry(void) match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "qDJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" - "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCoMgAA"); + "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCoMgAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 0, 320, 160, 0xff652e89, 32, "sIMBA7cCDK8CFKYCHZ4CJJYCLY4CNYUCPv0BRvQBT+wBV+MBYNsBaNIBccoBecEBgQG6AYkBsQGS" "AakBmgGgAaMBmAGrAY8BtAGHAbwBfsUBfcYBfcYBfcUBfsUBfcYBfcYBfcYBfcYBfcUBfr0BhgG0" "AY8BrAGXAaMBoAGbAagBkgGwAYsBuAGCAcEBeskBcdIBadoBYOMBWOsBT/QBR/wBPoUCNowCLpUC" - "Jp0CHaYCFa4CDLcCBK+DAQAA"); + "Jp0CHaYCFa4CDLcCBK+DAQAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 0, 160, 160, 320, 0xff652e89, 32, "+D0BngEDnQEDnAEEmwEGmgEGmQEHmAEJlwEJlgELlAEMkwENkwEOkQEPkAEQkAERjgESjQETjQEU" @@ -7090,7 +7235,7 @@ static void test_fill_geometry(void) "Yj5jPWI/YT9gQF9CXkJdRFtFW0VaR1hIV0lXSlVLVExUTVJOUVBQUE9RTlNNU0xUS1ZKVklXSFlG" "WkZaRVxDXUNeQV9AYEBhPmI9Yz1kO2U6ZjpnOGg3ajVrNWs0bTJuMm4xcC9xL3Eucyx0LHUqdil3" "KXgneSZ6JXwkfCN9In8hfyCBAR6CAR6CAR2EARuFARuFARqHARiIAReJAReKARWLARSNARONARKO" - "ARGQARCQAQ+RAQ6TAQ2TAQyUAQuWAQqWAQmYAQeZAQaaAQabAQScAQOdAQOeAQH4PQAA"); + "ARGQARCQAQ+RAQ6TAQ2TAQyUAQuWAQqWAQmYAQeZAQaaAQabAQScAQOdAQOeAQH4PQAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 160, 320, 320, 0xff652e89, 32, "sXkBvgIDvAIEugIHuAIJtgILswINsgIPrwISrQITrAIVqQIYpwIapQIbowIeoQIgngIjnAIkmwIm" @@ -7105,7 +7250,7 @@ static void test_fill_geometry(void) "Aa0BkgGvAY8BsQGOAbMBjAG1AYkBuAGHAbkBhQG8AYMBvgGBAcABfsIBfcQBe8YBeMgBd8oBdM0B" "cs8BcNABbtMBbNUBatcBZ9kBZtsBY94BYd8BYOEBXeQBW+YBWOgBV+oBVewBUu8BUPABT/IBTPUB" "SvYBSPkBRvsBRP0BQf8BQIECPoMCO4YCOYcCN4oCNYwCM40CMZACL5ICLZQCKpYCKZgCJpsCJJ0C" - "Ip4CIKECHqMCHKQCGqcCGKkCFawCE60CEq8CD7ICDbMCDLUCCbgCB7oCBLwCA74CAbF5"); + "Ip4CIKECHqMCHKQCGqcCGKkCFawCE60CEq8CD7ICDbMCDLUCCbgCB7oCBLwCA74CAbF5", d3d11); ok(match, "Figure does not match.\n");
hr = ID2D1Factory_CreatePathGeometry(factory, &geometry); @@ -7223,71 +7368,71 @@ static void test_fill_geometry(void) match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "qDJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" - "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCoMgAA"); + "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCoMgAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 0, 160, 160, 0xff652e89, 0, "qDJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" - "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCoMgAA"); + "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCoMgAA", d3d11); match = compare_figure(surface, 320, 0, 160, 160, 0xff652e89, 0, "qDJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" - "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCoMgAA"); + "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCoMgAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 0, 160, 160, 0xff652e89, 0, "qDJQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ" - "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCoMgAA"); + "UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCoMgAA", d3d11); ok(match, "Figure does not match.\n");
match = compare_figure(surface, 0, 160, 160, 160, 0xff652e89, 16, "qDICTAJQB0IHUQs4C1IRLBFSGxgbUk5STlNMVExUTFRMVExVSlZKVkpWSlZKVkpXSFhIWEhYSFhI" "WEhYSFhIWEhYSFlGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZa" "RllIWEhYSFhIWEhYSFhIWEhYSFhIV0pWSlZKVkpWSlZKVUxUTFRMVExUTFNOUk5SGxgbUhEsEVIL" - "OAtRB0IHUAJMAqgy"); + "OAtRB0IHUAJMAqgy", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 160, 160, 160, 0xff652e89, 16, "qDIBSwRQAkMKUQQ5EVIIKxtTDRkmVExUTFRMVEtVS1VLVkpWSlZKVklXSVdJV0lXSVhIWEhYSFhI" "WEhYSFhIWEhYSFhIWUdZR1lHWUdZR1lHWUdZR1lHWUdZSFhIWUdZR1lHWUdZR1lHWUdZR1lHWUdZ" "SFhIWEhYSFhIWEhYSFhIWEhYSFhJV0lXSVdJV0lWSlZKVkpWS1VLVUtUTFRMVExUJhkNUxsrCFIR" - "OQRRCkMCUARLAagy"); + "OQRRCkMCUARLAagy", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 160, 160, 160, 0xff652e89, 16, "qDIESwFRCkMCUhE5BFIbKwhTJhkNVExUTFRMVUtVS1VLVUpWSlZKV0lXSVdJV0lXSVdIWEhYSFhI" "WEhYSFhIWEhYSFhIWEdZR1lHWUdZR1lHWUdZR1lHWUdYSFhIWEdZR1lHWUdZR1lHWUdZR1lHWUdY" "SFhIWEhYSFhIWEhYSFhIWEhYSFdJV0lXSVdJV0lXSlZKVkpVS1VLVUtVTFRMVExUDRkmUwgrG1IE" - "ORFSAkMKUQFLBKgy"); + "ORFSAkMKUQFLBKgy", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 160, 160, 160, 0xff652e89, 16, "qDICTAJQB0IHUQs4C1IRLBFSGxgbUk5STlNMVExUTFRMVExVSlZKVkpWSlZKVkpXSFhIWEhYSFhI" "WEhYSFhIWEhYSFlGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZa" "RllIWEhYSFhIWEhYSFhIWEhYSFhIV0pWSlZKVkpWSlZKVUxUTFRMVExUTFNOUk5SGxgbUhEsEVIL" - "OAtRB0IHUAJMAqgy"); + "OAtRB0IHUAJMAqgy", d3d11); ok(match, "Figure does not match.\n");
match = compare_figure(surface, 0, 320, 160, 160, 0xff652e89, 16, "pCwYfixuOGNCWUxSUFBQT1JOUk5STlJOUk1UTFRMVExUTFRLVkpWSlZKVkpWSlZJWEhYSFhIWEhY" "SFhIWEhYSFhIWEdaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpG" "WkdYSFhIWEhYSFhIWEhYSFhIWEhYSVZKVkpWSlZKVkpWS1RMVExUTFRMVE1STlJOUk5STlJPUFBQ" - "UkxZQmM4bix+GKQs"); + "UkxZQmM4bix+GKQs", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 320, 160, 160, 0xff652e89, 16, "liwZgQErcTllQ1xLVFBQUU9STlJNVExUTFRMVExVS1VLVUpWSlZKVkpXSVdJV0lXSVdIWEhYSFhI" "WEhYSFhIWEhYSFhIWEdZR1lHWUdZR1lHWUdZR1lHWUdZR1hIWEdZR1lHWUdZR1lHWUdZR1lHWUdZ" "R1hIWEhYSFhIWEhYSFhIWEhYSFhIV0lXSVdJV0lXSlZKVkpWSlVLVUtVTFRMVExUTFRNUk5ST1FQ" - "UFRLXENlOXErgQEZliwA"); + "UFRLXENlOXErgQEZliwA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 320, 320, 160, 160, 0xff652e89, 16, "sSwZeytrOV9DVktRUE9RTlJOUk1UTFRMVExUS1VLVUtVS1ZKVkpWSVdJV0lXSVdJV0lYSFhIWEhY" "SFhIWEhYSFhIWEhYSFlHWUdZR1lHWUdZR1lHWUdZR1lIWEhYSFlHWUdZR1lHWUdZR1lHWUdZR1lI" "WEhYSFhIWEhYSFhIWEhYSFhIWElXSVdJV0lXSVdJVkpWSlZLVUtVS1VLVExUTFRMVE1STlJOUU9Q" - "UUtWQ185ayt7GbEs"); + "UUtWQ185ayt7GbEs", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 480, 320, 160, 160, 0xff652e89, 16, "pCwYfixuOGNCWUxSUFBQT1JOUk5STlJOUk1UTFRMVExUTFRLVkpWSlZKVkpWSlZJWEhYSFhIWEhY" "SFhIWEhYSFhIWEdaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpGWkZaRlpG" "WkdYSFhIWEhYSFhIWEhYSFhIWEhYSVZKVkpWSlZKVkpWS1RMVExUTFRMVE1STlJOUk5STlJPUFBQ" - "UkxZQmM4bix+GKQs"); + "UkxZQmM4bix+GKQs", d3d11); ok(match, "Figure does not match.\n");
hr = ID2D1Factory_CreatePathGeometry(factory, &geometry); @@ -7364,12 +7509,12 @@ static void test_fill_geometry(void) "hwEZhwEZhwEZiAEYiAEYiAEYiAEYiAEXiQEXiQEXiQEXigEWigEWigEWigEWigEWigEWigEWiwEU" "jAEUjAEUjAEUjQESjgESjwEQkAEQkQEOkgENlAEMlQEKlgEKlwEImAEImQEHmQEGmwEFmwEEnQED" "nQECngECngECnwEBnwEBnwEBnwEBnwEBnwECnQEDnQEDnQEEmwEFmgEHmQEHlwELkQERjAEXhgEd" - "hAEfgwEchgEXjwEMqTEA"); + "hAEfgwEchgEXjwEMqTEA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 0, 320, 160, 0xff652e89, 32, "h58BBrYCDq0CF6QCIJwCKJMCMIwCNoUCPf8BQ/kBSPQBTu4BTe8BTPEBSfUBRvgBQf0BPYECOYUC" "NIoCMI4CK+UBAS0W/AEHIwiPAgsaBZcCEAwIngIepAIaqAIWrAITsAIRsgIPtQIMtwILugIHwAIB" - "ypwB"); + "ypwB", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 0, 160, 160, 320, 0xff652e89, 32, "wW4DnAEEmwEFmgEHmAEIlwEKlQELlAEMkwEOkQEPkAEQkAERjgESjgETjAEUjAEUiwEWigEWiQEX" @@ -7380,7 +7525,7 @@ static void test_fill_geometry(void) "lwEKlwEJmAEImQEHmgEGmwEFnAEEnQEEnQEDnQEDngECngEDngECngECnwECngECnwECngECngED" "ngECEgGLAQMQAosBAw4EjAEDCwaMAQQJBo0BBQYIjQEHAgqNARKOARKPARCQARCQARCQAQ+RAQ6S" "AQ6SAQ2TAQ2SAQ2TAQ2TAQyTAQyUAQyUAQuUAQuVAQuUAQuVAQqWAQmWAQqWAQmXAQiXAQiYAQeY" - "AQeZAQWbAQSDZwAA"); + "AQeZAQWbAQSDZwAA", d3d11); ok(match, "Figure does not match.\n"); match = compare_figure(surface, 160, 160, 320, 320, 0xff652e89, 32, "g90BBLkCCLYCC7ICDrACEa0CFKoCF6cCGqQCHKMCHqECIJ8CIpwCJJsCJpkCKJcCKZYCK5QCLZIC" @@ -7391,7 +7536,7 @@ static void test_fill_geometry(void) "Fa0CE68CEbECD7MCDrQCDLYCCrgCCbkCB7sCBrsCBbwCBbwCBL0CBL0CBL0CBL0CA70CBL0CBL0C" "BLwCBSUBlgIFIQSXAgYbCJcCBxcKmQIIEQ6ZAgoMEJoCDQUTnAIknAIjnQIingIhnwIgoAIfoQIe" "ogIdowIcpAIbpQIapQIZpgIZpgIZpwIYpwIXqAIXqAIXqQIVqgIVqgIUqwITrQISrQIRrgIQsAIO" - "sQIMswILtQIIhs4B"); + "sQIMswILtQIIhs4B", d3d11); ok(match, "Figure does not match.\n");
hr = ID2D1Factory_CreatePathGeometry(factory, &geometry); @@ -7463,13 +7608,13 @@ static void test_fill_geometry(void) ID2D1TransformedGeometry_Release(transformed_geometry[1]); ID2D1TransformedGeometry_Release(transformed_geometry[0]);
- match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "gMgB"); + match = compare_figure(surface, 0, 0, 160, 160, 0xff652e89, 0, "gMgB", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 0, 320, 160, 0xff652e89, 0, "gJAD"); + match = compare_figure(surface, 160, 0, 320, 160, 0xff652e89, 0, "gJAD", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 0, 160, 160, 320, 0xff652e89, 0, "gJAD"); + match = compare_figure(surface, 0, 160, 160, 320, 0xff652e89, 0, "gJAD", d3d11); ok(match, "Figure does not match.\n"); - match = compare_figure(surface, 160, 160, 320, 320, 0xff652e89, 0, "gKAG"); + match = compare_figure(surface, 160, 160, 320, 320, 0xff652e89, 0, "gKAG", d3d11); ok(match, "Figure does not match.\n");
ID2D1SolidColorBrush_Release(brush); @@ -7482,7 +7627,7 @@ static void test_fill_geometry(void) DestroyWindow(window); }
-static void test_gdi_interop(void) +static void test_gdi_interop(BOOL d3d11) { ID2D1GdiInteropRenderTarget *interop; D2D1_RENDER_TARGET_PROPERTIES desc; @@ -7498,7 +7643,7 @@ static void test_gdi_interop(void) RECT rect; HDC dc;
- if (!(device = create_device())) + if (!(device = create_device(d3d11))) { skip("Failed to create device, skipping tests.\n"); return; @@ -7616,7 +7761,7 @@ todo_wine IDXGIDevice_Release(device); }
-static void test_layer(void) +static void test_layer(BOOL d3d11) { ID2D1Factory *factory, *layer_factory; IDXGISwapChain *swapchain; @@ -7629,7 +7774,7 @@ static void test_layer(void) HWND window; HRESULT hr;
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_GetFactory(rt, &factory); @@ -7664,7 +7809,7 @@ static void test_layer(void) DestroyWindow(window); }
-static void test_bezier_intersect(void) +static void test_bezier_intersect(BOOL d3d11) { D2D1_POINT_2F point = {0.0f, 0.0f}; ID2D1SolidColorBrush *brush; @@ -7681,7 +7826,7 @@ static void test_bezier_intersect(void) HRESULT hr; BOOL match;
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
ID2D1RenderTarget_GetFactory(rt, &factory); @@ -7750,7 +7895,7 @@ static void test_bezier_intersect(void) "In5/ISJ+fiIjfX0jJHx8JCV7eyUmenomJ3l5Jyh4eCgpd3cpK3V2Kix0dSstc3QsLnJzLS9xci4w" "cHAwMm5vMTNtbjI0bG0zNWtrNTdpajY4aGk3OmZnOTtlZjo8ZGQ8PmJjPT9hYj5BX2BAQl5eQkRc" "XUNGWltFR1lZR0lXWEhLVVZKTVNUTE9RUk5RT1BQUk5OUlRMTFRWSkpWWUdIWFtFRVteQkNdYEBA" - "YGI+PmJlOztlaDg4aGs1NWtuMjJuci4vcXUrK3V6JiZ6fiIifoMBHR2DAYsBFRWLAZUBCwuVAQAA"); + "YGI+PmJlOztlaDg4aGs1NWtuMjJuci4vcXUrK3V6JiZ6fiIifoMBHR2DAYsBFRWLAZUBCwuVAQAA", d3d11); ok(match, "Figure does not match.\n");
hr = ID2D1Factory_CreatePathGeometry(factory, &geometry); @@ -7793,7 +7938,7 @@ static void test_bezier_intersect(void) "AaoBlwGqAZcBqwGWAasBlgGsAZUBrQGVAawBlQGtAZQBrgGUAa0BlAGuAZMBrwGTAa8BkgGwAZEB" "sQGRAbEBkAGyAZABsgGPAbMBjwG0AY4BtAGNAbUBjQG2AYwBtgGLAbgBigG4AYoBuQGJAboBhwG7" "AYcBvAGGAb0BhQG+AYQBvwGDAcABggHBAYIBwgGAAcMBf8QBfsYBfMgBe8gBesoBeMwBd80BddAB" - "c9EBcdQBb9YBbNkBatsBaN0BZeEBYuQBX+gBW+0BVvEBUvUBTvwBR4QCQIoCOZgCK6oCGQIA"); + "c9EBcdQBb9YBbNkBatsBaN0BZeEBYuQBX+gBW+0BVvEBUvUBTvwBR4QCQIoCOZgCK6oCGQIA", d3d11); ok(match, "Figure does not match.\n");
ID2D1SolidColorBrush_Release(brush); @@ -7806,7 +7951,7 @@ static void test_bezier_intersect(void) DestroyWindow(window); }
-static void test_create_device(void) +static void test_create_device(BOOL d3d11) { D2D1_CREATION_PROPERTIES properties = {0}; IDXGIDevice *d3d_device; @@ -7817,7 +7962,7 @@ static void test_create_device(void) ULONG refcount; HRESULT hr;
- if (!(d3d_device = create_device())) + if (!(d3d_device = create_device(d3d11))) { skip("Failed to create device, skipping tests.\n"); return; @@ -8049,7 +8194,7 @@ static IDXGISurface *create_surface(IDXGIDevice *dxgi_device, DXGI_FORMAT format return surface; }
-static void test_bitmap_surface(void) +static void test_bitmap_surface(BOOL d3d11) { static const struct bitmap_format_test { @@ -8099,7 +8244,7 @@ static void test_bitmap_surface(void) IWICBitmap *wic_bitmap; IWICImagingFactory *wic_factory;
- if (!init_test(&d3d_device, &window, &swapchain, &surface, &rt)) + if (!init_test(&d3d_device, &window, &swapchain, &surface, &rt, d3d11)) return;
if (FAILED(D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory1, NULL, (void **)&factory))) @@ -8297,7 +8442,7 @@ static void test_bitmap_surface(void) IDXGIDevice_Release(d3d_device); }
-static void test_device_context(void) +static void test_device_context(BOOL d3d11) { D2D1_HWND_RENDER_TARGET_PROPERTIES hwnd_rt_desc; D2D1_RENDER_TARGET_PROPERTIES rt_desc; @@ -8322,7 +8467,7 @@ static void test_device_context(void) IWICBitmap *wic_bitmap; IWICImagingFactory *wic_factory;
- if (!init_test(&d3d_device, &window, &swapchain, &surface, &rt)) + if (!init_test(&d3d_device, &window, &swapchain, &surface, &rt, d3d11)) return;
if (FAILED(D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory1, NULL, (void **)&factory))) @@ -8613,7 +8758,7 @@ static void test_skew_matrix(void) } }
-static ID2D1DeviceContext *create_device_context(ID2D1Factory1 *factory, IDXGIDevice *dxgi_device) +static ID2D1DeviceContext *create_device_context(ID2D1Factory1 *factory, IDXGIDevice *dxgi_device, BOOL d3d11) { ID2D1DeviceContext *device_context; ID2D1Device *device; @@ -8623,13 +8768,14 @@ static ID2D1DeviceContext *create_device_context(ID2D1Factory1 *factory, IDXGIDe ok(SUCCEEDED(hr), "Failed to get ID2D1Device, hr %#x.\n", hr);
hr = ID2D1Device_CreateDeviceContext(device, D2D1_DEVICE_CONTEXT_OPTIONS_NONE, &device_context); - ok(SUCCEEDED(hr), "Failed to create device context, hr %#x.\n", hr); + todo_wine_if(d3d11) ok(SUCCEEDED(hr), "Failed to create device context, hr %#x.\n", hr); ID2D1Device_Release(device);
+ if (FAILED(hr)) return NULL; return device_context; }
-static void test_command_list(void) +static void test_command_list(BOOL d3d11) { static const DWORD bitmap_data[] = { @@ -8663,7 +8809,7 @@ static void test_command_list(void) ULONG refcount; HRESULT hr;
- if (!(d3d_device = create_device())) + if (!(d3d_device = create_device(d3d11))) { skip("Failed to create device, skipping tests.\n"); return; @@ -8676,7 +8822,13 @@ static void test_command_list(void) return; }
- device_context = create_device_context(factory, d3d_device); + device_context = create_device_context(factory, d3d_device, d3d11); + if (!device_context && d3d11) + { + todo_wine win_skip("Skipping D3D11 tests.\n"); + IDXGIDevice_Release(d3d_device); + return; + } ok(device_context != NULL, "Failed to create device context.\n");
hr = ID2D1DeviceContext_CreateCommandList(device_context, &command_list); @@ -8862,7 +9014,7 @@ todo_wine ID2D1CommandList_Release(command_list);
/* List created with different context. */ - device_context2 = create_device_context(factory, d3d_device); + device_context2 = create_device_context(factory, d3d_device, d3d11); ok(device_context2 != NULL, "Failed to create device context.\n");
hr = ID2D1DeviceContext_CreateCommandList(device_context, &command_list); @@ -8999,7 +9151,7 @@ static void test_max_bitmap_size(void) ID2D1Factory_Release(factory); }
-static void test_dpi(void) +static void test_dpi(BOOL d3d11) { D2D1_BITMAP_PROPERTIES1 bitmap_desc; ID2D1DeviceContext *device_context; @@ -9034,7 +9186,7 @@ static void test_dpi(void) static const float dc_dpi_x = 120.0f, dc_dpi_y = 144.0f; unsigned int i;
- if (!init_test(&d3d_device, &window, &swapchain, &surface, &rt)) + if (!init_test(&d3d_device, &window, &swapchain, &surface, &rt, d3d11)) return; ID2D1RenderTarget_Release(rt);
@@ -9045,7 +9197,7 @@ static void test_dpi(void) return; }
- device_context = create_device_context(factory, d3d_device); + device_context = create_device_context(factory, d3d_device, d3d11); ok(!!device_context, "Failed to create device context.\n");
ID2D1DeviceContext_GetDpi(device_context, &dpi_x, &dpi_y); @@ -9218,7 +9370,7 @@ static void test_dpi(void) DestroyWindow(window); }
-static void test_wic_bitmap_format(void) +static void test_wic_bitmap_format(BOOL d3d11) { IWICImagingFactory *wic_factory; IDXGISwapChain *swapchain; @@ -9244,7 +9396,7 @@ static void test_wic_bitmap_format(void) {&GUID_WICPixelFormat32bppBGR, {DXGI_FORMAT_B8G8R8A8_UNORM, D2D1_ALPHA_MODE_IGNORE}}, };
- if (!init_test(&device, &window, &swapchain, &surface, &rt)) + if (!init_test(&device, &window, &swapchain, &surface, &rt, d3d11)) return;
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); @@ -9373,42 +9525,42 @@ START_TEST(d2d1) use_mt = FALSE; }
- queue_test(test_clip); - queue_test(test_state_block); - queue_test(test_color_brush); - queue_test(test_bitmap_brush); - queue_test(test_linear_brush); - queue_test(test_radial_brush); - queue_test(test_path_geometry); + queue_d3d1x_test(test_clip); + queue_d3d1x_test(test_state_block); + queue_d3d1x_test(test_color_brush); + queue_d3d1x_test(test_bitmap_brush); + queue_d3d1x_test(test_linear_brush); + queue_d3d1x_test(test_radial_brush); + queue_d3d1x_test(test_path_geometry); queue_test(test_rectangle_geometry); queue_test(test_rounded_rectangle_geometry); - queue_test(test_bitmap_formats); - queue_test(test_alpha_mode); - queue_test(test_shared_bitmap); - queue_test(test_bitmap_updates); - queue_test(test_opacity_brush); - queue_test(test_create_target); - queue_test(test_draw_text_layout); - queue_test(test_dc_target); - queue_test(test_hwnd_target); - queue_test(test_bitmap_target); + queue_d3d1x_test(test_bitmap_formats); + queue_d3d1x_test(test_alpha_mode); + queue_d3d1x_test(test_shared_bitmap); + queue_d3d1x_test(test_bitmap_updates); + queue_d3d1x_test(test_opacity_brush); + queue_d3d1x_test(test_create_target); + queue_d3d1x_test(test_draw_text_layout); + queue_d3d1x_test(test_dc_target); + queue_d3d1x_test(test_hwnd_target); + queue_d3d1x_test(test_bitmap_target); queue_test(test_desktop_dpi); queue_test(test_stroke_style); - queue_test(test_gradient); - queue_test(test_draw_geometry); - queue_test(test_fill_geometry); - queue_test(test_gdi_interop); - queue_test(test_layer); - queue_test(test_bezier_intersect); - queue_test(test_create_device); - queue_test(test_bitmap_surface); - queue_test(test_device_context); + queue_d3d1x_test(test_gradient); + queue_d3d1x_test(test_draw_geometry); + queue_d3d1x_test(test_fill_geometry); + queue_d3d1x_test(test_gdi_interop); + queue_d3d1x_test(test_layer); + queue_d3d1x_test(test_bezier_intersect); + queue_d3d1x_test(test_create_device); + queue_d3d1x_test(test_bitmap_surface); + queue_d3d1x_test(test_device_context); queue_test(test_invert_matrix); queue_test(test_skew_matrix); - queue_test(test_command_list); + queue_d3d1x_test(test_command_list); queue_test(test_max_bitmap_size); - queue_test(test_dpi); - queue_test(test_wic_bitmap_format); + queue_d3d1x_test(test_dpi); + queue_d3d1x_test(test_wic_bitmap_format); queue_test(test_math);
run_queued_tests();