diff options
Diffstat (limited to 'src/render')
-rw-r--r-- | src/render/mglfunctions.h | 22 | ||||
-rw-r--r-- | src/render/mglxinit.cpp | 14 |
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 |