[PATCH v2 4/6] dxgi: Implement d3d12_swapchain_GetFullscreenState() and d3d12_swapchain_SetFullscreenState().
Józef Kucia
joseph.kucia at gmail.com
Tue Jun 25 06:54:40 CDT 2019
On Mon, Jun 24, 2019 at 4:24 PM Conor McCarthy
<cmccarthy at codeweavers.com> wrote:
> static DXGI_FORMAT dxgi_format_from_vk_format(VkFormat vk_format)
> @@ -2177,17 +2181,122 @@ static HRESULT STDMETHODCALLTYPE d3d12_swapchain_GetBuffer(IDXGISwapChain3 *ifac
> static HRESULT STDMETHODCALLTYPE DECLSPEC_HOTPATCH d3d12_swapchain_SetFullscreenState(IDXGISwapChain3 *iface,
> BOOL fullscreen, IDXGIOutput *target)
If possible, we would like to share more code with wined3d instead of
copying wined3d_swapchain_set_fullscreen() to
d3d12_swapchain_SetFullscreenState().
> +static HRESULT d3d12_swapchain_fullscreen_init(struct d3d12_swapchain *swapchain)
> +{
> + IDXGISwapChain3 *iface = &swapchain->IDXGISwapChain3_iface;
> + IDXGIOutput *output;
> + HRESULT hr;
> +
> + if (FAILED(hr = d3d12_swapchain_GetContainingOutput(iface, &output)))
> + {
> + ERR("Failed to get containing output, hr %#x.\n", hr);
> + return hr;
> + }
> +
> + if (FAILED(hr = dxgi_output_get_display_mode(output, &swapchain->original_mode)))
> + ERR("Failed to get current display mode, hr %#x.\n", hr);
> +
> + IDXGIOutput_Release(output);
> +
> + return hr;
> +}
This probably should go into d3d12_swapchain_init().
> + if(FAILED(hr = d3d12_swapchain_fullscreen_init(object)))
Coding style.
> + {
> + heap_free(object);
> + return hr;
> + }
This introduces a memory leak. All objects in d3d12_swapchain
structure are leaked.
More information about the wine-devel
mailing list