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
|
error.glsl
|
||||||
draft/
|
draft/
|
||||||
*.gch
|
*.gch
|
||||||
|
*.out
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ build:
|
|||||||
-DGLFW_NATIVE_INCLUDE_NONE \
|
-DGLFW_NATIVE_INCLUDE_NONE \
|
||||||
-DLOG_USE_COLOR \
|
-DLOG_USE_COLOR \
|
||||||
-DVIDEO_IN \
|
-DVIDEO_IN \
|
||||||
|
-DEGL_DEBUG \
|
||||||
-o build/$(TARGET) \
|
-o build/$(TARGET) \
|
||||||
-g -Og
|
-g -Og
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -2,4 +2,6 @@
|
|||||||
-DGLFW_INCLUDE_NONE
|
-DGLFW_INCLUDE_NONE
|
||||||
-DGLFW_EXPOSE_NATIVE_EGL
|
-DGLFW_EXPOSE_NATIVE_EGL
|
||||||
-DGLFW_NATIVE_INCLUDE_NONE
|
-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
|
* SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
|
||||||
*
|
*
|
||||||
* Generator: C/C++
|
* Generator: C/C++
|
||||||
* Specification: egl
|
* Specification: egl
|
||||||
* Extensions: 10
|
* Extensions: 11
|
||||||
*
|
*
|
||||||
* APIs:
|
* APIs:
|
||||||
* - egl=1.5
|
* - egl=1.5
|
||||||
@@ -19,10 +19,10 @@
|
|||||||
* - ON_DEMAND = False
|
* - ON_DEMAND = False
|
||||||
*
|
*
|
||||||
* Commandline:
|
* 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:
|
* 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_RESET_NOTIFICATION_STRATEGY 0x31BD
|
||||||
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
|
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
|
||||||
#define EGL_CORE_NATIVE_ENGINE 0x305B
|
#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_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType,0)
|
||||||
#define EGL_DEPTH_SIZE 0x3025
|
#define EGL_DEPTH_SIZE 0x3025
|
||||||
#define EGL_DISPLAY_SCALING 10000
|
#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_SURFACE EGL_CAST(EGLSurface,0)
|
||||||
#define EGL_NO_SYNC EGL_CAST(EGLSync,0)
|
#define EGL_NO_SYNC EGL_CAST(EGLSync,0)
|
||||||
#define EGL_NO_TEXTURE 0x305C
|
#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_API 0x30A2
|
||||||
#define EGL_OPENGL_BIT 0x0008
|
#define EGL_OPENGL_BIT 0x0008
|
||||||
#define EGL_OPENGL_ES2_BIT 0x0004
|
#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;
|
GLAD_API_CALL int GLAD_EGL_EXT_image_dma_buf_import;
|
||||||
#define EGL_EXT_image_dma_buf_import_modifiers 1
|
#define EGL_EXT_image_dma_buf_import_modifiers 1
|
||||||
GLAD_API_CALL int GLAD_EGL_EXT_image_dma_buf_import_modifiers;
|
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
|
#define EGL_KHR_gl_texture_2D_image 1
|
||||||
GLAD_API_CALL int GLAD_EGL_KHR_gl_texture_2D_image;
|
GLAD_API_CALL int GLAD_EGL_KHR_gl_texture_2D_image;
|
||||||
#define EGL_KHR_image 1
|
#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 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 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 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 *PFNEGLDESTROYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx);
|
||||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYIMAGEPROC)(EGLDisplay dpy, EGLImage image);
|
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYIMAGEPROC)(EGLDisplay dpy, EGLImage image);
|
||||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYIMAGEKHRPROC)(EGLDisplay dpy, EGLImageKHR 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 __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 *PFNEGLGETSYNCATTRIBPROC)(EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value);
|
||||||
typedef EGLBoolean (GLAD_API_PTR *PFNEGLINITIALIZEPROC)(EGLDisplay dpy, EGLint * major, EGLint * minor);
|
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 EGLBoolean (GLAD_API_PTR *PFNEGLMAKECURRENTPROC)(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
|
||||||
typedef EGLenum (GLAD_API_PTR *PFNEGLQUERYAPIPROC)(void);
|
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 *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 *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 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);
|
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
|
#define eglCreateSync glad_eglCreateSync
|
||||||
GLAD_API_CALL PFNEGLCREATEWINDOWSURFACEPROC glad_eglCreateWindowSurface;
|
GLAD_API_CALL PFNEGLCREATEWINDOWSURFACEPROC glad_eglCreateWindowSurface;
|
||||||
#define eglCreateWindowSurface glad_eglCreateWindowSurface
|
#define eglCreateWindowSurface glad_eglCreateWindowSurface
|
||||||
|
GLAD_API_CALL PFNEGLDEBUGMESSAGECONTROLKHRPROC glad_eglDebugMessageControlKHR;
|
||||||
|
#define eglDebugMessageControlKHR glad_eglDebugMessageControlKHR
|
||||||
GLAD_API_CALL PFNEGLDESTROYCONTEXTPROC glad_eglDestroyContext;
|
GLAD_API_CALL PFNEGLDESTROYCONTEXTPROC glad_eglDestroyContext;
|
||||||
#define eglDestroyContext glad_eglDestroyContext
|
#define eglDestroyContext glad_eglDestroyContext
|
||||||
GLAD_API_CALL PFNEGLDESTROYIMAGEPROC glad_eglDestroyImage;
|
GLAD_API_CALL PFNEGLDESTROYIMAGEPROC glad_eglDestroyImage;
|
||||||
@@ -1069,12 +1088,16 @@ GLAD_API_CALL PFNEGLGETSYNCATTRIBPROC glad_eglGetSyncAttrib;
|
|||||||
#define eglGetSyncAttrib glad_eglGetSyncAttrib
|
#define eglGetSyncAttrib glad_eglGetSyncAttrib
|
||||||
GLAD_API_CALL PFNEGLINITIALIZEPROC glad_eglInitialize;
|
GLAD_API_CALL PFNEGLINITIALIZEPROC glad_eglInitialize;
|
||||||
#define eglInitialize glad_eglInitialize
|
#define eglInitialize glad_eglInitialize
|
||||||
|
GLAD_API_CALL PFNEGLLABELOBJECTKHRPROC glad_eglLabelObjectKHR;
|
||||||
|
#define eglLabelObjectKHR glad_eglLabelObjectKHR
|
||||||
GLAD_API_CALL PFNEGLMAKECURRENTPROC glad_eglMakeCurrent;
|
GLAD_API_CALL PFNEGLMAKECURRENTPROC glad_eglMakeCurrent;
|
||||||
#define eglMakeCurrent glad_eglMakeCurrent
|
#define eglMakeCurrent glad_eglMakeCurrent
|
||||||
GLAD_API_CALL PFNEGLQUERYAPIPROC glad_eglQueryAPI;
|
GLAD_API_CALL PFNEGLQUERYAPIPROC glad_eglQueryAPI;
|
||||||
#define eglQueryAPI glad_eglQueryAPI
|
#define eglQueryAPI glad_eglQueryAPI
|
||||||
GLAD_API_CALL PFNEGLQUERYCONTEXTPROC glad_eglQueryContext;
|
GLAD_API_CALL PFNEGLQUERYCONTEXTPROC glad_eglQueryContext;
|
||||||
#define eglQueryContext glad_eglQueryContext
|
#define eglQueryContext glad_eglQueryContext
|
||||||
|
GLAD_API_CALL PFNEGLQUERYDEBUGKHRPROC glad_eglQueryDebugKHR;
|
||||||
|
#define eglQueryDebugKHR glad_eglQueryDebugKHR
|
||||||
GLAD_API_CALL PFNEGLQUERYDMABUFFORMATSEXTPROC glad_eglQueryDmaBufFormatsEXT;
|
GLAD_API_CALL PFNEGLQUERYDMABUFFORMATSEXTPROC glad_eglQueryDmaBufFormatsEXT;
|
||||||
#define eglQueryDmaBufFormatsEXT glad_eglQueryDmaBufFormatsEXT
|
#define eglQueryDmaBufFormatsEXT glad_eglQueryDmaBufFormatsEXT
|
||||||
GLAD_API_CALL PFNEGLQUERYDMABUFMODIFIERSEXTPROC glad_eglQueryDmaBufModifiersEXT;
|
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_VERSION_1_5 = 0;
|
||||||
int GLAD_EGL_EXT_image_dma_buf_import = 0;
|
int GLAD_EGL_EXT_image_dma_buf_import = 0;
|
||||||
int GLAD_EGL_EXT_image_dma_buf_import_modifiers = 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_gl_texture_2D_image = 0;
|
||||||
int GLAD_EGL_KHR_image = 0;
|
int GLAD_EGL_KHR_image = 0;
|
||||||
int GLAD_EGL_KHR_image_base = 0;
|
int GLAD_EGL_KHR_image_base = 0;
|
||||||
@@ -1184,6 +1208,7 @@ PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC glad_eglCreatePlatformPixmapSurface = NULL
|
|||||||
PFNEGLCREATEPLATFORMWINDOWSURFACEPROC glad_eglCreatePlatformWindowSurface = NULL;
|
PFNEGLCREATEPLATFORMWINDOWSURFACEPROC glad_eglCreatePlatformWindowSurface = NULL;
|
||||||
PFNEGLCREATESYNCPROC glad_eglCreateSync = NULL;
|
PFNEGLCREATESYNCPROC glad_eglCreateSync = NULL;
|
||||||
PFNEGLCREATEWINDOWSURFACEPROC glad_eglCreateWindowSurface = NULL;
|
PFNEGLCREATEWINDOWSURFACEPROC glad_eglCreateWindowSurface = NULL;
|
||||||
|
PFNEGLDEBUGMESSAGECONTROLKHRPROC glad_eglDebugMessageControlKHR = NULL;
|
||||||
PFNEGLDESTROYCONTEXTPROC glad_eglDestroyContext = NULL;
|
PFNEGLDESTROYCONTEXTPROC glad_eglDestroyContext = NULL;
|
||||||
PFNEGLDESTROYIMAGEPROC glad_eglDestroyImage = NULL;
|
PFNEGLDESTROYIMAGEPROC glad_eglDestroyImage = NULL;
|
||||||
PFNEGLDESTROYIMAGEKHRPROC glad_eglDestroyImageKHR = NULL;
|
PFNEGLDESTROYIMAGEKHRPROC glad_eglDestroyImageKHR = NULL;
|
||||||
@@ -1201,9 +1226,11 @@ PFNEGLGETPLATFORMDISPLAYPROC glad_eglGetPlatformDisplay = NULL;
|
|||||||
PFNEGLGETPROCADDRESSPROC glad_eglGetProcAddress = NULL;
|
PFNEGLGETPROCADDRESSPROC glad_eglGetProcAddress = NULL;
|
||||||
PFNEGLGETSYNCATTRIBPROC glad_eglGetSyncAttrib = NULL;
|
PFNEGLGETSYNCATTRIBPROC glad_eglGetSyncAttrib = NULL;
|
||||||
PFNEGLINITIALIZEPROC glad_eglInitialize = NULL;
|
PFNEGLINITIALIZEPROC glad_eglInitialize = NULL;
|
||||||
|
PFNEGLLABELOBJECTKHRPROC glad_eglLabelObjectKHR = NULL;
|
||||||
PFNEGLMAKECURRENTPROC glad_eglMakeCurrent = NULL;
|
PFNEGLMAKECURRENTPROC glad_eglMakeCurrent = NULL;
|
||||||
PFNEGLQUERYAPIPROC glad_eglQueryAPI = NULL;
|
PFNEGLQUERYAPIPROC glad_eglQueryAPI = NULL;
|
||||||
PFNEGLQUERYCONTEXTPROC glad_eglQueryContext = NULL;
|
PFNEGLQUERYCONTEXTPROC glad_eglQueryContext = NULL;
|
||||||
|
PFNEGLQUERYDEBUGKHRPROC glad_eglQueryDebugKHR = NULL;
|
||||||
PFNEGLQUERYDMABUFFORMATSEXTPROC glad_eglQueryDmaBufFormatsEXT = NULL;
|
PFNEGLQUERYDMABUFFORMATSEXTPROC glad_eglQueryDmaBufFormatsEXT = NULL;
|
||||||
PFNEGLQUERYDMABUFMODIFIERSEXTPROC glad_eglQueryDmaBufModifiersEXT = NULL;
|
PFNEGLQUERYDMABUFMODIFIERSEXTPROC glad_eglQueryDmaBufModifiersEXT = NULL;
|
||||||
PFNEGLQUERYSTRINGPROC glad_eglQueryString = 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_eglQueryDmaBufFormatsEXT = (PFNEGLQUERYDMABUFFORMATSEXTPROC) load(userptr, "eglQueryDmaBufFormatsEXT");
|
||||||
glad_eglQueryDmaBufModifiersEXT = (PFNEGLQUERYDMABUFMODIFIERSEXTPROC) load(userptr, "eglQueryDmaBufModifiersEXT");
|
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) {
|
static void glad_egl_load_EGL_KHR_image( GLADuserptrloadfunc load, void* userptr) {
|
||||||
if(!GLAD_EGL_KHR_image) return;
|
if(!GLAD_EGL_KHR_image) return;
|
||||||
glad_eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC) load(userptr, "eglCreateImageKHR");
|
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 = 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_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_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 = glad_egl_has_extension(extensions, "EGL_KHR_image");
|
||||||
GLAD_EGL_KHR_image_base = glad_egl_has_extension(extensions, "EGL_KHR_image_base");
|
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;
|
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_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(load, userptr);
|
||||||
glad_egl_load_EGL_KHR_image_base(load, userptr);
|
glad_egl_load_EGL_KHR_image_base(load, userptr);
|
||||||
glad_egl_load_EGL_MESA_drm_image(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);
|
return gladLoadEGLUserPtr(display, glad_egl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef GLAD_EGL
|
#ifdef GLAD_EGL
|
||||||
|
|
||||||
@@ -1572,4 +1607,3 @@ void gladLoaderUnloadEGL(void) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* GLAD_EGL_IMPLEMENTATION */
|
#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
|
* SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
|
||||||
*
|
*
|
||||||
* Generator: C/C++
|
* Generator: C/C++
|
||||||
* Specification: gl
|
* Specification: gl
|
||||||
* Extensions: 3
|
* Extensions: 4
|
||||||
*
|
*
|
||||||
* APIs:
|
* APIs:
|
||||||
* - gl:compatibility=4.6
|
* - gl:compatibility=4.6
|
||||||
@@ -19,10 +19,10 @@
|
|||||||
* - ON_DEMAND = False
|
* - ON_DEMAND = False
|
||||||
*
|
*
|
||||||
* Commandline:
|
* 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:
|
* 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;
|
GLAD_API_CALL int GLAD_GL_EXT_EGL_image_storage;
|
||||||
#define GL_EXT_direct_state_access 1
|
#define GL_EXT_direct_state_access 1
|
||||||
GLAD_API_CALL int GLAD_GL_EXT_direct_state_access;
|
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);
|
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_ARB_direct_state_access = 0;
|
||||||
int GLAD_GL_EXT_EGL_image_storage = 0;
|
int GLAD_GL_EXT_EGL_image_storage = 0;
|
||||||
int GLAD_GL_EXT_direct_state_access = 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_glVertexArrayVertexBindingDivisorEXT = (PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC) load(userptr, "glVertexArrayVertexBindingDivisorEXT");
|
||||||
glad_glVertexArrayVertexOffsetEXT = (PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) load(userptr, "glVertexArrayVertexOffsetEXT");
|
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_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_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_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);
|
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_ARB_direct_state_access(load, userptr);
|
||||||
glad_gl_load_GL_EXT_EGL_image_storage(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_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
|
#ifdef GLAD_GL
|
||||||
|
|
||||||
@@ -9482,7 +9501,9 @@ static void* glad_gl_dlopen_handle(void) {
|
|||||||
"libGL-1.so",
|
"libGL-1.so",
|
||||||
#endif
|
#endif
|
||||||
"libGL.so.1",
|
"libGL.so.1",
|
||||||
"libGL.so"
|
"libGL.so",
|
||||||
|
"libEGL.so.1",
|
||||||
|
"libEGL.so"
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -9505,6 +9526,9 @@ static struct _glad_gl_userptr glad_gl_build_userptr(void *handle) {
|
|||||||
#else
|
#else
|
||||||
userptr.gl_get_proc_address_ptr =
|
userptr.gl_get_proc_address_ptr =
|
||||||
(GLADglprocaddrfunc) glad_dlsym_handle(handle, "glXGetProcAddressARB");
|
(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
|
#endif
|
||||||
|
|
||||||
return userptr;
|
return userptr;
|
||||||
@@ -9547,4 +9571,3 @@ void gladLoaderUnloadGL(void) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* GLAD_GL_IMPLEMENTATION */
|
#endif /* GLAD_GL_IMPLEMENTATION */
|
||||||
|
|
||||||
|
|||||||
+51
-4
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
static const GLuint unused_uniform = (GLuint)-1;
|
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;
|
unsigned int code;
|
||||||
|
|
||||||
code = glGetError();
|
code = glGetError();
|
||||||
@@ -39,7 +39,7 @@ bool check_glerror_ro(const char *context) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool check_glerror(ShaderProgram *program, const char *context) {
|
static bool check_glerror(ShaderProgram *program, const char *context) {
|
||||||
if (check_glerror_ro(context)) {
|
if (check_glerror_ro(context)) {
|
||||||
program->error = true;
|
program->error = true;
|
||||||
return true;
|
return true;
|
||||||
@@ -47,7 +47,20 @@ bool check_glerror(ShaderProgram *program, const char *context) {
|
|||||||
return false;
|
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
|
#ifdef VIDEO_IN
|
||||||
unsigned int code;
|
unsigned int code;
|
||||||
|
|
||||||
@@ -61,7 +74,7 @@ bool check_eglerror_ro(const char *context) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool check_eglerror(ShaderProgram *program, const char *context) {
|
static bool check_eglerror(ShaderProgram *program, const char *context) {
|
||||||
if (check_eglerror_ro(context)) {
|
if (check_eglerror_ro(context)) {
|
||||||
program->error = true;
|
program->error = true;
|
||||||
return true;
|
return true;
|
||||||
@@ -69,9 +82,29 @@ bool check_eglerror(ShaderProgram *program, const char *context) {
|
|||||||
return false;
|
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) {
|
static bool init_gl(ShaderProgram *program) {
|
||||||
gladLoadGL(glfwGetProcAddress);
|
gladLoadGL(glfwGetProcAddress);
|
||||||
|
|
||||||
|
#ifdef GL_DEBUG
|
||||||
|
glEnable(GL_DEBUG_OUTPUT);
|
||||||
|
glDebugMessageCallback(gl_debug_callback, NULL);
|
||||||
|
#endif /* GL_DEBUG */
|
||||||
|
|
||||||
#ifdef VIDEO_IN
|
#ifdef VIDEO_IN
|
||||||
program->egl_display = glfwGetEGLDisplay();
|
program->egl_display = glfwGetEGLDisplay();
|
||||||
if (program->egl_display == EGL_NO_DISPLAY) {
|
if (program->egl_display == EGL_NO_DISPLAY) {
|
||||||
@@ -81,6 +114,20 @@ static bool init_gl(ShaderProgram *program) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
gladLoadEGL(program->egl_display, glfwGetProcAddress);
|
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 */
|
#endif /* VIDEO_IN */
|
||||||
|
|
||||||
return !check_glerror(program, "init_gl") &&
|
return !check_glerror(program, "init_gl") &&
|
||||||
|
|||||||
@@ -59,6 +59,9 @@ create_window(GLFWmonitor *monitor, const char *title, Window *shared_context,
|
|||||||
// Context related hints
|
// Context related hints
|
||||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
|
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
|
||||||
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 6);
|
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);
|
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
|
||||||
|
|
||||||
// create fullscreen window in selected monitor
|
// create fullscreen window in selected monitor
|
||||||
|
|||||||
Reference in New Issue
Block a user