wined3d: Use wined3d_texture_prepare_location() in surface_load_sysmem().

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Stefan Dösinger 2016-04-26 17:56:02 +02:00 committed by Alexandre Julliard
parent 1fe83c0d7e
commit bf8feb8b51
1 changed files with 4 additions and 4 deletions

View File

@ -2782,12 +2782,14 @@ static void surface_copy_simple_location(struct wined3d_surface *surface, DWORD
static void surface_load_sysmem(struct wined3d_surface *surface,
struct wined3d_context *context, DWORD dst_location)
{
unsigned int sub_resource_idx = surface_get_sub_resource_idx(surface);
const struct wined3d_gl_info *gl_info = context->gl_info;
struct wined3d_texture *texture = surface->container;
struct wined3d_texture_sub_resource *sub_resource;
wined3d_surface_prepare(surface, context, dst_location);
wined3d_texture_prepare_location(texture, sub_resource_idx, context, dst_location);
sub_resource = surface_get_sub_resource(surface);
sub_resource = &texture->sub_resources[sub_resource_idx];
if (sub_resource->locations & surface_simple_locations)
{
surface_copy_simple_location(surface, dst_location);
@ -2800,8 +2802,6 @@ static void surface_load_sysmem(struct wined3d_surface *surface,
/* Download the surface to system memory. */
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
{
struct wined3d_texture *texture = surface->container;
wined3d_texture_bind_and_dirtify(texture, context,
!(sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB));
surface_download_data(surface, gl_info, dst_location);