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.