From d29f263c79b5cccc659304bc396bd860c4ccd534 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Thu, 6 Aug 2015 00:21:56 +0200 Subject: [PATCH] dxgi: Introduce a helper function to convert wined3d multisample info to dxgi. --- dlls/dxgi/dxgi_private.h | 2 ++ dlls/dxgi/swapchain.c | 3 +-- dlls/dxgi/utils.c | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/dlls/dxgi/dxgi_private.h b/dlls/dxgi/dxgi_private.h index 02e37ba5455..0991433743c 100644 --- a/dlls/dxgi/dxgi_private.h +++ b/dlls/dxgi/dxgi_private.h @@ -76,6 +76,8 @@ const char *debug_dxgi_format(DXGI_FORMAT format) DECLSPEC_HIDDEN; DXGI_FORMAT dxgi_format_from_wined3dformat(enum wined3d_format_id format) DECLSPEC_HIDDEN; enum wined3d_format_id wined3dformat_from_dxgi_format(DXGI_FORMAT format) DECLSPEC_HIDDEN; +void dxgi_sample_desc_from_wined3d(DXGI_SAMPLE_DESC *desc, + enum wined3d_multisample_type wined3d_type, unsigned int wined3d_quality) DECLSPEC_HIDDEN; void wined3d_sample_desc_from_dxgi(enum wined3d_multisample_type *wined3d_type, unsigned int *wined3d_quality, const DXGI_SAMPLE_DESC *dxgi_desc) DECLSPEC_HIDDEN; HRESULT dxgi_get_private_data(struct wined3d_private_store *store, diff --git a/dlls/dxgi/swapchain.c b/dlls/dxgi/swapchain.c index d3f22890bd2..ea0cfe111e0 100644 --- a/dlls/dxgi/swapchain.c +++ b/dlls/dxgi/swapchain.c @@ -205,8 +205,7 @@ static HRESULT STDMETHODCALLTYPE dxgi_swapchain_GetDesc(IDXGISwapChain *iface, D desc->BufferDesc.Format = dxgi_format_from_wined3dformat(wined3d_desc.backbuffer_format); desc->BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED; desc->BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; - desc->SampleDesc.Count = wined3d_desc.multisample_type; - desc->SampleDesc.Quality = wined3d_desc.multisample_quality; + dxgi_sample_desc_from_wined3d(&desc->SampleDesc, wined3d_desc.multisample_type, wined3d_desc.multisample_quality); desc->BufferCount = wined3d_desc.backbuffer_count; desc->OutputWindow = wined3d_desc.device_window; desc->Windowed = wined3d_desc.windowed; diff --git a/dlls/dxgi/utils.c b/dlls/dxgi/utils.c index ea88567cb1a..8334283256c 100644 --- a/dlls/dxgi/utils.c +++ b/dlls/dxgi/utils.c @@ -325,6 +325,13 @@ enum wined3d_format_id wined3dformat_from_dxgi_format(DXGI_FORMAT format) } } +void dxgi_sample_desc_from_wined3d(DXGI_SAMPLE_DESC *desc, + enum wined3d_multisample_type wined3d_type, unsigned int wined3d_quality) +{ + desc->Count = wined3d_type == WINED3D_MULTISAMPLE_NONE ? 1 : wined3d_type; + desc->Quality = wined3d_quality; +} + void wined3d_sample_desc_from_dxgi(enum wined3d_multisample_type *wined3d_type, unsigned int *wined3d_quality, const DXGI_SAMPLE_DESC *dxgi_desc) {