From 02cc3d29c3636e4d7ccf57f19f509a5f79103969 Mon Sep 17 00:00:00 2001 From: UNKN-0WN <18246020+UNKN-0WN@users.noreply.github.com> Date: Tue, 11 Jun 2019 17:34:57 +0200 Subject: [PATCH] Fix steam overlay issue Fix steam overlay being drawn in tf2 and xoverlay at the same time causing issues --- src/xoverlay.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/xoverlay.c b/src/xoverlay.c index c5bbfce..70cc32a 100644 --- a/src/xoverlay.c +++ b/src/xoverlay.c @@ -15,10 +15,15 @@ #include #include +#include // dlsym + int event_ShapeNotify; int event_ShapeError; struct xoverlay_library xoverlay_library; +typedef void ( *glXSwapBuffers_t) (Display *dpy, GLXDrawable drawable); +glXSwapBuffers_t glXSwapBuffersfn; + int preinit_done = 0; int xoverlay_init() @@ -52,6 +57,13 @@ int xoverlay_init() return -5; } + glXSwapBuffersfn = (glXSwapBuffers_t) dlsym((void *)0xFFFFFFFF, "glXSwapBuffers"); // copied from gameoverlayrenderer.so + + if (!glXSwapBuffersfn) // not my problem + { + return -6; + } + xoverlay_library.init = 1; return 0; @@ -97,6 +109,6 @@ void xoverlay_draw_end() { if (!xoverlay_library.init) return; - glXSwapBuffers(xoverlay_library.display, xoverlay_library.window); + glXSwapBuffersfn(xoverlay_library.display, xoverlay_library.window); xoverlay_library.drawing = 0; }