[PATCH 1/4] d2d1/tests: Use IDXGIDevice interface instead of ID3D10Device1.
Rémi Bernon
rbernon at codeweavers.com
Thu Jan 7 13:43:53 CST 2021
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
---
Some tests related to https://bugs.winehq.org/show_bug.cgi?id=49395,
fixing the regression will require some minimal D3DDeviceContextState
related changes that I'm trying to implement.
dlls/d2d1/tests/d2d1.c | 182 +++++++++++++++++++++++------------------
1 file changed, 103 insertions(+), 79 deletions(-)
diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c
index d571cfe8d15..ec4fb093635 100644
--- a/dlls/d2d1/tests/d2d1.c
+++ b/dlls/d2d1/tests/d2d1.c
@@ -678,7 +678,7 @@ static BOOL compare_figure(IDXGISurface *surface, unsigned int x, unsigned int y
return diff <= max_diff;
}
-static ID3D10Device1 *create_device(void)
+static ID3D10Device1 *create_d3d10_device(void)
{
ID3D10Device1 *device;
@@ -695,6 +695,25 @@ static ID3D10Device1 *create_device(void)
return NULL;
}
+static IDXGIDevice *create_device(void)
+{
+ ID3D10Device1 *d3d10_device;
+ IDXGIDevice *device;
+ HRESULT hr;
+
+ if (!(d3d10_device = create_d3d10_device()))
+ return NULL;
+
+ 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;
+
+ return device;
+}
+
static HWND create_window(void)
{
RECT r = {0, 0, 640, 480};
@@ -705,20 +724,16 @@ static HWND create_window(void)
0, 0, r.right - r.left, r.bottom - r.top, NULL, NULL, NULL, NULL);
}
-static IDXGISwapChain *create_swapchain(ID3D10Device1 *device, HWND window, BOOL windowed)
+static IDXGISwapChain *create_swapchain(IDXGIDevice *device, HWND window, BOOL windowed)
{
IDXGISwapChain *swapchain;
DXGI_SWAP_CHAIN_DESC desc;
- IDXGIDevice *dxgi_device;
IDXGIAdapter *adapter;
IDXGIFactory *factory;
HRESULT hr;
- hr = ID3D10Device1_QueryInterface(device, &IID_IDXGIDevice, (void **)&dxgi_device);
- ok(SUCCEEDED(hr), "Failed to get DXGI device, hr %#x.\n", hr);
- hr = IDXGIDevice_GetAdapter(dxgi_device, &adapter);
+ hr = IDXGIDevice_GetAdapter(device, &adapter);
ok(SUCCEEDED(hr), "Failed to get adapter, hr %#x.\n", hr);
- IDXGIDevice_Release(dxgi_device);
hr = IDXGIAdapter_GetParent(adapter, &IID_IDXGIFactory, (void **)&factory);
ok(SUCCEEDED(hr), "Failed to get factory, hr %#x.\n", hr);
IDXGIAdapter_Release(adapter);
@@ -746,6 +761,19 @@ static IDXGISwapChain *create_swapchain(ID3D10Device1 *device, HWND window, BOOL
return swapchain;
}
+static IDXGISwapChain *create_d3d10_swapchain(ID3D10Device1 *device, HWND window, BOOL windowed)
+{
+ IDXGISwapChain *swapchain;
+ IDXGIDevice *dxgi_device;
+ HRESULT hr;
+
+ hr = ID3D10Device1_QueryInterface(device, &IID_IDXGIDevice, (void **)&dxgi_device);
+ ok(SUCCEEDED(hr), "Failed to get DXGI device, hr %#x.\n", hr);
+ swapchain = create_swapchain(dxgi_device, window, windowed);
+ IDXGIDevice_Release(dxgi_device);
+ return swapchain;
+}
+
static ID2D1RenderTarget *create_render_target_desc(IDXGISurface *surface, const D2D1_RENDER_TARGET_PROPERTIES *desc)
{
ID2D1RenderTarget *render_target;
@@ -1088,7 +1116,7 @@ static void test_clip(void)
D2D1_MATRIX_3X2_F matrix;
D2D1_SIZE_U pixel_size;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
D2D1_POINT_2F point;
D2D1_COLOR_F color;
@@ -1285,7 +1313,7 @@ static void test_clip(void)
ID2D1RenderTarget_Release(rt);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -1298,7 +1326,7 @@ static void test_state_block(void)
IDXGISwapChain *swapchain;
ID2D1Factory1 *factory1;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Factory *factory;
ULONG refcount;
@@ -1559,7 +1587,7 @@ static void test_state_block(void)
ID2D1RenderTarget_Release(rt);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -1571,7 +1599,7 @@ static void test_color_brush(void)
ID2D1SolidColorBrush *brush;
IDXGISwapChain *swapchain;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
D2D1_RECT_F rect;
float opacity;
@@ -1659,7 +1687,7 @@ static void test_color_brush(void)
ID2D1RenderTarget_Release(rt);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -1677,7 +1705,7 @@ static void test_bitmap_brush(void)
ID2D1BitmapBrush1 *brush1;
ID2D1BitmapBrush *brush;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Factory *factory;
D2D1_COLOR_F color;
@@ -1958,7 +1986,7 @@ static void test_bitmap_brush(void)
ID2D1RenderTarget_Release(rt);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -1973,7 +2001,7 @@ static void test_linear_brush(void)
struct resource_readback rb;
IDXGISwapChain *swapchain;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Factory *factory;
D2D1_COLOR_F colour;
@@ -2164,7 +2192,7 @@ static void test_linear_brush(void)
ID2D1RenderTarget_Release(rt);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -2179,7 +2207,7 @@ static void test_radial_brush(void)
struct resource_readback rb;
IDXGISwapChain *swapchain;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Factory *factory;
D2D1_COLOR_F colour;
@@ -2378,7 +2406,7 @@ static void test_radial_brush(void)
ID2D1RenderTarget_Release(rt);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -2509,7 +2537,7 @@ static void test_path_geometry(void)
ID2D1Geometry *tmp_geometry;
IDXGISwapChain *swapchain;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Factory *factory;
BOOL match, contains;
@@ -3568,7 +3596,7 @@ static void test_path_geometry(void)
ok(!refcount, "Factory has %u references left.\n", refcount);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -3905,7 +3933,7 @@ static void test_bitmap_formats(void)
IDXGISwapChain *swapchain;
D2D1_SIZE_U size = {4, 4};
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Bitmap *bitmap;
unsigned int i, j;
@@ -3973,7 +4001,7 @@ static void test_bitmap_formats(void)
ID2D1RenderTarget_Release(rt);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -3985,7 +4013,7 @@ static void test_alpha_mode(void)
ID2D1BitmapBrush *bitmap_brush;
IDXGISwapChain *swapchain;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Bitmap *bitmap;
D2D1_COLOR_F color;
@@ -4202,7 +4230,7 @@ static void test_alpha_mode(void)
ID2D1RenderTarget_Release(rt);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -4216,7 +4244,7 @@ static void test_shared_bitmap(void)
ID2D1RenderTarget *rt1, *rt2, *rt3;
IDXGISurface *surface1, *surface2;
ID2D1Factory *factory1, *factory2;
- ID3D10Device1 *device1, *device2;
+ IDXGIDevice *device1, *device2;
IWICImagingFactory *wic_factory;
ID2D1Bitmap *bitmap1, *bitmap2;
DXGI_SURFACE_DESC surface_desc;
@@ -4455,8 +4483,8 @@ static void test_shared_bitmap(void)
IDXGISurface_Release(surface1);
IDXGISwapChain_Release(swapchain2);
IDXGISwapChain_Release(swapchain1);
- ID3D10Device1_Release(device2);
- ID3D10Device1_Release(device1);
+ IDXGIDevice_Release(device2);
+ IDXGIDevice_Release(device1);
DestroyWindow(window2);
DestroyWindow(window1);
CoUninitialize();
@@ -4467,7 +4495,7 @@ static void test_bitmap_updates(void)
D2D1_BITMAP_PROPERTIES bitmap_desc;
IDXGISwapChain *swapchain;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
D2D1_RECT_U dst_rect;
ID2D1Bitmap *bitmap;
@@ -4561,7 +4589,7 @@ static void test_bitmap_updates(void)
ID2D1RenderTarget_Release(rt);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -4574,7 +4602,7 @@ static void test_opacity_brush(void)
IDXGISwapChain *swapchain;
D2D1_MATRIX_3X2_F matrix;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Factory *factory;
ID2D1Bitmap *bitmap;
@@ -4742,7 +4770,7 @@ static void test_opacity_brush(void)
ok(!refcount, "Factory has %u references left.\n", refcount);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -4751,7 +4779,7 @@ static void test_create_target(void)
IDXGISwapChain *swapchain;
ID2D1Factory *factory;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
HWND window;
HRESULT hr;
@@ -4833,7 +4861,7 @@ static void test_create_target(void)
ID2D1Factory_Release(factory);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -4874,7 +4902,7 @@ static void test_draw_text_layout(void)
IDXGISwapChain *swapchain;
ID2D1Factory *factory, *factory2;
ID2D1RenderTarget *rt, *rt2;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
HWND window;
HRESULT hr;
@@ -5003,7 +5031,7 @@ todo_wine
ID2D1Factory_Release(factory2);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -5044,7 +5072,7 @@ static void test_dc_target(void)
ID2D1SolidColorBrush *brush;
ID2D1RenderTarget *rt3;
ID2D1Factory *factory;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
FLOAT dpi_x, dpi_y;
D2D1_COLOR_F color;
D2D1_SIZE_U sizeu;
@@ -5062,7 +5090,7 @@ static void test_dc_target(void)
skip("Failed to create device, skipping tests.\n");
return;
}
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory, NULL, (void **)&factory);
ok(SUCCEEDED(hr), "Failed to create factory, hr %#x.\n", hr);
@@ -5266,7 +5294,7 @@ static void test_hwnd_target(void)
ID2D1HwndRenderTarget *rt, *rt2;
ID2D1RenderTarget *rt3;
ID2D1Factory *factory;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
D2D1_SIZE_U size;
HRESULT hr;
@@ -5275,7 +5303,7 @@ static void test_hwnd_target(void)
skip("Failed to create device, skipping tests.\n");
return;
}
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory, NULL, (void **)&factory);
ok(SUCCEEDED(hr), "Failed to create factory, hr %#x.\n", hr);
@@ -5434,7 +5462,7 @@ static void test_bitmap_target(void)
D2D1_SIZE_F size, size2;
ID2D1RenderTarget *rt3;
ID2D1Factory *factory;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
float dpi[2], dpi2[2];
D2D1_COLOR_F color;
ULONG refcount;
@@ -5445,7 +5473,7 @@ static void test_bitmap_target(void)
skip("Failed to create device, skipping tests.\n");
return;
}
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory, NULL, (void **)&factory);
ok(SUCCEEDED(hr), "Failed to create factory, hr %#x.\n", hr);
@@ -5776,7 +5804,7 @@ static void test_gradient(void)
D2D1_GRADIENT_STOP stops[3], stops2[3];
IDXGISwapChain *swapchain;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
D2D1_COLOR_F color;
unsigned int i;
@@ -5824,7 +5852,7 @@ static void test_gradient(void)
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -5840,7 +5868,7 @@ static void test_draw_geometry(void)
D2D1_MATRIX_3X2_F matrix;
ID2D1GeometrySink *sink;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Factory *factory;
D2D1_POINT_2F p0, p1;
@@ -6752,7 +6780,7 @@ static void test_draw_geometry(void)
ok(!refcount, "Factory has %u references left.\n", refcount);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -6768,7 +6796,7 @@ static void test_fill_geometry(void)
D2D1_MATRIX_3X2_F matrix;
ID2D1GeometrySink *sink;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Factory *factory;
D2D1_ELLIPSE ellipse;
@@ -7566,7 +7594,7 @@ static void test_fill_geometry(void)
ok(!refcount, "Factory has %u references left.\n", refcount);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -7579,7 +7607,7 @@ static void test_gdi_interop(void)
IWICBitmap *wic_bitmap;
ID2D1RenderTarget *rt;
ID2D1Factory *factory;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
D2D1_COLOR_F color;
HRESULT hr;
BOOL match;
@@ -7701,6 +7729,7 @@ todo_wine
IWICBitmap_Release(wic_bitmap);
ID2D1Factory_Release(factory);
+ IDXGIDevice_Release(device);
}
static void test_layer(void)
@@ -7708,7 +7737,7 @@ static void test_layer(void)
ID2D1Factory *factory, *layer_factory;
IDXGISwapChain *swapchain;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Layer *layer;
D2D1_SIZE_F size;
@@ -7755,7 +7784,7 @@ static void test_layer(void)
ok(!refcount, "Factory has %u references left.\n", refcount);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
@@ -7767,7 +7796,7 @@ static void test_bezier_intersect(void)
IDXGISwapChain *swapchain;
ID2D1GeometrySink *sink;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Factory *factory;
D2D1_COLOR_F color;
@@ -7905,14 +7934,14 @@ static void test_bezier_intersect(void)
ok(!refcount, "Factory has %u references left.\n", refcount);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
static void test_create_device(void)
{
D2D1_CREATION_PROPERTIES properties = {0};
- ID3D10Device1 *d3d_device;
+ IDXGIDevice *d3d_device;
IDXGIDevice *dxgi_device;
ID2D1Factory1 *factory;
ID2D1Factory *factory2;
@@ -7929,11 +7958,11 @@ static void test_create_device(void)
if (FAILED(D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory1, NULL, (void **)&factory)))
{
win_skip("ID2D1Factory1 is not supported.\n");
- ID3D10Device1_Release(d3d_device);
+ IDXGIDevice_Release(d3d_device);
return;
}
- hr = ID3D10Device1_QueryInterface(d3d_device, &IID_IDXGIDevice, (void **)&dxgi_device);
+ hr = IDXGIDevice_QueryInterface(d3d_device, &IID_IDXGIDevice, (void **)&dxgi_device);
ok(SUCCEEDED(hr), "Failed to get IDXGIDevice interface, hr %#x.\n", hr);
hr = ID2D1Factory1_CreateDevice(factory, dxgi_device, &device);
@@ -7958,7 +7987,7 @@ static void test_create_device(void)
win_skip("D2D1CreateDevice() is unavailable.\n");
IDXGIDevice_Release(dxgi_device);
- ID3D10Device1_Release(d3d_device);
+ IDXGIDevice_Release(d3d_device);
refcount = ID2D1Factory1_Release(factory);
ok(!refcount, "Factory has %u references left.\n", refcount);
@@ -8185,7 +8214,7 @@ static void test_bitmap_surface(void)
ID2D1DeviceContext *device_context;
IDXGISurface *surface, *surface2;
D2D1_PIXEL_FORMAT pixel_format;
- ID3D10Device1 *d3d_device;
+ IDXGIDevice *d3d_device;
IDXGISwapChain *swapchain;
IDXGIDevice *dxgi_device;
ID2D1Factory1 *factory;
@@ -8211,7 +8240,7 @@ static void test_bitmap_surface(void)
if (FAILED(D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory1, NULL, (void **)&factory)))
{
win_skip("ID2D1Factory1 is not supported.\n");
- ID3D10Device1_Release(d3d_device);
+ IDXGIDevice_Release(d3d_device);
return;
}
@@ -8239,7 +8268,7 @@ static void test_bitmap_surface(void)
ID2D1RenderTarget_Release(rt);
/* Bitmap created from DXGI surface. */
- hr = ID3D10Device1_QueryInterface(d3d_device, &IID_IDXGIDevice, (void **)&dxgi_device);
+ hr = IDXGIDevice_QueryInterface(d3d_device, &IID_IDXGIDevice, (void **)&dxgi_device);
ok(SUCCEEDED(hr), "Failed to get IDXGIDevice interface, hr %#x.\n", hr);
hr = ID2D1Factory1_CreateDevice(factory, dxgi_device, &device);
@@ -8408,7 +8437,7 @@ static void test_bitmap_surface(void)
CoUninitialize();
ID2D1Factory1_Release(factory);
- ID3D10Device1_Release(d3d_device);
+ IDXGIDevice_Release(d3d_device);
}
static void test_device_context(void)
@@ -8420,7 +8449,7 @@ static void test_device_context(void)
ID2D1Device *device, *device2;
D2D1_BITMAP_OPTIONS options;
ID2D1DCRenderTarget *dc_rt;
- ID3D10Device1 *d3d_device;
+ IDXGIDevice *d3d_device;
IDXGISwapChain *swapchain;
IDXGIDevice *dxgi_device;
D2D1_UNIT_MODE unit_mode;
@@ -8445,11 +8474,11 @@ static void test_device_context(void)
if (FAILED(D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory1, NULL, (void **)&factory)))
{
win_skip("ID2D1Factory1 is not supported.\n");
- ID3D10Device1_Release(d3d_device);
+ IDXGIDevice_Release(d3d_device);
return;
}
- hr = ID3D10Device1_QueryInterface(d3d_device, &IID_IDXGIDevice, (void **)&dxgi_device);
+ hr = IDXGIDevice_QueryInterface(d3d_device, &IID_IDXGIDevice, (void **)&dxgi_device);
ok(SUCCEEDED(hr), "Failed to get IDXGIDevice interface, hr %#x.\n", hr);
hr = ID2D1Factory1_CreateDevice(factory, dxgi_device, &device);
@@ -8614,7 +8643,7 @@ todo_wine
ID2D1Device_Release(device);
ID2D1Factory1_Release(factory);
- ID3D10Device1_Release(d3d_device);
+ IDXGIDevice_Release(d3d_device);
}
static void test_invert_matrix(void)
@@ -8738,19 +8767,14 @@ static void test_skew_matrix(void)
}
}
-static ID2D1DeviceContext *create_device_context(ID2D1Factory1 *factory, ID3D10Device1 *d3d_device)
+static ID2D1DeviceContext *create_device_context(ID2D1Factory1 *factory, IDXGIDevice *dxgi_device)
{
ID2D1DeviceContext *device_context;
- IDXGIDevice *dxgi_device;
ID2D1Device *device;
HRESULT hr;
- hr = ID3D10Device1_QueryInterface(d3d_device, &IID_IDXGIDevice, (void **)&dxgi_device);
- ok(SUCCEEDED(hr), "Failed to get IDXGIDevice interface, hr %#x.\n", hr);
-
hr = ID2D1Factory1_CreateDevice(factory, dxgi_device, &device);
ok(SUCCEEDED(hr), "Failed to get ID2D1Device, hr %#x.\n", hr);
- IDXGIDevice_Release(dxgi_device);
hr = ID2D1Device_CreateDeviceContext(device, D2D1_DEVICE_CONTEXT_OPTIONS_NONE, &device_context);
ok(SUCCEEDED(hr), "Failed to create device context, hr %#x.\n", hr);
@@ -8779,7 +8803,7 @@ static void test_command_list(void)
D2D1_BITMAP_PROPERTIES bitmap_desc;
ID2D1StrokeStyle *stroke_style;
ID2D1CommandList *command_list;
- ID3D10Device1 *d3d_device;
+ IDXGIDevice *d3d_device;
ID2D1Geometry *geometry;
ID2D1Factory1 *factory;
ID2D1RenderTarget *rt;
@@ -8802,7 +8826,7 @@ static void test_command_list(void)
if (FAILED(D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory1, NULL, (void **)&factory)))
{
win_skip("ID2D1Factory1 is not supported.\n");
- ID3D10Device1_Release(d3d_device);
+ IDXGIDevice_Release(d3d_device);
return;
}
@@ -9061,7 +9085,7 @@ static void test_max_bitmap_size(void)
}
window = create_window();
- swapchain = create_swapchain(device, window, TRUE);
+ swapchain = create_d3d10_swapchain(device, window, TRUE);
hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
@@ -9135,7 +9159,7 @@ static void test_dpi(void)
ID2D1DeviceContext *device_context;
IWICImagingFactory *wic_factory;
IDXGISwapChain *swapchain;
- ID3D10Device1 *d3d_device;
+ IDXGIDevice *d3d_device;
ID2D1Factory1 *factory;
IDXGISurface *surface;
ID2D1Bitmap1 *bitmap;
@@ -9172,7 +9196,7 @@ static void test_dpi(void)
if (FAILED(D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory1, NULL, (void **)&factory)))
{
win_skip("ID2D1Factory1 is not supported.\n");
- ID3D10Device1_Release(d3d_device);
+ IDXGIDevice_Release(d3d_device);
return;
}
@@ -9350,7 +9374,7 @@ static void test_dpi(void)
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
ID2D1Factory1_Release(factory);
- ID3D10Device1_Release(d3d_device);
+ IDXGIDevice_Release(d3d_device);
DestroyWindow(window);
}
@@ -9361,7 +9385,7 @@ static void test_wic_bitmap_format(void)
D2D1_PIXEL_FORMAT format;
IWICBitmap *wic_bitmap;
ID2D1RenderTarget *rt;
- ID3D10Device1 *device;
+ IDXGIDevice *device;
IDXGISurface *surface;
ID2D1Bitmap *bitmap;
unsigned int i;
@@ -9421,7 +9445,7 @@ static void test_wic_bitmap_format(void)
ID2D1RenderTarget_Release(rt);
IDXGISurface_Release(surface);
IDXGISwapChain_Release(swapchain);
- ID3D10Device1_Release(device);
+ IDXGIDevice_Release(device);
DestroyWindow(window);
}
--
2.29.2
More information about the wine-devel
mailing list