summaryrefslogtreecommitdiff
path: root/src/render
diff options
context:
space:
mode:
Diffstat (limited to 'src/render')
-rw-r--r--src/render/mglfunctions.h22
-rw-r--r--src/render/mglxinit.cpp14
2 files changed, 29 insertions, 7 deletions
diff --git a/src/render/mglfunctions.h b/src/render/mglfunctions.h
index 569f4aac4..23e3bea6d 100644
--- a/src/render/mglfunctions.h
+++ b/src/render/mglfunctions.h
@@ -45,6 +45,28 @@
logger->log("assigned function: " #func); \
}
+#define assignFunction3(func, ext) \
+ { \
+ m##func = reinterpret_cast<func##_t>(getFunction(#func#ext)); \
+ if (m##func == nullptr) \
+ { \
+ logger->log("function not found: " #func#ext); \
+ m##func = reinterpret_cast<func##_t>(getFunction(#func)); \
+ if (m##func == nullptr) \
+ logger->log("function not found: " #func); \
+ else \
+ logger->log("assigned function: " #func); \
+ } \
+ else \
+ { \
+ logger->log("assigned function: " #func#ext); \
+ } \
+ }
+
+#define assignFunctionARB(func) assignFunction3(func, ARB)
+
+#define assignFunctionEXT(func) assignFunction3(func, EXT)
+
#define assignFunction2(func, name) \
{ \
m##func = reinterpret_cast<func##_t>(getFunction(name)); \
diff --git a/src/render/mglxinit.cpp b/src/render/mglxinit.cpp
index e6763d45e..23c592d8d 100644
--- a/src/render/mglxinit.cpp
+++ b/src/render/mglxinit.cpp
@@ -30,13 +30,13 @@
void Glx::initFunctions()
{
- assignFunction2(glXCreateContext, "glXCreateContext");
- assignFunction2(glXGetCurrentContext, "glXGetCurrentContext");
- assignFunction2(glXCreateContextAttribs, "glXCreateContextAttribsARB");
- assignFunction2(glXChooseFBConfig, "glXChooseFBConfig");
- assignFunction2(glXDestroyContext, "glXDestroyContext");
- assignFunction2(glXMakeCurrent, "glXMakeCurrent");
- assignFunction2(glXSwapBuffers, "glXSwapBuffers");
+ assignFunction(glXCreateContext);
+ assignFunction(glXGetCurrentContext);
+ assignFunctionARB(glXCreateContextAttribs);
+ assignFunction(glXChooseFBConfig);
+ assignFunction(glXDestroyContext);
+ assignFunction(glXMakeCurrent);
+ assignFunction(glXSwapBuffers);
}
#endif