[PATCH 4/8] d3d11: Handle NULL source box in d3d10_device_CopySubresourceRegion().

Henri Verbeet hverbeet at gmail.com
Wed Jan 20 06:06:01 CST 2016


On 19 January 2016 at 22:28, Józef Kucia <jkucia at codeweavers.com> wrote:
> @@ -4002,15 +4002,25 @@ HRESULT CDECL wined3d_device_copy_sub_resource_region(struct wined3d_device *dev
>      }
>      src_surface = surface_from_resource(tmp);
>
> +    if (src_box)
> +    {
> +        src_rect.left = src_box->left;
> +        src_rect.top = src_box->top;
> +        src_rect.right = src_box->right;
> +        src_rect.bottom = src_box->bottom;
> +    }
> +    else
> +    {
> +        src_rect.left = 0;
> +        src_rect.top = 0;
> +        src_rect.right = src_surface->resource.width;
> +        src_rect.bottom = src_surface->resource.height;
> +    }
That's mostly what surface_get_rect() does, except that it doesn't
take a wined3d_box structure, of course. wined3d_surface_blt() can
handle a NULL src_rect though, so you don't need to do it here.

It may make sense to require callers to pass a non-NULL wined3d_box to
wined3d_texture_blt(). I think that everything that calls
wined3d_surface_blt() or wined3d_texture_blt() should have easy access
to the surface dimensions. That's a bit more involved because there
are callers outside wined3d though.



More information about the wine-devel mailing list