[PATCH v2 04/12] d2d1/tests: Factor test swapchain creation in d2d1_test_context.

Rémi Bernon rbernon at codeweavers.com
Tue Jan 12 05:34:44 CST 2021


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

diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c
index bc9d7f83c8d..1d18122146b 100644
--- a/dlls/d2d1/tests/d2d1.c
+++ b/dlls/d2d1/tests/d2d1.c
@@ -46,6 +46,7 @@ struct d2d1_test_context
 {
     ID3D10Device1 *device;
     HWND window;
+    IDXGISwapChain *swapchain;
 };
 
 struct resource_readback
@@ -752,6 +753,7 @@ static IDXGISwapChain *create_swapchain(ID3D10Device1 *device, HWND window, BOOL
     ok(SUCCEEDED(hr), "Failed to create swapchain, hr %#x.\n", hr);
     IDXGIFactory_Release(factory);
 
+    if (FAILED(hr)) return NULL;
     return swapchain;
 }
 
@@ -788,6 +790,7 @@ static ID2D1RenderTarget *create_render_target(IDXGISurface *surface)
 #define release_test_context(ctx) release_test_context_(__LINE__, ctx)
 static void release_test_context_(unsigned int line, struct d2d1_test_context *ctx)
 {
+    if (ctx->swapchain) IDXGISwapChain_Release(ctx->swapchain);
     if (ctx->window) DestroyWindow(ctx->window);
     ID3D10Device1_Release(ctx->device);
 }
@@ -811,6 +814,14 @@ static BOOL init_test_context_(unsigned int line, struct d2d1_test_context *ctx)
         return FALSE;
     }
 
+    ctx->swapchain = create_swapchain(ctx->device, ctx->window, TRUE);
+    ok_(__FILE__, line)(ctx->swapchain != NULL, "Failed to create test swapchain.\n");
+    if (!ctx->swapchain)
+    {
+        release_test_context(ctx);
+        return FALSE;
+    }
+
     return TRUE;
 }
 
