mirror of
https://github.com/MobileGL-Dev/MobileGL
synced 2026-09-12 06:08:30 +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
|
add_library(${CMAKE_PROJECT_NAME} SHARED
|
||||||
MobileGL/Init.cpp
|
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
|
target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
|
||||||
${CMAKE_SOURCE_DIR}/library/arm64-v8a/libglslang.a
|
${CMAKE_SOURCE_DIR}/library/arm64-v8a/libglslang.a
|
||||||
|
|||||||
+14
-1
@@ -4,6 +4,18 @@
|
|||||||
#define __ANDROID_API__ 26 // fix pthread_getname_np not defined
|
#define __ANDROID_API__ 26 // fix pthread_getname_np not defined
|
||||||
#endif
|
#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 <cstring>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <cstdio>
|
#include <cstdio>
|
||||||
@@ -56,4 +68,5 @@
|
|||||||
#include <GL/glext.h>
|
#include <GL/glext.h>
|
||||||
|
|
||||||
#include "MG_Util/Debug/Log.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