[PATCH 3/5] wined3d: Remove no longer needed output parameter in wined3d_swapchain_state_set_fullscreen().

Zhiyi Zhang zzhang at codeweavers.com
Fri May 15 02:46:14 CDT 2020


struct wined3d_swapchain_desc has already specified a output parameter now.

Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
---
 dlls/dxgi/swapchain.c       | 14 +++++---------
 dlls/wined3d/device.c       | 11 ++---------
 dlls/wined3d/swapchain.c    | 17 +++++++++--------
 dlls/wined3d/wined3d.spec   |  2 +-
 dlls/wined3d/wined3d_main.c |  3 +--
 include/wine/wined3d.h      |  3 +--
 6 files changed, 19 insertions(+), 31 deletions(-)

diff --git a/dlls/dxgi/swapchain.c b/dlls/dxgi/swapchain.c
index e16eb86a701..e2757b5f006 100644
--- a/dlls/dxgi/swapchain.c
+++ b/dlls/dxgi/swapchain.c
@@ -160,16 +160,12 @@ HRESULT dxgi_get_output_from_window(IDXGIFactory *factory, HWND window, IDXGIOut
 }
 
 static HRESULT dxgi_swapchain_set_fullscreen_state(struct wined3d_swapchain_state *state,
-        const struct wined3d_swapchain_desc *swapchain_desc, IDXGIOutput *output)
+        const struct wined3d_swapchain_desc *swapchain_desc)
 {
-    struct dxgi_output *dxgi_output;
     HRESULT hr;
 
-    dxgi_output = unsafe_impl_from_IDXGIOutput(output);
-
     wined3d_mutex_lock();
-    hr = wined3d_swapchain_state_set_fullscreen(state, swapchain_desc,
-            dxgi_output->wined3d_output, NULL);
+    hr = wined3d_swapchain_state_set_fullscreen(state, swapchain_desc, NULL);
     wined3d_mutex_unlock();
 
     return hr;
@@ -441,7 +437,7 @@ static HRESULT STDMETHODCALLTYPE DECLSPEC_HOTPATCH d3d11_swapchain_SetFullscreen
     wined3d_swapchain_get_desc(swapchain->wined3d_swapchain, &swapchain_desc);
     swapchain_desc.output = dxgi_output->wined3d_output;
     swapchain_desc.windowed = !fullscreen;
-    hr = dxgi_swapchain_set_fullscreen_state(state, &swapchain_desc, target);
+    hr = dxgi_swapchain_set_fullscreen_state(state, &swapchain_desc);
     wined3d_mutex_unlock();
     if (FAILED(hr))
     {
@@ -897,7 +893,7 @@ HRESULT d3d11_swapchain_init(struct d3d11_swapchain *swapchain, struct dxgi_devi
             goto cleanup;
         }
 
-        if (FAILED(hr = dxgi_swapchain_set_fullscreen_state(state, desc, swapchain->target)))
+        if (FAILED(hr = dxgi_swapchain_set_fullscreen_state(state, desc)))
         {
             WARN("Failed to set fullscreen state, hr %#x.\n", hr);
             IDXGIOutput_Release(swapchain->target);
@@ -2268,7 +2264,7 @@ static HRESULT STDMETHODCALLTYPE DECLSPEC_HOTPATCH d3d12_swapchain_SetFullscreen
         goto fail;
     wined3d_mutex_lock();
     wined3d_desc.windowed = !fullscreen;
-    hr = dxgi_swapchain_set_fullscreen_state(swapchain->state, &wined3d_desc, target);
+    hr = dxgi_swapchain_set_fullscreen_state(swapchain->state, &wined3d_desc);
     wined3d_mutex_unlock();
     if (FAILED(hr))
         goto fail;
diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index ffc73bd2339..7f9b7254bd6 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -5223,7 +5223,6 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
     struct wined3d_swapchain *swapchain;
     struct wined3d_view_desc view_desc;
     BOOL backbuffer_resized, windowed;
-    struct wined3d_output *output;
     HRESULT hr = WINED3D_OK;
     unsigned int i;
 
@@ -5317,12 +5316,6 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
             || swapchain_desc->backbuffer_height != current_desc->backbuffer_height;
     windowed = current_desc->windowed;
 
-    if (!(output = wined3d_swapchain_get_output(swapchain)))
-    {
-        ERR("Failed to get output from swapchain %p.\n", swapchain);
-        return E_FAIL;
-    }
-
     if (!swapchain_desc->windowed != !windowed || swapchain->reapply_mode
             || mode || (!swapchain_desc->windowed && backbuffer_resized))
     {
@@ -5341,7 +5334,7 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
         }
 
         if (FAILED(hr = wined3d_swapchain_state_set_fullscreen(&swapchain->state,
-                swapchain_desc, output, mode)))
+                swapchain_desc, mode)))
             return hr;
 
         /* Switch from fullscreen to windowed. */
