Henri Verbeet : wined3d: Pass a wined3d_context_gl structure to context_set_current().

Alexandre Julliard julliard at winehq.org
Mon Aug 5 14:58:34 CDT 2019


Module: wine
Branch: master
Commit: 360e1a46d8d632c7779e92962929eecd4fb2747e
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=360e1a46d8d632c7779e92962929eecd4fb2747e

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Mon Aug  5 17:57:54 2019 +0430

wined3d: Pass a wined3d_context_gl structure to context_set_current().

Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wined3d/context.c         | 29 ++++++++++++++---------------
 dlls/wined3d/wined3d_main.c    |  2 +-
 dlls/wined3d/wined3d_private.h |  2 +-
 3 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index fb39339..80124c1 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -1255,13 +1255,13 @@ static BOOL wined3d_context_gl_set_gl_context(struct wined3d_context_gl *context
         if (context_gl->c.destroyed || !swapchain)
         {
             FIXME("Unable to get backup dc for destroyed context %p.\n", context_gl);
-            context_set_current(NULL);
+            wined3d_context_gl_set_current(NULL);
             return FALSE;
         }
 
         if (!(context_gl->dc = swapchain_get_backup_dc(swapchain)))
         {
-            context_set_current(NULL);
+            wined3d_context_gl_set_current(NULL);
             return FALSE;
         }
 
@@ -1272,7 +1272,7 @@ static BOOL wined3d_context_gl_set_gl_context(struct wined3d_context_gl *context
         {
             ERR("Failed to set pixel format %d on device context %p.\n",
                     context_gl->pixel_format, context_gl->dc);
-            context_set_current(NULL);
+            wined3d_context_gl_set_current(NULL);
             return FALSE;
         }
 
@@ -1280,7 +1280,7 @@ static BOOL wined3d_context_gl_set_gl_context(struct wined3d_context_gl *context
         {
             ERR("Fallback to backup window (dc %p) failed too, last error %#x.\n",
                     context_gl->dc, GetLastError());
-            context_set_current(NULL);
+            wined3d_context_gl_set_current(NULL);
             return FALSE;
         }
 
@@ -1297,7 +1297,7 @@ static void context_restore_gl_context(const struct wined3d_gl_info *gl_info, HD
     {
         ERR("Failed to restore GL context %p on device context %p, last error %#x.\n",
                 gl_ctx, dc, GetLastError());
-        context_set_current(NULL);
+        wined3d_context_gl_set_current(NULL);
     }
 }
 
@@ -1508,13 +1508,14 @@ struct wined3d_context *context_get_current(void)
     return TlsGetValue(wined3d_context_tls_idx);
 }
 
-BOOL context_set_current(struct wined3d_context *ctx)
+BOOL wined3d_context_gl_set_current(struct wined3d_context_gl *context_gl)
 {
+    struct wined3d_context *ctx = context_gl ? &context_gl->c : NULL;
     struct wined3d_context *old = context_get_current();
 
     if (old == ctx)
     {
-        TRACE("Already using D3D context %p.\n", ctx);
+        TRACE("Already using D3D context %p.\n", context_gl);
         return TRUE;
     }
 
@@ -1532,20 +1533,18 @@ BOOL context_set_current(struct wined3d_context *ctx)
             if (wglGetCurrentContext())
             {
                 const struct wined3d_gl_info *gl_info = old->gl_info;
-                TRACE("Flushing context %p before switching to %p.\n", old, ctx);
+                TRACE("Flushing context %p before switching to %p.\n", old, context_gl);
                 gl_info->gl_ops.gl.p_glFlush();
             }
             old->current = 0;
         }
     }
 
-    if (ctx)
+    if (context_gl)
     {
-        struct wined3d_context_gl *context_gl = wined3d_context_gl(ctx);
-
         if (!context_gl->valid)
         {
-            ERR("Trying to make invalid context %p current\n", ctx);
+            ERR("Trying to make invalid context %p current.\n", context_gl);
             return FALSE;
         }
 
@@ -1553,7 +1552,7 @@ BOOL context_set_current(struct wined3d_context *ctx)
                 context_gl, context_gl->gl_ctx, context_gl->dc);
         if (!wined3d_context_gl_set_gl_context(context_gl))
             return FALSE;
-        ctx->current = 1;
+        context_gl->c.current = 1;
     }
     else if (wglGetCurrentContext())
     {
@@ -2146,7 +2145,7 @@ HRESULT wined3d_context_gl_init(struct wined3d_context_gl *context_gl, struct wi
     context_gl->needs_set = 1;
 
     /* Set up the context defaults */
-    if (!context_set_current(context))
+    if (!wined3d_context_gl_set_current(context_gl))
     {
         ERR("Cannot activate context to set up defaults.\n");
         context_release(context);
@@ -4201,7 +4200,7 @@ static void wined3d_context_gl_activate(struct wined3d_context_gl *context_gl,
 
     if (&context_gl->c != context_get_current())
     {
-        if (!context_set_current(&context_gl->c))
+        if (!wined3d_context_gl_set_current(context_gl))
             ERR("Failed to activate the new context.\n");
     }
     else if (context_gl->needs_set)
diff --git a/dlls/wined3d/wined3d_main.c b/dlls/wined3d/wined3d_main.c
index 132c978..5d60a44 100644
--- a/dlls/wined3d/wined3d_main.c
+++ b/dlls/wined3d/wined3d_main.c
@@ -820,7 +820,7 @@ BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, void *reserved)
             break;
 
         case DLL_THREAD_DETACH:
-            if (!context_set_current(NULL))
+            if (!wined3d_context_gl_set_current(NULL))
             {
                 ERR("Failed to clear current context.\n");
             }
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 38a607f..8a920b4 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -2116,6 +2116,7 @@ void *wined3d_context_gl_map_bo_address(struct wined3d_context_gl *context_gl,
         const struct wined3d_bo_address *data, size_t size, GLenum binding, DWORD flags) DECLSPEC_HIDDEN;
 struct wined3d_context_gl *wined3d_context_gl_reacquire(struct wined3d_context_gl *context_gl) DECLSPEC_HIDDEN;
 void wined3d_context_gl_release(struct wined3d_context_gl *context_gl) DECLSPEC_HIDDEN;
+BOOL wined3d_context_gl_set_current(struct wined3d_context_gl *context_gl) DECLSPEC_HIDDEN;
 void wined3d_context_gl_set_draw_buffer(struct wined3d_context_gl *context_gl, GLenum buffer) DECLSPEC_HIDDEN;
 void wined3d_context_gl_texture_update(struct wined3d_context_gl *context_gl,
         const struct wined3d_texture_gl *texture_gl) DECLSPEC_HIDDEN;
@@ -2271,7 +2272,6 @@ void context_invalidate_state(struct wined3d_context *context, DWORD state_id) D
 void context_resource_released(const struct wined3d_device *device, struct wined3d_resource *resource) DECLSPEC_HIDDEN;
 void context_restore(struct wined3d_context *context, struct wined3d_texture *texture,
         unsigned int sub_resource_idx) DECLSPEC_HIDDEN;
-BOOL context_set_current(struct wined3d_context *ctx) DECLSPEC_HIDDEN;
 void context_set_tls_idx(DWORD idx) DECLSPEC_HIDDEN;
 void context_state_drawbuf(struct wined3d_context *context,
         const struct wined3d_state *state, DWORD state_id) DECLSPEC_HIDDEN;




More information about the wine-cvs mailing list