forked from Ports/perfect_dark
port: nicer GL debug output
now only enabled if you pass --debug-gl
This commit is contained in:
1 parent
dad5b3c074
commit
bd113a5b44
4 files changed
+237
-39
No files matched your search
@@ -803,8 +803,24 @@ typedef void (APIENTRY *DEBUGPROC)(GLenum source,
|
|||||||
const void *userParam);
|
const void *userParam);
|
||||||
|
|
||||||
static void APIENTRY gl_debug(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *msg, const void *p) {
|
static void APIENTRY gl_debug(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *msg, const void *p) {
|
||||||
if (severity > 0x826B) {
|
sysLogPrintf(LOG_WARNING, "GL: (%05x) %s", id, msg);
|
||||||
sysLogPrintf(LOG_WARNING, "GL: %s", msg);
|
}
|
||||||
|
|
||||||
|
static void gfx_opengl_enable_debug(void) {
|
||||||
|
if (GLAD_GL_KHR_debug) {
|
||||||
|
glEnable(GL_DEBUG_OUTPUT);
|
||||||
|
}
|
||||||
|
if (glDebugMessageControl != NULL) {
|
||||||
|
// enable everything except some specific spam messages
|
||||||
|
const GLuint disable[] = {
|
||||||
|
0x20061, /* "Framebuffer detailed info" */
|
||||||
|
0x20071 /* "Buffer detailed info" */
|
||||||
|
};
|
||||||
|
glDebugMessageControl(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0, NULL, GL_TRUE);
|
||||||
|
glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_OTHER, GL_DONT_CARE, 2, disable, GL_FALSE);
|
||||||
|
}
|
||||||
|
if (glDebugMessageCallback != NULL) {
|
||||||
|
glDebugMessageCallback(gl_debug, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -813,9 +829,8 @@ static void gfx_opengl_init(void) {
|
|||||||
sysFatalError("Could not load OpenGL. Ensure your GPU supports at least OpenGL 2.1.");
|
sysFatalError("Could not load OpenGL. Ensure your GPU supports at least OpenGL 2.1.");
|
||||||
}
|
}
|
||||||
|
|
||||||
void APIENTRY (*pglDebugMessageCallback)(DEBUGPROC, const void *) = (void APIENTRY (*)(DEBUGPROC, const void *))SDL_GL_GetProcAddress("glDebugMessageCallback");
|
if (sysArgCheck("--debug-gl")) {
|
||||||
if (pglDebugMessageCallback) {
|
gfx_opengl_enable_debug();
|
||||||
pglDebugMessageCallback(gl_debug, NULL);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
glGenBuffers(1, &opengl_vbo);
|
glGenBuffers(1, &opengl_vbo);
|
||||||
|
|||||||
+13
-26
@@ -69,30 +69,18 @@ static void gfx_sdl_init(const char* game_name, const char* gfx_api_name, bool s
|
|||||||
sysFatalError("Could not init SDL:\n%s", SDL_GetError());
|
sysFatalError("Could not init SDL:\n%s", SDL_GetError());
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_EventState(SDL_DROPFILE, SDL_ENABLE);
|
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
|
||||||
bool use_opengl = true;
|
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
||||||
|
|
||||||
if (use_opengl) {
|
|
||||||
SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
|
|
||||||
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY);
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY);
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_DEBUG_FLAG);
|
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
|
||||||
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
|
||||||
|
if (sysArgCheck("--debug-gl")) {
|
||||||
|
SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_DEBUG_FLAG);
|
||||||
|
}
|
||||||
|
|
||||||
char title[512];
|
char title[512];
|
||||||
int len = sprintf(title, "%s (%s)", game_name, gfx_api_name);
|
snprintf(title, sizeof(title), "%s (%s)", game_name, gfx_api_name);
|
||||||
|
|
||||||
Uint32 flags = SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI;
|
|
||||||
|
|
||||||
if (use_opengl) {
|
|
||||||
flags = flags | SDL_WINDOW_OPENGL;
|
|
||||||
} else {
|
|
||||||
flags = flags | SDL_WINDOW_METAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
int display_in_use = SDL_GetWindowDisplayIndex(wnd);
|
int display_in_use = SDL_GetWindowDisplayIndex(wnd);
|
||||||
if (display_in_use < 0) { // Fallback to default if out of bounds
|
if (display_in_use < 0) { // Fallback to default if out of bounds
|
||||||
@@ -100,19 +88,18 @@ static void gfx_sdl_init(const char* game_name, const char* gfx_api_name, bool s
|
|||||||
posY = 100;
|
posY = 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const Uint32 flags = SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI | SDL_WINDOW_OPENGL;
|
||||||
wnd = SDL_CreateWindow(title, posX, posY, window_width, window_height, flags);
|
wnd = SDL_CreateWindow(title, posX, posY, window_width, window_height, flags);
|
||||||
if (!wnd) {
|
if (!wnd) {
|
||||||
sysFatalError("Could not open SDL window:\n%s", SDL_GetError());
|
sysFatalError("Could not open SDL window:\n%s", SDL_GetError());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (use_opengl) {
|
ctx = SDL_GL_CreateContext(wnd);
|
||||||
ctx = SDL_GL_CreateContext(wnd);
|
if (!ctx) {
|
||||||
if (!ctx) {
|
sysFatalError("Could not create GL2.1 context:\n%s", SDL_GetError());
|
||||||
sysFatalError("Could not create GL2.1 context:\n%s", SDL_GetError());
|
|
||||||
}
|
|
||||||
SDL_GL_MakeCurrent(wnd, ctx);
|
|
||||||
SDL_GL_SetSwapInterval(1);
|
|
||||||
}
|
}
|
||||||
|
SDL_GL_MakeCurrent(wnd, ctx);
|
||||||
|
SDL_GL_SetSwapInterval(1);
|
||||||
|
|
||||||
qpc_freq = SDL_GetPerformanceFrequency();
|
qpc_freq = SDL_GetPerformanceFrequency();
|
||||||
|
|
||||||
|
|||||||
+54
-4
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
OpenGL loader generated by glad 0.1.34 on Tue Aug 15 02:22:41 2023.
|
OpenGL loader generated by glad 0.1.34 on Sat Sep 23 22:18:32 2023.
|
||||||
|
|
||||||
Language/Generator: C/C++
|
Language/Generator: C/C++
|
||||||
Specification: gl
|
Specification: gl
|
||||||
@@ -9,16 +9,17 @@
|
|||||||
Extensions:
|
Extensions:
|
||||||
GL_ARB_depth_clamp,
|
GL_ARB_depth_clamp,
|
||||||
GL_ARB_framebuffer_object,
|
GL_ARB_framebuffer_object,
|
||||||
GL_EXT_framebuffer_object
|
GL_EXT_framebuffer_object,
|
||||||
|
GL_KHR_debug
|
||||||
Loader: True
|
Loader: True
|
||||||
Local files: True
|
Local files: True
|
||||||
Omit khrplatform: False
|
Omit khrplatform: False
|
||||||
Reproducible: False
|
Reproducible: False
|
||||||
|
|
||||||
Commandline:
|
Commandline:
|
||||||
--profile="compatibility" --api="gl=2.1" --generator="c" --spec="gl" --local-files --extensions="GL_ARB_depth_clamp,GL_ARB_framebuffer_object,GL_EXT_framebuffer_object"
|
--profile="compatibility" --api="gl=2.1" --generator="c" --spec="gl" --local-files --extensions="GL_ARB_depth_clamp,GL_ARB_framebuffer_object,GL_EXT_framebuffer_object,GL_KHR_debug"
|
||||||
Online:
|
Online:
|
||||||
https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gl%3D2.1&extensions=GL_ARB_depth_clamp&extensions=GL_ARB_framebuffer_object&extensions=GL_EXT_framebuffer_object
|
https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gl%3D2.1&extensions=GL_ARB_depth_clamp&extensions=GL_ARB_framebuffer_object&extensions=GL_EXT_framebuffer_object&extensions=GL_KHR_debug
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -819,6 +820,7 @@ PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv = NULL;
|
|||||||
int GLAD_GL_ARB_depth_clamp = 0;
|
int GLAD_GL_ARB_depth_clamp = 0;
|
||||||
int GLAD_GL_ARB_framebuffer_object = 0;
|
int GLAD_GL_ARB_framebuffer_object = 0;
|
||||||
int GLAD_GL_EXT_framebuffer_object = 0;
|
int GLAD_GL_EXT_framebuffer_object = 0;
|
||||||
|
int GLAD_GL_KHR_debug = 0;
|
||||||
PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL;
|
PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL;
|
||||||
PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL;
|
PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL;
|
||||||
PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL;
|
PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL;
|
||||||
@@ -856,6 +858,27 @@ PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT = NULL;
|
|||||||
PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT = NULL;
|
PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT = NULL;
|
||||||
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT = NULL;
|
PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT = NULL;
|
||||||
PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT = NULL;
|
PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT = NULL;
|
||||||
|
PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl = NULL;
|
||||||
|
PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert = NULL;
|
||||||
|
PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback = NULL;
|
||||||
|
PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog = NULL;
|
||||||
|
PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup = NULL;
|
||||||
|
PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup = NULL;
|
||||||
|
PFNGLOBJECTLABELPROC glad_glObjectLabel = NULL;
|
||||||
|
PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel = NULL;
|
||||||
|
PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel = NULL;
|
||||||
|
PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel = NULL;
|
||||||
|
PFNGLDEBUGMESSAGECONTROLKHRPROC glad_glDebugMessageControlKHR = NULL;
|
||||||
|
PFNGLDEBUGMESSAGEINSERTKHRPROC glad_glDebugMessageInsertKHR = NULL;
|
||||||
|
PFNGLDEBUGMESSAGECALLBACKKHRPROC glad_glDebugMessageCallbackKHR = NULL;
|
||||||
|
PFNGLGETDEBUGMESSAGELOGKHRPROC glad_glGetDebugMessageLogKHR = NULL;
|
||||||
|
PFNGLPUSHDEBUGGROUPKHRPROC glad_glPushDebugGroupKHR = NULL;
|
||||||
|
PFNGLPOPDEBUGGROUPKHRPROC glad_glPopDebugGroupKHR = NULL;
|
||||||
|
PFNGLOBJECTLABELKHRPROC glad_glObjectLabelKHR = NULL;
|
||||||
|
PFNGLGETOBJECTLABELKHRPROC glad_glGetObjectLabelKHR = NULL;
|
||||||
|
PFNGLOBJECTPTRLABELKHRPROC glad_glObjectPtrLabelKHR = NULL;
|
||||||
|
PFNGLGETOBJECTPTRLABELKHRPROC glad_glGetObjectPtrLabelKHR = NULL;
|
||||||
|
PFNGLGETPOINTERVKHRPROC glad_glGetPointervKHR = NULL;
|
||||||
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");
|
||||||
@@ -1474,11 +1497,37 @@ static void load_GL_EXT_framebuffer_object(GLADloadproc load) {
|
|||||||
glad_glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)load("glGetFramebufferAttachmentParameterivEXT");
|
glad_glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)load("glGetFramebufferAttachmentParameterivEXT");
|
||||||
glad_glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC)load("glGenerateMipmapEXT");
|
glad_glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC)load("glGenerateMipmapEXT");
|
||||||
}
|
}
|
||||||
|
static void load_GL_KHR_debug(GLADloadproc load) {
|
||||||
|
if(!GLAD_GL_KHR_debug) return;
|
||||||
|
glad_glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC)load("glDebugMessageControl");
|
||||||
|
glad_glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC)load("glDebugMessageInsert");
|
||||||
|
glad_glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC)load("glDebugMessageCallback");
|
||||||
|
glad_glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC)load("glGetDebugMessageLog");
|
||||||
|
glad_glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC)load("glPushDebugGroup");
|
||||||
|
glad_glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC)load("glPopDebugGroup");
|
||||||
|
glad_glObjectLabel = (PFNGLOBJECTLABELPROC)load("glObjectLabel");
|
||||||
|
glad_glGetObjectLabel = (PFNGLGETOBJECTLABELPROC)load("glGetObjectLabel");
|
||||||
|
glad_glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC)load("glObjectPtrLabel");
|
||||||
|
glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC)load("glGetObjectPtrLabel");
|
||||||
|
glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv");
|
||||||
|
glad_glDebugMessageControlKHR = (PFNGLDEBUGMESSAGECONTROLKHRPROC)load("glDebugMessageControlKHR");
|
||||||
|
glad_glDebugMessageInsertKHR = (PFNGLDEBUGMESSAGEINSERTKHRPROC)load("glDebugMessageInsertKHR");
|
||||||
|
glad_glDebugMessageCallbackKHR = (PFNGLDEBUGMESSAGECALLBACKKHRPROC)load("glDebugMessageCallbackKHR");
|
||||||
|
glad_glGetDebugMessageLogKHR = (PFNGLGETDEBUGMESSAGELOGKHRPROC)load("glGetDebugMessageLogKHR");
|
||||||
|
glad_glPushDebugGroupKHR = (PFNGLPUSHDEBUGGROUPKHRPROC)load("glPushDebugGroupKHR");
|
||||||
|
glad_glPopDebugGroupKHR = (PFNGLPOPDEBUGGROUPKHRPROC)load("glPopDebugGroupKHR");
|
||||||
|
glad_glObjectLabelKHR = (PFNGLOBJECTLABELKHRPROC)load("glObjectLabelKHR");
|
||||||
|
glad_glGetObjectLabelKHR = (PFNGLGETOBJECTLABELKHRPROC)load("glGetObjectLabelKHR");
|
||||||
|
glad_glObjectPtrLabelKHR = (PFNGLOBJECTPTRLABELKHRPROC)load("glObjectPtrLabelKHR");
|
||||||
|
glad_glGetObjectPtrLabelKHR = (PFNGLGETOBJECTPTRLABELKHRPROC)load("glGetObjectPtrLabelKHR");
|
||||||
|
glad_glGetPointervKHR = (PFNGLGETPOINTERVKHRPROC)load("glGetPointervKHR");
|
||||||
|
}
|
||||||
static int find_extensionsGL(void) {
|
static int find_extensionsGL(void) {
|
||||||
if (!get_exts()) return 0;
|
if (!get_exts()) return 0;
|
||||||
GLAD_GL_ARB_depth_clamp = has_ext("GL_ARB_depth_clamp");
|
GLAD_GL_ARB_depth_clamp = has_ext("GL_ARB_depth_clamp");
|
||||||
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");
|
GLAD_GL_EXT_framebuffer_object = has_ext("GL_EXT_framebuffer_object");
|
||||||
|
GLAD_GL_KHR_debug = has_ext("GL_KHR_debug");
|
||||||
free_exts();
|
free_exts();
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -1551,6 +1600,7 @@ int gladLoadGLLoader(GLADloadproc load) {
|
|||||||
if (!find_extensionsGL()) return 0;
|
if (!find_extensionsGL()) return 0;
|
||||||
load_GL_ARB_framebuffer_object(load);
|
load_GL_ARB_framebuffer_object(load);
|
||||||
load_GL_EXT_framebuffer_object(load);
|
load_GL_EXT_framebuffer_object(load);
|
||||||
|
load_GL_KHR_debug(load);
|
||||||
return GLVersion.major != 0 || GLVersion.minor != 0;
|
return GLVersion.major != 0 || GLVersion.minor != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
+150
-4
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
OpenGL loader generated by glad 0.1.34 on Tue Aug 15 02:22:41 2023.
|
OpenGL loader generated by glad 0.1.34 on Sat Sep 23 22:18:32 2023.
|
||||||
|
|
||||||
Language/Generator: C/C++
|
Language/Generator: C/C++
|
||||||
Specification: gl
|
Specification: gl
|
||||||
@@ -9,16 +9,17 @@
|
|||||||
Extensions:
|
Extensions:
|
||||||
GL_ARB_depth_clamp,
|
GL_ARB_depth_clamp,
|
||||||
GL_ARB_framebuffer_object,
|
GL_ARB_framebuffer_object,
|
||||||
GL_EXT_framebuffer_object
|
GL_EXT_framebuffer_object,
|
||||||
|
GL_KHR_debug
|
||||||
Loader: True
|
Loader: True
|
||||||
Local files: True
|
Local files: True
|
||||||
Omit khrplatform: False
|
Omit khrplatform: False
|
||||||
Reproducible: False
|
Reproducible: False
|
||||||
|
|
||||||
Commandline:
|
Commandline:
|
||||||
--profile="compatibility" --api="gl=2.1" --generator="c" --spec="gl" --local-files --extensions="GL_ARB_depth_clamp,GL_ARB_framebuffer_object,GL_EXT_framebuffer_object"
|
--profile="compatibility" --api="gl=2.1" --generator="c" --spec="gl" --local-files --extensions="GL_ARB_depth_clamp,GL_ARB_framebuffer_object,GL_EXT_framebuffer_object,GL_KHR_debug"
|
||||||
Online:
|
Online:
|
||||||
https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gl%3D2.1&extensions=GL_ARB_depth_clamp&extensions=GL_ARB_framebuffer_object&extensions=GL_EXT_framebuffer_object
|
https://glad.dav1d.de/#profile=compatibility&language=c&specification=gl&loader=on&api=gl%3D2.1&extensions=GL_ARB_depth_clamp&extensions=GL_ARB_framebuffer_object&extensions=GL_EXT_framebuffer_object&extensions=GL_KHR_debug
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -2817,6 +2818,84 @@ GLAPI PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv;
|
|||||||
#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
|
#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53
|
||||||
#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
|
#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54
|
||||||
#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
|
#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55
|
||||||
|
#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242
|
||||||
|
#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243
|
||||||
|
#define GL_DEBUG_CALLBACK_FUNCTION 0x8244
|
||||||
|
#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245
|
||||||
|
#define GL_DEBUG_SOURCE_API 0x8246
|
||||||
|
#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247
|
||||||
|
#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248
|
||||||
|
#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249
|
||||||
|
#define GL_DEBUG_SOURCE_APPLICATION 0x824A
|
||||||
|
#define GL_DEBUG_SOURCE_OTHER 0x824B
|
||||||
|
#define GL_DEBUG_TYPE_ERROR 0x824C
|
||||||
|
#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D
|
||||||
|
#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E
|
||||||
|
#define GL_DEBUG_TYPE_PORTABILITY 0x824F
|
||||||
|
#define GL_DEBUG_TYPE_PERFORMANCE 0x8250
|
||||||
|
#define GL_DEBUG_TYPE_OTHER 0x8251
|
||||||
|
#define GL_DEBUG_TYPE_MARKER 0x8268
|
||||||
|
#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269
|
||||||
|
#define GL_DEBUG_TYPE_POP_GROUP 0x826A
|
||||||
|
#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B
|
||||||
|
#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C
|
||||||
|
#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D
|
||||||
|
#define GL_BUFFER 0x82E0
|
||||||
|
#define GL_SHADER 0x82E1
|
||||||
|
#define GL_PROGRAM 0x82E2
|
||||||
|
#define GL_QUERY 0x82E3
|
||||||
|
#define GL_PROGRAM_PIPELINE 0x82E4
|
||||||
|
#define GL_SAMPLER 0x82E6
|
||||||
|
#define GL_MAX_LABEL_LENGTH 0x82E8
|
||||||
|
#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143
|
||||||
|
#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144
|
||||||
|
#define GL_DEBUG_LOGGED_MESSAGES 0x9145
|
||||||
|
#define GL_DEBUG_SEVERITY_HIGH 0x9146
|
||||||
|
#define GL_DEBUG_SEVERITY_MEDIUM 0x9147
|
||||||
|
#define GL_DEBUG_SEVERITY_LOW 0x9148
|
||||||
|
#define GL_DEBUG_OUTPUT 0x92E0
|
||||||
|
#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002
|
||||||
|
#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242
|
||||||
|
#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR 0x8243
|
||||||
|
#define GL_DEBUG_CALLBACK_FUNCTION_KHR 0x8244
|
||||||
|
#define GL_DEBUG_CALLBACK_USER_PARAM_KHR 0x8245
|
||||||
|
#define GL_DEBUG_SOURCE_API_KHR 0x8246
|
||||||
|
#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR 0x8247
|
||||||
|
#define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR 0x8248
|
||||||
|
#define GL_DEBUG_SOURCE_THIRD_PARTY_KHR 0x8249
|
||||||
|
#define GL_DEBUG_SOURCE_APPLICATION_KHR 0x824A
|
||||||
|
#define GL_DEBUG_SOURCE_OTHER_KHR 0x824B
|
||||||
|
#define GL_DEBUG_TYPE_ERROR_KHR 0x824C
|
||||||
|
#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR 0x824D
|
||||||
|
#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR 0x824E
|
||||||
|
#define GL_DEBUG_TYPE_PORTABILITY_KHR 0x824F
|
||||||
|
#define GL_DEBUG_TYPE_PERFORMANCE_KHR 0x8250
|
||||||
|
#define GL_DEBUG_TYPE_OTHER_KHR 0x8251
|
||||||
|
#define GL_DEBUG_TYPE_MARKER_KHR 0x8268
|
||||||
|
#define GL_DEBUG_TYPE_PUSH_GROUP_KHR 0x8269
|
||||||
|
#define GL_DEBUG_TYPE_POP_GROUP_KHR 0x826A
|
||||||
|
#define GL_DEBUG_SEVERITY_NOTIFICATION_KHR 0x826B
|
||||||
|
#define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR 0x826C
|
||||||
|
#define GL_DEBUG_GROUP_STACK_DEPTH_KHR 0x826D
|
||||||
|
#define GL_BUFFER_KHR 0x82E0
|
||||||
|
#define GL_SHADER_KHR 0x82E1
|
||||||
|
#define GL_PROGRAM_KHR 0x82E2
|
||||||
|
#define GL_VERTEX_ARRAY_KHR 0x8074
|
||||||
|
#define GL_QUERY_KHR 0x82E3
|
||||||
|
#define GL_PROGRAM_PIPELINE_KHR 0x82E4
|
||||||
|
#define GL_SAMPLER_KHR 0x82E6
|
||||||
|
#define GL_MAX_LABEL_LENGTH_KHR 0x82E8
|
||||||
|
#define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR 0x9143
|
||||||
|
#define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR 0x9144
|
||||||
|
#define GL_DEBUG_LOGGED_MESSAGES_KHR 0x9145
|
||||||
|
#define GL_DEBUG_SEVERITY_HIGH_KHR 0x9146
|
||||||
|
#define GL_DEBUG_SEVERITY_MEDIUM_KHR 0x9147
|
||||||
|
#define GL_DEBUG_SEVERITY_LOW_KHR 0x9148
|
||||||
|
#define GL_DEBUG_OUTPUT_KHR 0x92E0
|
||||||
|
#define GL_CONTEXT_FLAG_DEBUG_BIT_KHR 0x00000002
|
||||||
|
#define GL_STACK_OVERFLOW_KHR 0x0503
|
||||||
|
#define GL_STACK_UNDERFLOW_KHR 0x0504
|
||||||
|
#define GL_DISPLAY_LIST 0x82E7
|
||||||
#ifndef GL_ARB_depth_clamp
|
#ifndef GL_ARB_depth_clamp
|
||||||
#define GL_ARB_depth_clamp 1
|
#define GL_ARB_depth_clamp 1
|
||||||
GLAPI int GLAD_GL_ARB_depth_clamp;
|
GLAPI int GLAD_GL_ARB_depth_clamp;
|
||||||
@@ -2940,6 +3019,73 @@ typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC)(GLenum target);
|
|||||||
GLAPI PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT;
|
GLAPI PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT;
|
||||||
#define glGenerateMipmapEXT glad_glGenerateMipmapEXT
|
#define glGenerateMipmapEXT glad_glGenerateMipmapEXT
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef GL_KHR_debug
|
||||||
|
#define GL_KHR_debug 1
|
||||||
|
GLAPI int GLAD_GL_KHR_debug;
|
||||||
|
typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
|
||||||
|
GLAPI PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl;
|
||||||
|
#define glDebugMessageControl glad_glDebugMessageControl
|
||||||
|
typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
|
||||||
|
GLAPI PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert;
|
||||||
|
#define glDebugMessageInsert glad_glDebugMessageInsert
|
||||||
|
typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC callback, const void *userParam);
|
||||||
|
GLAPI PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback;
|
||||||
|
#define glDebugMessageCallback glad_glDebugMessageCallback
|
||||||
|
typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGPROC)(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
|
||||||
|
GLAPI PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog;
|
||||||
|
#define glGetDebugMessageLog glad_glGetDebugMessageLog
|
||||||
|
typedef void (APIENTRYP PFNGLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length, const GLchar *message);
|
||||||
|
GLAPI PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup;
|
||||||
|
#define glPushDebugGroup glad_glPushDebugGroup
|
||||||
|
typedef void (APIENTRYP PFNGLPOPDEBUGGROUPPROC)(void);
|
||||||
|
GLAPI PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup;
|
||||||
|
#define glPopDebugGroup glad_glPopDebugGroup
|
||||||
|
typedef void (APIENTRYP PFNGLOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
|
||||||
|
GLAPI PFNGLOBJECTLABELPROC glad_glObjectLabel;
|
||||||
|
#define glObjectLabel glad_glObjectLabel
|
||||||
|
typedef void (APIENTRYP PFNGLGETOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
|
||||||
|
GLAPI PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel;
|
||||||
|
#define glGetObjectLabel glad_glGetObjectLabel
|
||||||
|
typedef void (APIENTRYP PFNGLOBJECTPTRLABELPROC)(const void *ptr, GLsizei length, const GLchar *label);
|
||||||
|
GLAPI PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel;
|
||||||
|
#define glObjectPtrLabel glad_glObjectPtrLabel
|
||||||
|
typedef void (APIENTRYP PFNGLGETOBJECTPTRLABELPROC)(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
|
||||||
|
GLAPI PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel;
|
||||||
|
#define glGetObjectPtrLabel glad_glGetObjectPtrLabel
|
||||||
|
typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLKHRPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
|
||||||
|
GLAPI PFNGLDEBUGMESSAGECONTROLKHRPROC glad_glDebugMessageControlKHR;
|
||||||
|
#define glDebugMessageControlKHR glad_glDebugMessageControlKHR
|
||||||
|
typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTKHRPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
|
||||||
|
GLAPI PFNGLDEBUGMESSAGEINSERTKHRPROC glad_glDebugMessageInsertKHR;
|
||||||
|
#define glDebugMessageInsertKHR glad_glDebugMessageInsertKHR
|
||||||
|
typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKKHRPROC)(GLDEBUGPROCKHR callback, const void *userParam);
|
||||||
|
GLAPI PFNGLDEBUGMESSAGECALLBACKKHRPROC glad_glDebugMessageCallbackKHR;
|
||||||
|
#define glDebugMessageCallbackKHR glad_glDebugMessageCallbackKHR
|
||||||
|
typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGKHRPROC)(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
|
||||||
|
GLAPI PFNGLGETDEBUGMESSAGELOGKHRPROC glad_glGetDebugMessageLogKHR;
|
||||||
|
#define glGetDebugMessageLogKHR glad_glGetDebugMessageLogKHR
|
||||||
|
typedef void (APIENTRYP PFNGLPUSHDEBUGGROUPKHRPROC)(GLenum source, GLuint id, GLsizei length, const GLchar *message);
|
||||||
|
GLAPI PFNGLPUSHDEBUGGROUPKHRPROC glad_glPushDebugGroupKHR;
|
||||||
|
#define glPushDebugGroupKHR glad_glPushDebugGroupKHR
|
||||||
|
typedef void (APIENTRYP PFNGLPOPDEBUGGROUPKHRPROC)(void);
|
||||||
|
GLAPI PFNGLPOPDEBUGGROUPKHRPROC glad_glPopDebugGroupKHR;
|
||||||
|
#define glPopDebugGroupKHR glad_glPopDebugGroupKHR
|
||||||
|
typedef void (APIENTRYP PFNGLOBJECTLABELKHRPROC)(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
|
||||||
|
GLAPI PFNGLOBJECTLABELKHRPROC glad_glObjectLabelKHR;
|
||||||
|
#define glObjectLabelKHR glad_glObjectLabelKHR
|
||||||
|
typedef void (APIENTRYP PFNGLGETOBJECTLABELKHRPROC)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
|
||||||
|
GLAPI PFNGLGETOBJECTLABELKHRPROC glad_glGetObjectLabelKHR;
|
||||||
|
#define glGetObjectLabelKHR glad_glGetObjectLabelKHR
|
||||||
|
typedef void (APIENTRYP PFNGLOBJECTPTRLABELKHRPROC)(const void *ptr, GLsizei length, const GLchar *label);
|
||||||
|
GLAPI PFNGLOBJECTPTRLABELKHRPROC glad_glObjectPtrLabelKHR;
|
||||||
|
#define glObjectPtrLabelKHR glad_glObjectPtrLabelKHR
|
||||||
|
typedef void (APIENTRYP PFNGLGETOBJECTPTRLABELKHRPROC)(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
|
||||||
|
GLAPI PFNGLGETOBJECTPTRLABELKHRPROC glad_glGetObjectPtrLabelKHR;
|
||||||
|
#define glGetObjectPtrLabelKHR glad_glGetObjectPtrLabelKHR
|
||||||
|
typedef void (APIENTRYP PFNGLGETPOINTERVKHRPROC)(GLenum pname, void **params);
|
||||||
|
GLAPI PFNGLGETPOINTERVKHRPROC glad_glGetPointervKHR;
|
||||||
|
#define glGetPointervKHR glad_glGetPointervKHR
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user