remove redundant for us opengl loading code from glad.c
This commit is contained in:
parent
5ba11dc584
commit
c81f95e571
@ -35,7 +35,7 @@ static void APIENTRY opengl_log(GLenum source,
|
|||||||
|
|
||||||
|
|
||||||
bool render_init(void) {
|
bool render_init(void) {
|
||||||
if (gladLoadGL() == 0) {
|
if (gladLoadGLLoader(&SDL_GL_GetProcAddress) == 0) {
|
||||||
CRY("Init", "GLAD failed");
|
CRY("Init", "GLAD failed");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
132
third-party/glad/src/glad.c
vendored
132
third-party/glad/src/glad.c
vendored
@ -25,138 +25,6 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <glad/glad.h>
|
#include <glad/glad.h>
|
||||||
|
|
||||||
static void* get_proc(const char *namez);
|
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
|
||||||
#ifndef _WINDOWS_
|
|
||||||
#undef APIENTRY
|
|
||||||
#endif
|
|
||||||
#include <windows.h>
|
|
||||||
static HMODULE libGL;
|
|
||||||
|
|
||||||
typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*);
|
|
||||||
static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
|
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
|
||||||
#ifdef __has_include
|
|
||||||
#if __has_include(<winapifamily.h>)
|
|
||||||
#define HAVE_WINAPIFAMILY 1
|
|
||||||
#endif
|
|
||||||
#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
|
|
||||||
#define HAVE_WINAPIFAMILY 1
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef HAVE_WINAPIFAMILY
|
|
||||||
#include <winapifamily.h>
|
|
||||||
#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
|
|
||||||
#define IS_UWP 1
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static
|
|
||||||
int open_gl(void) {
|
|
||||||
#ifndef IS_UWP
|
|
||||||
libGL = LoadLibraryW(L"opengl32.dll");
|
|
||||||
if(libGL != NULL) {
|
|
||||||
void (* tmp)(void);
|
|
||||||
tmp = (void(*)(void)) GetProcAddress(libGL, "wglGetProcAddress");
|
|
||||||
gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE) tmp;
|
|
||||||
return gladGetProcAddressPtr != NULL;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static
|
|
||||||
void close_gl(void) {
|
|
||||||
if(libGL != NULL) {
|
|
||||||
FreeLibrary((HMODULE) libGL);
|
|
||||||
libGL = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
#include <dlfcn.h>
|
|
||||||
static void* libGL;
|
|
||||||
|
|
||||||
#if !defined(__APPLE__) && !defined(__HAIKU__)
|
|
||||||
typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*);
|
|
||||||
static PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static
|
|
||||||
int open_gl(void) {
|
|
||||||
#ifdef __APPLE__
|
|
||||||
static const char *NAMES[] = {
|
|
||||||
"../Frameworks/OpenGL.framework/OpenGL",
|
|
||||||
"/Library/Frameworks/OpenGL.framework/OpenGL",
|
|
||||||
"/System/Library/Frameworks/OpenGL.framework/OpenGL",
|
|
||||||
"/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL"
|
|
||||||
};
|
|
||||||
#else
|
|
||||||
static const char *NAMES[] = {"libGL.so.1", "libGL.so"};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
unsigned int index = 0;
|
|
||||||
for(index = 0; index < (sizeof(NAMES) / sizeof(NAMES[0])); index++) {
|
|
||||||
libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL);
|
|
||||||
|
|
||||||
if(libGL != NULL) {
|
|
||||||
#if defined(__APPLE__) || defined(__HAIKU__)
|
|
||||||
return 1;
|
|
||||||
#else
|
|
||||||
gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL,
|
|
||||||
"glXGetProcAddressARB");
|
|
||||||
return gladGetProcAddressPtr != NULL;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static
|
|
||||||
void close_gl(void) {
|
|
||||||
if(libGL != NULL) {
|
|
||||||
dlclose(libGL);
|
|
||||||
libGL = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static
|
|
||||||
void* get_proc(const char *namez) {
|
|
||||||
void* result = NULL;
|
|
||||||
if(libGL == NULL) return NULL;
|
|
||||||
|
|
||||||
#if !defined(__APPLE__) && !defined(__HAIKU__)
|
|
||||||
if(gladGetProcAddressPtr != NULL) {
|
|
||||||
result = gladGetProcAddressPtr(namez);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if(result == NULL) {
|
|
||||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
|
||||||
result = (void*)GetProcAddress((HMODULE) libGL, namez);
|
|
||||||
#else
|
|
||||||
result = dlsym(libGL, namez);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
int gladLoadGL(void) {
|
|
||||||
int status = 0;
|
|
||||||
|
|
||||||
if(open_gl()) {
|
|
||||||
status = gladLoadGLLoader(&get_proc);
|
|
||||||
close_gl();
|
|
||||||
}
|
|
||||||
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct gladGLversionStruct GLVersion = { 0, 0 };
|
struct gladGLversionStruct GLVersion = { 0, 0 };
|
||||||
|
|
||||||
#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0)
|
#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0)
|
||||||
|
Loading…
Reference in New Issue
Block a user