fix: add debug capabilities for gl and egl
Clang Lint CI / lint-no-video (push) Failing after 44s
Clang Build CI / run-no-video (push) Successful in 1m7s
Clang Build CI / run-video (push) Successful in 1m7s
Clang Build CI / build-release (push) Successful in 1m26s
Clang Lint CI / lint-video (push) Successful in 1m46s
Clang Lint CI / lint-no-video (push) Failing after 44s
Clang Build CI / run-no-video (push) Successful in 1m7s
Clang Build CI / run-video (push) Successful in 1m7s
Clang Build CI / build-release (push) Successful in 1m26s
Clang Lint CI / lint-video (push) Successful in 1m46s
This commit is contained in:
@@ -28,3 +28,4 @@ conftest.*
|
||||
error.glsl
|
||||
draft/
|
||||
*.gch
|
||||
*.out
|
||||
|
||||
@@ -22,6 +22,7 @@ build:
|
||||
-DGLFW_NATIVE_INCLUDE_NONE \
|
||||
-DLOG_USE_COLOR \
|
||||
-DVIDEO_IN \
|
||||
-DEGL_DEBUG \
|
||||
-o build/$(TARGET) \
|
||||
-g -Og
|
||||
|
||||
|
||||
+3
-1
@@ -2,4 +2,6 @@
|
||||
-DGLFW_INCLUDE_NONE
|
||||
-DGLFW_EXPOSE_NATIVE_EGL
|
||||
-DGLFW_NATIVE_INCLUDE_NONE
|
||||
-DVIDEO_IN
|
||||
-DVIDEO_IN
|
||||
-DEGL_DEBUG
|
||||
-DGL_DEBUG
|
||||
|
||||
+40
-6
@@ -1,11 +1,11 @@
|
||||
/**
|
||||
* Loader generated by glad 2.0.8 on Sun Sep 21 11:51:45 2025
|
||||
* Loader generated by glad 2.0.8 on Wed May 13 21:51:29 2026
|
||||
*
|
||||
* SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
|
||||
*
|
||||
* Generator: C/C++
|
||||
* Specification: egl
|
||||
* Extensions: 10
|
||||
* Extensions: 11
|
||||
*
|
||||
* APIs:
|
||||
* - egl=1.5
|
||||
@@ -19,10 +19,10 @@
|
||||
* - ON_DEMAND = False
|
||||
*
|
||||
* Commandline:
|
||||
* --api='egl=1.5' --extensions='EGL_EXT_image_dma_buf_import,EGL_EXT_image_dma_buf_import_modifiers,EGL_KHR_gl_texture_2D_image,EGL_KHR_image,EGL_KHR_image_base,EGL_KHR_platform_android,EGL_KHR_platform_gbm,EGL_KHR_platform_wayland,EGL_KHR_platform_x11,EGL_MESA_drm_image' c --header-only --loader
|
||||
* --api='egl=1.5' --extensions='EGL_EXT_image_dma_buf_import,EGL_EXT_image_dma_buf_import_modifiers,EGL_KHR_debug,EGL_KHR_gl_texture_2D_image,EGL_KHR_image,EGL_KHR_image_base,EGL_KHR_platform_android,EGL_KHR_platform_gbm,EGL_KHR_platform_wayland,EGL_KHR_platform_x11,EGL_MESA_drm_image' c --header-only --loader
|
||||
*
|
||||
* Online:
|
||||
* http://glad.sh/#api=egl%3D1.5&extensions=EGL_EXT_image_dma_buf_import%2CEGL_EXT_image_dma_buf_import_modifiers%2CEGL_KHR_gl_texture_2D_image%2CEGL_KHR_image%2CEGL_KHR_image_base%2CEGL_KHR_platform_android%2CEGL_KHR_platform_gbm%2CEGL_KHR_platform_wayland%2CEGL_KHR_platform_x11%2CEGL_MESA_drm_image&generator=c&options=HEADER_ONLY%2CLOADER
|
||||
* http://glad.sh/#api=egl%3D1.5&extensions=EGL_EXT_image_dma_buf_import%2CEGL_EXT_image_dma_buf_import_modifiers%2CEGL_KHR_debug%2CEGL_KHR_gl_texture_2D_image%2CEGL_KHR_image%2CEGL_KHR_image_base%2CEGL_KHR_platform_android%2CEGL_KHR_platform_gbm%2CEGL_KHR_platform_wayland%2CEGL_KHR_platform_x11%2CEGL_MESA_drm_image&generator=c&options=HEADER_ONLY%2CLOADER
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -201,6 +201,11 @@ typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apipro
|
||||
#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
|
||||
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
|
||||
#define EGL_CORE_NATIVE_ENGINE 0x305B
|
||||
#define EGL_DEBUG_CALLBACK_KHR 0x33B8
|
||||
#define EGL_DEBUG_MSG_CRITICAL_KHR 0x33B9
|
||||
#define EGL_DEBUG_MSG_ERROR_KHR 0x33BA
|
||||
#define EGL_DEBUG_MSG_INFO_KHR 0x33BC
|
||||
#define EGL_DEBUG_MSG_WARN_KHR 0x33BB
|
||||
#define EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType,0)
|
||||
#define EGL_DEPTH_SIZE 0x3025
|
||||
#define EGL_DISPLAY_SCALING 10000
|
||||
@@ -295,6 +300,13 @@ typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apipro
|
||||
#define EGL_NO_SURFACE EGL_CAST(EGLSurface,0)
|
||||
#define EGL_NO_SYNC EGL_CAST(EGLSync,0)
|
||||
#define EGL_NO_TEXTURE 0x305C
|
||||
#define EGL_OBJECT_CONTEXT_KHR 0x33B2
|
||||
#define EGL_OBJECT_DISPLAY_KHR 0x33B1
|
||||
#define EGL_OBJECT_IMAGE_KHR 0x33B4
|
||||
#define EGL_OBJECT_STREAM_KHR 0x33B6
|
||||
#define EGL_OBJECT_SURFACE_KHR 0x33B3
|
||||
#define EGL_OBJECT_SYNC_KHR 0x33B5
|
||||
#define EGL_OBJECT_THREAD_KHR 0x33B0
|
||||
#define EGL_OPENGL_API 0x30A2
|
||||
#define EGL_OPENGL_BIT 0x0008
|
||||
#define EGL_OPENGL_ES2_BIT 0x0004
|
||||
@@ -934,6 +946,8 @@ GLAD_API_CALL int GLAD_EGL_VERSION_1_5;
|
||||
GLAD_API_CALL int GLAD_EGL_EXT_image_dma_buf_import;
|
||||
#define EGL_EXT_image_dma_buf_import_modifiers 1
|
||||
GLAD_API_CALL int GLAD_EGL_EXT_image_dma_buf_import_modifiers;
|
||||
#define EGL_KHR_debug 1
|
||||
GLAD_API_CALL int GLAD_EGL_KHR_debug;
|
||||
#define EGL_KHR_gl_texture_2D_image 1
|
||||
GLAD_API_CALL int GLAD_EGL_KHR_gl_texture_2D_image;
|
||||
#define EGL_KHR_image 1
|
||||
@@ -968,6 +982,7 @@ typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC)(EGLDisp
|
||||
typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMWINDOWSURFACEPROC)(EGLDisplay dpy, EGLConfig config, void * native_window, const EGLAttrib * attrib_list);
|
||||
typedef EGLSync (GLAD_API_PTR *PFNEGLCREATESYNCPROC)(EGLDisplay dpy, EGLenum type, const EGLAttrib * attrib_list);
|
||||
typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEWINDOWSURFACEPROC)(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint * attrib_list);
|
||||
typedef EGLint (GLAD_API_PTR *PFNEGLDEBUGMESSAGECONTROLKHRPROC)(EGLDEBUGPROCKHR callback, const EGLAttrib * attrib_list);
|
||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx);
|
||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYIMAGEPROC)(EGLDisplay dpy, EGLImage image);
|
||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYIMAGEKHRPROC)(EGLDisplay dpy, EGLImageKHR image);
|
||||
@@ -985,9 +1000,11 @@ typedef EGLDisplay (GLAD_API_PTR *PFNEGLGETPLATFORMDISPLAYPROC)(EGLenum platform
|
||||
typedef __eglMustCastToProperFunctionPointerType (GLAD_API_PTR *PFNEGLGETPROCADDRESSPROC)(const char * procname);
|
||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETSYNCATTRIBPROC)(EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value);
|
||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLINITIALIZEPROC)(EGLDisplay dpy, EGLint * major, EGLint * minor);
|
||||
typedef EGLint (GLAD_API_PTR *PFNEGLLABELOBJECTKHRPROC)(EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label);
|
||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLMAKECURRENTPROC)(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
|
||||
typedef EGLenum (GLAD_API_PTR *PFNEGLQUERYAPIPROC)(void);
|
||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint * value);
|
||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDEBUGKHRPROC)(EGLint attribute, EGLAttrib * value);
|
||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDMABUFFORMATSEXTPROC)(EGLDisplay dpy, EGLint max_formats, EGLint * formats, EGLint * num_formats);
|
||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDMABUFMODIFIERSEXTPROC)(EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR * modifiers, EGLBoolean * external_only, EGLint * num_modifiers);
|
||||
typedef const char * (GLAD_API_PTR *PFNEGLQUERYSTRINGPROC)(EGLDisplay dpy, EGLint name);
|
||||
@@ -1035,6 +1052,8 @@ GLAD_API_CALL PFNEGLCREATESYNCPROC glad_eglCreateSync;
|
||||
#define eglCreateSync glad_eglCreateSync
|
||||
GLAD_API_CALL PFNEGLCREATEWINDOWSURFACEPROC glad_eglCreateWindowSurface;
|
||||
#define eglCreateWindowSurface glad_eglCreateWindowSurface
|
||||
GLAD_API_CALL PFNEGLDEBUGMESSAGECONTROLKHRPROC glad_eglDebugMessageControlKHR;
|
||||
#define eglDebugMessageControlKHR glad_eglDebugMessageControlKHR
|
||||
GLAD_API_CALL PFNEGLDESTROYCONTEXTPROC glad_eglDestroyContext;
|
||||
#define eglDestroyContext glad_eglDestroyContext
|
||||
GLAD_API_CALL PFNEGLDESTROYIMAGEPROC glad_eglDestroyImage;
|
||||
@@ -1069,12 +1088,16 @@ GLAD_API_CALL PFNEGLGETSYNCATTRIBPROC glad_eglGetSyncAttrib;
|
||||
#define eglGetSyncAttrib glad_eglGetSyncAttrib
|
||||
GLAD_API_CALL PFNEGLINITIALIZEPROC glad_eglInitialize;
|
||||
#define eglInitialize glad_eglInitialize
|
||||
GLAD_API_CALL PFNEGLLABELOBJECTKHRPROC glad_eglLabelObjectKHR;
|
||||
#define eglLabelObjectKHR glad_eglLabelObjectKHR
|
||||
GLAD_API_CALL PFNEGLMAKECURRENTPROC glad_eglMakeCurrent;
|
||||
#define eglMakeCurrent glad_eglMakeCurrent
|
||||
GLAD_API_CALL PFNEGLQUERYAPIPROC glad_eglQueryAPI;
|
||||
#define eglQueryAPI glad_eglQueryAPI
|
||||
GLAD_API_CALL PFNEGLQUERYCONTEXTPROC glad_eglQueryContext;
|
||||
#define eglQueryContext glad_eglQueryContext
|
||||
GLAD_API_CALL PFNEGLQUERYDEBUGKHRPROC glad_eglQueryDebugKHR;
|
||||
#define eglQueryDebugKHR glad_eglQueryDebugKHR
|
||||
GLAD_API_CALL PFNEGLQUERYDMABUFFORMATSEXTPROC glad_eglQueryDmaBufFormatsEXT;
|
||||
#define eglQueryDmaBufFormatsEXT glad_eglQueryDmaBufFormatsEXT
|
||||
GLAD_API_CALL PFNEGLQUERYDMABUFMODIFIERSEXTPROC glad_eglQueryDmaBufModifiersEXT;
|
||||
@@ -1157,6 +1180,7 @@ int GLAD_EGL_VERSION_1_4 = 0;
|
||||
int GLAD_EGL_VERSION_1_5 = 0;
|
||||
int GLAD_EGL_EXT_image_dma_buf_import = 0;
|
||||
int GLAD_EGL_EXT_image_dma_buf_import_modifiers = 0;
|
||||
int GLAD_EGL_KHR_debug = 0;
|
||||
int GLAD_EGL_KHR_gl_texture_2D_image = 0;
|
||||
int GLAD_EGL_KHR_image = 0;
|
||||
int GLAD_EGL_KHR_image_base = 0;
|
||||
@@ -1184,6 +1208,7 @@ PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC glad_eglCreatePlatformPixmapSurface = NULL
|
||||
PFNEGLCREATEPLATFORMWINDOWSURFACEPROC glad_eglCreatePlatformWindowSurface = NULL;
|
||||
PFNEGLCREATESYNCPROC glad_eglCreateSync = NULL;
|
||||
PFNEGLCREATEWINDOWSURFACEPROC glad_eglCreateWindowSurface = NULL;
|
||||
PFNEGLDEBUGMESSAGECONTROLKHRPROC glad_eglDebugMessageControlKHR = NULL;
|
||||
PFNEGLDESTROYCONTEXTPROC glad_eglDestroyContext = NULL;
|
||||
PFNEGLDESTROYIMAGEPROC glad_eglDestroyImage = NULL;
|
||||
PFNEGLDESTROYIMAGEKHRPROC glad_eglDestroyImageKHR = NULL;
|
||||
@@ -1201,9 +1226,11 @@ PFNEGLGETPLATFORMDISPLAYPROC glad_eglGetPlatformDisplay = NULL;
|
||||
PFNEGLGETPROCADDRESSPROC glad_eglGetProcAddress = NULL;
|
||||
PFNEGLGETSYNCATTRIBPROC glad_eglGetSyncAttrib = NULL;
|
||||
PFNEGLINITIALIZEPROC glad_eglInitialize = NULL;
|
||||
PFNEGLLABELOBJECTKHRPROC glad_eglLabelObjectKHR = NULL;
|
||||
PFNEGLMAKECURRENTPROC glad_eglMakeCurrent = NULL;
|
||||
PFNEGLQUERYAPIPROC glad_eglQueryAPI = NULL;
|
||||
PFNEGLQUERYCONTEXTPROC glad_eglQueryContext = NULL;
|
||||
PFNEGLQUERYDEBUGKHRPROC glad_eglQueryDebugKHR = NULL;
|
||||
PFNEGLQUERYDMABUFFORMATSEXTPROC glad_eglQueryDmaBufFormatsEXT = NULL;
|
||||
PFNEGLQUERYDMABUFMODIFIERSEXTPROC glad_eglQueryDmaBufModifiersEXT = NULL;
|
||||
PFNEGLQUERYSTRINGPROC glad_eglQueryString = NULL;
|
||||
@@ -1284,6 +1311,12 @@ static void glad_egl_load_EGL_EXT_image_dma_buf_import_modifiers( GLADuserptrloa
|
||||
glad_eglQueryDmaBufFormatsEXT = (PFNEGLQUERYDMABUFFORMATSEXTPROC) load(userptr, "eglQueryDmaBufFormatsEXT");
|
||||
glad_eglQueryDmaBufModifiersEXT = (PFNEGLQUERYDMABUFMODIFIERSEXTPROC) load(userptr, "eglQueryDmaBufModifiersEXT");
|
||||
}
|
||||
static void glad_egl_load_EGL_KHR_debug( GLADuserptrloadfunc load, void* userptr) {
|
||||
if(!GLAD_EGL_KHR_debug) return;
|
||||
glad_eglDebugMessageControlKHR = (PFNEGLDEBUGMESSAGECONTROLKHRPROC) load(userptr, "eglDebugMessageControlKHR");
|
||||
glad_eglLabelObjectKHR = (PFNEGLLABELOBJECTKHRPROC) load(userptr, "eglLabelObjectKHR");
|
||||
glad_eglQueryDebugKHR = (PFNEGLQUERYDEBUGKHRPROC) load(userptr, "eglQueryDebugKHR");
|
||||
}
|
||||
static void glad_egl_load_EGL_KHR_image( GLADuserptrloadfunc load, void* userptr) {
|
||||
if(!GLAD_EGL_KHR_image) return;
|
||||
glad_eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC) load(userptr, "eglCreateImageKHR");
|
||||
@@ -1338,6 +1371,7 @@ static int glad_egl_find_extensions_egl(EGLDisplay display) {
|
||||
|
||||
GLAD_EGL_EXT_image_dma_buf_import = glad_egl_has_extension(extensions, "EGL_EXT_image_dma_buf_import");
|
||||
GLAD_EGL_EXT_image_dma_buf_import_modifiers = glad_egl_has_extension(extensions, "EGL_EXT_image_dma_buf_import_modifiers");
|
||||
GLAD_EGL_KHR_debug = glad_egl_has_extension(extensions, "EGL_KHR_debug");
|
||||
GLAD_EGL_KHR_gl_texture_2D_image = glad_egl_has_extension(extensions, "EGL_KHR_gl_texture_2D_image");
|
||||
GLAD_EGL_KHR_image = glad_egl_has_extension(extensions, "EGL_KHR_image");
|
||||
GLAD_EGL_KHR_image_base = glad_egl_has_extension(extensions, "EGL_KHR_image_base");
|
||||
@@ -1409,6 +1443,7 @@ int gladLoadEGLUserPtr(EGLDisplay display, GLADuserptrloadfunc load, void* userp
|
||||
|
||||
if (!glad_egl_find_extensions_egl(display)) return 0;
|
||||
glad_egl_load_EGL_EXT_image_dma_buf_import_modifiers(load, userptr);
|
||||
glad_egl_load_EGL_KHR_debug(load, userptr);
|
||||
glad_egl_load_EGL_KHR_image(load, userptr);
|
||||
glad_egl_load_EGL_KHR_image_base(load, userptr);
|
||||
glad_egl_load_EGL_MESA_drm_image(load, userptr);
|
||||
@@ -1421,7 +1456,7 @@ int gladLoadEGL(EGLDisplay display, GLADloadfunc load) {
|
||||
return gladLoadEGLUserPtr(display, glad_egl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef GLAD_EGL
|
||||
|
||||
@@ -1572,4 +1607,3 @@ void gladLoaderUnloadEGL(void) {
|
||||
#endif
|
||||
|
||||
#endif /* GLAD_EGL_IMPLEMENTATION */
|
||||
|
||||
|
||||
+30
-7
@@ -1,11 +1,11 @@
|
||||
/**
|
||||
* Loader generated by glad 2.0.8 on Sun Sep 21 13:34:57 2025
|
||||
* Loader generated by glad 2.0.8 on Wed May 13 21:57:23 2026
|
||||
*
|
||||
* SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
|
||||
*
|
||||
* Generator: C/C++
|
||||
* Specification: gl
|
||||
* Extensions: 3
|
||||
* Extensions: 4
|
||||
*
|
||||
* APIs:
|
||||
* - gl:compatibility=4.6
|
||||
@@ -19,10 +19,10 @@
|
||||
* - ON_DEMAND = False
|
||||
*
|
||||
* Commandline:
|
||||
* --api='gl:compatibility=4.6' --extensions='GL_ARB_direct_state_access,GL_EXT_EGL_image_storage,GL_EXT_direct_state_access' c --header-only --loader
|
||||
* --api='gl:compatibility=4.6' --extensions='GL_ARB_direct_state_access,GL_EXT_EGL_image_storage,GL_EXT_direct_state_access,GL_KHR_debug' c --header-only --loader
|
||||
*
|
||||
* Online:
|
||||
* http://glad.sh/#api=gl%3Acompatibility%3D4.6&extensions=GL_ARB_direct_state_access%2CGL_EXT_EGL_image_storage%2CGL_EXT_direct_state_access&generator=c&options=HEADER_ONLY%2CLOADER
|
||||
* http://glad.sh/#api=gl%3Acompatibility%3D4.6&extensions=GL_ARB_direct_state_access%2CGL_EXT_EGL_image_storage%2CGL_EXT_direct_state_access%2CGL_KHR_debug&generator=c&options=HEADER_ONLY%2CLOADER
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -2409,6 +2409,8 @@ GLAD_API_CALL int GLAD_GL_ARB_direct_state_access;
|
||||
GLAD_API_CALL int GLAD_GL_EXT_EGL_image_storage;
|
||||
#define GL_EXT_direct_state_access 1
|
||||
GLAD_API_CALL int GLAD_GL_EXT_direct_state_access;
|
||||
#define GL_KHR_debug 1
|
||||
GLAD_API_CALL int GLAD_GL_KHR_debug;
|
||||
|
||||
|
||||
typedef void (GLAD_API_PTR *PFNGLACCUMPROC)(GLenum op, GLfloat value);
|
||||
@@ -6396,6 +6398,7 @@ int GLAD_GL_VERSION_4_6 = 0;
|
||||
int GLAD_GL_ARB_direct_state_access = 0;
|
||||
int GLAD_GL_EXT_EGL_image_storage = 0;
|
||||
int GLAD_GL_EXT_direct_state_access = 0;
|
||||
int GLAD_GL_KHR_debug = 0;
|
||||
|
||||
|
||||
|
||||
@@ -9178,6 +9181,20 @@ static void glad_gl_load_GL_EXT_direct_state_access( GLADuserptrloadfunc load, v
|
||||
glad_glVertexArrayVertexBindingDivisorEXT = (PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) load(userptr, "glVertexArrayVertexBindingDivisorEXT");
|
||||
glad_glVertexArrayVertexOffsetEXT = (PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) load(userptr, "glVertexArrayVertexOffsetEXT");
|
||||
}
|
||||
static void glad_gl_load_GL_KHR_debug( GLADuserptrloadfunc load, void* userptr) {
|
||||
if(!GLAD_GL_KHR_debug) return;
|
||||
glad_glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC) load(userptr, "glDebugMessageCallback");
|
||||
glad_glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC) load(userptr, "glDebugMessageControl");
|
||||
glad_glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC) load(userptr, "glDebugMessageInsert");
|
||||
glad_glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC) load(userptr, "glGetDebugMessageLog");
|
||||
glad_glGetObjectLabel = (PFNGLGETOBJECTLABELPROC) load(userptr, "glGetObjectLabel");
|
||||
glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC) load(userptr, "glGetObjectPtrLabel");
|
||||
glad_glGetPointerv = (PFNGLGETPOINTERVPROC) load(userptr, "glGetPointerv");
|
||||
glad_glObjectLabel = (PFNGLOBJECTLABELPROC) load(userptr, "glObjectLabel");
|
||||
glad_glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC) load(userptr, "glObjectPtrLabel");
|
||||
glad_glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC) load(userptr, "glPopDebugGroup");
|
||||
glad_glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC) load(userptr, "glPushDebugGroup");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -9276,6 +9293,7 @@ static int glad_gl_find_extensions_gl(void) {
|
||||
GLAD_GL_ARB_direct_state_access = glad_gl_has_extension(exts, exts_i, "GL_ARB_direct_state_access");
|
||||
GLAD_GL_EXT_EGL_image_storage = glad_gl_has_extension(exts, exts_i, "GL_EXT_EGL_image_storage");
|
||||
GLAD_GL_EXT_direct_state_access = glad_gl_has_extension(exts, exts_i, "GL_EXT_direct_state_access");
|
||||
GLAD_GL_KHR_debug = glad_gl_has_extension(exts, exts_i, "GL_KHR_debug");
|
||||
|
||||
glad_gl_free_extensions(exts_i);
|
||||
|
||||
@@ -9360,6 +9378,7 @@ int gladLoadGLUserPtr( GLADuserptrloadfunc load, void *userptr) {
|
||||
glad_gl_load_GL_ARB_direct_state_access(load, userptr);
|
||||
glad_gl_load_GL_EXT_EGL_image_storage(load, userptr);
|
||||
glad_gl_load_GL_EXT_direct_state_access(load, userptr);
|
||||
glad_gl_load_GL_KHR_debug(load, userptr);
|
||||
|
||||
|
||||
|
||||
@@ -9373,7 +9392,7 @@ int gladLoadGL( GLADloadfunc load) {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef GLAD_GL
|
||||
|
||||
@@ -9482,7 +9501,9 @@ static void* glad_gl_dlopen_handle(void) {
|
||||
"libGL-1.so",
|
||||
#endif
|
||||
"libGL.so.1",
|
||||
"libGL.so"
|
||||
"libGL.so",
|
||||
"libEGL.so.1",
|
||||
"libEGL.so"
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -9505,6 +9526,9 @@ static struct _glad_gl_userptr glad_gl_build_userptr(void *handle) {
|
||||
#else
|
||||
userptr.gl_get_proc_address_ptr =
|
||||
(GLADglprocaddrfunc) glad_dlsym_handle(handle, "glXGetProcAddressARB");
|
||||
if (!userptr.gl_get_proc_address_ptr)
|
||||
userptr.gl_get_proc_address_ptr =
|
||||
(GLADglprocaddrfunc) glad_dlsym_handle(handle, "eglGetProcAddress");
|
||||
#endif
|
||||
|
||||
return userptr;
|
||||
@@ -9547,4 +9571,3 @@ void gladLoaderUnloadGL(void) {
|
||||
#endif
|
||||
|
||||
#endif /* GLAD_GL_IMPLEMENTATION */
|
||||
|
||||
|
||||
+51
-4
@@ -26,7 +26,7 @@
|
||||
|
||||
static const GLuint unused_uniform = (GLuint)-1;
|
||||
|
||||
bool check_glerror_ro(const char *context) {
|
||||
static bool check_glerror_ro(const char *context) {
|
||||
unsigned int code;
|
||||
|
||||
code = glGetError();
|
||||
@@ -39,7 +39,7 @@ bool check_glerror_ro(const char *context) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool check_glerror(ShaderProgram *program, const char *context) {
|
||||
static bool check_glerror(ShaderProgram *program, const char *context) {
|
||||
if (check_glerror_ro(context)) {
|
||||
program->error = true;
|
||||
return true;
|
||||
@@ -47,7 +47,20 @@ bool check_glerror(ShaderProgram *program, const char *context) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool check_eglerror_ro(const char *context) {
|
||||
#ifdef GL_DEBUG
|
||||
|
||||
static void gl_debug_callback(GLenum source, GLenum type, GLuint id,
|
||||
GLenum severity,
|
||||
__attribute__((unused)) GLsizei length,
|
||||
const GLchar *message,
|
||||
__attribute__((unused)) const void *userParam) {
|
||||
log_debug("GL Debug: source=%x, type=%x, id=%d, severity=%x, message=%s",
|
||||
source, type, id, severity, message ? message : "(null)");
|
||||
}
|
||||
|
||||
#endif /* GL_DEBUG */
|
||||
|
||||
static bool check_eglerror_ro(const char *context) {
|
||||
#ifdef VIDEO_IN
|
||||
unsigned int code;
|
||||
|
||||
@@ -61,7 +74,7 @@ bool check_eglerror_ro(const char *context) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool check_eglerror(ShaderProgram *program, const char *context) {
|
||||
static bool check_eglerror(ShaderProgram *program, const char *context) {
|
||||
if (check_eglerror_ro(context)) {
|
||||
program->error = true;
|
||||
return true;
|
||||
@@ -69,9 +82,29 @@ bool check_eglerror(ShaderProgram *program, const char *context) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef VIDEO_IN
|
||||
#ifdef EGL_DEBUG
|
||||
|
||||
static void egl_debug_callback(EGLenum error, const char *command,
|
||||
EGLint messageType, EGLLabelKHR threadLabel,
|
||||
EGLLabelKHR objectLabel, const char *message) {
|
||||
log_debug("EGL Debug: error=%04x, command=%s, type=%d, "
|
||||
"thread=%p, object=%p, message=%s",
|
||||
error, command ? command : "(null)", messageType, threadLabel,
|
||||
objectLabel, message ? message : "(null)");
|
||||
}
|
||||
|
||||
#endif /* EGL_DEBUG */
|
||||
#endif /* VIDEO_IN */
|
||||
|
||||
static bool init_gl(ShaderProgram *program) {
|
||||
gladLoadGL(glfwGetProcAddress);
|
||||
|
||||
#ifdef GL_DEBUG
|
||||
glEnable(GL_DEBUG_OUTPUT);
|
||||
glDebugMessageCallback(gl_debug_callback, NULL);
|
||||
#endif /* GL_DEBUG */
|
||||
|
||||
#ifdef VIDEO_IN
|
||||
program->egl_display = glfwGetEGLDisplay();
|
||||
if (program->egl_display == EGL_NO_DISPLAY) {
|
||||
@@ -81,6 +114,20 @@ static bool init_gl(ShaderProgram *program) {
|
||||
}
|
||||
|
||||
gladLoadEGL(program->egl_display, glfwGetProcAddress);
|
||||
|
||||
#ifdef EGL_DEBUG
|
||||
{
|
||||
PFNEGLDEBUGMESSAGECONTROLKHRPROC debug_ctrl =
|
||||
(PFNEGLDEBUGMESSAGECONTROLKHRPROC)glfwGetProcAddress(
|
||||
"eglDebugMessageControlKHR");
|
||||
if (debug_ctrl != NULL) {
|
||||
const EGLAttrib attrib_list[] = {EGL_NONE};
|
||||
debug_ctrl(egl_debug_callback, attrib_list);
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* EGL_DEBUG */
|
||||
|
||||
#endif /* VIDEO_IN */
|
||||
|
||||
return !check_glerror(program, "init_gl") &&
|
||||
|
||||
@@ -59,6 +59,9 @@ create_window(GLFWmonitor *monitor, const char *title, Window *shared_context,
|
||||
// Context related hints
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
|
||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 6);
|
||||
#ifdef GL_DEBUG
|
||||
glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GLFW_TRUE);
|
||||
#endif
|
||||
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
||||
|
||||
// create fullscreen window in selected monitor
|
||||
|
||||
Reference in New Issue
Block a user