[Feat] (MG_Impl/GLX): Implement glXGetProcAddress.

This commit is contained in:
BZLZHH
2025-07-11 18:47:42 +08:00
parent 62e141000e
commit 3078667e1d
5 changed files with 54 additions and 2 deletions
+4 -1
View File
@@ -17,7 +17,10 @@ find_library(GLSLANG_LIB glslang PATHS ${CMAKE_SOURCE_DIR}/libraries/arm64-v8a/)
add_library(${CMAKE_PROJECT_NAME} SHARED
MobileGL/Init.cpp
MobileGL/MG_Util/Debug/Log.cpp)
MobileGL/MG_Util/Debug/Log.cpp
MobileGL/MG_Impl/GLXImpl/Exporting/Definitions.cpp
MobileGL/MG_Impl/GLXImpl/LookUp/LookUp.cpp)
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
${CMAKE_SOURCE_DIR}/library/arm64-v8a/libglslang.a
+14 -1
View File
@@ -4,6 +4,18 @@
#define __ANDROID_API__ 26 // fix pthread_getname_np not defined
#endif
#ifdef _WIN32
#define MOBILEGL_EXPORT extern "C" __declspec(dllexport)
#else
#define MOBILEGL_EXPORT extern "C" __attribute__((visibility("default")))
#endif
#define MOBILEGL_API MOBILEGL_EXPORT
#define MOBILEGL_GLX_API MOBILEGL_API
#define MOBILEGL_GL_API MOBILEGL_API
#define MOBILEGL_EGL_API MOBILEGL_API
#include <cstring>
#include <iostream>
#include <cstdio>
@@ -56,4 +68,5 @@
#include <GL/glext.h>
#include "MG_Util/Debug/Log.h"
#include "Config.h"
#include "Config.h"
#include "MG_Impl/GLXImpl/LookUp/LookUp.h"
@@ -0,0 +1,9 @@
#include "../../../Includes.h"
MOBILEGL_GLX_API void* glXGetProcAddress(const char* name) {
return MG_Impl::GLXImpl::GetProcAddress(name);
}
MOBILEGL_GLX_API void* glXGetProcAddressARB(const char* name) {
return MG_Impl::GLXImpl::GetProcAddressARB(name);
}
@@ -0,0 +1,19 @@
#include "../../../Includes.h"
namespace MG_Impl::GLXImpl {
void* GetProcAddress(const char* name) {
MGLOG_D("glXGetProcAddress(\"%s\")", name);
void* proc = dlsym(RTLD_DEFAULT, (const char*)name);
if (!proc) {
MGLOG_W("Failed to get function: %s", (const char*)name);
return nullptr;
}
return proc;
}
void* GetProcAddressARB(const char* name) {
return GetProcAddress(name);
}
}
+8
View File
@@ -0,0 +1,8 @@
#pragma once
namespace MG_Impl {
namespace GLXImpl {
void* GetProcAddress(const char* name);
void* GetProcAddressARB(const char* name);
}
}