From 1eb642aaf23bfa7f13af4e9d9207e87e39b8c016 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B3zef=20Kucia?= Date: Wed, 24 May 2017 17:10:00 +0200 Subject: [PATCH] wined3d: Try harder to keep the current context. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Józef Kucia Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/wined3d/context.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index e0c51f92878..49b91866459 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -3956,6 +3956,7 @@ struct wined3d_context *context_acquire(const struct wined3d_device *device, { struct wined3d_context *current_context = context_get_current(); struct wined3d_context *context; + BOOL swapchain_texture; TRACE("device %p, texture %p, sub_resource_idx %u.\n", device, texture, sub_resource_idx); @@ -3964,6 +3965,7 @@ struct wined3d_context *context_acquire(const struct wined3d_device *device, if (current_context && current_context->destroyed) current_context = NULL; + swapchain_texture = texture && texture->swapchain; if (!texture) { if (current_context @@ -3989,7 +3991,7 @@ struct wined3d_context *context_acquire(const struct wined3d_device *device, { context = current_context; } - else if (texture->swapchain) + else if (swapchain_texture) { TRACE("Rendering onscreen.\n"); @@ -4010,7 +4012,8 @@ struct wined3d_context *context_acquire(const struct wined3d_device *device, context_enter(context); context_update_window(context); context_setup_target(context, texture, sub_resource_idx); - if (!context->valid) return context; + if (!context->valid) + return context; if (context != current_context) { -- 2.11.4.GIT