diff --git a/patches/winex11-wglShareLists/0001-winex11.drv-Only-warn-about-used-contexts-in-wglShar.patch b/patches/winex11-wglShareLists/0001-winex11.drv-Only-warn-about-used-contexts-in-wglShar.patch new file mode 100644 index 00000000..dbf61d04 --- /dev/null +++ b/patches/winex11-wglShareLists/0001-winex11.drv-Only-warn-about-used-contexts-in-wglShar.patch @@ -0,0 +1,53 @@ +From c08e405870abe35e11eb3895a601da3e438bc84b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michael=20M=C3=BCller?= +Date: Sun, 28 Sep 2014 21:20:52 +0200 +Subject: [PATCH] winex11.drv: Only warn about used contexts in wglShareLists. + +--- + dlls/opengl32/tests/opengl.c | 2 +- + dlls/winex11.drv/opengl.c | 10 ++++------ + 2 files changed, 5 insertions(+), 7 deletions(-) + +diff --git a/dlls/opengl32/tests/opengl.c b/dlls/opengl32/tests/opengl.c +index 42c2626a2c2..bee429ef2ad 100644 +--- a/dlls/opengl32/tests/opengl.c ++++ b/dlls/opengl32/tests/opengl.c +@@ -564,7 +564,7 @@ static void test_sharelists(HDC winhdc) + res = wglMakeCurrent(winhdc, hglrc2); + ok(res, "Make current failed\n"); + res = wglShareLists(hglrc1, hglrc2); +- todo_wine ok(res, "Sharing display lists with a destination context which has been made current failed\n"); ++ ok(res, "Sharing display lists with a destination context which has been made current failed\n"); + wglMakeCurrent(0, 0); + wglDeleteContext(hglrc2); + } +diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c +index d7fc123bddd..eab44e76126 100644 +--- a/dlls/winex11.drv/opengl.c ++++ b/dlls/winex11.drv/opengl.c +@@ -1934,18 +1934,16 @@ static BOOL glxdrv_wglShareLists(struct wgl_context *org, struct wgl_context *de + * current or when it hasn't shared display lists before. + */ + +- if(dest->has_been_current) +- { +- ERR("Could not share display lists because the destination context has already been current\n"); +- return FALSE; +- } +- else if(dest->sharing) ++ if(dest->sharing) + { + ERR("Could not share display lists because the destination context has already shared lists\n"); + return FALSE; + } + else + { ++ if(dest->has_been_current) ++ ERR("Recreating OpenGL context to share display lists, although the context has been current!\n"); ++ + /* Re-create the GLX context and share display lists */ + pglXDestroyContext(gdi_display, dest->ctx); + dest->ctx = create_glxcontext(gdi_display, dest, org->ctx); +-- +2.39.0 +