From: Nikolay Sivov Subject: Re: [PATCH 2/2] d2d1: Add ID2D1DeviceContext stub. Message-Id: Date: Tue, 29 May 2018 20:39:55 +0300 In-Reply-To: References: <20180526064717.14023-1-nsivov@codeweavers.com> <20180526064717.14023-2-nsivov@codeweavers.com> On Tue, 29 May 2018 at 10:01, Henri Verbeet wrote: > On 26 May 2018 at 11:17, Nikolay Sivov wrote: > > Signed-off-by: Nikolay Sivov > > --- > > dlls/d2d1/device.c | 784 ++++++++++++++++++++++++++++++++++++++++++++- > > 1 file changed, 782 insertions(+), 2 deletions(-) > > > > diff --git a/dlls/d2d1/device.c b/dlls/d2d1/device.c > > index 67b3fab906..63941dca3d 100644 > > --- a/dlls/d2d1/device.c > > +++ b/dlls/d2d1/device.c > > @@ -38,11 +38,23 @@ struct d2d_draw_text_layout_ctx > > D2D1_DRAW_TEXT_OPTIONS options; > > }; > > > > +struct d2d_device_context > > +{ > > + ID2D1DeviceContext ID2D1DeviceContext_iface; > > + LONG refcount; > > + struct d2d_device *device; > > +}; > > + > Since ID2D1DeviceContext extends ID2D1RenderTarget, should this > implementation really be separate from the d2d_d3d_render_target > implementation? > Context can render in two ways - populating command list, or rendering to a bitmap object. I was thinking we should create a dxgi target when rendering to a bitmap and forward calls to it. For command lists we don’t need to create a real target. >

On Tue, 29 May 2018 at 10:01, Henri Verbeet <hverbeet@gmail.com> wrote:
On 26 May 2018 at 11:17, Nikolay Sivov <nsivov@codeweavers.com> wrote:
> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
> ---
>  dlls/d2d1/device.c | 784 ++++++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 782 insertions(+), 2 deletions(-)
>
> diff --git a/dlls/d2d1/device.c b/dlls/d2d1/device.c
> index 67b3fab906..63941dca3d 100644
> --- a/dlls/d2d1/device.c
> +++ b/dlls/d2d1/device.c
> @@ -38,11 +38,23 @@ struct d2d_draw_text_layout_ctx
>      D2D1_DRAW_TEXT_OPTIONS options;
>  };
>
> +struct d2d_device_context
> +{
> +    ID2D1DeviceContext ID2D1DeviceContext_iface;
> +    LONG refcount;
> +    struct d2d_device *device;
> +};
> +
Since ID2D1DeviceContext extends ID2D1RenderTarget, should this
implementation really be separate from the d2d_d3d_render_target
implementation?

Context can render in two ways - populating command list, or rendering to a bitmap object. I was thinking we should create a dxgi target when rendering to a bitmap and forward calls to it. For command lists we don’t need to create a real target.