[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."

Ken Thomases ken at codeweavers.com
Mon Nov 2 14:37:43 CST 2015


This reverts commit f3aa4812382caa459b9b612f66998c6ea8257594.
---
Includes trivial rebasing changes by Sebastian Lackner <sebastian at fds-team.de>.

 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 978f7d7..983d73f 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -815,13 +815,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)
     {
@@ -835,7 +831,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
@@ -862,7 +858,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
@@ -872,11 +868,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)
@@ -962,7 +953,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;
 
@@ -1218,8 +1208,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;
     }
 }
@@ -1652,7 +1641,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 fd7bbc8..3e9e9af 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -1191,9 +1191,8 @@ 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 update_shader_resource_bindings : 1;
-    DWORD padding : 15;
+    DWORD padding : 16;
     DWORD shader_update_mask;
     DWORD constant_update_mask;
     DWORD                   numbered_array_mask;
-- 
2.6.0




More information about the wine-patches mailing list