Module: wine Branch: master Commit: 6239db72ed4f00eb0c84105ed51fcea64b60bab3 URL: https://gitlab.winehq.org/wine/wine/-/commit/6239db72ed4f00eb0c84105ed51fcea...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Oct 18 10:23:37 2023 +0200
d2d1: Don't cast D2D1_THREADING_MODE to D2D1_FACTORY_TYPE in D2D1CreateDevice.
---
dlls/d2d1/factory.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/dlls/d2d1/factory.c b/dlls/d2d1/factory.c index fff9895e930..3b2b1f5e4ec 100644 --- a/dlls/d2d1/factory.c +++ b/dlls/d2d1/factory.c @@ -1308,6 +1308,7 @@ HRESULT WINAPI D2D1CreateDevice(IDXGIDevice *dxgi_device, { D2D1_CREATION_PROPERTIES default_properties = {0}; D2D1_FACTORY_OPTIONS factory_options; + D2D1_FACTORY_TYPE factory_type; ID3D11Device *d3d_device; ID2D1Factory1 *factory; HRESULT hr; @@ -1325,9 +1326,20 @@ HRESULT WINAPI D2D1CreateDevice(IDXGIDevice *dxgi_device, properties = &default_properties; }
+ switch (properties->threadingMode) + { + case D2D1_THREADING_MODE_SINGLE_THREADED: + factory_type = D2D1_FACTORY_TYPE_SINGLE_THREADED; + break; + case D2D1_THREADING_MODE_MULTI_THREADED: + factory_type = D2D1_FACTORY_TYPE_MULTI_THREADED; + break; + default: + return E_INVALIDARG; + } + factory_options.debugLevel = properties->debugLevel; - if (FAILED(hr = D2D1CreateFactory(properties->threadingMode, - &IID_ID2D1Factory1, &factory_options, (void **)&factory))) + if (FAILED(hr = D2D1CreateFactory(factory_type, &IID_ID2D1Factory1, &factory_options, (void **)&factory))) return hr;
hr = ID2D1Factory1_CreateDevice(factory, dxgi_device, device);