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:
parent
1fe83c0d7e
commit
bf8feb8b51
|
@ -2782,12 +2782,14 @@ static void surface_copy_simple_location(struct wined3d_surface *surface, DWORD
|
||||||
static void surface_load_sysmem(struct wined3d_surface *surface,
|
static void surface_load_sysmem(struct wined3d_surface *surface,
|
||||||
struct wined3d_context *context, DWORD dst_location)
|
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;
|
const struct wined3d_gl_info *gl_info = context->gl_info;
|
||||||
|
struct wined3d_texture *texture = surface->container;
|
||||||
struct wined3d_texture_sub_resource *sub_resource;
|
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)
|
if (sub_resource->locations & surface_simple_locations)
|
||||||
{
|
{
|
||||||
surface_copy_simple_location(surface, dst_location);
|
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. */
|
/* Download the surface to system memory. */
|
||||||
if (sub_resource->locations & (WINED3D_LOCATION_TEXTURE_RGB | WINED3D_LOCATION_TEXTURE_SRGB))
|
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,
|
wined3d_texture_bind_and_dirtify(texture, context,
|
||||||
!(sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB));
|
!(sub_resource->locations & WINED3D_LOCATION_TEXTURE_RGB));
|
||||||
surface_download_data(surface, gl_info, dst_location);
|
surface_download_data(surface, gl_info, dst_location);
|
||||||
|
|
Loading…
Reference in New Issue