@@ -1123,7 +1134,6 @@ static void geometry_sink_check_(unsigned int line, const struct geometry_sink *
 static void test_clip(void)
 {
     struct d2d1_test_context ctx;
-    IDXGISwapChain *swapchain;
     D2D1_MATRIX_3X2_F matrix;
     D2D1_SIZE_U pixel_size;
     ID2D1RenderTarget *rt;
@@ -1145,8 +1155,7 @@ static void test_clip(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -1318,7 +1327,6 @@ static void test_clip(void)
 
     ID2D1RenderTarget_Release(rt);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -1329,7 +1337,6 @@ static void test_state_block(void)
     D2D1_DRAWING_STATE_DESCRIPTION drawing_state;
     ID2D1DrawingStateBlock *state_block;
     IDWriteFactory *dwrite_factory;
-    IDXGISwapChain *swapchain;
     ID2D1Factory1 *factory1;
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
@@ -1358,8 +1365,7 @@ static void test_state_block(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -1587,7 +1593,6 @@ static void test_state_block(void)
     ID2D1Factory_Release(factory);
     ID2D1RenderTarget_Release(rt);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -1598,7 +1603,6 @@ static void test_color_brush(void)
     D2D1_BRUSH_PROPERTIES brush_desc;
     D2D1_COLOR_F color, tmp_color;
     ID2D1SolidColorBrush *brush;
-    IDXGISwapChain *swapchain;
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
     D2D1_RECT_F rect;
@@ -1609,8 +1613,7 @@ static void test_color_brush(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -1682,7 +1685,6 @@ static void test_color_brush(void)
     ID2D1SolidColorBrush_Release(brush);
     ID2D1RenderTarget_Release(rt);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -1697,7 +1699,6 @@ static void test_bitmap_brush(void)
     ID2D1Bitmap *bitmap, *tmp_bitmap;
     D2D1_RECT_F src_rect, dst_rect;
     D2D1_EXTEND_MODE extend_mode;
-    IDXGISwapChain *swapchain;
     ID2D1BitmapBrush1 *brush1;
     ID2D1BitmapBrush *brush;
     ID2D1RenderTarget *rt;
@@ -1743,8 +1744,7 @@ static void test_bitmap_brush(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -1976,7 +1976,6 @@ static void test_bitmap_brush(void)
     ok(!refcount, "Bitmap has %u references left.\n", refcount);
     ID2D1RenderTarget_Release(rt);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -1990,7 +1989,6 @@ static void test_linear_brush(void)
     D2D1_MATRIX_3X2_F matrix, tmp_matrix;
     ID2D1LinearGradientBrush *brush;
     struct resource_readback rb;
-    IDXGISwapChain *swapchain;
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
     ID2D1Factory *factory;
@@ -2042,8 +2040,7 @@ static void test_linear_brush(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -2177,7 +2174,6 @@ static void test_linear_brush(void)
     ok(!refcount, "Gradient has %u references left.\n", refcount);
     ID2D1RenderTarget_Release(rt);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -2191,7 +2187,6 @@ static void test_radial_brush(void)
     D2D1_MATRIX_3X2_F matrix, tmp_matrix;
     ID2D1RadialGradientBrush *brush;
     struct resource_readback rb;
-    IDXGISwapChain *swapchain;
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
     ID2D1Factory *factory;
@@ -2243,8 +2238,7 @@ static void test_radial_brush(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -2386,7 +2380,6 @@ static void test_radial_brush(void)
     ok(!refcount, "Gradient has %u references left.\n", refcount);
     ID2D1RenderTarget_Release(rt);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -2516,7 +2509,6 @@ static void test_path_geometry(void)
     ID2D1SolidColorBrush *brush;
     ID2D1PathGeometry *geometry;
     ID2D1Geometry *tmp_geometry;
-    IDXGISwapChain *swapchain;
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
     ID2D1Factory *factory;
@@ -2844,8 +2836,7 @@ static void test_path_geometry(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -3571,7 +3562,6 @@ static void test_path_geometry(void)
     refcount = ID2D1Factory_Release(factory);
     ok(!refcount, "Factory has %u references left.\n", refcount);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -3906,7 +3896,6 @@ static void test_bitmap_formats(void)
 {
     struct d2d1_test_context ctx;
     D2D1_BITMAP_PROPERTIES bitmap_desc;
-    IDXGISwapChain *swapchain;
     D2D1_SIZE_U size = {4, 4};
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
@@ -3940,8 +3929,7 @@ static void test_bitmap_formats(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -3971,7 +3959,6 @@ static void test_bitmap_formats(void)
 
     ID2D1RenderTarget_Release(rt);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -3982,7 +3969,6 @@ static void test_alpha_mode(void)
     D2D1_BITMAP_PROPERTIES bitmap_desc;
     ID2D1SolidColorBrush *color_brush;
     ID2D1BitmapBrush *bitmap_brush;
-    IDXGISwapChain *swapchain;
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
     ID2D1Bitmap *bitmap;
@@ -4004,8 +3990,7 @@ static void test_alpha_mode(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -4195,14 +4180,13 @@ static void test_alpha_mode(void)
     ID2D1BitmapBrush_Release(bitmap_brush);
     ID2D1RenderTarget_Release(rt);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
 static void test_shared_bitmap(void)
 {
     struct d2d1_test_context ctx;
-    IDXGISwapChain *swapchain1, *swapchain2;
+    IDXGISwapChain *swapchain2;
     IWICBitmap *wic_bitmap1, *wic_bitmap2;
     ID2D1GdiInteropRenderTarget *interop;
     D2D1_RENDER_TARGET_PROPERTIES desc;
@@ -4224,9 +4208,8 @@ static void test_shared_bitmap(void)
         return;
 
     window2 = create_window();
-    swapchain1 = create_swapchain(ctx.device, ctx.window, TRUE);
     swapchain2 = create_swapchain(ctx.device, window2, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain1, 0, &IID_IDXGISurface, (void **)&surface1);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface1);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     hr = IDXGISwapChain_GetBuffer(swapchain2, 0, &IID_IDXGISurface, (void **)&surface2);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
@@ -4444,7 +4427,6 @@ static void test_shared_bitmap(void)
     IDXGISurface_Release(surface2);
     IDXGISurface_Release(surface1);
     IDXGISwapChain_Release(swapchain2);
-    IDXGISwapChain_Release(swapchain1);
     ID3D10Device1_Release(device2);
     release_test_context(&ctx);
     DestroyWindow(window2);
@@ -4455,7 +4437,6 @@ static void test_bitmap_updates(void)
 {
     struct d2d1_test_context ctx;
     D2D1_BITMAP_PROPERTIES bitmap_desc;
-    IDXGISwapChain *swapchain;
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
     D2D1_RECT_U dst_rect;
@@ -4477,8 +4458,7 @@ static void test_bitmap_updates(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -4545,7 +4525,6 @@ static void test_bitmap_updates(void)
     ID2D1Bitmap_Release(bitmap);
     ID2D1RenderTarget_Release(rt);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -4556,7 +4535,6 @@ static void test_opacity_brush(void)
     D2D1_BITMAP_PROPERTIES bitmap_desc;
     ID2D1RectangleGeometry *geometry;
     ID2D1SolidColorBrush *color_brush;
-    IDXGISwapChain *swapchain;
     D2D1_MATRIX_3X2_F matrix;
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
@@ -4580,8 +4558,7 @@ static void test_opacity_brush(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -4721,14 +4698,12 @@ static void test_opacity_brush(void)
     refcount = ID2D1Factory_Release(factory);
     ok(!refcount, "Factory has %u references left.\n", refcount);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
 static void test_create_target(void)
 {
     struct d2d1_test_context ctx;
-    IDXGISwapChain *swapchain;
     ID2D1Factory *factory;
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
@@ -4753,8 +4728,7 @@ static void test_create_target(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
 
     hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory, NULL, (void **)&factory);
@@ -4807,7 +4781,6 @@ static void test_create_target(void)
 
     ID2D1Factory_Release(factory);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -4846,7 +4819,6 @@ static void test_draw_text_layout(void)
         { D2D1_TEXT_ANTIALIAS_MODE_ALIASED, DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC, E_INVALIDARG },
     };
     D2D1_RENDER_TARGET_PROPERTIES desc;
-    IDXGISwapChain *swapchain;
     ID2D1Factory *factory, *factory2;
     ID2D1RenderTarget *rt, *rt2;
     IDXGISurface *surface;
@@ -4865,8 +4837,7 @@ static void test_draw_text_layout(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
 
     hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory, NULL, (void **)&factory);
@@ -4972,7 +4943,6 @@ todo_wine
     ID2D1Factory_Release(factory);
     ID2D1Factory_Release(factory2);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -5735,7 +5705,6 @@ static void test_gradient(void)
     struct d2d1_test_context ctx;
     ID2D1GradientStopCollection *gradient;
     D2D1_GRADIENT_STOP stops[3], stops2[3];
-    IDXGISwapChain *swapchain;
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
     D2D1_COLOR_F color;
@@ -5746,8 +5715,7 @@ static void test_gradient(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -5779,7 +5747,6 @@ static void test_gradient(void)
     ID2D1RenderTarget_Release(rt);
 
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -5792,7 +5759,6 @@ static void test_draw_geometry(void)
     D2D1_ROUNDED_RECT rounded_rect;
     ID2D1SolidColorBrush *brush;
     ID2D1PathGeometry *geometry;
-    IDXGISwapChain *swapchain;
     D2D1_MATRIX_3X2_F matrix;
     ID2D1GeometrySink *sink;
     ID2D1RenderTarget *rt;
@@ -5809,8 +5775,7 @@ static void test_draw_geometry(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -6702,7 +6667,6 @@ static void test_draw_geometry(void)
     refcount = ID2D1Factory_Release(factory);
     ok(!refcount, "Factory has %u references left.\n", refcount);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -6715,7 +6679,6 @@ static void test_fill_geometry(void)
     D2D1_ROUNDED_RECT rounded_rect;
     ID2D1SolidColorBrush *brush;
     ID2D1PathGeometry *geometry;
-    IDXGISwapChain *swapchain;
     D2D1_MATRIX_3X2_F matrix;
     ID2D1GeometrySink *sink;
     ID2D1RenderTarget *rt;
@@ -6731,8 +6694,7 @@ static void test_fill_geometry(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -7511,7 +7473,6 @@ static void test_fill_geometry(void)
     refcount = ID2D1Factory_Release(factory);
     ok(!refcount, "Factory has %u references left.\n", refcount);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -7650,7 +7611,6 @@ static void test_layer(void)
 {
     struct d2d1_test_context ctx;
     ID2D1Factory *factory, *layer_factory;
-    IDXGISwapChain *swapchain;
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
     ID2D1Layer *layer;
@@ -7661,8 +7621,7 @@ static void test_layer(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -7693,7 +7652,6 @@ static void test_layer(void)
     refcount = ID2D1Factory_Release(factory);
     ok(!refcount, "Factory has %u references left.\n", refcount);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -7703,7 +7661,6 @@ static void test_bezier_intersect(void)
     D2D1_POINT_2F point = {0.0f, 0.0f};
     ID2D1SolidColorBrush *brush;
     ID2D1PathGeometry *geometry;
-    IDXGISwapChain *swapchain;
     ID2D1GeometrySink *sink;
     ID2D1RenderTarget *rt;
     IDXGISurface *surface;
@@ -7716,8 +7673,7 @@ static void test_bezier_intersect(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -7838,7 +7794,6 @@ static void test_bezier_intersect(void)
     refcount = ID2D1Factory_Release(factory);
     ok(!refcount, "Factory has %u references left.\n", refcount);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
@@ -8116,7 +8071,6 @@ static void test_bitmap_surface(void)
     ID2D1DeviceContext *device_context;
     IDXGISurface *surface, *surface2;
     D2D1_PIXEL_FORMAT pixel_format;
-    IDXGISwapChain *swapchain;
     IDXGIDevice *dxgi_device;
     ID2D1Factory1 *factory;
     ID2D1RenderTarget *rt;
@@ -8142,8 +8096,7 @@ static void test_bitmap_surface(void)
     }
 
     /* DXGI target */
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -8346,7 +8299,6 @@ static void test_device_context(void)
     ID2D1Device *device, *device2;
     D2D1_BITMAP_OPTIONS options;
     ID2D1DCRenderTarget *dc_rt;
-    IDXGISwapChain *swapchain;
     IDXGIDevice *dxgi_device;
     D2D1_UNIT_MODE unit_mode;
     ID2D1Factory1 *factory;
@@ -8394,8 +8346,7 @@ static void test_device_context(void)
     ID2D1DeviceContext_Release(device_context);
 
     /* DXGI target */
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(SUCCEEDED(hr), "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -9052,7 +9003,6 @@ static void test_dpi(void)
     D2D1_BITMAP_PROPERTIES1 bitmap_desc;
     ID2D1DeviceContext *device_context;
     IWICImagingFactory *wic_factory;
-    IDXGISwapChain *swapchain;
     ID2D1Factory1 *factory;
     IDXGISurface *surface;
     ID2D1Bitmap1 *bitmap;
@@ -9089,8 +9039,7 @@ static void test_dpi(void)
         return;
     }
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
 
     device_context = create_device_context(factory, ctx.device);
@@ -9260,7 +9209,6 @@ static void test_dpi(void)
 
     ID2D1DeviceContext_Release(device_context);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     ID2D1Factory1_Release(factory);
     release_test_context(&ctx);
 }
@@ -9269,7 +9217,6 @@ static void test_wic_bitmap_format(void)
 {
     struct d2d1_test_context ctx;
     IWICImagingFactory *wic_factory;
-    IDXGISwapChain *swapchain;
     D2D1_PIXEL_FORMAT format;
     IWICBitmap *wic_bitmap;
     ID2D1RenderTarget *rt;
@@ -9293,8 +9240,7 @@ static void test_wic_bitmap_format(void)
     if (!init_test_context(&ctx))
         return;
 
-    swapchain = create_swapchain(ctx.device, ctx.window, TRUE);
-    hr = IDXGISwapChain_GetBuffer(swapchain, 0, &IID_IDXGISurface, (void **)&surface);
+    hr = IDXGISwapChain_GetBuffer(ctx.swapchain, 0, &IID_IDXGISurface, (void **)&surface);
     ok(hr == S_OK, "Failed to get buffer, hr %#x.\n", hr);
     rt = create_render_target(surface);
     ok(!!rt, "Failed to create render target.\n");
@@ -9327,7 +9273,6 @@ static void test_wic_bitmap_format(void)
     CoUninitialize();
     ID2D1RenderTarget_Release(rt);
     IDXGISurface_Release(surface);
-    IDXGISwapChain_Release(swapchain);
     release_test_context(&ctx);
 }
 
-- 
2.29.2




More information about the wine-devel mailing list