Module: wine Branch: master Commit: c6168a526e967eb63be767cc35821444fe644684 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c6168a526e967eb63be767cc35...
Author: Józef Kucia jkucia@codeweavers.com Date: Wed Apr 5 15:38:04 2017 +0200
wined3d: Avoid accessing "context->current_rt" in wined3d_rendertarget_view_get_drawable_size().
Signed-off-by: Józef Kucia jkucia@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/wined3d/view.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/dlls/wined3d/view.c b/dlls/wined3d/view.c index 82fac25..f37b601 100644 --- a/dlls/wined3d/view.c +++ b/dlls/wined3d/view.c @@ -359,8 +359,8 @@ void wined3d_rendertarget_view_get_drawable_size(const struct wined3d_rendertarg /* The drawable size of an onscreen drawable is the surface size. * (Actually: The window size, but the surface is created in window * size.) */ - *width = context->current_rt.texture->resource.width; - *height = context->current_rt.texture->resource.height; + *width = texture->resource.width; + *height = texture->resource.height; } else if (wined3d_settings.offscreen_rendering_mode == ORM_BACKBUFFER) { @@ -374,13 +374,12 @@ void wined3d_rendertarget_view_get_drawable_size(const struct wined3d_rendertarg } else { - struct wined3d_surface *rt; + unsigned int level_idx = view->sub_resource_idx % texture->level_count;
/* The drawable size of an FBO target is the OpenGL texture size, * which is the power of two size. */ - rt = context->current_rt.texture->sub_resources[context->current_rt.sub_resource_idx].u.surface; - *width = wined3d_texture_get_level_pow2_width(rt->container, rt->texture_level); - *height = wined3d_texture_get_level_pow2_height(rt->container, rt->texture_level); + *width = wined3d_texture_get_level_pow2_width(texture, level_idx); + *height = wined3d_texture_get_level_pow2_height(texture, level_idx); } }