From: Ken Thomases Subject: [PATCH 1/8] Revert "wined3d: Track if a context's private hdc has had its pixel format set, so we don't need to check it." Message-Id: <77AB2990-2739-4F2F-9B47-E1D2E3E9B300@codeweavers.com> Date: Sun, 14 Sep 2014 19:46:53 -0500 This reverts commit f3aa4812382caa459b9b612f66998c6ea8257594. --- dlls/wined3d/context.c | 22 +++++----------------- dlls/wined3d/wined3d_private.h | 3 +-- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index 693267e..402878d 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -800,13 +800,9 @@ static BOOL context_restore_pixel_format(struct wined3d_context *ctx) static BOOL context_set_pixel_format(struct wined3d_context *context, HDC dc, BOOL private, int format) { const struct wined3d_gl_info *gl_info = context->gl_info; - int current; + int current = GetPixelFormat(dc); - if (dc == context->hdc && context->hdc_is_private && context->hdc_has_format) - return TRUE; - - current = GetPixelFormat(dc); - if (current == format) goto success; + if (current == format) return TRUE; if (!current) { @@ -820,7 +816,7 @@ static BOOL context_set_pixel_format(struct wined3d_context *context, HDC dc, BO context->restore_pf = 0; context->restore_pf_win = private ? NULL : WindowFromDC(dc); - goto success; + return TRUE; } /* By default WGL doesn't allow pixel format adjustments but we need it @@ -847,7 +843,7 @@ static BOOL context_set_pixel_format(struct wined3d_context *context, HDC dc, BO context->restore_pf_win = win; } - goto success; + return TRUE; } /* OpenGL doesn't allow pixel format adjustments. Print an error and @@ -857,11 +853,6 @@ static BOOL context_set_pixel_format(struct wined3d_context *context, HDC dc, BO ERR("Unable to set pixel format %d on device context %p. Already using format %d.\n", format, dc, current); return TRUE; - -success: - if (dc == context->hdc && context->hdc_is_private) - context->hdc_has_format = TRUE; - return TRUE; } static BOOL context_set_gl_context(struct wined3d_context *ctx) @@ -947,7 +938,6 @@ static void context_update_window(struct wined3d_context *context) context->win_handle = context->swapchain->win_handle; context->hdc_is_private = FALSE; - context->hdc_has_format = FALSE; context->needs_set = 1; context->valid = 1; @@ -1189,8 +1179,7 @@ static void context_enter(struct wined3d_context *context) context->restore_dc = wglGetCurrentDC(); context->needs_set = 1; } - else if (!context->needs_set && !(context->hdc_is_private && context->hdc_has_format) - && context->pixel_format != GetPixelFormat(context->hdc)) + else if (!context->needs_set && context->pixel_format != GetPixelFormat(context->hdc)) context->needs_set = 1; } } @@ -1598,7 +1587,6 @@ struct wined3d_context *context_create(struct wined3d_swapchain *swapchain, ret->win_handle = swapchain->win_handle; ret->hdc = hdc; ret->hdc_is_private = hdc_is_private; - ret->hdc_has_format = TRUE; ret->pixel_format = pixel_format; ret->needs_set = 1; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index f55b118..7543583 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1102,8 +1102,7 @@ struct wined3d_context DWORD rebind_fbo : 1; DWORD needs_set : 1; DWORD hdc_is_private : 1; - DWORD hdc_has_format : 1; /* only meaningful if hdc_is_private */ - DWORD padding : 16; + DWORD padding : 17; DWORD shader_update_mask; DWORD constant_update_mask; DWORD numbered_array_mask;