Add GL_ARB_framebuffer_object extension support check and GL_EXT_framebuffer_object fallback for GLES2 (updated GLAD bindings).
Add GL_ARB_debug_output extension support check on all platforms.
This commit is contained in:
parent
d345712547
commit
e256f9d4e5
|
@ -148,8 +148,8 @@ void RasterizerGLES2::initialize() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// GLVersion seems to be used for both GL and GL ES, so we need different version checks for them
|
// GLVersion seems to be used for both GL and GL ES, so we need different version checks for them
|
||||||
#ifdef OPENGL_ENABLED // OpenGL 3.3 Core Profile required
|
#ifdef OPENGL_ENABLED // OpenGL 2.1 Profile required
|
||||||
if (GLVersion.major < 3) {
|
if (GLVersion.major < 2) {
|
||||||
#else // OpenGL ES 3.0
|
#else // OpenGL ES 3.0
|
||||||
if (GLVersion.major < 2) {
|
if (GLVersion.major < 2) {
|
||||||
#endif
|
#endif
|
||||||
|
@ -160,36 +160,65 @@ void RasterizerGLES2::initialize() {
|
||||||
"Fatal error: Insufficient OpenGL / GLES driver support");
|
"Fatal error: Insufficient OpenGL / GLES driver support");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef GLES_OVER_GL
|
||||||
// FIXME glDebugMessageCallbackARB does not seem to work on Mac OS X and opengl 2, this may be an issue with our opengl canvas..
|
//Test GL_ARB_framebuffer_object extension
|
||||||
#else
|
if (!GLAD_GL_ARB_framebuffer_object) {
|
||||||
if (true || OS::get_singleton()->is_stdout_verbose()) {
|
//Try older GL_EXT_framebuffer_object extension
|
||||||
glEnable(_EXT_DEBUG_OUTPUT_SYNCHRONOUS_ARB);
|
if (GLAD_GL_EXT_framebuffer_object) {
|
||||||
glDebugMessageCallbackARB(_gl_debug_print, NULL);
|
glIsRenderbuffer = glIsRenderbufferEXT;
|
||||||
glEnable(_EXT_DEBUG_OUTPUT);
|
glBindRenderbuffer = glBindRenderbufferEXT;
|
||||||
|
glDeleteRenderbuffers = glDeleteRenderbuffersEXT;
|
||||||
|
glGenRenderbuffers = glGenRenderbuffersEXT;
|
||||||
|
glRenderbufferStorage = glRenderbufferStorageEXT;
|
||||||
|
glGetRenderbufferParameteriv = glGetRenderbufferParameterivEXT;
|
||||||
|
glIsFramebuffer = glIsFramebufferEXT;
|
||||||
|
glBindFramebuffer = glBindFramebufferEXT;
|
||||||
|
glDeleteFramebuffers = glDeleteFramebuffersEXT;
|
||||||
|
glGenFramebuffers = glGenFramebuffersEXT;
|
||||||
|
glCheckFramebufferStatus = glCheckFramebufferStatusEXT;
|
||||||
|
glFramebufferTexture1D = glFramebufferTexture1DEXT;
|
||||||
|
glFramebufferTexture2D = glFramebufferTexture2DEXT;
|
||||||
|
glFramebufferTexture3D = glFramebufferTexture3DEXT;
|
||||||
|
glFramebufferRenderbuffer = glFramebufferRenderbufferEXT;
|
||||||
|
glGetFramebufferAttachmentParameteriv = glGetFramebufferAttachmentParameterivEXT;
|
||||||
|
glGenerateMipmap = glGenerateMipmapEXT;
|
||||||
|
} else {
|
||||||
|
ERR_PRINT("Your system's graphic drivers seem not to support GL_ARB(EXT)_framebuffer_object OpenGL extension, sorry :(\n"
|
||||||
|
"Try a drivers update, buy a new GPU or try software rendering on Linux; Godot will now crash with a segmentation fault.");
|
||||||
|
OS::get_singleton()->alert("Your system's graphic drivers seem not to support GL_ARB(EXT)_framebuffer_object OpenGL extension, sorry :(\n"
|
||||||
|
"Godot Engine will self-destruct as soon as you acknowledge this error message.",
|
||||||
|
"Fatal error: Insufficient OpenGL / GLES driver support");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (true || OS::get_singleton()->is_stdout_verbose()) {
|
||||||
|
if (GLAD_GL_ARB_debug_output) {
|
||||||
|
glEnable(_EXT_DEBUG_OUTPUT_SYNCHRONOUS_ARB);
|
||||||
|
glDebugMessageCallbackARB(_gl_debug_print, NULL);
|
||||||
|
glEnable(_EXT_DEBUG_OUTPUT);
|
||||||
|
} else {
|
||||||
|
print_line("OpenGL debugging not supported!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#endif // GLAD_ENABLED
|
#endif // GLAD_ENABLED
|
||||||
|
|
||||||
// For debugging
|
// For debugging
|
||||||
#ifdef GLES_OVER_GL
|
#ifdef GLES_OVER_GL
|
||||||
#ifdef __APPLE__
|
if (GLAD_GL_ARB_debug_output) {
|
||||||
// FIXME glDebugMessageCallbackARB does not seem to work on Mac OS X and opengl 2, this may be an issue with our opengl canvas..
|
glDebugMessageControlARB(_EXT_DEBUG_SOURCE_API_ARB, _EXT_DEBUG_TYPE_ERROR_ARB, _EXT_DEBUG_SEVERITY_HIGH_ARB, 0, NULL, GL_TRUE);
|
||||||
#else
|
glDebugMessageControlARB(_EXT_DEBUG_SOURCE_API_ARB, _EXT_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB, _EXT_DEBUG_SEVERITY_HIGH_ARB, 0, NULL, GL_TRUE);
|
||||||
glDebugMessageControlARB(_EXT_DEBUG_SOURCE_API_ARB, _EXT_DEBUG_TYPE_ERROR_ARB, _EXT_DEBUG_SEVERITY_HIGH_ARB, 0, NULL, GL_TRUE);
|
glDebugMessageControlARB(_EXT_DEBUG_SOURCE_API_ARB, _EXT_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB, _EXT_DEBUG_SEVERITY_HIGH_ARB, 0, NULL, GL_TRUE);
|
||||||
glDebugMessageControlARB(_EXT_DEBUG_SOURCE_API_ARB, _EXT_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB, _EXT_DEBUG_SEVERITY_HIGH_ARB, 0, NULL, GL_TRUE);
|
glDebugMessageControlARB(_EXT_DEBUG_SOURCE_API_ARB, _EXT_DEBUG_TYPE_PORTABILITY_ARB, _EXT_DEBUG_SEVERITY_HIGH_ARB, 0, NULL, GL_TRUE);
|
||||||
glDebugMessageControlARB(_EXT_DEBUG_SOURCE_API_ARB, _EXT_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB, _EXT_DEBUG_SEVERITY_HIGH_ARB, 0, NULL, GL_TRUE);
|
glDebugMessageControlARB(_EXT_DEBUG_SOURCE_API_ARB, _EXT_DEBUG_TYPE_PERFORMANCE_ARB, _EXT_DEBUG_SEVERITY_HIGH_ARB, 0, NULL, GL_TRUE);
|
||||||
glDebugMessageControlARB(_EXT_DEBUG_SOURCE_API_ARB, _EXT_DEBUG_TYPE_PORTABILITY_ARB, _EXT_DEBUG_SEVERITY_HIGH_ARB, 0, NULL, GL_TRUE);
|
glDebugMessageControlARB(_EXT_DEBUG_SOURCE_API_ARB, _EXT_DEBUG_TYPE_OTHER_ARB, _EXT_DEBUG_SEVERITY_HIGH_ARB, 0, NULL, GL_TRUE);
|
||||||
glDebugMessageControlARB(_EXT_DEBUG_SOURCE_API_ARB, _EXT_DEBUG_TYPE_PERFORMANCE_ARB, _EXT_DEBUG_SEVERITY_HIGH_ARB, 0, NULL, GL_TRUE);
|
/* glDebugMessageInsertARB(
|
||||||
glDebugMessageControlARB(_EXT_DEBUG_SOURCE_API_ARB, _EXT_DEBUG_TYPE_OTHER_ARB, _EXT_DEBUG_SEVERITY_HIGH_ARB, 0, NULL, GL_TRUE);
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
/* glDebugMessageInsertARB(
|
|
||||||
GL_DEBUG_SOURCE_API_ARB,
|
GL_DEBUG_SOURCE_API_ARB,
|
||||||
GL_DEBUG_TYPE_OTHER_ARB, 1,
|
GL_DEBUG_TYPE_OTHER_ARB, 1,
|
||||||
GL_DEBUG_SEVERITY_HIGH_ARB, 5, "hello");
|
GL_DEBUG_SEVERITY_HIGH_ARB, 5, "hello");
|
||||||
*/
|
*/
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
const GLubyte *renderer = glGetString(GL_RENDERER);
|
const GLubyte *renderer = glGetString(GL_RENDERER);
|
||||||
print_line("OpenGL ES 2.0 Renderer: " + String((const char *)renderer));
|
print_line("OpenGL ES 2.0 Renderer: " + String((const char *)renderer));
|
||||||
|
|
|
@ -160,29 +160,31 @@ void RasterizerGLES3::initialize() {
|
||||||
"Fatal error: Insufficient OpenGL / GLES driver support");
|
"Fatal error: Insufficient OpenGL / GLES driver support");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
// FIXME glDebugMessageCallbackARB does not seem to work on Mac OS X and opengl 3, this may be an issue with our opengl canvas..
|
|
||||||
#else
|
|
||||||
if (OS::get_singleton()->is_stdout_verbose()) {
|
if (OS::get_singleton()->is_stdout_verbose()) {
|
||||||
glEnable(_EXT_DEBUG_OUTPUT_SYNCHRONOUS_ARB);
|
if (GLAD_GL_ARB_debug_output) {
|
||||||
glDebugMessageCallbackARB(_gl_debug_print, NULL);
|
glEnable(_EXT_DEBUG_OUTPUT_SYNCHRONOUS_ARB);
|
||||||
glEnable(_EXT_DEBUG_OUTPUT);
|
glDebugMessageCallbackARB(_gl_debug_print, NULL);
|
||||||
|
glEnable(_EXT_DEBUG_OUTPUT);
|
||||||
|
} else {
|
||||||
|
print_line("OpenGL debugging not supported!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // GLAD_ENABLED
|
#endif // GLAD_ENABLED
|
||||||
|
|
||||||
/* // For debugging
|
/* // For debugging
|
||||||
glDebugMessageControlARB(GL_DEBUG_SOURCE_API_ARB,GL_DEBUG_TYPE_ERROR_ARB,GL_DEBUG_SEVERITY_HIGH_ARB,0,NULL,GL_TRUE);
|
if (GLAD_GL_ARB_debug_output) {
|
||||||
glDebugMessageControlARB(GL_DEBUG_SOURCE_API_ARB,GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB,GL_DEBUG_SEVERITY_HIGH_ARB,0,NULL,GL_TRUE);
|
glDebugMessageControlARB(GL_DEBUG_SOURCE_API_ARB,GL_DEBUG_TYPE_ERROR_ARB,GL_DEBUG_SEVERITY_HIGH_ARB,0,NULL,GL_TRUE);
|
||||||
glDebugMessageControlARB(GL_DEBUG_SOURCE_API_ARB,GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB,GL_DEBUG_SEVERITY_HIGH_ARB,0,NULL,GL_TRUE);
|
glDebugMessageControlARB(GL_DEBUG_SOURCE_API_ARB,GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB,GL_DEBUG_SEVERITY_HIGH_ARB,0,NULL,GL_TRUE);
|
||||||
glDebugMessageControlARB(GL_DEBUG_SOURCE_API_ARB,GL_DEBUG_TYPE_PORTABILITY_ARB,GL_DEBUG_SEVERITY_HIGH_ARB,0,NULL,GL_TRUE);
|
glDebugMessageControlARB(GL_DEBUG_SOURCE_API_ARB,GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB,GL_DEBUG_SEVERITY_HIGH_ARB,0,NULL,GL_TRUE);
|
||||||
glDebugMessageControlARB(GL_DEBUG_SOURCE_API_ARB,GL_DEBUG_TYPE_PERFORMANCE_ARB,GL_DEBUG_SEVERITY_HIGH_ARB,0,NULL,GL_TRUE);
|
glDebugMessageControlARB(GL_DEBUG_SOURCE_API_ARB,GL_DEBUG_TYPE_PORTABILITY_ARB,GL_DEBUG_SEVERITY_HIGH_ARB,0,NULL,GL_TRUE);
|
||||||
glDebugMessageControlARB(GL_DEBUG_SOURCE_API_ARB,GL_DEBUG_TYPE_OTHER_ARB,GL_DEBUG_SEVERITY_HIGH_ARB,0,NULL,GL_TRUE);
|
glDebugMessageControlARB(GL_DEBUG_SOURCE_API_ARB,GL_DEBUG_TYPE_PERFORMANCE_ARB,GL_DEBUG_SEVERITY_HIGH_ARB,0,NULL,GL_TRUE);
|
||||||
glDebugMessageInsertARB(
|
glDebugMessageControlARB(GL_DEBUG_SOURCE_API_ARB,GL_DEBUG_TYPE_OTHER_ARB,GL_DEBUG_SEVERITY_HIGH_ARB,0,NULL,GL_TRUE);
|
||||||
GL_DEBUG_SOURCE_API_ARB,
|
glDebugMessageInsertARB(
|
||||||
GL_DEBUG_TYPE_OTHER_ARB, 1,
|
GL_DEBUG_SOURCE_API_ARB,
|
||||||
GL_DEBUG_SEVERITY_HIGH_ARB,5, "hello");
|
GL_DEBUG_TYPE_OTHER_ARB, 1,
|
||||||
|
GL_DEBUG_SEVERITY_HIGH_ARB,5, "hello");
|
||||||
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const GLubyte *renderer = glGetString(GL_RENDERER);
|
const GLubyte *renderer = glGetString(GL_RENDERER);
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
|
|
||||||
OpenGL loader generated by glad 0.1.18a0 on Fri Mar 2 11:26:24 2018.
|
OpenGL loader generated by glad 0.1.18a0 on Mon Mar 5 18:43:52 2018.
|
||||||
|
|
||||||
Language/Generator: C/C++
|
Language/Generator: C/C++
|
||||||
Specification: gl
|
Specification: gl
|
||||||
|
@ -8,15 +8,16 @@
|
||||||
Profile: compatibility
|
Profile: compatibility
|
||||||
Extensions:
|
Extensions:
|
||||||
GL_ARB_debug_output,
|
GL_ARB_debug_output,
|
||||||
GL_ARB_framebuffer_object
|
GL_ARB_framebuffer_object,
|
||||||
|
GL_EXT_framebuffer_object
|
||||||
Loader: True
|
Loader: True
|
||||||
Local files: False
|
Local files: False
|
||||||
Omit khrplatform: False
|
Omit khrplatform: False
|
||||||
|
|
||||||
Commandline:
|
Commandline:
|
||||||
--profile="compatibility" --api="gl=3.3" --generator="c" --spec="gl" --extensions="GL_ARB_debug_output,GL_ARB_framebuffer_object"
|
--profile="compatibility" --api="gl=3.3" --generator="c" --spec="gl" --extensions="GL_ARB_debug_output,GL_ARB_framebuffer_object,GL_EXT_framebuffer_object"
|
||||||
Online:
|
Online:
|
||||||
http://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gl%3D3.3&extensions=GL_ARB_debug_output&extensions=GL_ARB_framebuffer_object
|
http://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gl%3D3.3&extensions=GL_ARB_debug_output&extensions=GL_ARB_framebuffer_object&extensions=GL_EXT_framebuffer_object
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -973,11 +974,29 @@ PFNGLFRONTFACEPROC glad_glFrontFace;
|
||||||
PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v;
|
PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v;
|
||||||
PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
|
PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
|
||||||
int GLAD_GL_ARB_framebuffer_object;
|
int GLAD_GL_ARB_framebuffer_object;
|
||||||
|
int GLAD_GL_EXT_framebuffer_object;
|
||||||
int GLAD_GL_ARB_debug_output;
|
int GLAD_GL_ARB_debug_output;
|
||||||
PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB;
|
PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB;
|
||||||
PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB;
|
PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB;
|
||||||
PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB;
|
PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB;
|
||||||
PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB;
|
PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB;
|
||||||
|
PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT;
|
||||||
|
PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT;
|
||||||
|
PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT;
|
||||||
|
PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT;
|
||||||
|
PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT;
|
||||||
|
PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT;
|
||||||
|
PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT;
|
||||||
|
PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT;
|
||||||
|
PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT;
|
||||||
|
PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT;
|
||||||
|
PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT;
|
||||||
|
PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT;
|
||||||
|
PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT;
|
||||||
|
PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT;
|
||||||
|
PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT;
|
||||||
|
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT;
|
||||||
|
PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT;
|
||||||
static void load_GL_VERSION_1_0(GLADloadproc load) {
|
static void load_GL_VERSION_1_0(GLADloadproc load) {
|
||||||
if(!GLAD_GL_VERSION_1_0) return;
|
if(!GLAD_GL_VERSION_1_0) return;
|
||||||
glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace");
|
glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace");
|
||||||
|
@ -1771,10 +1790,31 @@ static void load_GL_ARB_framebuffer_object(GLADloadproc load) {
|
||||||
glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample");
|
glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample");
|
||||||
glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer");
|
glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer");
|
||||||
}
|
}
|
||||||
|
static void load_GL_EXT_framebuffer_object(GLADloadproc load) {
|
||||||
|
if(!GLAD_GL_EXT_framebuffer_object) return;
|
||||||
|
glad_glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC)load("glIsRenderbufferEXT");
|
||||||
|
glad_glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC)load("glBindRenderbufferEXT");
|
||||||
|
glad_glDeleteRenderbuffersEXT = (PFNGLDELETERENDERBUFFERSEXTPROC)load("glDeleteRenderbuffersEXT");
|
||||||
|
glad_glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC)load("glGenRenderbuffersEXT");
|
||||||
|
glad_glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC)load("glRenderbufferStorageEXT");
|
||||||
|
glad_glGetRenderbufferParameterivEXT = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)load("glGetRenderbufferParameterivEXT");
|
||||||
|
glad_glIsFramebufferEXT = (PFNGLISFRAMEBUFFEREXTPROC)load("glIsFramebufferEXT");
|
||||||
|
glad_glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC)load("glBindFramebufferEXT");
|
||||||
|
glad_glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC)load("glDeleteFramebuffersEXT");
|
||||||
|
glad_glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC)load("glGenFramebuffersEXT");
|
||||||
|
glad_glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)load("glCheckFramebufferStatusEXT");
|
||||||
|
glad_glFramebufferTexture1DEXT = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)load("glFramebufferTexture1DEXT");
|
||||||
|
glad_glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)load("glFramebufferTexture2DEXT");
|
||||||
|
glad_glFramebufferTexture3DEXT = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)load("glFramebufferTexture3DEXT");
|
||||||
|
glad_glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)load("glFramebufferRenderbufferEXT");
|
||||||
|
glad_glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)load("glGetFramebufferAttachmentParameterivEXT");
|
||||||
|
glad_glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC)load("glGenerateMipmapEXT");
|
||||||
|
}
|
||||||
static int find_extensionsGL(void) {
|
static int find_extensionsGL(void) {
|
||||||
if (!get_exts()) return 0;
|
if (!get_exts()) return 0;
|
||||||
GLAD_GL_ARB_debug_output = has_ext("GL_ARB_debug_output");
|
GLAD_GL_ARB_debug_output = has_ext("GL_ARB_debug_output");
|
||||||
GLAD_GL_ARB_framebuffer_object = has_ext("GL_ARB_framebuffer_object");
|
GLAD_GL_ARB_framebuffer_object = has_ext("GL_ARB_framebuffer_object");
|
||||||
|
GLAD_GL_EXT_framebuffer_object = has_ext("GL_EXT_framebuffer_object");
|
||||||
free_exts();
|
free_exts();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -1855,6 +1895,7 @@ int gladLoadGLLoader(GLADloadproc load) {
|
||||||
if (!find_extensionsGL()) return 0;
|
if (!find_extensionsGL()) return 0;
|
||||||
load_GL_ARB_debug_output(load);
|
load_GL_ARB_debug_output(load);
|
||||||
load_GL_ARB_framebuffer_object(load);
|
load_GL_ARB_framebuffer_object(load);
|
||||||
|
load_GL_EXT_framebuffer_object(load);
|
||||||
return GLVersion.major != 0 || GLVersion.minor != 0;
|
return GLVersion.major != 0 || GLVersion.minor != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/*
|
/*
|
||||||
|
|
||||||
OpenGL loader generated by glad 0.1.18a0 on Fri Mar 2 11:26:24 2018.
|
OpenGL loader generated by glad 0.1.18a0 on Mon Mar 5 18:43:52 2018.
|
||||||
|
|
||||||
Language/Generator: C/C++
|
Language/Generator: C/C++
|
||||||
Specification: gl
|
Specification: gl
|
||||||
|
@ -8,15 +8,16 @@
|
||||||
Profile: compatibility
|
Profile: compatibility
|
||||||
Extensions:
|
Extensions:
|
||||||
GL_ARB_debug_output,
|
GL_ARB_debug_output,
|
||||||
GL_ARB_framebuffer_object
|
GL_ARB_framebuffer_object,
|
||||||
|
GL_EXT_framebuffer_object
|
||||||
Loader: True
|
Loader: True
|
||||||
Local files: False
|
Local files: False
|
||||||
Omit khrplatform: False
|
Omit khrplatform: False
|
||||||
|
|
||||||
Commandline:
|
Commandline:
|
||||||
--profile="compatibility" --api="gl=3.3" --generator="c" --spec="gl" --extensions="GL_ARB_debug_output,GL_ARB_framebuffer_object"
|
--profile="compatibility" --api="gl=3.3" --generator="c" --spec="gl" --extensions="GL_ARB_debug_output,GL_ARB_framebuffer_object,GL_EXT_framebuffer_object"
|
||||||
Online:
|
Online:
|
||||||
http://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gl%3D3.3&extensions=GL_ARB_debug_output&extensions=GL_ARB_framebuffer_object
|
http://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gl%3D3.3&extensions=GL_ARB_debug_output&extensions=GL_ARB_framebuffer_object&extensions=GL_EXT_framebuffer_object
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@ -3681,6 +3682,57 @@ GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
|
||||||
#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
|
#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146
|
||||||
#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
|
#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147
|
||||||
#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
|
#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148
|
||||||
|
#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506
|
||||||
|
#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8
|
||||||
|
#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6
|
||||||
|
#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7
|
||||||
|
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0
|
||||||
|
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1
|
||||||
|
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2
|
||||||
|
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3
|
||||||
|
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4
|
||||||
|
#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5
|
||||||
|
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6
|
||||||
|
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7
|
||||||
|
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9
|
||||||
|
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA
|
||||||
|
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB
|
||||||
|
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC
|
||||||
|
#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD
|
||||||
|
#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF
|
||||||
|
#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0
|
||||||
|
#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1
|
||||||
|
#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2
|
||||||
|
#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3
|
||||||
|
#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4
|
||||||
|
#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5
|
||||||
|
#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6
|
||||||
|
#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7
|
||||||
|
#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8
|
||||||
|
#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9
|
||||||
|
#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA
|
||||||
|
#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB
|
||||||
|
#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC
|
||||||
|
#define GL_COLOR_ATTACHMENT13_EXT 0x8CED
|
||||||
|
#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE
|
||||||
|
#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF
|
||||||
|
#define GL_DEPTH_ATTACHMENT_EXT 0x8D00
|
||||||
|
#define GL_STENCIL_ATTACHMENT_EXT 0x8D20
|
||||||
|
#define GL_FRAMEBUFFER_EXT 0x8D40
|
||||||
|
#define GL_RENDERBUFFER_EXT 0x8D41
|
||||||
|
#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42
|
||||||
|
#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43
|
||||||
|
#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44
|
||||||
|
#define GL_STENCIL_INDEX1_EXT 0x8D46
|
||||||
|
#define GL_STENCIL_INDEX4_EXT 0x8D47
|
||||||
|
#define GL_STENCIL_INDEX8_EXT 0x8D48
|
||||||
|
#define GL_STENCIL_INDEX16_EXT 0x8D49
|
||||||
|
#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50
|
||||||
|
#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51
|
||||||
|
#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52
|
||||||
|
#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
|
||||||
|
#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
|
||||||
|
#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
|
||||||
#ifndef GL_ARB_debug_output
|
#ifndef GL_ARB_debug_output
|
||||||
#define GL_ARB_debug_output 1
|
#define GL_ARB_debug_output 1
|
||||||
GLAPI int GLAD_GL_ARB_debug_output;
|
GLAPI int GLAD_GL_ARB_debug_output;
|
||||||
|
@ -3701,6 +3753,61 @@ GLAPI PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB;
|
||||||
#define GL_ARB_framebuffer_object 1
|
#define GL_ARB_framebuffer_object 1
|
||||||
GLAPI int GLAD_GL_ARB_framebuffer_object;
|
GLAPI int GLAD_GL_ARB_framebuffer_object;
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef GL_EXT_framebuffer_object
|
||||||
|
#define GL_EXT_framebuffer_object 1
|
||||||
|
GLAPI int GLAD_GL_EXT_framebuffer_object;
|
||||||
|
typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer);
|
||||||
|
GLAPI PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT;
|
||||||
|
#define glIsRenderbufferEXT glad_glIsRenderbufferEXT
|
||||||
|
typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer);
|
||||||
|
GLAPI PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT;
|
||||||
|
#define glBindRenderbufferEXT glad_glBindRenderbufferEXT
|
||||||
|
typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint *renderbuffers);
|
||||||
|
GLAPI PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT;
|
||||||
|
#define glDeleteRenderbuffersEXT glad_glDeleteRenderbuffersEXT
|
||||||
|
typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint *renderbuffers);
|
||||||
|
GLAPI PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT;
|
||||||
|
#define glGenRenderbuffersEXT glad_glGenRenderbuffersEXT
|
||||||
|
typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
|
||||||
|
GLAPI PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT;
|
||||||
|
#define glRenderbufferStorageEXT glad_glRenderbufferStorageEXT
|
||||||
|
typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params);
|
||||||
|
GLAPI PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT;
|
||||||
|
#define glGetRenderbufferParameterivEXT glad_glGetRenderbufferParameterivEXT
|
||||||
|
typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer);
|
||||||
|
GLAPI PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT;
|
||||||
|
#define glIsFramebufferEXT glad_glIsFramebufferEXT
|
||||||
|
typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer);
|
||||||
|
GLAPI PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT;
|
||||||
|
#define glBindFramebufferEXT glad_glBindFramebufferEXT
|
||||||
|
typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint *framebuffers);
|
||||||
|
GLAPI PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT;
|
||||||
|
#define glDeleteFramebuffersEXT glad_glDeleteFramebuffersEXT
|
||||||
|
typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint *framebuffers);
|
||||||
|
GLAPI PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT;
|
||||||
|
#define glGenFramebuffersEXT glad_glGenFramebuffersEXT
|
||||||
|
typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target);
|
||||||
|
GLAPI PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT;
|
||||||
|
#define glCheckFramebufferStatusEXT glad_glCheckFramebufferStatusEXT
|
||||||
|
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||||
|
GLAPI PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT;
|
||||||
|
#define glFramebufferTexture1DEXT glad_glFramebufferTexture1DEXT
|
||||||
|
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
|
||||||
|
GLAPI PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT;
|
||||||
|
#define glFramebufferTexture2DEXT glad_glFramebufferTexture2DEXT
|
||||||
|
typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
|
||||||
|
GLAPI PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT;
|
||||||
|
#define glFramebufferTexture3DEXT glad_glFramebufferTexture3DEXT
|
||||||
|
typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
|
||||||
|
GLAPI PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT;
|
||||||
|
#define glFramebufferRenderbufferEXT glad_glFramebufferRenderbufferEXT
|
||||||
|
typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target, GLenum attachment, GLenum pname, GLint *params);
|
||||||
|
GLAPI PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT;
|
||||||
|
#define glGetFramebufferAttachmentParameterivEXT glad_glGetFramebufferAttachmentParameterivEXT
|
||||||
|
typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC)(GLenum target);
|
||||||
|
GLAPI PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT;
|
||||||
|
#define glGenerateMipmapEXT glad_glGenerateMipmapEXT
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue