Henri Verbeet : wined3d: Use wined3d_texture_load_location() in draw_primitive().
Alexandre Julliard
julliard at winehq.org
Tue Aug 2 17:33:32 CDT 2016
Module: wine
Branch: master
Commit: 4ff6946b61a0057a523dcd8c4298e19896dba357
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4ff6946b61a0057a523dcd8c4298e19896dba357
Author: Henri Verbeet <hverbeet at codeweavers.com>
Date: Tue Aug 2 12:26:32 2016 +0200
wined3d: Use wined3d_texture_load_location() in draw_primitive().
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
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 9f92851..e5b30db 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);
}
More information about the wine-cvs
mailing list