Commit 4ff6946b authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

wined3d: Use wined3d_texture_load_location() in draw_primitive().

parent 887bf435
...@@ -438,21 +438,20 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s ...@@ -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) for (i = 0; i < gl_info->limits.buffers; ++i)
{ {
struct wined3d_rendertarget_view *rtv = fb->render_targets[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_load_location(rt, rtv->sub_resource_idx, context, rtv->resource->draw_binding);
wined3d_texture_invalidate_location(target->container, wined3d_texture_invalidate_location(rt, rtv->sub_resource_idx, ~rtv->resource->draw_binding);
rtv->sub_resource_idx, ~rtv->resource->draw_binding);
} }
else else
{ {
wined3d_texture_prepare_location(target->container, rtv->sub_resource_idx, wined3d_texture_prepare_location(rt, rtv->sub_resource_idx, context, rtv->resource->draw_binding);
context, rtv->resource->draw_binding);
}
} }
} }
...@@ -482,7 +481,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s ...@@ -482,7 +481,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s
IntersectRect(&r, &draw_rect, &current_rect); IntersectRect(&r, &draw_rect, &current_rect);
if (!EqualRect(&r, &draw_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 else
wined3d_texture_prepare_location(ds->container, dsv->sub_resource_idx, context, location); wined3d_texture_prepare_location(ds->container, dsv->sub_resource_idx, context, location);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment