gl_engine: code clean up++

This commit is contained in:
Hermet Park 2025-05-08 22:34:00 +09:00 committed by Hermet Park
parent df8d327ebb
commit 007879af02

View file

@ -40,14 +40,16 @@ bool glTerm()
#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) #if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
#ifdef THORVG_GL_TARGET_GL
typedef PROC(WINAPI *PFNGLGETPROCADDRESSPROC)(LPCSTR); typedef PROC(WINAPI *PFNGLGETPROCADDRESSPROC)(LPCSTR);
static PFNGLGETPROCADDRESSPROC glGetProcAddress = NULL;
#endif
static HMODULE _libGL = NULL; static HMODULE _libGL = NULL;
static PFNGLGETPROCADDRESSPROC glGetProcAddress = NULL;
static bool _glLoad() static bool _glLoad()
{ {
#ifndef THORVG_GL_TARGET_GLES #ifdef THORVG_GL_TARGET_GL
_libGL = LoadLibraryW(L"opengl32.dll"); _libGL = LoadLibraryW(L"opengl32.dll");
if (!_libGL) { if (!_libGL) {
TVGERR("GL_ENGINE", "Cannot find the gl library."); TVGERR("GL_ENGINE", "Cannot find the gl library.");
@ -70,8 +72,8 @@ static bool _glLoad()
// load opengl proc address from dll or from wglGetProcAddress // load opengl proc address from dll or from wglGetProcAddress
static PROC _getProcAddress(const char* procName) static PROC _getProcAddress(const char* procName)
{ {
PROC procHandle = GetProcAddress(_libGL, procName); auto procHandle = GetProcAddress(_libGL, procName);
#ifndef THORVG_GL_TARGET_GLES #ifdef THORVG_GL_TARGET_GL
if (!procHandle) procHandle = glGetProcAddress(procName); if (!procHandle) procHandle = glGetProcAddress(procName);
#endif #endif
return procHandle; return procHandle;
@ -80,14 +82,17 @@ static PROC _getProcAddress(const char* procName)
#elif defined(__linux__) #elif defined(__linux__)
#include <dlfcn.h> #include <dlfcn.h>
#ifdef THORVG_GL_TARGET_GL
typedef void* (*PFNGLGETPROCADDRESSPROC)(const char*); typedef void* (*PFNGLGETPROCADDRESSPROC)(const char*);
static PFNGLGETPROCADDRESSPROC glGetProcAddress = nullptr;
#endif
static void* _libGL = nullptr; static void* _libGL = nullptr;
static PFNGLGETPROCADDRESSPROC glGetProcAddress = nullptr;
static bool _glLoad() static bool _glLoad()
{ {
#ifndef THORVG_GL_TARGET_GLES #ifdef THORVG_GL_TARGET_GL
_libGL = dlopen("libGL.so", RTLD_LAZY); _libGL = dlopen("libGL.so", RTLD_LAZY);
if (!_libGL) _libGL = dlopen("libGL.so.4", RTLD_LAZY); if (!_libGL) _libGL = dlopen("libGL.so.4", RTLD_LAZY);
if (!_libGL) _libGL = dlopen("libGL.so.3", RTLD_LAZY); if (!_libGL) _libGL = dlopen("libGL.so.3", RTLD_LAZY);
@ -109,10 +114,11 @@ static bool _glLoad()
#endif #endif
return true; return true;
} }
// load opengl proc address from glXGetProcAddress
static void* _getProcAddress(const char* procName) static void* _getProcAddress(const char* procName)
{ {
#ifndef THORVG_GL_TARGET_GLES #ifdef THORVG_GL_TARGET_GL
return glGetProcAddress(procName); return glGetProcAddress(procName);
#else #else
return dlsym(_libGL, procName); return dlsym(_libGL, procName);
@ -122,6 +128,7 @@ static void* _getProcAddress(const char* procName)
#elif defined(__APPLE__) || defined(__MACH__) #elif defined(__APPLE__) || defined(__MACH__)
#include <dlfcn.h> #include <dlfcn.h>
static void* _libGL = nullptr; static void* _libGL = nullptr;
static bool _glLoad() { static bool _glLoad() {