[PATCH 4/4] d2d1/tests: Run tests using ID3D11Device too.
Rémi Bernon
rbernon at codeweavers.com
Thu Jan 7 13:43:56 CST 2021
Signed-off-by: Rémi Bernon <rbernon at 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();
--
2.29.2
More information about the wine-devel
mailing list