Skip to content

Commit 409f9d5

Browse files
author
nicebyte
committed
Rename some variable due to dynamic linking weirdness on Linux
1 parent 98c8b4e commit 409f9d5

3 files changed

Lines changed: 44 additions & 22 deletions

File tree

EGL/src/egl_common.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,13 @@
3232
#define EGL_THREADLOCAL __thread
3333
#endif
3434

35-
static EGL_THREADLOCAL LocalStorage g_localStorage = {{0, 0, 0}, EGL_SUCCESS, EGL_NONE, 0, EGL_NO_CONTEXT };
36-
extern void (*glFinishPTR)();
35+
static EGL_THREADLOCAL LocalStorage g_localStorage =
36+
{{0, 0, 0}, EGL_SUCCESS, EGL_NONE, 0, EGL_NO_CONTEXT };
37+
38+
#if defined(EGL_NO_GLEW)
39+
extern void (*glFinish_PTR)();
40+
#define glFinish(...) glFinish_PTR(__VA_ARGS__)
41+
#endif
3742

3843
static EGLBoolean _eglInternalInit()
3944
{
@@ -2333,7 +2338,7 @@ EGLBoolean _eglWaitNative(EGLint engine)
23332338

23342339
if (g_localStorage.api == EGL_OPENGL_API)
23352340
{
2336-
glFinishPTR();
2341+
glFinish();
23372342
}
23382343

23392344
return EGL_TRUE;
@@ -2446,7 +2451,7 @@ EGLBoolean _eglWaitClient(void)
24462451

24472452
if (g_localStorage.api == EGL_OPENGL_API)
24482453
{
2449-
glFinishPTR();
2454+
glFinish();
24502455
}
24512456

24522457
return EGL_TRUE;

EGL/src/egl_windows.c

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
#if defined(EGL_NO_GLEW)
3030
typedef void(*__PFN_glFinish)();
3131

32-
__PFN_glFinish glFinishPTR = NULL;
32+
__PFN_glFinish glFinish_PTR = NULL;
3333
PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB = NULL;
3434
PFNWGLGETPIXELFORMATATTRIBIVARBPROC wglGetPixelFormatAttribivARB = NULL;
3535
PFNWGLCREATECONTEXTATTRIBSARBPROC wglCreateContextAttribsARB = NULL;
@@ -187,12 +187,21 @@ EGLBoolean __internalInit(NativeLocalStorageContainer* nativeLocalStorageContain
187187
return EGL_FALSE;
188188
}
189189
#else
190-
wglChoosePixelFormatARB = (PFNWGLCHOOSEPIXELFORMATARBPROC)__getProcAddress("wglChoosePixelFormatARB");
191-
wglGetPixelFormatAttribivARB = (PFNWGLGETPIXELFORMATATTRIBIVARBPROC)__getProcAddress("wglGetPixelFormatAttribivARB");
192-
wglCreateContextAttribsARB = (PFNWGLCREATECONTEXTATTRIBSARBPROC)__getProcAddress("wglCreateContextAttribsARB");
193-
wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC)__getProcAddress("wglSwapIntervalEXT");
194-
wglGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)__getProcAddress("wglGetExtensionsStringARB");
195-
glFinishPTR = (__PFN_glFinish)__getProcAddress("glFinish");
190+
wglChoosePixelFormatARB =
191+
(PFNWGLCHOOSEPIXELFORMATARBPROC)
192+
__getProcAddress("wglChoosePixelFormatARB");
193+
wglGetPixelFormatAttribivARB =
194+
(PFNWGLGETPIXELFORMATATTRIBIVARBPROC)
195+
__getProcAddress("wglGetPixelFormatAttribivARB");
196+
wglCreateContextAttribsARB =
197+
(PFNWGLCREATECONTEXTATTRIBSARBPROC)
198+
__getProcAddress("wglCreateContextAttribsARB");
199+
wglSwapIntervalEXT =
200+
(PFNWGLSWAPINTERVALEXTPROC)__getProcAddress("wglSwapIntervalEXT");
201+
wglGetExtensionsStringARB =
202+
(PFNWGLGETEXTENSIONSSTRINGARBPROC)
203+
__getProcAddress("wglGetExtensionsStringARB");
204+
glFinish_PTR = (__PFN_glFinish)__getProcAddress("glFinish");
196205
#endif
197206
return EGL_TRUE;
198207
}

EGL/src/egl_x11.c

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,19 @@
2727
#include "egl_internal.h"
2828

2929
#if defined(EGL_NO_GLEW)
30-
typedef GLXContext (*__PFN_glXCreateContextAttribsARB)(Display *dpy, GLXFBConfig config,
31-
GLXContext share_context, Bool direct,
32-
const int *attrib_list);
33-
typedef void (*__PFN_glXSwapIntervalEXT)(Display *dpy, GLXDrawable drawable, int interval);
30+
typedef GLXContext (*__PFN_glXCreateContextAttribsARB)(Display*, GLXFBConfig,
31+
GLXContext, Bool,
32+
const int*);
33+
typedef void (*__PFN_glXSwapIntervalEXT)(Display*, GLXDrawable, int);
3434
typedef void(*__PFN_glFinish)();
35-
__PFN_glXCreateContextAttribsARB glXCreateContextAttribsARB = NULL;
36-
__PFN_glXSwapIntervalEXT glXSwapIntervalEXT = NULL;
37-
__PFN_glFinish glFinishPTR = NULL;
35+
36+
__PFN_glXCreateContextAttribsARB glXCreateContextAttribsARB_PTR = NULL;
37+
__PFN_glXSwapIntervalEXT glXSwapIntervalEXT_PTR = NULL;
38+
__PFN_glFinish glFinish_PTR = NULL;
39+
40+
#define glXSwapIntervalEXT(...) glXSwapIntervalEXT_PTR(__VA_ARGS__)
41+
#define glXCreateContextAttribsARB(...) \
42+
glXCreateContextAttribsARB_PTR(__VA_ARGS__)
3843
#endif
3944

4045
__eglMustCastToProperFunctionPointerType __getProcAddress(const char *procname)
@@ -123,7 +128,7 @@ EGLBoolean __internalInit(NativeLocalStorageContainer* nativeLocalStorageContain
123128

124129
return EGL_FALSE;
125130
}
126-
131+
127132
nativeLocalStorageContainer->ctx = glXCreateContext(nativeLocalStorageContainer->display, visualInfo, NULL, True);
128133

129134
if (!nativeLocalStorageContainer->ctx)
@@ -166,9 +171,12 @@ EGLBoolean __internalInit(NativeLocalStorageContainer* nativeLocalStorageContain
166171
return EGL_FALSE;
167172
}
168173
#else
169-
glXCreateContextAttribsARB = (__PFN_glXCreateContextAttribsARB)__getProcAddress("glXCreateContextAttribsARB");
170-
glXSwapIntervalEXT = (__PFN_glXSwapIntervalEXT)__getProcAddress("glXSwapIntervalEXT");
171-
glFinishPTR = (__PFN_glFinish)__getProcAddress("glFinish");
174+
glXCreateContextAttribsARB_PTR =
175+
(__PFN_glXCreateContextAttribsARB)
176+
__getProcAddress("glXCreateContextAttribsARB");
177+
glXSwapIntervalEXT_PTR =
178+
(__PFN_glXSwapIntervalEXT)__getProcAddress("glXSwapIntervalEXT");
179+
glFinish_PTR = (__PFN_glFinish)__getProcAddress("glFinish");
172180
#endif
173181
return EGL_TRUE;
174182
}

0 commit comments

Comments
 (0)