From 4ff6946b61a0057a523dcd8c4298e19896dba357 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Tue, 2 Aug 2016 12:26:32 +0200 Subject: [PATCH] wined3d: Use wined3d_texture_load_location() in draw_primitive(). Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/wined3d/drawprim.c | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c index 9f92851497a..e5b30db9399 100644 --- a/dlls/wined3d/drawprim.c +++ b/dlls/wined3d/drawprim.c @@ -438,21 +438,20 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s for (i = 0; i < gl_info->limits.buffers; ++i) { struct wined3d_rendertarget_view *rtv = fb->render_targets[i]; - struct wined3d_surface *target = wined3d_rendertarget_view_get_surface(rtv); + struct wined3d_texture *rt; - if (target && rtv->format->id != WINED3DFMT_NULL) + if (!rtv || rtv->format->id == WINED3DFMT_NULL) + continue; + + rt = wined3d_texture_from_resource(rtv->resource); + if (state->render_states[WINED3D_RS_COLORWRITEENABLE]) { - if (state->render_states[WINED3D_RS_COLORWRITEENABLE]) - { - surface_load_location(target, context, rtv->resource->draw_binding); - wined3d_texture_invalidate_location(target->container, - rtv->sub_resource_idx, ~rtv->resource->draw_binding); - } - else - { - wined3d_texture_prepare_location(target->container, rtv->sub_resource_idx, - context, rtv->resource->draw_binding); - } + wined3d_texture_load_location(rt, rtv->sub_resource_idx, context, rtv->resource->draw_binding); + wined3d_texture_invalidate_location(rt, rtv->sub_resource_idx, ~rtv->resource->draw_binding); + } + else + { + wined3d_texture_prepare_location(rt, rtv->sub_resource_idx, context, rtv->resource->draw_binding); } } @@ -482,7 +481,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s IntersectRect(&r, &draw_rect, ¤t_rect); if (!EqualRect(&r, &draw_rect)) - surface_load_location(ds, context, location); + wined3d_texture_load_location(ds->container, dsv->sub_resource_idx, context, location); else wined3d_texture_prepare_location(ds->container, dsv->sub_resource_idx, context, location); }