[PATCH 3/5] dxgi: Introduce a helper function to convert wined3d multisample info to dxgi.

Henri Verbeet hverbeet at codeweavers.com
Wed Aug 5 17:21:56 CDT 2015


---
 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 02e37ba..0991433 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 d3f2289..ea0cfe1 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 ea88567..8334283 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)
 {
-- 
2.1.4




More information about the wine-patches mailing list