mirror of
https://github.com/glfw/glfw.git
synced 2024-11-22 10:05:10 +00:00
Update glad, add debug extensions
This commit is contained in:
parent
1fc11c27e7
commit
38aae024cd
116
deps/glad.c
vendored
116
deps/glad.c
vendored
@ -1,3 +1,25 @@
|
||||
/*
|
||||
|
||||
OpenGL loader generated by glad 0.1.12a0 on Thu Sep 22 01:08:06 2016.
|
||||
|
||||
Language/Generator: C/C++
|
||||
Specification: gl
|
||||
APIs: gl=3.2
|
||||
Profile: compatibility
|
||||
Extensions:
|
||||
GL_ARB_debug_output,
|
||||
GL_ARB_multisample,
|
||||
GL_ARB_robustness
|
||||
Loader: False
|
||||
Local files: False
|
||||
Omit khrplatform: False
|
||||
|
||||
Commandline:
|
||||
--profile="compatibility" --api="gl=3.2" --generator="c" --spec="gl" --no-loader --extensions="GL_ARB_debug_output,GL_ARB_multisample,GL_ARB_robustness"
|
||||
Online:
|
||||
http://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&api=gl%3D3.2&extensions=GL_ARB_debug_output&extensions=GL_ARB_multisample&extensions=GL_ARB_robustness
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -5,14 +27,59 @@
|
||||
|
||||
struct gladGLversionStruct GLVersion;
|
||||
|
||||
#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0)
|
||||
#define _GLAD_IS_SOME_NEW_VERSION 1
|
||||
#endif
|
||||
|
||||
static int max_loaded_major;
|
||||
static int max_loaded_minor;
|
||||
|
||||
static const char *exts = NULL;
|
||||
static int num_exts_i = 0;
|
||||
static const char **exts_i = NULL;
|
||||
|
||||
static int get_exts(void) {
|
||||
#ifdef _GLAD_IS_SOME_NEW_VERSION
|
||||
if(max_loaded_major < 3) {
|
||||
#endif
|
||||
exts = (const char *)glGetString(GL_EXTENSIONS);
|
||||
#ifdef _GLAD_IS_SOME_NEW_VERSION
|
||||
} else {
|
||||
int index;
|
||||
|
||||
num_exts_i = 0;
|
||||
glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i);
|
||||
if (num_exts_i > 0) {
|
||||
exts_i = (const char **)realloc((void *)exts_i, num_exts_i * sizeof *exts_i);
|
||||
}
|
||||
|
||||
if (exts_i == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
for(index = 0; index < num_exts_i; index++) {
|
||||
exts_i[index] = (const char*)glGetStringi(GL_EXTENSIONS, index);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void free_exts(void) {
|
||||
if (exts_i != NULL) {
|
||||
free((char **)exts_i);
|
||||
exts_i = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static int has_ext(const char *ext) {
|
||||
#if defined(GL_VERSION_3_0) || defined(GL_ES_VERSION_3_0)
|
||||
if(GLVersion.major < 3 || glGetStringi == NULL) {
|
||||
#ifdef _GLAD_IS_SOME_NEW_VERSION
|
||||
if(max_loaded_major < 3) {
|
||||
#endif
|
||||
const char *extensions;
|
||||
const char *loc;
|
||||
const char *terminator;
|
||||
extensions = (const char*) glGetString(GL_EXTENSIONS);
|
||||
extensions = exts;
|
||||
if(extensions == NULL || ext == NULL) {
|
||||
return 0;
|
||||
}
|
||||
@ -30,13 +97,14 @@ static int has_ext(const char *ext) {
|
||||
}
|
||||
extensions = terminator;
|
||||
}
|
||||
#if defined(GL_VERSION_3_0) || defined(GL_ES_VERSION_3_0)
|
||||
#ifdef _GLAD_IS_SOME_NEW_VERSION
|
||||
} else {
|
||||
GLint num_exts, index;
|
||||
int index;
|
||||
|
||||
glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts);
|
||||
for(index = 0; index < num_exts; index++) {
|
||||
if(strcmp((const char*) glGetStringi(GL_EXTENSIONS, index), ext) == 0) {
|
||||
for(index = 0; index < num_exts_i; index++) {
|
||||
const char *e = exts_i[index];
|
||||
|
||||
if(strcmp(e, ext) == 0) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -316,7 +384,7 @@ PFNGLRASTERPOS3FPROC glad_glRasterPos3f;
|
||||
PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D;
|
||||
PFNGLTEXCOORD3FPROC glad_glTexCoord3f;
|
||||
PFNGLDELETESYNCPROC glad_glDeleteSync;
|
||||
PFNGLTEXCOORD3DPROC glad_glTexCoord3d;
|
||||
PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
|
||||
PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample;
|
||||
PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
|
||||
PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements;
|
||||
@ -363,7 +431,7 @@ PFNGLVIEWPORTPROC glad_glViewport;
|
||||
PFNGLUNIFORM1UIVPROC glad_glUniform1uiv;
|
||||
PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings;
|
||||
PFNGLINDEXDVPROC glad_glIndexdv;
|
||||
PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
|
||||
PFNGLTEXCOORD3DPROC glad_glTexCoord3d;
|
||||
PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv;
|
||||
PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i;
|
||||
PFNGLCLEARDEPTHPROC glad_glClearDepth;
|
||||
@ -723,8 +791,12 @@ PFNGLFRONTFACEPROC glad_glFrontFace;
|
||||
PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v;
|
||||
PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
|
||||
int GLAD_GL_ARB_robustness;
|
||||
int GLAD_GL_ARB_debug_output;
|
||||
int GLAD_GL_ARB_multisample;
|
||||
int GLAD_GL_EXT_separate_specular_color;
|
||||
PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB;
|
||||
PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB;
|
||||
PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB;
|
||||
PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB;
|
||||
PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB;
|
||||
PFNGLGETGRAPHICSRESETSTATUSARBPROC glad_glGetGraphicsResetStatusARB;
|
||||
PFNGLGETNTEXIMAGEARBPROC glad_glGetnTexImageARB;
|
||||
@ -1448,6 +1520,13 @@ static void load_GL_VERSION_3_2(GLADloadproc load) {
|
||||
glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv");
|
||||
glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski");
|
||||
}
|
||||
static void load_GL_ARB_debug_output(GLADloadproc load) {
|
||||
if(!GLAD_GL_ARB_debug_output) return;
|
||||
glad_glDebugMessageControlARB = (PFNGLDEBUGMESSAGECONTROLARBPROC)load("glDebugMessageControlARB");
|
||||
glad_glDebugMessageInsertARB = (PFNGLDEBUGMESSAGEINSERTARBPROC)load("glDebugMessageInsertARB");
|
||||
glad_glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC)load("glDebugMessageCallbackARB");
|
||||
glad_glGetDebugMessageLogARB = (PFNGLGETDEBUGMESSAGELOGARBPROC)load("glGetDebugMessageLogARB");
|
||||
}
|
||||
static void load_GL_ARB_multisample(GLADloadproc load) {
|
||||
if(!GLAD_GL_ARB_multisample) return;
|
||||
glad_glSampleCoverageARB = (PFNGLSAMPLECOVERAGEARBPROC)load("glSampleCoverageARB");
|
||||
@ -1475,10 +1554,13 @@ static void load_GL_ARB_robustness(GLADloadproc load) {
|
||||
glad_glGetnHistogramARB = (PFNGLGETNHISTOGRAMARBPROC)load("glGetnHistogramARB");
|
||||
glad_glGetnMinmaxARB = (PFNGLGETNMINMAXARBPROC)load("glGetnMinmaxARB");
|
||||
}
|
||||
static void find_extensionsGL(void) {
|
||||
GLAD_GL_EXT_separate_specular_color = has_ext("GL_EXT_separate_specular_color");
|
||||
static int find_extensionsGL(void) {
|
||||
if (!get_exts()) return 0;
|
||||
GLAD_GL_ARB_debug_output = has_ext("GL_ARB_debug_output");
|
||||
GLAD_GL_ARB_multisample = has_ext("GL_ARB_multisample");
|
||||
GLAD_GL_ARB_robustness = has_ext("GL_ARB_robustness");
|
||||
free_exts();
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void find_coreGL(void) {
|
||||
@ -1516,6 +1598,7 @@ static void find_coreGL(void) {
|
||||
#endif
|
||||
|
||||
GLVersion.major = major; GLVersion.minor = minor;
|
||||
max_loaded_major = major; max_loaded_minor = minor;
|
||||
GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
|
||||
GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1;
|
||||
GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1;
|
||||
@ -1527,6 +1610,10 @@ static void find_coreGL(void) {
|
||||
GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3;
|
||||
GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3;
|
||||
GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3;
|
||||
if (GLVersion.major > 3 || (GLVersion.major >= 3 && GLVersion.minor >= 2)) {
|
||||
max_loaded_major = 3;
|
||||
max_loaded_minor = 2;
|
||||
}
|
||||
}
|
||||
|
||||
int gladLoadGLLoader(GLADloadproc load) {
|
||||
@ -1547,7 +1634,8 @@ int gladLoadGLLoader(GLADloadproc load) {
|
||||
load_GL_VERSION_3_1(load);
|
||||
load_GL_VERSION_3_2(load);
|
||||
|
||||
find_extensionsGL();
|
||||
if (!find_extensionsGL()) return 0;
|
||||
load_GL_ARB_debug_output(load);
|
||||
load_GL_ARB_multisample(load);
|
||||
load_GL_ARB_robustness(load);
|
||||
return GLVersion.major != 0 || GLVersion.minor != 0;
|
||||
|
785
deps/glad/glad.h
vendored
785
deps/glad/glad.h
vendored
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user