@@ -5358,7 +5351,7 @@ HRESULT CDECL wined3d_device_reset(struct wined3d_device *device,
          * the window back into the right position. Some applications
          * (Battlefield 2, Guild Wars) move it and then call Reset() to clean
          * up their mess. Guild Wars also loses the device during that. */
-        if (FAILED(hr = wined3d_output_get_desc(output, &output_desc)))
+        if (FAILED(hr = wined3d_output_get_desc(swapchain_desc->output, &output_desc)))
         {
             ERR("Failed to get output description, hr %#x.\n", hr);
             return hr;
diff --git a/dlls/wined3d/swapchain.c b/dlls/wined3d/swapchain.c
index a4929b7a5b9..0e439e1b068 100644
--- a/dlls/wined3d/swapchain.c
+++ b/dlls/wined3d/swapchain.c
@@ -1631,15 +1631,14 @@ void wined3d_swapchain_state_restore_from_fullscreen(struct wined3d_swapchain_st
 }
 
 HRESULT CDECL wined3d_swapchain_state_set_fullscreen(struct wined3d_swapchain_state *state,
-        const struct wined3d_swapchain_desc *swapchain_desc, struct wined3d_output *output,
+        const struct wined3d_swapchain_desc *swapchain_desc,
         const struct wined3d_display_mode *mode)
 {
     struct wined3d_display_mode actual_mode;
     struct wined3d_output_desc output_desc;
     HRESULT hr;
 
-    TRACE("state %p, swapchain_desc %p, output %p, mode %p.\n",
-            state, swapchain_desc, output, mode);
+    TRACE("state %p, swapchain_desc %p, mode %p.\n", state, swapchain_desc, mode);
 
     if (state->desc.flags & WINED3D_SWAPCHAIN_ALLOW_MODE_SWITCH)
     {
@@ -1654,7 +1653,7 @@ HRESULT CDECL wined3d_swapchain_state_set_fullscreen(struct wined3d_swapchain_st
                 actual_mode.width = swapchain_desc->backbuffer_width;
                 actual_mode.height = swapchain_desc->backbuffer_height;
                 actual_mode.refresh_rate = swapchain_desc->refresh_rate;
-                actual_mode.format_id = adapter_format_from_backbuffer_format(output->adapter,
+                actual_mode.format_id = adapter_format_from_backbuffer_format(swapchain_desc->output->adapter,
                         swapchain_desc->backbuffer_format);
                 actual_mode.scanline_ordering = WINED3D_SCANLINE_ORDERING_UNKNOWN;
             }
@@ -1664,7 +1663,8 @@ HRESULT CDECL wined3d_swapchain_state_set_fullscreen(struct wined3d_swapchain_st
             }
         }
 
-        if (FAILED(hr = wined3d_swapchain_state_set_display_mode(state, output, &actual_mode)))
+        if (FAILED(hr = wined3d_swapchain_state_set_display_mode(state, swapchain_desc->output,
+                &actual_mode)))
             return hr;
     }
     else
@@ -1672,7 +1672,8 @@ HRESULT CDECL wined3d_swapchain_state_set_fullscreen(struct wined3d_swapchain_st
         if (mode)
             WARN("WINED3D_SWAPCHAIN_ALLOW_MODE_SWITCH is not set, ignoring mode.\n");
 
-        if (FAILED(hr = wined3d_output_get_display_mode(output, &actual_mode, NULL)))
+        if (FAILED(hr = wined3d_output_get_display_mode(swapchain_desc->output, &actual_mode,
+                NULL)))
         {
             ERR("Failed to get display mode, hr %#x.\n", hr);
             return WINED3DERR_INVALIDCALL;
@@ -1684,7 +1685,7 @@ HRESULT CDECL wined3d_swapchain_state_set_fullscreen(struct wined3d_swapchain_st
         unsigned int width = actual_mode.width;
         unsigned int height = actual_mode.height;
 
-        if (FAILED(hr = wined3d_output_get_desc(output, &output_desc)))
+        if (FAILED(hr = wined3d_output_get_desc(swapchain_desc->output, &output_desc)))
         {
             ERR("Failed to get output description, hr %#x.\n", hr);
             return hr;
@@ -1720,7 +1721,7 @@ HRESULT CDECL wined3d_swapchain_state_set_fullscreen(struct wined3d_swapchain_st
         wined3d_swapchain_state_restore_from_fullscreen(state, state->device_window, window_rect);
     }
 
-    state->desc.output = output;
+    state->desc.output = swapchain_desc->output;
     state->desc.windowed = swapchain_desc->windowed;
 
     return WINED3D_OK;
diff --git a/dlls/wined3d/wined3d.spec b/dlls/wined3d/wined3d.spec
index a240aba555a..22b837bc4bd 100644
--- a/dlls/wined3d/wined3d.spec
+++ b/dlls/wined3d/wined3d.spec
@@ -284,7 +284,7 @@
 @ cdecl wined3d_swapchain_state_create(ptr ptr ptr)
 @ cdecl wined3d_swapchain_state_destroy(ptr)
 @ cdecl wined3d_swapchain_state_resize_target(ptr ptr ptr)
-@ cdecl wined3d_swapchain_state_set_fullscreen(ptr ptr ptr ptr)
+@ cdecl wined3d_swapchain_state_set_fullscreen(ptr ptr ptr)
 
 @ cdecl wined3d_texture_add_dirty_region(ptr long ptr)
 @ cdecl wined3d_texture_blt(ptr long ptr ptr long ptr long ptr long)
diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c
index a1fe4ac28db..ccddd755803 100644
--- a/dlls/wined3d/wined3d_main.c
+++ b/dlls/wined3d/wined3d_main.c
@@ -605,8 +605,7 @@ static LRESULT CALLBACK wined3d_hook_proc(int code, WPARAM wparam, LPARAM lparam
                 break;
             }
             swapchain_desc.output = output;
-            wined3d_swapchain_state_set_fullscreen(&swapchain->state, &swapchain_desc, output,
-                    NULL);
+            wined3d_swapchain_state_set_fullscreen(&swapchain->state, &swapchain_desc, NULL);
 
             wined3d_wndproc_mutex_unlock();
 
diff --git a/include/wine/wined3d.h b/include/wine/wined3d.h
index 381a823cfbf..75734949af6 100644
--- a/include/wine/wined3d.h
+++ b/include/wine/wined3d.h
@@ -2774,8 +2774,7 @@ void __cdecl wined3d_swapchain_state_destroy(struct wined3d_swapchain_state *sta
 HRESULT __cdecl wined3d_swapchain_state_resize_target(struct wined3d_swapchain_state *state,
         struct wined3d_output *output, const struct wined3d_display_mode *mode);
 HRESULT __cdecl wined3d_swapchain_state_set_fullscreen(struct wined3d_swapchain_state *state,
-        const struct wined3d_swapchain_desc *desc, struct wined3d_output *output,
-        const struct wined3d_display_mode *mode);
+        const struct wined3d_swapchain_desc *desc, const struct wined3d_display_mode *mode);
 
 HRESULT __cdecl wined3d_texture_add_dirty_region(struct wined3d_texture *texture,
         UINT layer, const struct wined3d_box *dirty_region);
-- 
2.25.1




More information about the wine-devel mailing list