Fix steam overlay issue

Fix steam overlay being drawn in tf2 and xoverlay at the same time causing issues
This commit is contained in:
UNKN-0WN 2019-06-11 17:34:57 +02:00 committed by GitHub
parent 2656f8a181
commit 02cc3d29c3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -15,10 +15,15 @@
#include <stdio.h> #include <stdio.h>
#include <xoverlay.h> #include <xoverlay.h>
#include <dlfcn.h> // dlsym
int event_ShapeNotify; int event_ShapeNotify;
int event_ShapeError; int event_ShapeError;
struct xoverlay_library xoverlay_library; struct xoverlay_library xoverlay_library;
typedef void ( *glXSwapBuffers_t) (Display *dpy, GLXDrawable drawable);
glXSwapBuffers_t glXSwapBuffersfn;
int preinit_done = 0; int preinit_done = 0;
int xoverlay_init() int xoverlay_init()
@ -52,6 +57,13 @@ int xoverlay_init()
return -5; return -5;
} }
glXSwapBuffersfn = (glXSwapBuffers_t) dlsym((void *)0xFFFFFFFF, "glXSwapBuffers"); // copied from gameoverlayrenderer.so
if (!glXSwapBuffersfn) // not my problem
{
return -6;
}
xoverlay_library.init = 1; xoverlay_library.init = 1;
return 0; return 0;
@ -97,6 +109,6 @@ void xoverlay_draw_end()
{ {
if (!xoverlay_library.init) if (!xoverlay_library.init)
return; return;
glXSwapBuffers(xoverlay_library.display, xoverlay_library.window); glXSwapBuffersfn(xoverlay_library.display, xoverlay_library.window);
xoverlay_library.drawing = 0; xoverlay_library.drawing = 0;
} }