From: "Rémi Bernon" Subject: Re: [PATCH] d2d1: Use D3D11 interfaces instead of D3D10. Message-Id: <35213cfe-c642-b2f9-9eee-92f521ed3af1@codeweavers.com> Date: Thu, 25 Feb 2021 14:15:48 +0100 In-Reply-To: References: <20210224121403.3789751-1-rbernon@codeweavers.com> On 2/25/21 12:11 PM, Henri Verbeet wrote: > On Wed, 24 Feb 2021 at 13:14, Rémi Bernon wrote: >> >> And ID3DDeviceContextState instead of ID3D10StateBlock. >> >> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49395 >> Signed-off-by: Rémi Bernon >> --- >> dlls/d2d1/bitmap.c | 83 +++++---- >> dlls/d2d1/brush.c | 92 +++++----- >> dlls/d2d1/d2d1_private.h | 36 ++-- >> dlls/d2d1/dc_render_target.c | 2 +- >> dlls/d2d1/device.c | 347 +++++++++++++++++------------------ >> dlls/d2d1/tests/d2d1.c | 5 +- >> 6 files changed, 283 insertions(+), 282 deletions(-) >> > Any chance this could be split a little for > reviewability/bisectability? (E.g. converting the bitmap interfaces > first, then the brush interfaces, etc.) > I'm not sure if that'd be possible easily while keeping it correct. The D3D10 / D3D11 interfaces are supposed to be mutually exclusive and only one can be active at a time. We don't implement that in Wine yet but for several methods (not all, I think things like resource creation can be done freely) calling the other interface methods should be no-op when one is active. So to be correct we would have for instance, to first, query the device D3D11 interface, create the resources from it and use their D3D11 interfaces, and then query the resources D3D10 interface to use it for the binding. Once everything has been converted, use the D3D11 interface for the device, state swap, and bindings, and drop all the interface queries. Would it be better? -- Rémi Bernon