mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-08 20:28:32 +09:00
[Feat] (MG_Impl/GLX): Implement glXGetProcAddress.
This commit is contained in:
+4
-1
@@ -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
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
namespace MG_Impl {
|
||||
namespace GLXImpl {
|
||||
void* GetProcAddress(const char* name);
|
||||
void* GetProcAddressARB(const char* name);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user