From d1b4dd170a0ff97b005496e15733c014f46c4c1e Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 5 Aug 2015 05:32:57 +0200 Subject: [PATCH] Added patch to improve stubs for dxgi MakeWindowAssociation and GetWindowAssociation. --- README.md | 5 ++ debian/changelog | 2 + ...bs-for-MakeWindowAssociation-and-Get.patch | 61 +++++++++++++++++++ patches/dxgi-MakeWindowAssociation/definition | 1 + patches/patchinstall.sh | 40 ++++++++---- 5 files changed, 97 insertions(+), 12 deletions(-) create mode 100644 patches/dxgi-MakeWindowAssociation/0001-dxgi-Improve-stubs-for-MakeWindowAssociation-and-Get.patch create mode 100644 patches/dxgi-MakeWindowAssociation/definition diff --git a/README.md b/README.md index f76256e8..c1d31bc4 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,11 @@ Wine. All those differences are also documented on the Included bug fixes and improvements ----------------------------------- +**Bug fixes and features included in the next upcoming release [1]:** + +* Improve stubs for dxgi MakeWindowAssociation and GetWindowAssociation + + **Bug fixes and features in Wine Staging 1.7.48 [238]:** *Note: The following list only contains features and bug fixes which are not diff --git a/debian/changelog b/debian/changelog index 2a679888..4fd074de 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,6 @@ wine-staging (1.7.49) UNRELEASED; urgency=low + * Added patch to improve stubs for dxgi MakeWindowAssociation and + GetWindowAssociation. * Removed patch to avoid race-conditions with long running threadpool tasks (accepted upstream). * Removed patch to add support for ThreadQuerySetWin32StartAddress info class diff --git a/patches/dxgi-MakeWindowAssociation/0001-dxgi-Improve-stubs-for-MakeWindowAssociation-and-Get.patch b/patches/dxgi-MakeWindowAssociation/0001-dxgi-Improve-stubs-for-MakeWindowAssociation-and-Get.patch new file mode 100644 index 00000000..4707771f --- /dev/null +++ b/patches/dxgi-MakeWindowAssociation/0001-dxgi-Improve-stubs-for-MakeWindowAssociation-and-Get.patch @@ -0,0 +1,61 @@ +From 1833c60c709550a99efa024659eb3149204d13f5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michael=20M=C3=BCller?= +Date: Tue, 19 Aug 2014 22:47:51 +0200 +Subject: dxgi: Improve stubs for MakeWindowAssociation and + GetWindowAssociation. + +--- + dlls/dxgi/dxgi_private.h | 1 + + dlls/dxgi/factory.c | 16 ++++++++++++++-- + 2 files changed, 15 insertions(+), 2 deletions(-) + +diff --git a/dlls/dxgi/dxgi_private.h b/dlls/dxgi/dxgi_private.h +index 8703158..85c5ec1 100644 +--- a/dlls/dxgi/dxgi_private.h ++++ b/dlls/dxgi/dxgi_private.h +@@ -94,6 +94,7 @@ struct dxgi_factory + IDXGIAdapter1 **adapters; + BOOL extended; + HWND device_window; ++ HWND assoc_window; + }; + + HRESULT dxgi_factory_create(REFIID riid, void **factory, BOOL extended) DECLSPEC_HIDDEN; +diff --git a/dlls/dxgi/factory.c b/dlls/dxgi/factory.c +index a66585e..1446557 100644 +--- a/dlls/dxgi/factory.c ++++ b/dlls/dxgi/factory.c +@@ -163,16 +163,28 @@ static HRESULT STDMETHODCALLTYPE dxgi_factory_EnumAdapters(IDXGIFactory1 *iface, + + static HRESULT STDMETHODCALLTYPE dxgi_factory_MakeWindowAssociation(IDXGIFactory1 *iface, HWND window, UINT flags) + { ++ struct dxgi_factory *factory = impl_from_IDXGIFactory1(iface); ++ + FIXME("iface %p, window %p, flags %#x stub!\n", iface, window, flags); + +- return E_NOTIMPL; ++ if (!window && flags) ++ return DXGI_ERROR_INVALID_CALL; ++ ++ factory->assoc_window = window; ++ return S_OK; + } + + static HRESULT STDMETHODCALLTYPE dxgi_factory_GetWindowAssociation(IDXGIFactory1 *iface, HWND *window) + { ++ struct dxgi_factory *factory = impl_from_IDXGIFactory1(iface); ++ + FIXME("iface %p, window %p stub!\n", iface, window); + +- return E_NOTIMPL; ++ if (!window) ++ return DXGI_ERROR_INVALID_CALL; ++ ++ *window = factory->assoc_window; ++ return S_OK; + } + + static UINT dxgi_rational_to_uint(const DXGI_RATIONAL *rational) +-- +2.5.0 + diff --git a/patches/dxgi-MakeWindowAssociation/definition b/patches/dxgi-MakeWindowAssociation/definition new file mode 100644 index 00000000..1f430dc7 --- /dev/null +++ b/patches/dxgi-MakeWindowAssociation/definition @@ -0,0 +1 @@ +Fixes: Improve stubs for dxgi MakeWindowAssociation and GetWindowAssociation diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 977123fd..926bc4e9 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -118,6 +118,7 @@ patch_enable_all () enable_dsound_EAX="$1" enable_dsound_Fast_Mixer="$1" enable_dxgi_GetDesc="$1" + enable_dxgi_MakeWindowAssociation="$1" enable_dxva2_Video_Decoder="$1" enable_fltmgr_Stub_SYS="$1" enable_fonts_Missing_Fonts="$1" @@ -431,6 +432,9 @@ patch_enable () dxgi-GetDesc) enable_dxgi_GetDesc="$2" ;; + dxgi-MakeWindowAssociation) + enable_dxgi_MakeWindowAssociation="$2" + ;; dxva2-Video_Decoder) enable_dxva2_Video_Decoder="$2" ;; @@ -2669,6 +2673,18 @@ if test "$enable_dxgi_GetDesc" -eq 1; then ) >> "$patchlist" fi +# Patchset dxgi-MakeWindowAssociation +# | +# | Modified files: +# | * dlls/dxgi/dxgi_private.h, dlls/dxgi/factory.c +# | +if test "$enable_dxgi_MakeWindowAssociation" -eq 1; then + patch_apply dxgi-MakeWindowAssociation/0001-dxgi-Improve-stubs-for-MakeWindowAssociation-and-Get.patch + ( + echo '+ { "Michael Müller", "dxgi: Improve stubs for MakeWindowAssociation and GetWindowAssociation.", 1 },'; + ) >> "$patchlist" +fi + # Patchset winecfg-Staging # | # | Modified files: @@ -4860,6 +4876,18 @@ if test "$enable_wined3d_CSMT_Helper" -eq 1; then ) >> "$patchlist" fi +# Patchset wined3d-resource_check_usage +# | +# | Modified files: +# | * dlls/wined3d/resource.c +# | +if test "$enable_wined3d_resource_check_usage" -eq 1; then + patch_apply wined3d-resource_check_usage/0001-wined3d-Silence-repeated-resource_check_usage-FIXME.patch + ( + echo '+ { "Erich E. Hoover", "wined3d: Silence repeated resource_check_usage FIXME.", 2 },'; + ) >> "$patchlist" +fi + # Patchset wined3d-wined3d_swapchain_present # | # | Modified files: @@ -4959,18 +4987,6 @@ if test "$enable_wined3d_UnhandledBlendFactor" -eq 1; then ) >> "$patchlist" fi -# Patchset wined3d-resource_check_usage -# | -# | Modified files: -# | * dlls/wined3d/resource.c -# | -if test "$enable_wined3d_resource_check_usage" -eq 1; then - patch_apply wined3d-resource_check_usage/0001-wined3d-Silence-repeated-resource_check_usage-FIXME.patch - ( - echo '+ { "Erich E. Hoover", "wined3d: Silence repeated resource_check_usage FIXME.", 2 },'; - ) >> "$patchlist" -fi - # Patchset wined3d-CSMT_Main # | # | This patchset fixes the following Wine bugs: