linux followup work by tim

This commit is contained in:
AzaezelX 2019-08-21 03:12:54 -05:00
parent 9fe9389ae5
commit f1282a9cbc
26 changed files with 6646 additions and 5681 deletions

View file

@ -2,7 +2,7 @@
#define __khrplatform_h_ #define __khrplatform_h_
/* /*
** Copyright (c) 2008-2009 The Khronos Group Inc. ** Copyright (c) 2008-2018 The Khronos Group Inc.
** **
** Permission is hereby granted, free of charge, to any person obtaining a ** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the ** copy of this software and/or associated documentation files (the
@ -26,18 +26,16 @@
/* Khronos platform-specific types and definitions. /* Khronos platform-specific types and definitions.
* *
* $Revision: 32517 $ on $Date: 2016-03-11 02:41:19 -0800 (Fri, 11 Mar 2016) $ * The master copy of khrplatform.h is maintained in the Khronos EGL
* Registry repository at https://github.com/KhronosGroup/EGL-Registry
* The last semantic modification to khrplatform.h was at commit ID:
* 67a3e0864c2d75ea5287b9f3d2eb74a745936692
* *
* Adopters may modify this file to suit their platform. Adopters are * Adopters may modify this file to suit their platform. Adopters are
* encouraged to submit platform specific modifications to the Khronos * encouraged to submit platform specific modifications to the Khronos
* group so that they can be included in future versions of this file. * group so that they can be included in future versions of this file.
* Please submit changes by sending them to the public Khronos Bugzilla * Please submit changes by filing pull requests or issues on
* (http://khronos.org/bugzilla) by filing a bug against product * the EGL Registry repository linked above.
* "Khronos (general)" component "Registry".
*
* A predefined template which fills in some of the bug fields can be
* reached using http://tinyurl.com/khrplatform-h-bugreport, but you
* must create a Bugzilla login first.
* *
* *
* See the Implementer's Guidelines for information about where this file * See the Implementer's Guidelines for information about where this file
@ -92,18 +90,25 @@
* int arg2) KHRONOS_APIATTRIBUTES; * int arg2) KHRONOS_APIATTRIBUTES;
*/ */
#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
# define KHRONOS_STATIC 1
#endif
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
* Definition of KHRONOS_APICALL * Definition of KHRONOS_APICALL
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
* This precedes the return type of the function in the function prototype. * This precedes the return type of the function in the function prototype.
*/ */
#if defined(_WIN32) && !defined(__SCITECH_SNAP__) #if defined(KHRONOS_STATIC)
/* If the preprocessor constant KHRONOS_STATIC is defined, make the
* header compatible with static linking. */
# define KHRONOS_APICALL
#elif defined(_WIN32)
# define KHRONOS_APICALL __declspec(dllimport) # define KHRONOS_APICALL __declspec(dllimport)
#elif defined (__SYMBIAN32__) #elif defined (__SYMBIAN32__)
# define KHRONOS_APICALL IMPORT_C # define KHRONOS_APICALL IMPORT_C
#elif defined(__ANDROID__) #elif defined(__ANDROID__)
# include <sys/cdefs.h> # define KHRONOS_APICALL __attribute__((visibility("default")))
# define KHRONOS_APICALL __attribute__((visibility("default"))) __NDK_FPABI__
#else #else
# define KHRONOS_APICALL # define KHRONOS_APICALL
#endif #endif
@ -114,7 +119,7 @@
* This follows the return type of the function and precedes the function * This follows the return type of the function and precedes the function
* name in the function prototype. * name in the function prototype.
*/ */
#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(KHRONOS_STATIC)
/* Win32 but not WinCE */ /* Win32 but not WinCE */
# define KHRONOS_APIENTRY __stdcall # define KHRONOS_APIENTRY __stdcall
#else #else

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
/* /*
GLX loader generated by glad 0.1.12a0 on Mon Sep 12 03:11:58 2016. GLX loader generated by glad 0.1.33 on Sun Aug 18 11:26:39 2019.
Language/Generator: C/C++ Language/Generator: C/C++
Specification: glx Specification: glx
@ -11,6 +11,7 @@
GLX_AMD_gpu_association, GLX_AMD_gpu_association,
GLX_ARB_context_flush_control, GLX_ARB_context_flush_control,
GLX_ARB_create_context, GLX_ARB_create_context,
GLX_ARB_create_context_no_error,
GLX_ARB_create_context_profile, GLX_ARB_create_context_profile,
GLX_ARB_create_context_robustness, GLX_ARB_create_context_robustness,
GLX_ARB_fbconfig_float, GLX_ARB_fbconfig_float,
@ -21,12 +22,14 @@
GLX_ARB_robustness_share_group_isolation, GLX_ARB_robustness_share_group_isolation,
GLX_ARB_vertex_buffer_object, GLX_ARB_vertex_buffer_object,
GLX_EXT_buffer_age, GLX_EXT_buffer_age,
GLX_EXT_context_priority,
GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es2_profile,
GLX_EXT_create_context_es_profile, GLX_EXT_create_context_es_profile,
GLX_EXT_fbconfig_packed_float, GLX_EXT_fbconfig_packed_float,
GLX_EXT_framebuffer_sRGB, GLX_EXT_framebuffer_sRGB,
GLX_EXT_import_context, GLX_EXT_import_context,
GLX_EXT_libglvnd, GLX_EXT_libglvnd,
GLX_EXT_no_config_context,
GLX_EXT_stereo_tree, GLX_EXT_stereo_tree,
GLX_EXT_swap_control, GLX_EXT_swap_control,
GLX_EXT_swap_control_tear, GLX_EXT_swap_control_tear,
@ -40,6 +43,7 @@
GLX_MESA_query_renderer, GLX_MESA_query_renderer,
GLX_MESA_release_buffers, GLX_MESA_release_buffers,
GLX_MESA_set_3dfx_mode, GLX_MESA_set_3dfx_mode,
GLX_MESA_swap_control,
GLX_NV_copy_buffer, GLX_NV_copy_buffer,
GLX_NV_copy_image, GLX_NV_copy_image,
GLX_NV_delay_before_swap, GLX_NV_delay_before_swap,
@ -72,9 +76,10 @@
Loader: True Loader: True
Local files: False Local files: False
Omit khrplatform: False Omit khrplatform: False
Reproducible: False
Commandline: Commandline:
--api="glx=1.4" --generator="c" --spec="glx" --extensions="GLX_3DFX_multisample,GLX_AMD_gpu_association,GLX_ARB_context_flush_control,GLX_ARB_create_context,GLX_ARB_create_context_profile,GLX_ARB_create_context_robustness,GLX_ARB_fbconfig_float,GLX_ARB_framebuffer_sRGB,GLX_ARB_get_proc_address,GLX_ARB_multisample,GLX_ARB_robustness_application_isolation,GLX_ARB_robustness_share_group_isolation,GLX_ARB_vertex_buffer_object,GLX_EXT_buffer_age,GLX_EXT_create_context_es2_profile,GLX_EXT_create_context_es_profile,GLX_EXT_fbconfig_packed_float,GLX_EXT_framebuffer_sRGB,GLX_EXT_import_context,GLX_EXT_libglvnd,GLX_EXT_stereo_tree,GLX_EXT_swap_control,GLX_EXT_swap_control_tear,GLX_EXT_texture_from_pixmap,GLX_EXT_visual_info,GLX_EXT_visual_rating,GLX_INTEL_swap_event,GLX_MESA_agp_offset,GLX_MESA_copy_sub_buffer,GLX_MESA_pixmap_colormap,GLX_MESA_query_renderer,GLX_MESA_release_buffers,GLX_MESA_set_3dfx_mode,GLX_NV_copy_buffer,GLX_NV_copy_image,GLX_NV_delay_before_swap,GLX_NV_float_buffer,GLX_NV_multisample_coverage,GLX_NV_present_video,GLX_NV_robustness_video_memory_purge,GLX_NV_swap_group,GLX_NV_video_capture,GLX_NV_video_out,GLX_OML_swap_method,GLX_OML_sync_control,GLX_SGIS_blended_overlay,GLX_SGIS_multisample,GLX_SGIS_shared_multisample,GLX_SGIX_dmbuffer,GLX_SGIX_fbconfig,GLX_SGIX_hyperpipe,GLX_SGIX_pbuffer,GLX_SGIX_swap_barrier,GLX_SGIX_swap_group,GLX_SGIX_video_resize,GLX_SGIX_video_source,GLX_SGIX_visual_select_group,GLX_SGI_cushion,GLX_SGI_make_current_read,GLX_SGI_swap_control,GLX_SGI_video_sync,GLX_SUN_get_transparent_index" --api="glx=1.4" --generator="c" --spec="glx" --extensions="GLX_3DFX_multisample,GLX_AMD_gpu_association,GLX_ARB_context_flush_control,GLX_ARB_create_context,GLX_ARB_create_context_no_error,GLX_ARB_create_context_profile,GLX_ARB_create_context_robustness,GLX_ARB_fbconfig_float,GLX_ARB_framebuffer_sRGB,GLX_ARB_get_proc_address,GLX_ARB_multisample,GLX_ARB_robustness_application_isolation,GLX_ARB_robustness_share_group_isolation,GLX_ARB_vertex_buffer_object,GLX_EXT_buffer_age,GLX_EXT_context_priority,GLX_EXT_create_context_es2_profile,GLX_EXT_create_context_es_profile,GLX_EXT_fbconfig_packed_float,GLX_EXT_framebuffer_sRGB,GLX_EXT_import_context,GLX_EXT_libglvnd,GLX_EXT_no_config_context,GLX_EXT_stereo_tree,GLX_EXT_swap_control,GLX_EXT_swap_control_tear,GLX_EXT_texture_from_pixmap,GLX_EXT_visual_info,GLX_EXT_visual_rating,GLX_INTEL_swap_event,GLX_MESA_agp_offset,GLX_MESA_copy_sub_buffer,GLX_MESA_pixmap_colormap,GLX_MESA_query_renderer,GLX_MESA_release_buffers,GLX_MESA_set_3dfx_mode,GLX_MESA_swap_control,GLX_NV_copy_buffer,GLX_NV_copy_image,GLX_NV_delay_before_swap,GLX_NV_float_buffer,GLX_NV_multisample_coverage,GLX_NV_present_video,GLX_NV_robustness_video_memory_purge,GLX_NV_swap_group,GLX_NV_video_capture,GLX_NV_video_out,GLX_OML_swap_method,GLX_OML_sync_control,GLX_SGIS_blended_overlay,GLX_SGIS_multisample,GLX_SGIS_shared_multisample,GLX_SGIX_dmbuffer,GLX_SGIX_fbconfig,GLX_SGIX_hyperpipe,GLX_SGIX_pbuffer,GLX_SGIX_swap_barrier,GLX_SGIX_swap_group,GLX_SGIX_video_resize,GLX_SGIX_video_source,GLX_SGIX_visual_select_group,GLX_SGI_cushion,GLX_SGI_make_current_read,GLX_SGI_swap_control,GLX_SGI_video_sync,GLX_SUN_get_transparent_index"
Online: Online:
Too many extensions Too many extensions
*/ */
@ -109,7 +114,7 @@ typedef void* (* GLADloadproc)(const char *name);
#ifndef GLAPI #ifndef GLAPI
# if defined(GLAD_GLAPI_EXPORT) # if defined(GLAD_GLAPI_EXPORT)
# if defined(WIN32) || defined(__CYGWIN__) # if defined(_WIN32) || defined(__CYGWIN__)
# if defined(GLAD_GLAPI_EXPORT_BUILD) # if defined(GLAD_GLAPI_EXPORT_BUILD)
# if defined(__GNUC__) # if defined(__GNUC__)
# define GLAPI __attribute__ ((dllexport)) extern # define GLAPI __attribute__ ((dllexport)) extern
@ -388,16 +393,16 @@ GLAPI PFNGLXISDIRECTPROC glad_glXIsDirect;
typedef int (APIENTRYP PFNGLXGETCONFIGPROC)(Display *dpy, XVisualInfo *visual, int attrib, int *value); typedef int (APIENTRYP PFNGLXGETCONFIGPROC)(Display *dpy, XVisualInfo *visual, int attrib, int *value);
GLAPI PFNGLXGETCONFIGPROC glad_glXGetConfig; GLAPI PFNGLXGETCONFIGPROC glad_glXGetConfig;
#define glXGetConfig glad_glXGetConfig #define glXGetConfig glad_glXGetConfig
typedef GLXContext (APIENTRYP PFNGLXGETCURRENTCONTEXTPROC)(); typedef GLXContext (APIENTRYP PFNGLXGETCURRENTCONTEXTPROC)(void);
GLAPI PFNGLXGETCURRENTCONTEXTPROC glad_glXGetCurrentContext; GLAPI PFNGLXGETCURRENTCONTEXTPROC glad_glXGetCurrentContext;
#define glXGetCurrentContext glad_glXGetCurrentContext #define glXGetCurrentContext glad_glXGetCurrentContext
typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTDRAWABLEPROC)(); typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTDRAWABLEPROC)(void);
GLAPI PFNGLXGETCURRENTDRAWABLEPROC glad_glXGetCurrentDrawable; GLAPI PFNGLXGETCURRENTDRAWABLEPROC glad_glXGetCurrentDrawable;
#define glXGetCurrentDrawable glad_glXGetCurrentDrawable #define glXGetCurrentDrawable glad_glXGetCurrentDrawable
typedef void (APIENTRYP PFNGLXWAITGLPROC)(); typedef void (APIENTRYP PFNGLXWAITGLPROC)(void);
GLAPI PFNGLXWAITGLPROC glad_glXWaitGL; GLAPI PFNGLXWAITGLPROC glad_glXWaitGL;
#define glXWaitGL glad_glXWaitGL #define glXWaitGL glad_glXWaitGL
typedef void (APIENTRYP PFNGLXWAITXPROC)(); typedef void (APIENTRYP PFNGLXWAITXPROC)(void);
GLAPI PFNGLXWAITXPROC glad_glXWaitX; GLAPI PFNGLXWAITXPROC glad_glXWaitX;
#define glXWaitX glad_glXWaitX #define glXWaitX glad_glXWaitX
typedef void (APIENTRYP PFNGLXUSEXFONTPROC)(Font font, int first, int count, int list); typedef void (APIENTRYP PFNGLXUSEXFONTPROC)(Font font, int first, int count, int list);
@ -420,7 +425,7 @@ GLAPI PFNGLXGETCLIENTSTRINGPROC glad_glXGetClientString;
#ifndef GLX_VERSION_1_2 #ifndef GLX_VERSION_1_2
#define GLX_VERSION_1_2 1 #define GLX_VERSION_1_2 1
GLAPI int GLAD_GLX_VERSION_1_2; GLAPI int GLAD_GLX_VERSION_1_2;
typedef Display * (APIENTRYP PFNGLXGETCURRENTDISPLAYPROC)(); typedef Display * (APIENTRYP PFNGLXGETCURRENTDISPLAYPROC)(void);
GLAPI PFNGLXGETCURRENTDISPLAYPROC glad_glXGetCurrentDisplay; GLAPI PFNGLXGETCURRENTDISPLAYPROC glad_glXGetCurrentDisplay;
#define glXGetCurrentDisplay glad_glXGetCurrentDisplay #define glXGetCurrentDisplay glad_glXGetCurrentDisplay
#endif #endif
@ -466,7 +471,7 @@ GLAPI PFNGLXCREATENEWCONTEXTPROC glad_glXCreateNewContext;
typedef Bool (APIENTRYP PFNGLXMAKECONTEXTCURRENTPROC)(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); typedef Bool (APIENTRYP PFNGLXMAKECONTEXTCURRENTPROC)(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
GLAPI PFNGLXMAKECONTEXTCURRENTPROC glad_glXMakeContextCurrent; GLAPI PFNGLXMAKECONTEXTCURRENTPROC glad_glXMakeContextCurrent;
#define glXMakeContextCurrent glad_glXMakeContextCurrent #define glXMakeContextCurrent glad_glXMakeContextCurrent
typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTREADDRAWABLEPROC)(); typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTREADDRAWABLEPROC)(void);
GLAPI PFNGLXGETCURRENTREADDRAWABLEPROC glad_glXGetCurrentReadDrawable; GLAPI PFNGLXGETCURRENTREADDRAWABLEPROC glad_glXGetCurrentReadDrawable;
#define glXGetCurrentReadDrawable glad_glXGetCurrentReadDrawable #define glXGetCurrentReadDrawable glad_glXGetCurrentReadDrawable
typedef int (APIENTRYP PFNGLXQUERYCONTEXTPROC)(Display *dpy, GLXContext ctx, int attribute, int *value); typedef int (APIENTRYP PFNGLXQUERYCONTEXTPROC)(Display *dpy, GLXContext ctx, int attribute, int *value);
@ -506,6 +511,7 @@ GLAPI PFNGLXGETPROCADDRESSPROC glad_glXGetProcAddress;
#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 #define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091
#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 #define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092
#define GLX_CONTEXT_FLAGS_ARB 0x2094 #define GLX_CONTEXT_FLAGS_ARB 0x2094
#define GLX_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3
#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 #define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 #define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 #define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126
@ -521,6 +527,10 @@ GLAPI PFNGLXGETPROCADDRESSPROC glad_glXGetProcAddress;
#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 #define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095 #define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095
#define GLX_BACK_BUFFER_AGE_EXT 0x20F4 #define GLX_BACK_BUFFER_AGE_EXT 0x20F4
#define GLX_CONTEXT_PRIORITY_LEVEL_EXT 0x3100
#define GLX_CONTEXT_PRIORITY_HIGH_EXT 0x3101
#define GLX_CONTEXT_PRIORITY_MEDIUM_EXT 0x3102
#define GLX_CONTEXT_PRIORITY_LOW_EXT 0x3103
#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 #define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
#define GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004 #define GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 #define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
@ -603,7 +613,6 @@ GLAPI PFNGLXGETPROCADDRESSPROC glad_glXGetProcAddress;
#define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B #define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA 0x818B
#define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C #define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA 0x818C
#define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D #define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA 0x818D
#define GLX_RENDERER_ID_MESA 0x818E
#define GLX_3DFX_WINDOW_MODE_MESA 0x1 #define GLX_3DFX_WINDOW_MODE_MESA 0x1
#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 #define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
#define GLX_FLOAT_COMPONENTS_NV 0x20B0 #define GLX_FLOAT_COMPONENTS_NV 0x20B0
@ -710,7 +719,7 @@ GLAPI PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC glad_glXDeleteAssociatedContextAMD;
typedef Bool (APIENTRYP PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(GLXContext ctx); typedef Bool (APIENTRYP PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(GLXContext ctx);
GLAPI PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_glXMakeAssociatedContextCurrentAMD; GLAPI PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_glXMakeAssociatedContextCurrentAMD;
#define glXMakeAssociatedContextCurrentAMD glad_glXMakeAssociatedContextCurrentAMD #define glXMakeAssociatedContextCurrentAMD glad_glXMakeAssociatedContextCurrentAMD
typedef GLXContext (APIENTRYP PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC)(); typedef GLXContext (APIENTRYP PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC)(void);
GLAPI PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_glXGetCurrentAssociatedContextAMD; GLAPI PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_glXGetCurrentAssociatedContextAMD;
#define glXGetCurrentAssociatedContextAMD glad_glXGetCurrentAssociatedContextAMD #define glXGetCurrentAssociatedContextAMD glad_glXGetCurrentAssociatedContextAMD
typedef void (APIENTRYP PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC)(GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); typedef void (APIENTRYP PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC)(GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
@ -728,6 +737,10 @@ typedef GLXContext (APIENTRYP PFNGLXCREATECONTEXTATTRIBSARBPROC)(Display *dpy, G
GLAPI PFNGLXCREATECONTEXTATTRIBSARBPROC glad_glXCreateContextAttribsARB; GLAPI PFNGLXCREATECONTEXTATTRIBSARBPROC glad_glXCreateContextAttribsARB;
#define glXCreateContextAttribsARB glad_glXCreateContextAttribsARB #define glXCreateContextAttribsARB glad_glXCreateContextAttribsARB
#endif #endif
#ifndef GLX_ARB_create_context_no_error
#define GLX_ARB_create_context_no_error 1
GLAPI int GLAD_GLX_ARB_create_context_no_error;
#endif
#ifndef GLX_ARB_create_context_profile #ifndef GLX_ARB_create_context_profile
#define GLX_ARB_create_context_profile 1 #define GLX_ARB_create_context_profile 1
GLAPI int GLAD_GLX_ARB_create_context_profile; GLAPI int GLAD_GLX_ARB_create_context_profile;
@ -771,6 +784,10 @@ GLAPI int GLAD_GLX_ARB_vertex_buffer_object;
#define GLX_EXT_buffer_age 1 #define GLX_EXT_buffer_age 1
GLAPI int GLAD_GLX_EXT_buffer_age; GLAPI int GLAD_GLX_EXT_buffer_age;
#endif #endif
#ifndef GLX_EXT_context_priority
#define GLX_EXT_context_priority 1
GLAPI int GLAD_GLX_EXT_context_priority;
#endif
#ifndef GLX_EXT_create_context_es2_profile #ifndef GLX_EXT_create_context_es2_profile
#define GLX_EXT_create_context_es2_profile 1 #define GLX_EXT_create_context_es2_profile 1
GLAPI int GLAD_GLX_EXT_create_context_es2_profile; GLAPI int GLAD_GLX_EXT_create_context_es2_profile;
@ -790,7 +807,7 @@ GLAPI int GLAD_GLX_EXT_framebuffer_sRGB;
#ifndef GLX_EXT_import_context #ifndef GLX_EXT_import_context
#define GLX_EXT_import_context 1 #define GLX_EXT_import_context 1
GLAPI int GLAD_GLX_EXT_import_context; GLAPI int GLAD_GLX_EXT_import_context;
typedef Display * (APIENTRYP PFNGLXGETCURRENTDISPLAYEXTPROC)(); typedef Display * (APIENTRYP PFNGLXGETCURRENTDISPLAYEXTPROC)(void);
GLAPI PFNGLXGETCURRENTDISPLAYEXTPROC glad_glXGetCurrentDisplayEXT; GLAPI PFNGLXGETCURRENTDISPLAYEXTPROC glad_glXGetCurrentDisplayEXT;
#define glXGetCurrentDisplayEXT glad_glXGetCurrentDisplayEXT #define glXGetCurrentDisplayEXT glad_glXGetCurrentDisplayEXT
typedef int (APIENTRYP PFNGLXQUERYCONTEXTINFOEXTPROC)(Display *dpy, GLXContext context, int attribute, int *value); typedef int (APIENTRYP PFNGLXQUERYCONTEXTINFOEXTPROC)(Display *dpy, GLXContext context, int attribute, int *value);
@ -810,6 +827,10 @@ GLAPI PFNGLXFREECONTEXTEXTPROC glad_glXFreeContextEXT;
#define GLX_EXT_libglvnd 1 #define GLX_EXT_libglvnd 1
GLAPI int GLAD_GLX_EXT_libglvnd; GLAPI int GLAD_GLX_EXT_libglvnd;
#endif #endif
#ifndef GLX_EXT_no_config_context
#define GLX_EXT_no_config_context 1
GLAPI int GLAD_GLX_EXT_no_config_context;
#endif
#ifndef GLX_EXT_stereo_tree #ifndef GLX_EXT_stereo_tree
#define GLX_EXT_stereo_tree 1 #define GLX_EXT_stereo_tree 1
GLAPI int GLAD_GLX_EXT_stereo_tree; GLAPI int GLAD_GLX_EXT_stereo_tree;
@ -894,10 +915,20 @@ GLAPI PFNGLXRELEASEBUFFERSMESAPROC glad_glXReleaseBuffersMESA;
#ifndef GLX_MESA_set_3dfx_mode #ifndef GLX_MESA_set_3dfx_mode
#define GLX_MESA_set_3dfx_mode 1 #define GLX_MESA_set_3dfx_mode 1
GLAPI int GLAD_GLX_MESA_set_3dfx_mode; GLAPI int GLAD_GLX_MESA_set_3dfx_mode;
typedef Bool (APIENTRYP PFNGLXSET3DFXMODEMESAPROC)(int mode); typedef GLboolean (APIENTRYP PFNGLXSET3DFXMODEMESAPROC)(GLint mode);
GLAPI PFNGLXSET3DFXMODEMESAPROC glad_glXSet3DfxModeMESA; GLAPI PFNGLXSET3DFXMODEMESAPROC glad_glXSet3DfxModeMESA;
#define glXSet3DfxModeMESA glad_glXSet3DfxModeMESA #define glXSet3DfxModeMESA glad_glXSet3DfxModeMESA
#endif #endif
#ifndef GLX_MESA_swap_control
#define GLX_MESA_swap_control 1
GLAPI int GLAD_GLX_MESA_swap_control;
typedef int (APIENTRYP PFNGLXGETSWAPINTERVALMESAPROC)(void);
GLAPI PFNGLXGETSWAPINTERVALMESAPROC glad_glXGetSwapIntervalMESA;
#define glXGetSwapIntervalMESA glad_glXGetSwapIntervalMESA
typedef int (APIENTRYP PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval);
GLAPI PFNGLXSWAPINTERVALMESAPROC glad_glXSwapIntervalMESA;
#define glXSwapIntervalMESA glad_glXSwapIntervalMESA
#endif
#ifndef GLX_NV_copy_buffer #ifndef GLX_NV_copy_buffer
#define GLX_NV_copy_buffer 1 #define GLX_NV_copy_buffer 1
GLAPI int GLAD_GLX_NV_copy_buffer; GLAPI int GLAD_GLX_NV_copy_buffer;
@ -1110,7 +1141,7 @@ GLAPI PFNGLXCREATEGLXPBUFFERSGIXPROC glad_glXCreateGLXPbufferSGIX;
typedef void (APIENTRYP PFNGLXDESTROYGLXPBUFFERSGIXPROC)(Display *dpy, GLXPbufferSGIX pbuf); typedef void (APIENTRYP PFNGLXDESTROYGLXPBUFFERSGIXPROC)(Display *dpy, GLXPbufferSGIX pbuf);
GLAPI PFNGLXDESTROYGLXPBUFFERSGIXPROC glad_glXDestroyGLXPbufferSGIX; GLAPI PFNGLXDESTROYGLXPBUFFERSGIXPROC glad_glXDestroyGLXPbufferSGIX;
#define glXDestroyGLXPbufferSGIX glad_glXDestroyGLXPbufferSGIX #define glXDestroyGLXPbufferSGIX glad_glXDestroyGLXPbufferSGIX
typedef int (APIENTRYP PFNGLXQUERYGLXPBUFFERSGIXPROC)(Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value); typedef void (APIENTRYP PFNGLXQUERYGLXPBUFFERSGIXPROC)(Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value);
GLAPI PFNGLXQUERYGLXPBUFFERSGIXPROC glad_glXQueryGLXPbufferSGIX; GLAPI PFNGLXQUERYGLXPBUFFERSGIXPROC glad_glXQueryGLXPbufferSGIX;
#define glXQueryGLXPbufferSGIX glad_glXQueryGLXPbufferSGIX #define glXQueryGLXPbufferSGIX glad_glXQueryGLXPbufferSGIX
typedef void (APIENTRYP PFNGLXSELECTEVENTSGIXPROC)(Display *dpy, GLXDrawable drawable, unsigned long mask); typedef void (APIENTRYP PFNGLXSELECTEVENTSGIXPROC)(Display *dpy, GLXDrawable drawable, unsigned long mask);
@ -1185,7 +1216,7 @@ GLAPI int GLAD_GLX_SGI_make_current_read;
typedef Bool (APIENTRYP PFNGLXMAKECURRENTREADSGIPROC)(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); typedef Bool (APIENTRYP PFNGLXMAKECURRENTREADSGIPROC)(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
GLAPI PFNGLXMAKECURRENTREADSGIPROC glad_glXMakeCurrentReadSGI; GLAPI PFNGLXMAKECURRENTREADSGIPROC glad_glXMakeCurrentReadSGI;
#define glXMakeCurrentReadSGI glad_glXMakeCurrentReadSGI #define glXMakeCurrentReadSGI glad_glXMakeCurrentReadSGI
typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTREADDRAWABLESGIPROC)(); typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTREADDRAWABLESGIPROC)(void);
GLAPI PFNGLXGETCURRENTREADDRAWABLESGIPROC glad_glXGetCurrentReadDrawableSGI; GLAPI PFNGLXGETCURRENTREADDRAWABLESGIPROC glad_glXGetCurrentReadDrawableSGI;
#define glXGetCurrentReadDrawableSGI glad_glXGetCurrentReadDrawableSGI #define glXGetCurrentReadDrawableSGI glad_glXGetCurrentReadDrawableSGI
#endif #endif
@ -1209,7 +1240,7 @@ GLAPI PFNGLXWAITVIDEOSYNCSGIPROC glad_glXWaitVideoSyncSGI;
#ifndef GLX_SUN_get_transparent_index #ifndef GLX_SUN_get_transparent_index
#define GLX_SUN_get_transparent_index 1 #define GLX_SUN_get_transparent_index 1
GLAPI int GLAD_GLX_SUN_get_transparent_index; GLAPI int GLAD_GLX_SUN_get_transparent_index;
typedef Status (APIENTRYP PFNGLXGETTRANSPARENTINDEXSUNPROC)(Display *dpy, Window overlay, Window underlay, long *pTransparentIndex); typedef Status (APIENTRYP PFNGLXGETTRANSPARENTINDEXSUNPROC)(Display *dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex);
GLAPI PFNGLXGETTRANSPARENTINDEXSUNPROC glad_glXGetTransparentIndexSUN; GLAPI PFNGLXGETTRANSPARENTINDEXSUNPROC glad_glXGetTransparentIndexSUN;
#define glXGetTransparentIndexSUN glad_glXGetTransparentIndexSUN #define glXGetTransparentIndexSUN glad_glXGetTransparentIndexSUN
#endif #endif

View file

@ -1,6 +1,6 @@
/* /*
WGL loader generated by glad 0.1.12a0 on Mon Sep 12 03:11:07 2016. WGL loader generated by glad 0.1.33 on Sun Aug 18 11:27:10 2019.
Language/Generator: C/C++ Language/Generator: C/C++
Specification: wgl Specification: wgl
@ -13,6 +13,7 @@
WGL_ARB_buffer_region, WGL_ARB_buffer_region,
WGL_ARB_context_flush_control, WGL_ARB_context_flush_control,
WGL_ARB_create_context, WGL_ARB_create_context,
WGL_ARB_create_context_no_error,
WGL_ARB_create_context_profile, WGL_ARB_create_context_profile,
WGL_ARB_create_context_robustness, WGL_ARB_create_context_robustness,
WGL_ARB_extensions_string, WGL_ARB_extensions_string,
@ -26,6 +27,8 @@
WGL_ARB_robustness_application_isolation, WGL_ARB_robustness_application_isolation,
WGL_ARB_robustness_share_group_isolation, WGL_ARB_robustness_share_group_isolation,
WGL_ATI_pixel_format_float, WGL_ATI_pixel_format_float,
WGL_ATI_render_texture_rectangle,
WGL_EXT_colorspace,
WGL_EXT_create_context_es2_profile, WGL_EXT_create_context_es2_profile,
WGL_EXT_create_context_es_profile, WGL_EXT_create_context_es_profile,
WGL_EXT_depth_float, WGL_EXT_depth_float,
@ -51,6 +54,7 @@
WGL_NV_delay_before_swap, WGL_NV_delay_before_swap,
WGL_NV_float_buffer, WGL_NV_float_buffer,
WGL_NV_gpu_affinity, WGL_NV_gpu_affinity,
WGL_NV_multigpu_context,
WGL_NV_multisample_coverage, WGL_NV_multisample_coverage,
WGL_NV_present_video, WGL_NV_present_video,
WGL_NV_render_depth_texture, WGL_NV_render_depth_texture,
@ -63,19 +67,23 @@
Loader: True Loader: True
Local files: False Local files: False
Omit khrplatform: False Omit khrplatform: False
Reproducible: False
Commandline: Commandline:
--api="wgl=1.0" --generator="c" --spec="wgl" --extensions="WGL_3DFX_multisample,WGL_3DL_stereo_control,WGL_AMD_gpu_association,WGL_ARB_buffer_region,WGL_ARB_context_flush_control,WGL_ARB_create_context,WGL_ARB_create_context_profile,WGL_ARB_create_context_robustness,WGL_ARB_extensions_string,WGL_ARB_framebuffer_sRGB,WGL_ARB_make_current_read,WGL_ARB_multisample,WGL_ARB_pbuffer,WGL_ARB_pixel_format,WGL_ARB_pixel_format_float,WGL_ARB_render_texture,WGL_ARB_robustness_application_isolation,WGL_ARB_robustness_share_group_isolation,WGL_ATI_pixel_format_float,WGL_EXT_create_context_es2_profile,WGL_EXT_create_context_es_profile,WGL_EXT_depth_float,WGL_EXT_display_color_table,WGL_EXT_extensions_string,WGL_EXT_framebuffer_sRGB,WGL_EXT_make_current_read,WGL_EXT_multisample,WGL_EXT_pbuffer,WGL_EXT_pixel_format,WGL_EXT_pixel_format_packed_float,WGL_EXT_swap_control,WGL_EXT_swap_control_tear,WGL_I3D_digital_video_control,WGL_I3D_gamma,WGL_I3D_genlock,WGL_I3D_image_buffer,WGL_I3D_swap_frame_lock,WGL_I3D_swap_frame_usage,WGL_NV_DX_interop,WGL_NV_DX_interop2,WGL_NV_copy_image,WGL_NV_delay_before_swap,WGL_NV_float_buffer,WGL_NV_gpu_affinity,WGL_NV_multisample_coverage,WGL_NV_present_video,WGL_NV_render_depth_texture,WGL_NV_render_texture_rectangle,WGL_NV_swap_group,WGL_NV_vertex_array_range,WGL_NV_video_capture,WGL_NV_video_output,WGL_OML_sync_control" --api="wgl=1.0" --generator="c" --spec="wgl" --extensions="WGL_3DFX_multisample,WGL_3DL_stereo_control,WGL_AMD_gpu_association,WGL_ARB_buffer_region,WGL_ARB_context_flush_control,WGL_ARB_create_context,WGL_ARB_create_context_no_error,WGL_ARB_create_context_profile,WGL_ARB_create_context_robustness,WGL_ARB_extensions_string,WGL_ARB_framebuffer_sRGB,WGL_ARB_make_current_read,WGL_ARB_multisample,WGL_ARB_pbuffer,WGL_ARB_pixel_format,WGL_ARB_pixel_format_float,WGL_ARB_render_texture,WGL_ARB_robustness_application_isolation,WGL_ARB_robustness_share_group_isolation,WGL_ATI_pixel_format_float,WGL_ATI_render_texture_rectangle,WGL_EXT_colorspace,WGL_EXT_create_context_es2_profile,WGL_EXT_create_context_es_profile,WGL_EXT_depth_float,WGL_EXT_display_color_table,WGL_EXT_extensions_string,WGL_EXT_framebuffer_sRGB,WGL_EXT_make_current_read,WGL_EXT_multisample,WGL_EXT_pbuffer,WGL_EXT_pixel_format,WGL_EXT_pixel_format_packed_float,WGL_EXT_swap_control,WGL_EXT_swap_control_tear,WGL_I3D_digital_video_control,WGL_I3D_gamma,WGL_I3D_genlock,WGL_I3D_image_buffer,WGL_I3D_swap_frame_lock,WGL_I3D_swap_frame_usage,WGL_NV_DX_interop,WGL_NV_DX_interop2,WGL_NV_copy_image,WGL_NV_delay_before_swap,WGL_NV_float_buffer,WGL_NV_gpu_affinity,WGL_NV_multigpu_context,WGL_NV_multisample_coverage,WGL_NV_present_video,WGL_NV_render_depth_texture,WGL_NV_render_texture_rectangle,WGL_NV_swap_group,WGL_NV_vertex_array_range,WGL_NV_video_capture,WGL_NV_video_output,WGL_OML_sync_control"
Online: Online:
http://glad.dav1d.de/#language=c&specification=wgl&loader=on&api=wgl%3D1.0&extensions=WGL_3DFX_multisample&extensions=WGL_3DL_stereo_control&extensions=WGL_AMD_gpu_association&extensions=WGL_ARB_buffer_region&extensions=WGL_ARB_context_flush_control&extensions=WGL_ARB_create_context&extensions=WGL_ARB_create_context_profile&extensions=WGL_ARB_create_context_robustness&extensions=WGL_ARB_extensions_string&extensions=WGL_ARB_framebuffer_sRGB&extensions=WGL_ARB_make_current_read&extensions=WGL_ARB_multisample&extensions=WGL_ARB_pbuffer&extensions=WGL_ARB_pixel_format&extensions=WGL_ARB_pixel_format_float&extensions=WGL_ARB_render_texture&extensions=WGL_ARB_robustness_application_isolation&extensions=WGL_ARB_robustness_share_group_isolation&extensions=WGL_ATI_pixel_format_float&extensions=WGL_EXT_create_context_es2_profile&extensions=WGL_EXT_create_context_es_profile&extensions=WGL_EXT_depth_float&extensions=WGL_EXT_display_color_table&extensions=WGL_EXT_extensions_string&extensions=WGL_EXT_framebuffer_sRGB&extensions=WGL_EXT_make_current_read&extensions=WGL_EXT_multisample&extensions=WGL_EXT_pbuffer&extensions=WGL_EXT_pixel_format&extensions=WGL_EXT_pixel_format_packed_float&extensions=WGL_EXT_swap_control&extensions=WGL_EXT_swap_control_tear&extensions=WGL_I3D_digital_video_control&extensions=WGL_I3D_gamma&extensions=WGL_I3D_genlock&extensions=WGL_I3D_image_buffer&extensions=WGL_I3D_swap_frame_lock&extensions=WGL_I3D_swap_frame_usage&extensions=WGL_NV_DX_interop&extensions=WGL_NV_DX_interop2&extensions=WGL_NV_copy_image&extensions=WGL_NV_delay_before_swap&extensions=WGL_NV_float_buffer&extensions=WGL_NV_gpu_affinity&extensions=WGL_NV_multisample_coverage&extensions=WGL_NV_present_video&extensions=WGL_NV_render_depth_texture&extensions=WGL_NV_render_texture_rectangle&extensions=WGL_NV_swap_group&extensions=WGL_NV_vertex_array_range&extensions=WGL_NV_video_capture&extensions=WGL_NV_video_output&extensions=WGL_OML_sync_control Too many extensions
*/ */
#ifndef WINAPI #ifndef WINAPI
# ifndef WIN32_LEAN_AND_MEAN #ifndef WIN32_LEAN_AND_MEAN
# define WIN32_LEAN_AND_MEAN 1 #define WIN32_LEAN_AND_MEAN 1
# endif #endif
# include <windows.h> #ifndef NOMINMAX
#define NOMINMAX 1
#endif
#include <windows.h>
#endif #endif
#include <glad/glad.h> #include <glad/glad.h>
@ -104,7 +112,7 @@ typedef void* (* GLADloadproc)(const char *name);
#ifndef GLAPI #ifndef GLAPI
# if defined(GLAD_GLAPI_EXPORT) # if defined(GLAD_GLAPI_EXPORT)
# if defined(WIN32) || defined(__CYGWIN__) # if defined(_WIN32) || defined(__CYGWIN__)
# if defined(GLAD_GLAPI_EXPORT_BUILD) # if defined(GLAD_GLAPI_EXPORT_BUILD)
# if defined(__GNUC__) # if defined(__GNUC__)
# define GLAPI __attribute__ ((dllexport)) extern # define GLAPI __attribute__ ((dllexport)) extern
@ -178,6 +186,7 @@ typedef struct _GPU_DEVICE *PGPU_DEVICE;
#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 #define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
#define WGL_CONTEXT_FLAGS_ARB 0x2094 #define WGL_CONTEXT_FLAGS_ARB 0x2094
#define ERROR_INVALID_VERSION_ARB 0x2095 #define ERROR_INVALID_VERSION_ARB 0x2095
#define WGL_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3
#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 #define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 #define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
@ -284,6 +293,10 @@ typedef struct _GPU_DEVICE *PGPU_DEVICE;
#define WGL_AUX9_ARB 0x2090 #define WGL_AUX9_ARB 0x2090
#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008 #define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 #define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
#define WGL_TEXTURE_RECTANGLE_ATI 0x21A5
#define WGL_COLORSPACE_EXT 0x309D
#define WGL_COLORSPACE_SRGB_EXT 0x3089
#define WGL_COLORSPACE_LINEAR_EXT 0x308A
#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 #define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
#define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004 #define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
#define WGL_DEPTH_FLOAT_EXT 0x2040 #define WGL_DEPTH_FLOAT_EXT 0x2040
@ -377,6 +390,11 @@ typedef struct _GPU_DEVICE *PGPU_DEVICE;
#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 #define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
#define ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 #define ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
#define ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 #define ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
#define WGL_CONTEXT_MULTIGPU_ATTRIB_NV 0x20AA
#define WGL_CONTEXT_MULTIGPU_ATTRIB_SINGLE_NV 0x20AB
#define WGL_CONTEXT_MULTIGPU_ATTRIB_AFR_NV 0x20AC
#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTICAST_NV 0x20AD
#define WGL_CONTEXT_MULTIGPU_ATTRIB_MULTI_DISPLAY_MULTICAST_NV 0x20AE
#define WGL_COVERAGE_SAMPLES_NV 0x2042 #define WGL_COVERAGE_SAMPLES_NV 0x2042
#define WGL_COLOR_SAMPLES_NV 0x20B9 #define WGL_COLOR_SAMPLES_NV 0x20B9
#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 #define WGL_NUM_VIDEO_SLOTS_NV 0x20F0
@ -420,7 +438,7 @@ GLAPI int GLAD_WGL_AMD_gpu_association;
typedef UINT (APIENTRYP PFNWGLGETGPUIDSAMDPROC)(UINT maxCount, UINT *ids); typedef UINT (APIENTRYP PFNWGLGETGPUIDSAMDPROC)(UINT maxCount, UINT *ids);
GLAPI PFNWGLGETGPUIDSAMDPROC glad_wglGetGPUIDsAMD; GLAPI PFNWGLGETGPUIDSAMDPROC glad_wglGetGPUIDsAMD;
#define wglGetGPUIDsAMD glad_wglGetGPUIDsAMD #define wglGetGPUIDsAMD glad_wglGetGPUIDsAMD
typedef INT (APIENTRYP PFNWGLGETGPUINFOAMDPROC)(UINT id, int property, GLenum dataType, UINT size, void *data); typedef INT (APIENTRYP PFNWGLGETGPUINFOAMDPROC)(UINT id, INT property, GLenum dataType, UINT size, void *data);
GLAPI PFNWGLGETGPUINFOAMDPROC glad_wglGetGPUInfoAMD; GLAPI PFNWGLGETGPUINFOAMDPROC glad_wglGetGPUInfoAMD;
#define wglGetGPUInfoAMD glad_wglGetGPUInfoAMD #define wglGetGPUInfoAMD glad_wglGetGPUInfoAMD
typedef UINT (APIENTRYP PFNWGLGETCONTEXTGPUIDAMDPROC)(HGLRC hglrc); typedef UINT (APIENTRYP PFNWGLGETCONTEXTGPUIDAMDPROC)(HGLRC hglrc);
@ -438,7 +456,7 @@ GLAPI PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC glad_wglDeleteAssociatedContextAMD;
typedef BOOL (APIENTRYP PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(HGLRC hglrc); typedef BOOL (APIENTRYP PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(HGLRC hglrc);
GLAPI PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_wglMakeAssociatedContextCurrentAMD; GLAPI PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_wglMakeAssociatedContextCurrentAMD;
#define wglMakeAssociatedContextCurrentAMD glad_wglMakeAssociatedContextCurrentAMD #define wglMakeAssociatedContextCurrentAMD glad_wglMakeAssociatedContextCurrentAMD
typedef HGLRC (APIENTRYP PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC)(); typedef HGLRC (APIENTRYP PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC)(void);
GLAPI PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_wglGetCurrentAssociatedContextAMD; GLAPI PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_wglGetCurrentAssociatedContextAMD;
#define wglGetCurrentAssociatedContextAMD glad_wglGetCurrentAssociatedContextAMD #define wglGetCurrentAssociatedContextAMD glad_wglGetCurrentAssociatedContextAMD
typedef VOID (APIENTRYP PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC)(HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); typedef VOID (APIENTRYP PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC)(HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
@ -472,6 +490,10 @@ typedef HGLRC (APIENTRYP PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC hDC, HGLRC hShar
GLAPI PFNWGLCREATECONTEXTATTRIBSARBPROC glad_wglCreateContextAttribsARB; GLAPI PFNWGLCREATECONTEXTATTRIBSARBPROC glad_wglCreateContextAttribsARB;
#define wglCreateContextAttribsARB glad_wglCreateContextAttribsARB #define wglCreateContextAttribsARB glad_wglCreateContextAttribsARB
#endif #endif
#ifndef WGL_ARB_create_context_no_error
#define WGL_ARB_create_context_no_error 1
GLAPI int GLAD_WGL_ARB_create_context_no_error;
#endif
#ifndef WGL_ARB_create_context_profile #ifndef WGL_ARB_create_context_profile
#define WGL_ARB_create_context_profile 1 #define WGL_ARB_create_context_profile 1
GLAPI int GLAD_WGL_ARB_create_context_profile; GLAPI int GLAD_WGL_ARB_create_context_profile;
@ -497,7 +519,7 @@ GLAPI int GLAD_WGL_ARB_make_current_read;
typedef BOOL (APIENTRYP PFNWGLMAKECONTEXTCURRENTARBPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc); typedef BOOL (APIENTRYP PFNWGLMAKECONTEXTCURRENTARBPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
GLAPI PFNWGLMAKECONTEXTCURRENTARBPROC glad_wglMakeContextCurrentARB; GLAPI PFNWGLMAKECONTEXTCURRENTARBPROC glad_wglMakeContextCurrentARB;
#define wglMakeContextCurrentARB glad_wglMakeContextCurrentARB #define wglMakeContextCurrentARB glad_wglMakeContextCurrentARB
typedef HDC (APIENTRYP PFNWGLGETCURRENTREADDCARBPROC)(); typedef HDC (APIENTRYP PFNWGLGETCURRENTREADDCARBPROC)(void);
GLAPI PFNWGLGETCURRENTREADDCARBPROC glad_wglGetCurrentReadDCARB; GLAPI PFNWGLGETCURRENTREADDCARBPROC glad_wglGetCurrentReadDCARB;
#define wglGetCurrentReadDCARB glad_wglGetCurrentReadDCARB #define wglGetCurrentReadDCARB glad_wglGetCurrentReadDCARB
#endif #endif
@ -566,6 +588,14 @@ GLAPI int GLAD_WGL_ARB_robustness_share_group_isolation;
#define WGL_ATI_pixel_format_float 1 #define WGL_ATI_pixel_format_float 1
GLAPI int GLAD_WGL_ATI_pixel_format_float; GLAPI int GLAD_WGL_ATI_pixel_format_float;
#endif #endif
#ifndef WGL_ATI_render_texture_rectangle
#define WGL_ATI_render_texture_rectangle 1
GLAPI int GLAD_WGL_ATI_render_texture_rectangle;
#endif
#ifndef WGL_EXT_colorspace
#define WGL_EXT_colorspace 1
GLAPI int GLAD_WGL_EXT_colorspace;
#endif
#ifndef WGL_EXT_create_context_es2_profile #ifndef WGL_EXT_create_context_es2_profile
#define WGL_EXT_create_context_es2_profile 1 #define WGL_EXT_create_context_es2_profile 1
GLAPI int GLAD_WGL_EXT_create_context_es2_profile; GLAPI int GLAD_WGL_EXT_create_context_es2_profile;
@ -597,7 +627,7 @@ GLAPI PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC glad_wglDestroyDisplayColorTableEXT;
#ifndef WGL_EXT_extensions_string #ifndef WGL_EXT_extensions_string
#define WGL_EXT_extensions_string 1 #define WGL_EXT_extensions_string 1
GLAPI int GLAD_WGL_EXT_extensions_string; GLAPI int GLAD_WGL_EXT_extensions_string;
typedef const char * (APIENTRYP PFNWGLGETEXTENSIONSSTRINGEXTPROC)(); typedef const char * (APIENTRYP PFNWGLGETEXTENSIONSSTRINGEXTPROC)(void);
GLAPI PFNWGLGETEXTENSIONSSTRINGEXTPROC glad_wglGetExtensionsStringEXT; GLAPI PFNWGLGETEXTENSIONSSTRINGEXTPROC glad_wglGetExtensionsStringEXT;
#define wglGetExtensionsStringEXT glad_wglGetExtensionsStringEXT #define wglGetExtensionsStringEXT glad_wglGetExtensionsStringEXT
#endif #endif
@ -611,7 +641,7 @@ GLAPI int GLAD_WGL_EXT_make_current_read;
typedef BOOL (APIENTRYP PFNWGLMAKECONTEXTCURRENTEXTPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc); typedef BOOL (APIENTRYP PFNWGLMAKECONTEXTCURRENTEXTPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
GLAPI PFNWGLMAKECONTEXTCURRENTEXTPROC glad_wglMakeContextCurrentEXT; GLAPI PFNWGLMAKECONTEXTCURRENTEXTPROC glad_wglMakeContextCurrentEXT;
#define wglMakeContextCurrentEXT glad_wglMakeContextCurrentEXT #define wglMakeContextCurrentEXT glad_wglMakeContextCurrentEXT
typedef HDC (APIENTRYP PFNWGLGETCURRENTREADDCEXTPROC)(); typedef HDC (APIENTRYP PFNWGLGETCURRENTREADDCEXTPROC)(void);
GLAPI PFNWGLGETCURRENTREADDCEXTPROC glad_wglGetCurrentReadDCEXT; GLAPI PFNWGLGETCURRENTREADDCEXTPROC glad_wglGetCurrentReadDCEXT;
#define wglGetCurrentReadDCEXT glad_wglGetCurrentReadDCEXT #define wglGetCurrentReadDCEXT glad_wglGetCurrentReadDCEXT
#endif #endif
@ -661,7 +691,7 @@ GLAPI int GLAD_WGL_EXT_swap_control;
typedef BOOL (APIENTRYP PFNWGLSWAPINTERVALEXTPROC)(int interval); typedef BOOL (APIENTRYP PFNWGLSWAPINTERVALEXTPROC)(int interval);
GLAPI PFNWGLSWAPINTERVALEXTPROC glad_wglSwapIntervalEXT; GLAPI PFNWGLSWAPINTERVALEXTPROC glad_wglSwapIntervalEXT;
#define wglSwapIntervalEXT glad_wglSwapIntervalEXT #define wglSwapIntervalEXT glad_wglSwapIntervalEXT
typedef int (APIENTRYP PFNWGLGETSWAPINTERVALEXTPROC)(); typedef int (APIENTRYP PFNWGLGETSWAPINTERVALEXTPROC)(void);
GLAPI PFNWGLGETSWAPINTERVALEXTPROC glad_wglGetSwapIntervalEXT; GLAPI PFNWGLGETSWAPINTERVALEXTPROC glad_wglGetSwapIntervalEXT;
#define wglGetSwapIntervalEXT glad_wglGetSwapIntervalEXT #define wglGetSwapIntervalEXT glad_wglGetSwapIntervalEXT
#endif #endif
@ -754,10 +784,10 @@ GLAPI PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC glad_wglReleaseImageBufferEventsI3D;
#ifndef WGL_I3D_swap_frame_lock #ifndef WGL_I3D_swap_frame_lock
#define WGL_I3D_swap_frame_lock 1 #define WGL_I3D_swap_frame_lock 1
GLAPI int GLAD_WGL_I3D_swap_frame_lock; GLAPI int GLAD_WGL_I3D_swap_frame_lock;
typedef BOOL (APIENTRYP PFNWGLENABLEFRAMELOCKI3DPROC)(); typedef BOOL (APIENTRYP PFNWGLENABLEFRAMELOCKI3DPROC)(void);
GLAPI PFNWGLENABLEFRAMELOCKI3DPROC glad_wglEnableFrameLockI3D; GLAPI PFNWGLENABLEFRAMELOCKI3DPROC glad_wglEnableFrameLockI3D;
#define wglEnableFrameLockI3D glad_wglEnableFrameLockI3D #define wglEnableFrameLockI3D glad_wglEnableFrameLockI3D
typedef BOOL (APIENTRYP PFNWGLDISABLEFRAMELOCKI3DPROC)(); typedef BOOL (APIENTRYP PFNWGLDISABLEFRAMELOCKI3DPROC)(void);
GLAPI PFNWGLDISABLEFRAMELOCKI3DPROC glad_wglDisableFrameLockI3D; GLAPI PFNWGLDISABLEFRAMELOCKI3DPROC glad_wglDisableFrameLockI3D;
#define wglDisableFrameLockI3D glad_wglDisableFrameLockI3D #define wglDisableFrameLockI3D glad_wglDisableFrameLockI3D
typedef BOOL (APIENTRYP PFNWGLISENABLEDFRAMELOCKI3DPROC)(BOOL *pFlag); typedef BOOL (APIENTRYP PFNWGLISENABLEDFRAMELOCKI3DPROC)(BOOL *pFlag);
@ -773,10 +803,10 @@ GLAPI int GLAD_WGL_I3D_swap_frame_usage;
typedef BOOL (APIENTRYP PFNWGLGETFRAMEUSAGEI3DPROC)(float *pUsage); typedef BOOL (APIENTRYP PFNWGLGETFRAMEUSAGEI3DPROC)(float *pUsage);
GLAPI PFNWGLGETFRAMEUSAGEI3DPROC glad_wglGetFrameUsageI3D; GLAPI PFNWGLGETFRAMEUSAGEI3DPROC glad_wglGetFrameUsageI3D;
#define wglGetFrameUsageI3D glad_wglGetFrameUsageI3D #define wglGetFrameUsageI3D glad_wglGetFrameUsageI3D
typedef BOOL (APIENTRYP PFNWGLBEGINFRAMETRACKINGI3DPROC)(); typedef BOOL (APIENTRYP PFNWGLBEGINFRAMETRACKINGI3DPROC)(void);
GLAPI PFNWGLBEGINFRAMETRACKINGI3DPROC glad_wglBeginFrameTrackingI3D; GLAPI PFNWGLBEGINFRAMETRACKINGI3DPROC glad_wglBeginFrameTrackingI3D;
#define wglBeginFrameTrackingI3D glad_wglBeginFrameTrackingI3D #define wglBeginFrameTrackingI3D glad_wglBeginFrameTrackingI3D
typedef BOOL (APIENTRYP PFNWGLENDFRAMETRACKINGI3DPROC)(); typedef BOOL (APIENTRYP PFNWGLENDFRAMETRACKINGI3DPROC)(void);
GLAPI PFNWGLENDFRAMETRACKINGI3DPROC glad_wglEndFrameTrackingI3D; GLAPI PFNWGLENDFRAMETRACKINGI3DPROC glad_wglEndFrameTrackingI3D;
#define wglEndFrameTrackingI3D glad_wglEndFrameTrackingI3D #define wglEndFrameTrackingI3D glad_wglEndFrameTrackingI3D
typedef BOOL (APIENTRYP PFNWGLQUERYFRAMETRACKINGI3DPROC)(DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage); typedef BOOL (APIENTRYP PFNWGLQUERYFRAMETRACKINGI3DPROC)(DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
@ -852,6 +882,10 @@ typedef BOOL (APIENTRYP PFNWGLDELETEDCNVPROC)(HDC hdc);
GLAPI PFNWGLDELETEDCNVPROC glad_wglDeleteDCNV; GLAPI PFNWGLDELETEDCNVPROC glad_wglDeleteDCNV;
#define wglDeleteDCNV glad_wglDeleteDCNV #define wglDeleteDCNV glad_wglDeleteDCNV
#endif #endif
#ifndef WGL_NV_multigpu_context
#define WGL_NV_multigpu_context 1
GLAPI int GLAD_WGL_NV_multigpu_context;
#endif
#ifndef WGL_NV_multisample_coverage #ifndef WGL_NV_multisample_coverage
#define WGL_NV_multisample_coverage 1 #define WGL_NV_multisample_coverage 1
GLAPI int GLAD_WGL_NV_multisample_coverage; GLAPI int GLAD_WGL_NV_multisample_coverage;
@ -859,10 +893,10 @@ GLAPI int GLAD_WGL_NV_multisample_coverage;
#ifndef WGL_NV_present_video #ifndef WGL_NV_present_video
#define WGL_NV_present_video 1 #define WGL_NV_present_video 1
GLAPI int GLAD_WGL_NV_present_video; GLAPI int GLAD_WGL_NV_present_video;
typedef int (APIENTRYP PFNWGLENUMERATEVIDEODEVICESNVPROC)(HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList); typedef int (APIENTRYP PFNWGLENUMERATEVIDEODEVICESNVPROC)(HDC hDc, HVIDEOOUTPUTDEVICENV *phDeviceList);
GLAPI PFNWGLENUMERATEVIDEODEVICESNVPROC glad_wglEnumerateVideoDevicesNV; GLAPI PFNWGLENUMERATEVIDEODEVICESNVPROC glad_wglEnumerateVideoDevicesNV;
#define wglEnumerateVideoDevicesNV glad_wglEnumerateVideoDevicesNV #define wglEnumerateVideoDevicesNV glad_wglEnumerateVideoDevicesNV
typedef BOOL (APIENTRYP PFNWGLBINDVIDEODEVICENVPROC)(HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList); typedef BOOL (APIENTRYP PFNWGLBINDVIDEODEVICENVPROC)(HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
GLAPI PFNWGLBINDVIDEODEVICENVPROC glad_wglBindVideoDeviceNV; GLAPI PFNWGLBINDVIDEODEVICENVPROC glad_wglBindVideoDeviceNV;
#define wglBindVideoDeviceNV glad_wglBindVideoDeviceNV #define wglBindVideoDeviceNV glad_wglBindVideoDeviceNV
typedef BOOL (APIENTRYP PFNWGLQUERYCURRENTCONTEXTNVPROC)(int iAttribute, int *piValue); typedef BOOL (APIENTRYP PFNWGLQUERYCURRENTCONTEXTNVPROC)(int iAttribute, int *piValue);
@ -962,7 +996,7 @@ GLAPI PFNWGLGETMSCRATEOMLPROC glad_wglGetMscRateOML;
typedef INT64 (APIENTRYP PFNWGLSWAPBUFFERSMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder); typedef INT64 (APIENTRYP PFNWGLSWAPBUFFERSMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
GLAPI PFNWGLSWAPBUFFERSMSCOMLPROC glad_wglSwapBuffersMscOML; GLAPI PFNWGLSWAPBUFFERSMSCOMLPROC glad_wglSwapBuffersMscOML;
#define wglSwapBuffersMscOML glad_wglSwapBuffersMscOML #define wglSwapBuffersMscOML glad_wglSwapBuffersMscOML
typedef INT64 (APIENTRYP PFNWGLSWAPLAYERBUFFERSMSCOMLPROC)(HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder); typedef INT64 (APIENTRYP PFNWGLSWAPLAYERBUFFERSMSCOMLPROC)(HDC hdc, INT fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
GLAPI PFNWGLSWAPLAYERBUFFERSMSCOMLPROC glad_wglSwapLayerBuffersMscOML; GLAPI PFNWGLSWAPLAYERBUFFERSMSCOMLPROC glad_wglSwapLayerBuffersMscOML;
#define wglSwapLayerBuffersMscOML glad_wglSwapLayerBuffersMscOML #define wglSwapLayerBuffersMscOML glad_wglSwapLayerBuffersMscOML
typedef BOOL (APIENTRYP PFNWGLWAITFORMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc); typedef BOOL (APIENTRYP PFNWGLWAITFORMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
/* /*
GLX loader generated by glad 0.1.12a0 on Mon Sep 12 03:11:58 2016. GLX loader generated by glad 0.1.33 on Sun Aug 18 11:26:39 2019.
Language/Generator: C/C++ Language/Generator: C/C++
Specification: glx Specification: glx
@ -11,6 +11,7 @@
GLX_AMD_gpu_association, GLX_AMD_gpu_association,
GLX_ARB_context_flush_control, GLX_ARB_context_flush_control,
GLX_ARB_create_context, GLX_ARB_create_context,
GLX_ARB_create_context_no_error,
GLX_ARB_create_context_profile, GLX_ARB_create_context_profile,
GLX_ARB_create_context_robustness, GLX_ARB_create_context_robustness,
GLX_ARB_fbconfig_float, GLX_ARB_fbconfig_float,
@ -21,12 +22,14 @@
GLX_ARB_robustness_share_group_isolation, GLX_ARB_robustness_share_group_isolation,
GLX_ARB_vertex_buffer_object, GLX_ARB_vertex_buffer_object,
GLX_EXT_buffer_age, GLX_EXT_buffer_age,
GLX_EXT_context_priority,
GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es2_profile,
GLX_EXT_create_context_es_profile, GLX_EXT_create_context_es_profile,
GLX_EXT_fbconfig_packed_float, GLX_EXT_fbconfig_packed_float,
GLX_EXT_framebuffer_sRGB, GLX_EXT_framebuffer_sRGB,
GLX_EXT_import_context, GLX_EXT_import_context,
GLX_EXT_libglvnd, GLX_EXT_libglvnd,
GLX_EXT_no_config_context,
GLX_EXT_stereo_tree, GLX_EXT_stereo_tree,
GLX_EXT_swap_control, GLX_EXT_swap_control,
GLX_EXT_swap_control_tear, GLX_EXT_swap_control_tear,
@ -40,6 +43,7 @@
GLX_MESA_query_renderer, GLX_MESA_query_renderer,
GLX_MESA_release_buffers, GLX_MESA_release_buffers,
GLX_MESA_set_3dfx_mode, GLX_MESA_set_3dfx_mode,
GLX_MESA_swap_control,
GLX_NV_copy_buffer, GLX_NV_copy_buffer,
GLX_NV_copy_image, GLX_NV_copy_image,
GLX_NV_delay_before_swap, GLX_NV_delay_before_swap,
@ -72,9 +76,10 @@
Loader: True Loader: True
Local files: False Local files: False
Omit khrplatform: False Omit khrplatform: False
Reproducible: False
Commandline: Commandline:
--api="glx=1.4" --generator="c" --spec="glx" --extensions="GLX_3DFX_multisample,GLX_AMD_gpu_association,GLX_ARB_context_flush_control,GLX_ARB_create_context,GLX_ARB_create_context_profile,GLX_ARB_create_context_robustness,GLX_ARB_fbconfig_float,GLX_ARB_framebuffer_sRGB,GLX_ARB_get_proc_address,GLX_ARB_multisample,GLX_ARB_robustness_application_isolation,GLX_ARB_robustness_share_group_isolation,GLX_ARB_vertex_buffer_object,GLX_EXT_buffer_age,GLX_EXT_create_context_es2_profile,GLX_EXT_create_context_es_profile,GLX_EXT_fbconfig_packed_float,GLX_EXT_framebuffer_sRGB,GLX_EXT_import_context,GLX_EXT_libglvnd,GLX_EXT_stereo_tree,GLX_EXT_swap_control,GLX_EXT_swap_control_tear,GLX_EXT_texture_from_pixmap,GLX_EXT_visual_info,GLX_EXT_visual_rating,GLX_INTEL_swap_event,GLX_MESA_agp_offset,GLX_MESA_copy_sub_buffer,GLX_MESA_pixmap_colormap,GLX_MESA_query_renderer,GLX_MESA_release_buffers,GLX_MESA_set_3dfx_mode,GLX_NV_copy_buffer,GLX_NV_copy_image,GLX_NV_delay_before_swap,GLX_NV_float_buffer,GLX_NV_multisample_coverage,GLX_NV_present_video,GLX_NV_robustness_video_memory_purge,GLX_NV_swap_group,GLX_NV_video_capture,GLX_NV_video_out,GLX_OML_swap_method,GLX_OML_sync_control,GLX_SGIS_blended_overlay,GLX_SGIS_multisample,GLX_SGIS_shared_multisample,GLX_SGIX_dmbuffer,GLX_SGIX_fbconfig,GLX_SGIX_hyperpipe,GLX_SGIX_pbuffer,GLX_SGIX_swap_barrier,GLX_SGIX_swap_group,GLX_SGIX_video_resize,GLX_SGIX_video_source,GLX_SGIX_visual_select_group,GLX_SGI_cushion,GLX_SGI_make_current_read,GLX_SGI_swap_control,GLX_SGI_video_sync,GLX_SUN_get_transparent_index" --api="glx=1.4" --generator="c" --spec="glx" --extensions="GLX_3DFX_multisample,GLX_AMD_gpu_association,GLX_ARB_context_flush_control,GLX_ARB_create_context,GLX_ARB_create_context_no_error,GLX_ARB_create_context_profile,GLX_ARB_create_context_robustness,GLX_ARB_fbconfig_float,GLX_ARB_framebuffer_sRGB,GLX_ARB_get_proc_address,GLX_ARB_multisample,GLX_ARB_robustness_application_isolation,GLX_ARB_robustness_share_group_isolation,GLX_ARB_vertex_buffer_object,GLX_EXT_buffer_age,GLX_EXT_context_priority,GLX_EXT_create_context_es2_profile,GLX_EXT_create_context_es_profile,GLX_EXT_fbconfig_packed_float,GLX_EXT_framebuffer_sRGB,GLX_EXT_import_context,GLX_EXT_libglvnd,GLX_EXT_no_config_context,GLX_EXT_stereo_tree,GLX_EXT_swap_control,GLX_EXT_swap_control_tear,GLX_EXT_texture_from_pixmap,GLX_EXT_visual_info,GLX_EXT_visual_rating,GLX_INTEL_swap_event,GLX_MESA_agp_offset,GLX_MESA_copy_sub_buffer,GLX_MESA_pixmap_colormap,GLX_MESA_query_renderer,GLX_MESA_release_buffers,GLX_MESA_set_3dfx_mode,GLX_MESA_swap_control,GLX_NV_copy_buffer,GLX_NV_copy_image,GLX_NV_delay_before_swap,GLX_NV_float_buffer,GLX_NV_multisample_coverage,GLX_NV_present_video,GLX_NV_robustness_video_memory_purge,GLX_NV_swap_group,GLX_NV_video_capture,GLX_NV_video_out,GLX_OML_swap_method,GLX_OML_sync_control,GLX_SGIS_blended_overlay,GLX_SGIS_multisample,GLX_SGIS_shared_multisample,GLX_SGIX_dmbuffer,GLX_SGIX_fbconfig,GLX_SGIX_hyperpipe,GLX_SGIX_pbuffer,GLX_SGIX_swap_barrier,GLX_SGIX_swap_group,GLX_SGIX_video_resize,GLX_SGIX_video_source,GLX_SGIX_visual_select_group,GLX_SGI_cushion,GLX_SGI_make_current_read,GLX_SGI_swap_control,GLX_SGI_video_sync,GLX_SUN_get_transparent_index"
Online: Online:
Too many extensions Too many extensions
*/ */
@ -86,21 +91,44 @@
static void* get_proc(const char *namez); static void* get_proc(const char *namez);
#ifdef _WIN32 #if defined(_WIN32) || defined(__CYGWIN__)
#ifndef _WINDOWS_
#undef APIENTRY
#endif
#include <windows.h> #include <windows.h>
static HMODULE libGL; static HMODULE libGL;
typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*); typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*);
PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
#ifdef _MSC_VER
#ifdef __has_include
#if __has_include(<winapifamily.h>)
#define HAVE_WINAPIFAMILY 1
#endif
#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
#define HAVE_WINAPIFAMILY 1
#endif
#endif
#ifdef HAVE_WINAPIFAMILY
#include <winapifamily.h>
#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
#define IS_UWP 1
#endif
#endif
static static
int open_gl(void) { int open_gl(void) {
#ifndef IS_UWP
libGL = LoadLibraryW(L"opengl32.dll"); libGL = LoadLibraryW(L"opengl32.dll");
if(libGL != NULL) { if(libGL != NULL) {
gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE)GetProcAddress( void (* tmp)(void);
libGL, "wglGetProcAddress"); tmp = (void(*)(void)) GetProcAddress(libGL, "wglGetProcAddress");
gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE) tmp;
return gladGetProcAddressPtr != NULL; return gladGetProcAddressPtr != NULL;
} }
#endif
return 0; return 0;
} }
@ -108,7 +136,7 @@ int open_gl(void) {
static static
void close_gl(void) { void close_gl(void) {
if(libGL != NULL) { if(libGL != NULL) {
FreeLibrary(libGL); FreeLibrary((HMODULE) libGL);
libGL = NULL; libGL = NULL;
} }
} }
@ -116,9 +144,9 @@ void close_gl(void) {
#include <dlfcn.h> #include <dlfcn.h>
static void* libGL; static void* libGL;
#ifndef __APPLE__ #if !defined(__APPLE__) && !defined(__HAIKU__)
typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*); typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*);
PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; static PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
#endif #endif
static static
@ -139,7 +167,7 @@ int open_gl(void) {
libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL); libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL);
if(libGL != NULL) { if(libGL != NULL) {
#ifdef __APPLE__ #if defined(__APPLE__) || defined(__HAIKU__)
return 1; return 1;
#else #else
gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL, gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL,
@ -153,7 +181,7 @@ int open_gl(void) {
} }
static static
void close_gl() { void close_gl(void) {
if(libGL != NULL) { if(libGL != NULL) {
dlclose(libGL); dlclose(libGL);
libGL = NULL; libGL = NULL;
@ -166,14 +194,14 @@ void* get_proc(const char *namez) {
void* result = NULL; void* result = NULL;
if(libGL == NULL) return NULL; if(libGL == NULL) return NULL;
#ifndef __APPLE__ #if !defined(__APPLE__) && !defined(__HAIKU__)
if(gladGetProcAddressPtr != NULL) { if(gladGetProcAddressPtr != NULL) {
result = gladGetProcAddressPtr(namez); result = gladGetProcAddressPtr(namez);
} }
#endif #endif
if(result == NULL) { if(result == NULL) {
#ifdef _WIN32 #if defined(_WIN32) || defined(__CYGWIN__)
result = (void*)GetProcAddress(libGL, namez); result = (void*)GetProcAddress((HMODULE) libGL, namez);
#else #else
result = dlsym(libGL, namez); result = dlsym(libGL, namez);
#endif #endif
@ -234,209 +262,215 @@ static int has_ext(const char *ext) {
return 0; return 0;
} }
int GLAD_GLX_VERSION_1_0; int GLAD_GLX_VERSION_1_0 = 0;
int GLAD_GLX_VERSION_1_1; int GLAD_GLX_VERSION_1_1 = 0;
int GLAD_GLX_VERSION_1_2; int GLAD_GLX_VERSION_1_2 = 0;
int GLAD_GLX_VERSION_1_3; int GLAD_GLX_VERSION_1_3 = 0;
int GLAD_GLX_VERSION_1_4; int GLAD_GLX_VERSION_1_4 = 0;
PFNGLXGETSELECTEDEVENTPROC glad_glXGetSelectedEvent; PFNGLXCHOOSEFBCONFIGPROC glad_glXChooseFBConfig = NULL;
PFNGLXQUERYEXTENSIONPROC glad_glXQueryExtension; PFNGLXCHOOSEVISUALPROC glad_glXChooseVisual = NULL;
PFNGLXMAKECURRENTPROC glad_glXMakeCurrent; PFNGLXCOPYCONTEXTPROC glad_glXCopyContext = NULL;
PFNGLXSELECTEVENTPROC glad_glXSelectEvent; PFNGLXCREATECONTEXTPROC glad_glXCreateContext = NULL;
PFNGLXCREATECONTEXTPROC glad_glXCreateContext; PFNGLXCREATEGLXPIXMAPPROC glad_glXCreateGLXPixmap = NULL;
PFNGLXCREATEGLXPIXMAPPROC glad_glXCreateGLXPixmap; PFNGLXCREATENEWCONTEXTPROC glad_glXCreateNewContext = NULL;
PFNGLXQUERYVERSIONPROC glad_glXQueryVersion; PFNGLXCREATEPBUFFERPROC glad_glXCreatePbuffer = NULL;
PFNGLXGETCURRENTREADDRAWABLEPROC glad_glXGetCurrentReadDrawable; PFNGLXCREATEPIXMAPPROC glad_glXCreatePixmap = NULL;
PFNGLXDESTROYPIXMAPPROC glad_glXDestroyPixmap; PFNGLXCREATEWINDOWPROC glad_glXCreateWindow = NULL;
PFNGLXGETCURRENTCONTEXTPROC glad_glXGetCurrentContext; PFNGLXDESTROYCONTEXTPROC glad_glXDestroyContext = NULL;
PFNGLXGETPROCADDRESSPROC glad_glXGetProcAddress; PFNGLXDESTROYGLXPIXMAPPROC glad_glXDestroyGLXPixmap = NULL;
PFNGLXWAITGLPROC glad_glXWaitGL; PFNGLXDESTROYPBUFFERPROC glad_glXDestroyPbuffer = NULL;
PFNGLXISDIRECTPROC glad_glXIsDirect; PFNGLXDESTROYPIXMAPPROC glad_glXDestroyPixmap = NULL;
PFNGLXDESTROYWINDOWPROC glad_glXDestroyWindow; PFNGLXDESTROYWINDOWPROC glad_glXDestroyWindow = NULL;
PFNGLXCREATEWINDOWPROC glad_glXCreateWindow; PFNGLXGETCLIENTSTRINGPROC glad_glXGetClientString = NULL;
PFNGLXCOPYCONTEXTPROC glad_glXCopyContext; PFNGLXGETCONFIGPROC glad_glXGetConfig = NULL;
PFNGLXCREATEPBUFFERPROC glad_glXCreatePbuffer; PFNGLXGETCURRENTCONTEXTPROC glad_glXGetCurrentContext = NULL;
PFNGLXSWAPBUFFERSPROC glad_glXSwapBuffers; PFNGLXGETCURRENTDISPLAYPROC glad_glXGetCurrentDisplay = NULL;
PFNGLXGETCURRENTDISPLAYPROC glad_glXGetCurrentDisplay; PFNGLXGETCURRENTDRAWABLEPROC glad_glXGetCurrentDrawable = NULL;
PFNGLXGETCURRENTDRAWABLEPROC glad_glXGetCurrentDrawable; PFNGLXGETCURRENTREADDRAWABLEPROC glad_glXGetCurrentReadDrawable = NULL;
PFNGLXQUERYCONTEXTPROC glad_glXQueryContext; PFNGLXGETFBCONFIGATTRIBPROC glad_glXGetFBConfigAttrib = NULL;
PFNGLXCHOOSEVISUALPROC glad_glXChooseVisual; PFNGLXGETFBCONFIGSPROC glad_glXGetFBConfigs = NULL;
PFNGLXQUERYSERVERSTRINGPROC glad_glXQueryServerString; PFNGLXGETPROCADDRESSPROC glad_glXGetProcAddress = NULL;
PFNGLXDESTROYCONTEXTPROC glad_glXDestroyContext; PFNGLXGETSELECTEDEVENTPROC glad_glXGetSelectedEvent = NULL;
PFNGLXDESTROYGLXPIXMAPPROC glad_glXDestroyGLXPixmap; PFNGLXGETVISUALFROMFBCONFIGPROC glad_glXGetVisualFromFBConfig = NULL;
PFNGLXGETFBCONFIGATTRIBPROC glad_glXGetFBConfigAttrib; PFNGLXISDIRECTPROC glad_glXIsDirect = NULL;
PFNGLXUSEXFONTPROC glad_glXUseXFont; PFNGLXMAKECONTEXTCURRENTPROC glad_glXMakeContextCurrent = NULL;
PFNGLXDESTROYPBUFFERPROC glad_glXDestroyPbuffer; PFNGLXMAKECURRENTPROC glad_glXMakeCurrent = NULL;
PFNGLXCHOOSEFBCONFIGPROC glad_glXChooseFBConfig; PFNGLXQUERYCONTEXTPROC glad_glXQueryContext = NULL;
PFNGLXCREATENEWCONTEXTPROC glad_glXCreateNewContext; PFNGLXQUERYDRAWABLEPROC glad_glXQueryDrawable = NULL;
PFNGLXMAKECONTEXTCURRENTPROC glad_glXMakeContextCurrent; PFNGLXQUERYEXTENSIONPROC glad_glXQueryExtension = NULL;
PFNGLXGETCONFIGPROC glad_glXGetConfig; PFNGLXQUERYEXTENSIONSSTRINGPROC glad_glXQueryExtensionsString = NULL;
PFNGLXGETFBCONFIGSPROC glad_glXGetFBConfigs; PFNGLXQUERYSERVERSTRINGPROC glad_glXQueryServerString = NULL;
PFNGLXCREATEPIXMAPPROC glad_glXCreatePixmap; PFNGLXQUERYVERSIONPROC glad_glXQueryVersion = NULL;
PFNGLXWAITXPROC glad_glXWaitX; PFNGLXSELECTEVENTPROC glad_glXSelectEvent = NULL;
PFNGLXGETVISUALFROMFBCONFIGPROC glad_glXGetVisualFromFBConfig; PFNGLXSWAPBUFFERSPROC glad_glXSwapBuffers = NULL;
PFNGLXQUERYDRAWABLEPROC glad_glXQueryDrawable; PFNGLXUSEXFONTPROC glad_glXUseXFont = NULL;
PFNGLXQUERYEXTENSIONSSTRINGPROC glad_glXQueryExtensionsString; PFNGLXWAITGLPROC glad_glXWaitGL = NULL;
PFNGLXGETCLIENTSTRINGPROC glad_glXGetClientString; PFNGLXWAITXPROC glad_glXWaitX = NULL;
int GLAD_GLX_ARB_framebuffer_sRGB; int GLAD_GLX_3DFX_multisample = 0;
int GLAD_GLX_EXT_import_context; int GLAD_GLX_AMD_gpu_association = 0;
int GLAD_GLX_EXT_libglvnd; int GLAD_GLX_ARB_context_flush_control = 0;
int GLAD_GLX_SGIS_shared_multisample; int GLAD_GLX_ARB_create_context = 0;
int GLAD_GLX_SGIX_pbuffer; int GLAD_GLX_ARB_create_context_no_error = 0;
int GLAD_GLX_EXT_swap_control_tear; int GLAD_GLX_ARB_create_context_profile = 0;
int GLAD_GLX_ARB_fbconfig_float; int GLAD_GLX_ARB_create_context_robustness = 0;
int GLAD_GLX_SGIX_hyperpipe; int GLAD_GLX_ARB_fbconfig_float = 0;
int GLAD_GLX_MESA_set_3dfx_mode; int GLAD_GLX_ARB_framebuffer_sRGB = 0;
int GLAD_GLX_INTEL_swap_event; int GLAD_GLX_ARB_get_proc_address = 0;
int GLAD_GLX_SGIX_video_resize; int GLAD_GLX_ARB_multisample = 0;
int GLAD_GLX_MESA_pixmap_colormap; int GLAD_GLX_ARB_robustness_application_isolation = 0;
int GLAD_GLX_EXT_create_context_es2_profile; int GLAD_GLX_ARB_robustness_share_group_isolation = 0;
int GLAD_GLX_ARB_robustness_application_isolation; int GLAD_GLX_ARB_vertex_buffer_object = 0;
int GLAD_GLX_NV_copy_image; int GLAD_GLX_EXT_buffer_age = 0;
int GLAD_GLX_NV_swap_group; int GLAD_GLX_EXT_context_priority = 0;
int GLAD_GLX_OML_sync_control; int GLAD_GLX_EXT_create_context_es2_profile = 0;
int GLAD_GLX_EXT_framebuffer_sRGB; int GLAD_GLX_EXT_create_context_es_profile = 0;
int GLAD_GLX_ARB_create_context_robustness; int GLAD_GLX_EXT_fbconfig_packed_float = 0;
int GLAD_GLX_OML_swap_method; int GLAD_GLX_EXT_framebuffer_sRGB = 0;
int GLAD_GLX_EXT_fbconfig_packed_float; int GLAD_GLX_EXT_import_context = 0;
int GLAD_GLX_EXT_buffer_age; int GLAD_GLX_EXT_libglvnd = 0;
int GLAD_GLX_3DFX_multisample; int GLAD_GLX_EXT_no_config_context = 0;
int GLAD_GLX_EXT_visual_info; int GLAD_GLX_EXT_stereo_tree = 0;
int GLAD_GLX_SGI_video_sync; int GLAD_GLX_EXT_swap_control = 0;
int GLAD_GLX_NV_video_capture; int GLAD_GLX_EXT_swap_control_tear = 0;
int GLAD_GLX_SGIS_multisample; int GLAD_GLX_EXT_texture_from_pixmap = 0;
int GLAD_GLX_EXT_texture_from_pixmap; int GLAD_GLX_EXT_visual_info = 0;
int GLAD_GLX_NV_video_out; int GLAD_GLX_EXT_visual_rating = 0;
int GLAD_GLX_ARB_multisample; int GLAD_GLX_INTEL_swap_event = 0;
int GLAD_GLX_NV_delay_before_swap; int GLAD_GLX_MESA_agp_offset = 0;
int GLAD_GLX_SGI_make_current_read; int GLAD_GLX_MESA_copy_sub_buffer = 0;
int GLAD_GLX_SGIX_swap_group; int GLAD_GLX_MESA_pixmap_colormap = 0;
int GLAD_GLX_EXT_swap_control; int GLAD_GLX_MESA_query_renderer = 0;
int GLAD_GLX_SGIX_video_source; int GLAD_GLX_MESA_release_buffers = 0;
int GLAD_GLX_MESA_query_renderer; int GLAD_GLX_MESA_set_3dfx_mode = 0;
int GLAD_GLX_NV_robustness_video_memory_purge; int GLAD_GLX_MESA_swap_control = 0;
int GLAD_GLX_ARB_create_context; int GLAD_GLX_NV_copy_buffer = 0;
int GLAD_GLX_ARB_context_flush_control; int GLAD_GLX_NV_copy_image = 0;
int GLAD_GLX_ARB_robustness_share_group_isolation; int GLAD_GLX_NV_delay_before_swap = 0;
int GLAD_GLX_EXT_stereo_tree; int GLAD_GLX_NV_float_buffer = 0;
int GLAD_GLX_SGI_swap_control; int GLAD_GLX_NV_multisample_coverage = 0;
int GLAD_GLX_SGIX_dmbuffer; int GLAD_GLX_NV_present_video = 0;
int GLAD_GLX_SGIX_visual_select_group; int GLAD_GLX_NV_robustness_video_memory_purge = 0;
int GLAD_GLX_SGIS_blended_overlay; int GLAD_GLX_NV_swap_group = 0;
int GLAD_GLX_NV_multisample_coverage; int GLAD_GLX_NV_video_capture = 0;
int GLAD_GLX_EXT_create_context_es_profile; int GLAD_GLX_NV_video_out = 0;
int GLAD_GLX_SGIX_fbconfig; int GLAD_GLX_OML_swap_method = 0;
int GLAD_GLX_NV_float_buffer; int GLAD_GLX_OML_sync_control = 0;
int GLAD_GLX_SGI_cushion; int GLAD_GLX_SGIS_blended_overlay = 0;
int GLAD_GLX_MESA_release_buffers; int GLAD_GLX_SGIS_multisample = 0;
int GLAD_GLX_EXT_visual_rating; int GLAD_GLX_SGIS_shared_multisample = 0;
int GLAD_GLX_MESA_copy_sub_buffer; int GLAD_GLX_SGIX_dmbuffer = 0;
int GLAD_GLX_MESA_agp_offset; int GLAD_GLX_SGIX_fbconfig = 0;
int GLAD_GLX_NV_copy_buffer; int GLAD_GLX_SGIX_hyperpipe = 0;
int GLAD_GLX_NV_present_video; int GLAD_GLX_SGIX_pbuffer = 0;
int GLAD_GLX_SUN_get_transparent_index; int GLAD_GLX_SGIX_swap_barrier = 0;
int GLAD_GLX_AMD_gpu_association; int GLAD_GLX_SGIX_swap_group = 0;
int GLAD_GLX_ARB_create_context_profile; int GLAD_GLX_SGIX_video_resize = 0;
int GLAD_GLX_SGIX_swap_barrier; int GLAD_GLX_SGIX_video_source = 0;
int GLAD_GLX_ARB_get_proc_address; int GLAD_GLX_SGIX_visual_select_group = 0;
int GLAD_GLX_ARB_vertex_buffer_object; int GLAD_GLX_SGI_cushion = 0;
PFNGLXGETGPUIDSAMDPROC glad_glXGetGPUIDsAMD; int GLAD_GLX_SGI_make_current_read = 0;
PFNGLXGETGPUINFOAMDPROC glad_glXGetGPUInfoAMD; int GLAD_GLX_SGI_swap_control = 0;
PFNGLXGETCONTEXTGPUIDAMDPROC glad_glXGetContextGPUIDAMD; int GLAD_GLX_SGI_video_sync = 0;
PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC glad_glXCreateAssociatedContextAMD; int GLAD_GLX_SUN_get_transparent_index = 0;
PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC glad_glXCreateAssociatedContextAttribsAMD; PFNGLXGETGPUIDSAMDPROC glad_glXGetGPUIDsAMD = NULL;
PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC glad_glXDeleteAssociatedContextAMD; PFNGLXGETGPUINFOAMDPROC glad_glXGetGPUInfoAMD = NULL;
PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_glXMakeAssociatedContextCurrentAMD; PFNGLXGETCONTEXTGPUIDAMDPROC glad_glXGetContextGPUIDAMD = NULL;
PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_glXGetCurrentAssociatedContextAMD; PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC glad_glXCreateAssociatedContextAMD = NULL;
PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC glad_glXBlitContextFramebufferAMD; PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC glad_glXCreateAssociatedContextAttribsAMD = NULL;
PFNGLXCREATECONTEXTATTRIBSARBPROC glad_glXCreateContextAttribsARB; PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC glad_glXDeleteAssociatedContextAMD = NULL;
PFNGLXGETPROCADDRESSARBPROC glad_glXGetProcAddressARB; PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_glXMakeAssociatedContextCurrentAMD = NULL;
PFNGLXGETCURRENTDISPLAYEXTPROC glad_glXGetCurrentDisplayEXT; PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_glXGetCurrentAssociatedContextAMD = NULL;
PFNGLXQUERYCONTEXTINFOEXTPROC glad_glXQueryContextInfoEXT; PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC glad_glXBlitContextFramebufferAMD = NULL;
PFNGLXGETCONTEXTIDEXTPROC glad_glXGetContextIDEXT; PFNGLXCREATECONTEXTATTRIBSARBPROC glad_glXCreateContextAttribsARB = NULL;
PFNGLXIMPORTCONTEXTEXTPROC glad_glXImportContextEXT; PFNGLXGETPROCADDRESSARBPROC glad_glXGetProcAddressARB = NULL;
PFNGLXFREECONTEXTEXTPROC glad_glXFreeContextEXT; PFNGLXGETCURRENTDISPLAYEXTPROC glad_glXGetCurrentDisplayEXT = NULL;
PFNGLXSWAPINTERVALEXTPROC glad_glXSwapIntervalEXT; PFNGLXQUERYCONTEXTINFOEXTPROC glad_glXQueryContextInfoEXT = NULL;
PFNGLXBINDTEXIMAGEEXTPROC glad_glXBindTexImageEXT; PFNGLXGETCONTEXTIDEXTPROC glad_glXGetContextIDEXT = NULL;
PFNGLXRELEASETEXIMAGEEXTPROC glad_glXReleaseTexImageEXT; PFNGLXIMPORTCONTEXTEXTPROC glad_glXImportContextEXT = NULL;
PFNGLXGETAGPOFFSETMESAPROC glad_glXGetAGPOffsetMESA; PFNGLXFREECONTEXTEXTPROC glad_glXFreeContextEXT = NULL;
PFNGLXCOPYSUBBUFFERMESAPROC glad_glXCopySubBufferMESA; PFNGLXSWAPINTERVALEXTPROC glad_glXSwapIntervalEXT = NULL;
PFNGLXCREATEGLXPIXMAPMESAPROC glad_glXCreateGLXPixmapMESA; PFNGLXBINDTEXIMAGEEXTPROC glad_glXBindTexImageEXT = NULL;
PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC glad_glXQueryCurrentRendererIntegerMESA; PFNGLXRELEASETEXIMAGEEXTPROC glad_glXReleaseTexImageEXT = NULL;
PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC glad_glXQueryCurrentRendererStringMESA; PFNGLXGETAGPOFFSETMESAPROC glad_glXGetAGPOffsetMESA = NULL;
PFNGLXQUERYRENDERERINTEGERMESAPROC glad_glXQueryRendererIntegerMESA; PFNGLXCOPYSUBBUFFERMESAPROC glad_glXCopySubBufferMESA = NULL;
PFNGLXQUERYRENDERERSTRINGMESAPROC glad_glXQueryRendererStringMESA; PFNGLXCREATEGLXPIXMAPMESAPROC glad_glXCreateGLXPixmapMESA = NULL;
PFNGLXRELEASEBUFFERSMESAPROC glad_glXReleaseBuffersMESA; PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC glad_glXQueryCurrentRendererIntegerMESA = NULL;
PFNGLXSET3DFXMODEMESAPROC glad_glXSet3DfxModeMESA; PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC glad_glXQueryCurrentRendererStringMESA = NULL;
PFNGLXCOPYBUFFERSUBDATANVPROC glad_glXCopyBufferSubDataNV; PFNGLXQUERYRENDERERINTEGERMESAPROC glad_glXQueryRendererIntegerMESA = NULL;
PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC glad_glXNamedCopyBufferSubDataNV; PFNGLXQUERYRENDERERSTRINGMESAPROC glad_glXQueryRendererStringMESA = NULL;
PFNGLXCOPYIMAGESUBDATANVPROC glad_glXCopyImageSubDataNV; PFNGLXRELEASEBUFFERSMESAPROC glad_glXReleaseBuffersMESA = NULL;
PFNGLXDELAYBEFORESWAPNVPROC glad_glXDelayBeforeSwapNV; PFNGLXSET3DFXMODEMESAPROC glad_glXSet3DfxModeMESA = NULL;
PFNGLXENUMERATEVIDEODEVICESNVPROC glad_glXEnumerateVideoDevicesNV; PFNGLXGETSWAPINTERVALMESAPROC glad_glXGetSwapIntervalMESA = NULL;
PFNGLXBINDVIDEODEVICENVPROC glad_glXBindVideoDeviceNV; PFNGLXSWAPINTERVALMESAPROC glad_glXSwapIntervalMESA = NULL;
PFNGLXJOINSWAPGROUPNVPROC glad_glXJoinSwapGroupNV; PFNGLXCOPYBUFFERSUBDATANVPROC glad_glXCopyBufferSubDataNV = NULL;
PFNGLXBINDSWAPBARRIERNVPROC glad_glXBindSwapBarrierNV; PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC glad_glXNamedCopyBufferSubDataNV = NULL;
PFNGLXQUERYSWAPGROUPNVPROC glad_glXQuerySwapGroupNV; PFNGLXCOPYIMAGESUBDATANVPROC glad_glXCopyImageSubDataNV = NULL;
PFNGLXQUERYMAXSWAPGROUPSNVPROC glad_glXQueryMaxSwapGroupsNV; PFNGLXDELAYBEFORESWAPNVPROC glad_glXDelayBeforeSwapNV = NULL;
PFNGLXQUERYFRAMECOUNTNVPROC glad_glXQueryFrameCountNV; PFNGLXENUMERATEVIDEODEVICESNVPROC glad_glXEnumerateVideoDevicesNV = NULL;
PFNGLXRESETFRAMECOUNTNVPROC glad_glXResetFrameCountNV; PFNGLXBINDVIDEODEVICENVPROC glad_glXBindVideoDeviceNV = NULL;
PFNGLXBINDVIDEOCAPTUREDEVICENVPROC glad_glXBindVideoCaptureDeviceNV; PFNGLXJOINSWAPGROUPNVPROC glad_glXJoinSwapGroupNV = NULL;
PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC glad_glXEnumerateVideoCaptureDevicesNV; PFNGLXBINDSWAPBARRIERNVPROC glad_glXBindSwapBarrierNV = NULL;
PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC glad_glXLockVideoCaptureDeviceNV; PFNGLXQUERYSWAPGROUPNVPROC glad_glXQuerySwapGroupNV = NULL;
PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC glad_glXQueryVideoCaptureDeviceNV; PFNGLXQUERYMAXSWAPGROUPSNVPROC glad_glXQueryMaxSwapGroupsNV = NULL;
PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC glad_glXReleaseVideoCaptureDeviceNV; PFNGLXQUERYFRAMECOUNTNVPROC glad_glXQueryFrameCountNV = NULL;
PFNGLXGETVIDEODEVICENVPROC glad_glXGetVideoDeviceNV; PFNGLXRESETFRAMECOUNTNVPROC glad_glXResetFrameCountNV = NULL;
PFNGLXRELEASEVIDEODEVICENVPROC glad_glXReleaseVideoDeviceNV; PFNGLXBINDVIDEOCAPTUREDEVICENVPROC glad_glXBindVideoCaptureDeviceNV = NULL;
PFNGLXBINDVIDEOIMAGENVPROC glad_glXBindVideoImageNV; PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC glad_glXEnumerateVideoCaptureDevicesNV = NULL;
PFNGLXRELEASEVIDEOIMAGENVPROC glad_glXReleaseVideoImageNV; PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC glad_glXLockVideoCaptureDeviceNV = NULL;
PFNGLXSENDPBUFFERTOVIDEONVPROC glad_glXSendPbufferToVideoNV; PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC glad_glXQueryVideoCaptureDeviceNV = NULL;
PFNGLXGETVIDEOINFONVPROC glad_glXGetVideoInfoNV; PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC glad_glXReleaseVideoCaptureDeviceNV = NULL;
PFNGLXGETSYNCVALUESOMLPROC glad_glXGetSyncValuesOML; PFNGLXGETVIDEODEVICENVPROC glad_glXGetVideoDeviceNV = NULL;
PFNGLXGETMSCRATEOMLPROC glad_glXGetMscRateOML; PFNGLXRELEASEVIDEODEVICENVPROC glad_glXReleaseVideoDeviceNV = NULL;
PFNGLXSWAPBUFFERSMSCOMLPROC glad_glXSwapBuffersMscOML; PFNGLXBINDVIDEOIMAGENVPROC glad_glXBindVideoImageNV = NULL;
PFNGLXWAITFORMSCOMLPROC glad_glXWaitForMscOML; PFNGLXRELEASEVIDEOIMAGENVPROC glad_glXReleaseVideoImageNV = NULL;
PFNGLXWAITFORSBCOMLPROC glad_glXWaitForSbcOML; PFNGLXSENDPBUFFERTOVIDEONVPROC glad_glXSendPbufferToVideoNV = NULL;
PFNGLXGETVIDEOINFONVPROC glad_glXGetVideoInfoNV = NULL;
PFNGLXGETSYNCVALUESOMLPROC glad_glXGetSyncValuesOML = NULL;
PFNGLXGETMSCRATEOMLPROC glad_glXGetMscRateOML = NULL;
PFNGLXSWAPBUFFERSMSCOMLPROC glad_glXSwapBuffersMscOML = NULL;
PFNGLXWAITFORMSCOMLPROC glad_glXWaitForMscOML = NULL;
PFNGLXWAITFORSBCOMLPROC glad_glXWaitForSbcOML = NULL;
#ifdef _DM_BUFFER_H_ #ifdef _DM_BUFFER_H_
PFNGLXASSOCIATEDMPBUFFERSGIXPROC glad_glXAssociateDMPbufferSGIX; PFNGLXASSOCIATEDMPBUFFERSGIXPROC glad_glXAssociateDMPbufferSGIX = NULL;
#endif #endif
PFNGLXGETFBCONFIGATTRIBSGIXPROC glad_glXGetFBConfigAttribSGIX; PFNGLXGETFBCONFIGATTRIBSGIXPROC glad_glXGetFBConfigAttribSGIX = NULL;
PFNGLXCHOOSEFBCONFIGSGIXPROC glad_glXChooseFBConfigSGIX; PFNGLXCHOOSEFBCONFIGSGIXPROC glad_glXChooseFBConfigSGIX = NULL;
PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC glad_glXCreateGLXPixmapWithConfigSGIX; PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC glad_glXCreateGLXPixmapWithConfigSGIX = NULL;
PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC glad_glXCreateContextWithConfigSGIX; PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC glad_glXCreateContextWithConfigSGIX = NULL;
PFNGLXGETVISUALFROMFBCONFIGSGIXPROC glad_glXGetVisualFromFBConfigSGIX; PFNGLXGETVISUALFROMFBCONFIGSGIXPROC glad_glXGetVisualFromFBConfigSGIX = NULL;
PFNGLXGETFBCONFIGFROMVISUALSGIXPROC glad_glXGetFBConfigFromVisualSGIX; PFNGLXGETFBCONFIGFROMVISUALSGIXPROC glad_glXGetFBConfigFromVisualSGIX = NULL;
PFNGLXQUERYHYPERPIPENETWORKSGIXPROC glad_glXQueryHyperpipeNetworkSGIX; PFNGLXQUERYHYPERPIPENETWORKSGIXPROC glad_glXQueryHyperpipeNetworkSGIX = NULL;
PFNGLXHYPERPIPECONFIGSGIXPROC glad_glXHyperpipeConfigSGIX; PFNGLXHYPERPIPECONFIGSGIXPROC glad_glXHyperpipeConfigSGIX = NULL;
PFNGLXQUERYHYPERPIPECONFIGSGIXPROC glad_glXQueryHyperpipeConfigSGIX; PFNGLXQUERYHYPERPIPECONFIGSGIXPROC glad_glXQueryHyperpipeConfigSGIX = NULL;
PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC glad_glXDestroyHyperpipeConfigSGIX; PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC glad_glXDestroyHyperpipeConfigSGIX = NULL;
PFNGLXBINDHYPERPIPESGIXPROC glad_glXBindHyperpipeSGIX; PFNGLXBINDHYPERPIPESGIXPROC glad_glXBindHyperpipeSGIX = NULL;
PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC glad_glXQueryHyperpipeBestAttribSGIX; PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC glad_glXQueryHyperpipeBestAttribSGIX = NULL;
PFNGLXHYPERPIPEATTRIBSGIXPROC glad_glXHyperpipeAttribSGIX; PFNGLXHYPERPIPEATTRIBSGIXPROC glad_glXHyperpipeAttribSGIX = NULL;
PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC glad_glXQueryHyperpipeAttribSGIX; PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC glad_glXQueryHyperpipeAttribSGIX = NULL;
PFNGLXCREATEGLXPBUFFERSGIXPROC glad_glXCreateGLXPbufferSGIX; PFNGLXCREATEGLXPBUFFERSGIXPROC glad_glXCreateGLXPbufferSGIX = NULL;
PFNGLXDESTROYGLXPBUFFERSGIXPROC glad_glXDestroyGLXPbufferSGIX; PFNGLXDESTROYGLXPBUFFERSGIXPROC glad_glXDestroyGLXPbufferSGIX = NULL;
PFNGLXQUERYGLXPBUFFERSGIXPROC glad_glXQueryGLXPbufferSGIX; PFNGLXQUERYGLXPBUFFERSGIXPROC glad_glXQueryGLXPbufferSGIX = NULL;
PFNGLXSELECTEVENTSGIXPROC glad_glXSelectEventSGIX; PFNGLXSELECTEVENTSGIXPROC glad_glXSelectEventSGIX = NULL;
PFNGLXGETSELECTEDEVENTSGIXPROC glad_glXGetSelectedEventSGIX; PFNGLXGETSELECTEDEVENTSGIXPROC glad_glXGetSelectedEventSGIX = NULL;
PFNGLXBINDSWAPBARRIERSGIXPROC glad_glXBindSwapBarrierSGIX; PFNGLXBINDSWAPBARRIERSGIXPROC glad_glXBindSwapBarrierSGIX = NULL;
PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC glad_glXQueryMaxSwapBarriersSGIX; PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC glad_glXQueryMaxSwapBarriersSGIX = NULL;
PFNGLXJOINSWAPGROUPSGIXPROC glad_glXJoinSwapGroupSGIX; PFNGLXJOINSWAPGROUPSGIXPROC glad_glXJoinSwapGroupSGIX = NULL;
PFNGLXBINDCHANNELTOWINDOWSGIXPROC glad_glXBindChannelToWindowSGIX; PFNGLXBINDCHANNELTOWINDOWSGIXPROC glad_glXBindChannelToWindowSGIX = NULL;
PFNGLXCHANNELRECTSGIXPROC glad_glXChannelRectSGIX; PFNGLXCHANNELRECTSGIXPROC glad_glXChannelRectSGIX = NULL;
PFNGLXQUERYCHANNELRECTSGIXPROC glad_glXQueryChannelRectSGIX; PFNGLXQUERYCHANNELRECTSGIXPROC glad_glXQueryChannelRectSGIX = NULL;
PFNGLXQUERYCHANNELDELTASSGIXPROC glad_glXQueryChannelDeltasSGIX; PFNGLXQUERYCHANNELDELTASSGIXPROC glad_glXQueryChannelDeltasSGIX = NULL;
PFNGLXCHANNELRECTSYNCSGIXPROC glad_glXChannelRectSyncSGIX; PFNGLXCHANNELRECTSYNCSGIXPROC glad_glXChannelRectSyncSGIX = NULL;
#ifdef _VL_H_ #ifdef _VL_H_
PFNGLXCREATEGLXVIDEOSOURCESGIXPROC glad_glXCreateGLXVideoSourceSGIX; PFNGLXCREATEGLXVIDEOSOURCESGIXPROC glad_glXCreateGLXVideoSourceSGIX = NULL;
PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC glad_glXDestroyGLXVideoSourceSGIX; PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC glad_glXDestroyGLXVideoSourceSGIX = NULL;
#endif #endif
PFNGLXCUSHIONSGIPROC glad_glXCushionSGI; PFNGLXCUSHIONSGIPROC glad_glXCushionSGI = NULL;
PFNGLXMAKECURRENTREADSGIPROC glad_glXMakeCurrentReadSGI; PFNGLXMAKECURRENTREADSGIPROC glad_glXMakeCurrentReadSGI = NULL;
PFNGLXGETCURRENTREADDRAWABLESGIPROC glad_glXGetCurrentReadDrawableSGI; PFNGLXGETCURRENTREADDRAWABLESGIPROC glad_glXGetCurrentReadDrawableSGI = NULL;
PFNGLXSWAPINTERVALSGIPROC glad_glXSwapIntervalSGI; PFNGLXSWAPINTERVALSGIPROC glad_glXSwapIntervalSGI = NULL;
PFNGLXGETVIDEOSYNCSGIPROC glad_glXGetVideoSyncSGI; PFNGLXGETVIDEOSYNCSGIPROC glad_glXGetVideoSyncSGI = NULL;
PFNGLXWAITVIDEOSYNCSGIPROC glad_glXWaitVideoSyncSGI; PFNGLXWAITVIDEOSYNCSGIPROC glad_glXWaitVideoSyncSGI = NULL;
PFNGLXGETTRANSPARENTINDEXSUNPROC glad_glXGetTransparentIndexSUN; PFNGLXGETTRANSPARENTINDEXSUNPROC glad_glXGetTransparentIndexSUN = NULL;
static void load_GLX_VERSION_1_0(GLADloadproc load) { static void load_GLX_VERSION_1_0(GLADloadproc load) {
if(!GLAD_GLX_VERSION_1_0) return; if(!GLAD_GLX_VERSION_1_0) return;
glad_glXChooseVisual = (PFNGLXCHOOSEVISUALPROC)load("glXChooseVisual"); glad_glXChooseVisual = (PFNGLXCHOOSEVISUALPROC)load("glXChooseVisual");
@ -555,6 +589,11 @@ static void load_GLX_MESA_set_3dfx_mode(GLADloadproc load) {
if(!GLAD_GLX_MESA_set_3dfx_mode) return; if(!GLAD_GLX_MESA_set_3dfx_mode) return;
glad_glXSet3DfxModeMESA = (PFNGLXSET3DFXMODEMESAPROC)load("glXSet3DfxModeMESA"); glad_glXSet3DfxModeMESA = (PFNGLXSET3DFXMODEMESAPROC)load("glXSet3DfxModeMESA");
} }
static void load_GLX_MESA_swap_control(GLADloadproc load) {
if(!GLAD_GLX_MESA_swap_control) return;
glad_glXGetSwapIntervalMESA = (PFNGLXGETSWAPINTERVALMESAPROC)load("glXGetSwapIntervalMESA");
glad_glXSwapIntervalMESA = (PFNGLXSWAPINTERVALMESAPROC)load("glXSwapIntervalMESA");
}
static void load_GLX_NV_copy_buffer(GLADloadproc load) { static void load_GLX_NV_copy_buffer(GLADloadproc load) {
if(!GLAD_GLX_NV_copy_buffer) return; if(!GLAD_GLX_NV_copy_buffer) return;
glad_glXCopyBufferSubDataNV = (PFNGLXCOPYBUFFERSUBDATANVPROC)load("glXCopyBufferSubDataNV"); glad_glXCopyBufferSubDataNV = (PFNGLXCOPYBUFFERSUBDATANVPROC)load("glXCopyBufferSubDataNV");
@ -697,6 +736,7 @@ static int find_extensionsGLX(void) {
GLAD_GLX_AMD_gpu_association = has_ext("GLX_AMD_gpu_association"); GLAD_GLX_AMD_gpu_association = has_ext("GLX_AMD_gpu_association");
GLAD_GLX_ARB_context_flush_control = has_ext("GLX_ARB_context_flush_control"); GLAD_GLX_ARB_context_flush_control = has_ext("GLX_ARB_context_flush_control");
GLAD_GLX_ARB_create_context = has_ext("GLX_ARB_create_context"); GLAD_GLX_ARB_create_context = has_ext("GLX_ARB_create_context");
GLAD_GLX_ARB_create_context_no_error = has_ext("GLX_ARB_create_context_no_error");
GLAD_GLX_ARB_create_context_profile = has_ext("GLX_ARB_create_context_profile"); GLAD_GLX_ARB_create_context_profile = has_ext("GLX_ARB_create_context_profile");
GLAD_GLX_ARB_create_context_robustness = has_ext("GLX_ARB_create_context_robustness"); GLAD_GLX_ARB_create_context_robustness = has_ext("GLX_ARB_create_context_robustness");
GLAD_GLX_ARB_fbconfig_float = has_ext("GLX_ARB_fbconfig_float"); GLAD_GLX_ARB_fbconfig_float = has_ext("GLX_ARB_fbconfig_float");
@ -707,12 +747,14 @@ static int find_extensionsGLX(void) {
GLAD_GLX_ARB_robustness_share_group_isolation = has_ext("GLX_ARB_robustness_share_group_isolation"); GLAD_GLX_ARB_robustness_share_group_isolation = has_ext("GLX_ARB_robustness_share_group_isolation");
GLAD_GLX_ARB_vertex_buffer_object = has_ext("GLX_ARB_vertex_buffer_object"); GLAD_GLX_ARB_vertex_buffer_object = has_ext("GLX_ARB_vertex_buffer_object");
GLAD_GLX_EXT_buffer_age = has_ext("GLX_EXT_buffer_age"); GLAD_GLX_EXT_buffer_age = has_ext("GLX_EXT_buffer_age");
GLAD_GLX_EXT_context_priority = has_ext("GLX_EXT_context_priority");
GLAD_GLX_EXT_create_context_es2_profile = has_ext("GLX_EXT_create_context_es2_profile"); GLAD_GLX_EXT_create_context_es2_profile = has_ext("GLX_EXT_create_context_es2_profile");
GLAD_GLX_EXT_create_context_es_profile = has_ext("GLX_EXT_create_context_es_profile"); GLAD_GLX_EXT_create_context_es_profile = has_ext("GLX_EXT_create_context_es_profile");
GLAD_GLX_EXT_fbconfig_packed_float = has_ext("GLX_EXT_fbconfig_packed_float"); GLAD_GLX_EXT_fbconfig_packed_float = has_ext("GLX_EXT_fbconfig_packed_float");
GLAD_GLX_EXT_framebuffer_sRGB = has_ext("GLX_EXT_framebuffer_sRGB"); GLAD_GLX_EXT_framebuffer_sRGB = has_ext("GLX_EXT_framebuffer_sRGB");
GLAD_GLX_EXT_import_context = has_ext("GLX_EXT_import_context"); GLAD_GLX_EXT_import_context = has_ext("GLX_EXT_import_context");
GLAD_GLX_EXT_libglvnd = has_ext("GLX_EXT_libglvnd"); GLAD_GLX_EXT_libglvnd = has_ext("GLX_EXT_libglvnd");
GLAD_GLX_EXT_no_config_context = has_ext("GLX_EXT_no_config_context");
GLAD_GLX_EXT_stereo_tree = has_ext("GLX_EXT_stereo_tree"); GLAD_GLX_EXT_stereo_tree = has_ext("GLX_EXT_stereo_tree");
GLAD_GLX_EXT_swap_control = has_ext("GLX_EXT_swap_control"); GLAD_GLX_EXT_swap_control = has_ext("GLX_EXT_swap_control");
GLAD_GLX_EXT_swap_control_tear = has_ext("GLX_EXT_swap_control_tear"); GLAD_GLX_EXT_swap_control_tear = has_ext("GLX_EXT_swap_control_tear");
@ -726,6 +768,7 @@ static int find_extensionsGLX(void) {
GLAD_GLX_MESA_query_renderer = has_ext("GLX_MESA_query_renderer"); GLAD_GLX_MESA_query_renderer = has_ext("GLX_MESA_query_renderer");
GLAD_GLX_MESA_release_buffers = has_ext("GLX_MESA_release_buffers"); GLAD_GLX_MESA_release_buffers = has_ext("GLX_MESA_release_buffers");
GLAD_GLX_MESA_set_3dfx_mode = has_ext("GLX_MESA_set_3dfx_mode"); GLAD_GLX_MESA_set_3dfx_mode = has_ext("GLX_MESA_set_3dfx_mode");
GLAD_GLX_MESA_swap_control = has_ext("GLX_MESA_swap_control");
GLAD_GLX_NV_copy_buffer = has_ext("GLX_NV_copy_buffer"); GLAD_GLX_NV_copy_buffer = has_ext("GLX_NV_copy_buffer");
GLAD_GLX_NV_copy_image = has_ext("GLX_NV_copy_image"); GLAD_GLX_NV_copy_image = has_ext("GLX_NV_copy_image");
GLAD_GLX_NV_delay_before_swap = has_ext("GLX_NV_delay_before_swap"); GLAD_GLX_NV_delay_before_swap = has_ext("GLX_NV_delay_before_swap");
@ -801,6 +844,7 @@ int gladLoadGLXLoader(GLADloadproc load, Display *dpy, int screen) {
load_GLX_MESA_query_renderer(load); load_GLX_MESA_query_renderer(load);
load_GLX_MESA_release_buffers(load); load_GLX_MESA_release_buffers(load);
load_GLX_MESA_set_3dfx_mode(load); load_GLX_MESA_set_3dfx_mode(load);
load_GLX_MESA_swap_control(load);
load_GLX_NV_copy_buffer(load); load_GLX_NV_copy_buffer(load);
load_GLX_NV_copy_image(load); load_GLX_NV_copy_image(load);
load_GLX_NV_delay_before_swap(load); load_GLX_NV_delay_before_swap(load);

View file

@ -1,6 +1,6 @@
/* /*
WGL loader generated by glad 0.1.12a0 on Mon Sep 12 03:11:07 2016. WGL loader generated by glad 0.1.33 on Sun Aug 18 11:27:10 2019.
Language/Generator: C/C++ Language/Generator: C/C++
Specification: wgl Specification: wgl
@ -13,6 +13,7 @@
WGL_ARB_buffer_region, WGL_ARB_buffer_region,
WGL_ARB_context_flush_control, WGL_ARB_context_flush_control,
WGL_ARB_create_context, WGL_ARB_create_context,
WGL_ARB_create_context_no_error,
WGL_ARB_create_context_profile, WGL_ARB_create_context_profile,
WGL_ARB_create_context_robustness, WGL_ARB_create_context_robustness,
WGL_ARB_extensions_string, WGL_ARB_extensions_string,
@ -26,6 +27,8 @@
WGL_ARB_robustness_application_isolation, WGL_ARB_robustness_application_isolation,
WGL_ARB_robustness_share_group_isolation, WGL_ARB_robustness_share_group_isolation,
WGL_ATI_pixel_format_float, WGL_ATI_pixel_format_float,
WGL_ATI_render_texture_rectangle,
WGL_EXT_colorspace,
WGL_EXT_create_context_es2_profile, WGL_EXT_create_context_es2_profile,
WGL_EXT_create_context_es_profile, WGL_EXT_create_context_es_profile,
WGL_EXT_depth_float, WGL_EXT_depth_float,
@ -51,6 +54,7 @@
WGL_NV_delay_before_swap, WGL_NV_delay_before_swap,
WGL_NV_float_buffer, WGL_NV_float_buffer,
WGL_NV_gpu_affinity, WGL_NV_gpu_affinity,
WGL_NV_multigpu_context,
WGL_NV_multisample_coverage, WGL_NV_multisample_coverage,
WGL_NV_present_video, WGL_NV_present_video,
WGL_NV_render_depth_texture, WGL_NV_render_depth_texture,
@ -63,11 +67,12 @@
Loader: True Loader: True
Local files: False Local files: False
Omit khrplatform: False Omit khrplatform: False
Reproducible: False
Commandline: Commandline:
--api="wgl=1.0" --generator="c" --spec="wgl" --extensions="WGL_3DFX_multisample,WGL_3DL_stereo_control,WGL_AMD_gpu_association,WGL_ARB_buffer_region,WGL_ARB_context_flush_control,WGL_ARB_create_context,WGL_ARB_create_context_profile,WGL_ARB_create_context_robustness,WGL_ARB_extensions_string,WGL_ARB_framebuffer_sRGB,WGL_ARB_make_current_read,WGL_ARB_multisample,WGL_ARB_pbuffer,WGL_ARB_pixel_format,WGL_ARB_pixel_format_float,WGL_ARB_render_texture,WGL_ARB_robustness_application_isolation,WGL_ARB_robustness_share_group_isolation,WGL_ATI_pixel_format_float,WGL_EXT_create_context_es2_profile,WGL_EXT_create_context_es_profile,WGL_EXT_depth_float,WGL_EXT_display_color_table,WGL_EXT_extensions_string,WGL_EXT_framebuffer_sRGB,WGL_EXT_make_current_read,WGL_EXT_multisample,WGL_EXT_pbuffer,WGL_EXT_pixel_format,WGL_EXT_pixel_format_packed_float,WGL_EXT_swap_control,WGL_EXT_swap_control_tear,WGL_I3D_digital_video_control,WGL_I3D_gamma,WGL_I3D_genlock,WGL_I3D_image_buffer,WGL_I3D_swap_frame_lock,WGL_I3D_swap_frame_usage,WGL_NV_DX_interop,WGL_NV_DX_interop2,WGL_NV_copy_image,WGL_NV_delay_before_swap,WGL_NV_float_buffer,WGL_NV_gpu_affinity,WGL_NV_multisample_coverage,WGL_NV_present_video,WGL_NV_render_depth_texture,WGL_NV_render_texture_rectangle,WGL_NV_swap_group,WGL_NV_vertex_array_range,WGL_NV_video_capture,WGL_NV_video_output,WGL_OML_sync_control" --api="wgl=1.0" --generator="c" --spec="wgl" --extensions="WGL_3DFX_multisample,WGL_3DL_stereo_control,WGL_AMD_gpu_association,WGL_ARB_buffer_region,WGL_ARB_context_flush_control,WGL_ARB_create_context,WGL_ARB_create_context_no_error,WGL_ARB_create_context_profile,WGL_ARB_create_context_robustness,WGL_ARB_extensions_string,WGL_ARB_framebuffer_sRGB,WGL_ARB_make_current_read,WGL_ARB_multisample,WGL_ARB_pbuffer,WGL_ARB_pixel_format,WGL_ARB_pixel_format_float,WGL_ARB_render_texture,WGL_ARB_robustness_application_isolation,WGL_ARB_robustness_share_group_isolation,WGL_ATI_pixel_format_float,WGL_ATI_render_texture_rectangle,WGL_EXT_colorspace,WGL_EXT_create_context_es2_profile,WGL_EXT_create_context_es_profile,WGL_EXT_depth_float,WGL_EXT_display_color_table,WGL_EXT_extensions_string,WGL_EXT_framebuffer_sRGB,WGL_EXT_make_current_read,WGL_EXT_multisample,WGL_EXT_pbuffer,WGL_EXT_pixel_format,WGL_EXT_pixel_format_packed_float,WGL_EXT_swap_control,WGL_EXT_swap_control_tear,WGL_I3D_digital_video_control,WGL_I3D_gamma,WGL_I3D_genlock,WGL_I3D_image_buffer,WGL_I3D_swap_frame_lock,WGL_I3D_swap_frame_usage,WGL_NV_DX_interop,WGL_NV_DX_interop2,WGL_NV_copy_image,WGL_NV_delay_before_swap,WGL_NV_float_buffer,WGL_NV_gpu_affinity,WGL_NV_multigpu_context,WGL_NV_multisample_coverage,WGL_NV_present_video,WGL_NV_render_depth_texture,WGL_NV_render_texture_rectangle,WGL_NV_swap_group,WGL_NV_vertex_array_range,WGL_NV_video_capture,WGL_NV_video_output,WGL_OML_sync_control"
Online: Online:
http://glad.dav1d.de/#language=c&specification=wgl&loader=on&api=wgl%3D1.0&extensions=WGL_3DFX_multisample&extensions=WGL_3DL_stereo_control&extensions=WGL_AMD_gpu_association&extensions=WGL_ARB_buffer_region&extensions=WGL_ARB_context_flush_control&extensions=WGL_ARB_create_context&extensions=WGL_ARB_create_context_profile&extensions=WGL_ARB_create_context_robustness&extensions=WGL_ARB_extensions_string&extensions=WGL_ARB_framebuffer_sRGB&extensions=WGL_ARB_make_current_read&extensions=WGL_ARB_multisample&extensions=WGL_ARB_pbuffer&extensions=WGL_ARB_pixel_format&extensions=WGL_ARB_pixel_format_float&extensions=WGL_ARB_render_texture&extensions=WGL_ARB_robustness_application_isolation&extensions=WGL_ARB_robustness_share_group_isolation&extensions=WGL_ATI_pixel_format_float&extensions=WGL_EXT_create_context_es2_profile&extensions=WGL_EXT_create_context_es_profile&extensions=WGL_EXT_depth_float&extensions=WGL_EXT_display_color_table&extensions=WGL_EXT_extensions_string&extensions=WGL_EXT_framebuffer_sRGB&extensions=WGL_EXT_make_current_read&extensions=WGL_EXT_multisample&extensions=WGL_EXT_pbuffer&extensions=WGL_EXT_pixel_format&extensions=WGL_EXT_pixel_format_packed_float&extensions=WGL_EXT_swap_control&extensions=WGL_EXT_swap_control_tear&extensions=WGL_I3D_digital_video_control&extensions=WGL_I3D_gamma&extensions=WGL_I3D_genlock&extensions=WGL_I3D_image_buffer&extensions=WGL_I3D_swap_frame_lock&extensions=WGL_I3D_swap_frame_usage&extensions=WGL_NV_DX_interop&extensions=WGL_NV_DX_interop2&extensions=WGL_NV_copy_image&extensions=WGL_NV_delay_before_swap&extensions=WGL_NV_float_buffer&extensions=WGL_NV_gpu_affinity&extensions=WGL_NV_multisample_coverage&extensions=WGL_NV_present_video&extensions=WGL_NV_render_depth_texture&extensions=WGL_NV_render_texture_rectangle&extensions=WGL_NV_swap_group&extensions=WGL_NV_vertex_array_range&extensions=WGL_NV_video_capture&extensions=WGL_NV_video_output&extensions=WGL_OML_sync_control Too many extensions
*/ */
#include <stdio.h> #include <stdio.h>
@ -77,21 +82,44 @@
static void* get_proc(const char *namez); static void* get_proc(const char *namez);
#ifdef _WIN32 #if defined(_WIN32) || defined(__CYGWIN__)
#ifndef _WINDOWS_
#undef APIENTRY
#endif
#include <windows.h> #include <windows.h>
static HMODULE libGL; static HMODULE libGL;
typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*); typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*);
PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
#ifdef _MSC_VER
#ifdef __has_include
#if __has_include(<winapifamily.h>)
#define HAVE_WINAPIFAMILY 1
#endif
#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
#define HAVE_WINAPIFAMILY 1
#endif
#endif
#ifdef HAVE_WINAPIFAMILY
#include <winapifamily.h>
#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
#define IS_UWP 1
#endif
#endif
static static
int open_gl(void) { int open_gl(void) {
#ifndef IS_UWP
libGL = LoadLibraryW(L"opengl32.dll"); libGL = LoadLibraryW(L"opengl32.dll");
if(libGL != NULL) { if(libGL != NULL) {
gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE)GetProcAddress( void (* tmp)(void);
libGL, "wglGetProcAddress"); tmp = (void(*)(void)) GetProcAddress(libGL, "wglGetProcAddress");
gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE) tmp;
return gladGetProcAddressPtr != NULL; return gladGetProcAddressPtr != NULL;
} }
#endif
return 0; return 0;
} }
@ -99,7 +127,7 @@ int open_gl(void) {
static static
void close_gl(void) { void close_gl(void) {
if(libGL != NULL) { if(libGL != NULL) {
FreeLibrary(libGL); FreeLibrary((HMODULE) libGL);
libGL = NULL; libGL = NULL;
} }
} }
@ -107,9 +135,9 @@ void close_gl(void) {
#include <dlfcn.h> #include <dlfcn.h>
static void* libGL; static void* libGL;
#ifndef __APPLE__ #if !defined(__APPLE__) && !defined(__HAIKU__)
typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*); typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*);
PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; static PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
#endif #endif
static static
@ -130,7 +158,7 @@ int open_gl(void) {
libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL); libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL);
if(libGL != NULL) { if(libGL != NULL) {
#ifdef __APPLE__ #if defined(__APPLE__) || defined(__HAIKU__)
return 1; return 1;
#else #else
gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL, gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL,
@ -144,7 +172,7 @@ int open_gl(void) {
} }
static static
void close_gl() { void close_gl(void) {
if(libGL != NULL) { if(libGL != NULL) {
dlclose(libGL); dlclose(libGL);
libGL = NULL; libGL = NULL;
@ -157,14 +185,14 @@ void* get_proc(const char *namez) {
void* result = NULL; void* result = NULL;
if(libGL == NULL) return NULL; if(libGL == NULL) return NULL;
#ifndef __APPLE__ #if !defined(__APPLE__) && !defined(__HAIKU__)
if(gladGetProcAddressPtr != NULL) { if(gladGetProcAddressPtr != NULL) {
result = gladGetProcAddressPtr(namez); result = gladGetProcAddressPtr(namez);
} }
#endif #endif
if(result == NULL) { if(result == NULL) {
#ifdef _WIN32 #if defined(_WIN32) || defined(__CYGWIN__)
result = (void*)GetProcAddress(libGL, namez); result = (void*)GetProcAddress((HMODULE) libGL, namez);
#else #else
result = dlsym(libGL, namez); result = dlsym(libGL, namez);
#endif #endif
@ -226,179 +254,183 @@ static int has_ext(const char *ext) {
return 0; return 0;
} }
int GLAD_WGL_VERSION_1_0; int GLAD_WGL_VERSION_1_0 = 0;
int GLAD_WGL_NV_multisample_coverage; int GLAD_WGL_3DFX_multisample = 0;
int GLAD_WGL_I3D_image_buffer; int GLAD_WGL_3DL_stereo_control = 0;
int GLAD_WGL_I3D_swap_frame_usage; int GLAD_WGL_AMD_gpu_association = 0;
int GLAD_WGL_NV_DX_interop2; int GLAD_WGL_ARB_buffer_region = 0;
int GLAD_WGL_OML_sync_control; int GLAD_WGL_ARB_context_flush_control = 0;
int GLAD_WGL_NV_float_buffer; int GLAD_WGL_ARB_create_context = 0;
int GLAD_WGL_NV_delay_before_swap; int GLAD_WGL_ARB_create_context_no_error = 0;
int GLAD_WGL_NV_video_capture; int GLAD_WGL_ARB_create_context_profile = 0;
int GLAD_WGL_ARB_pixel_format_float; int GLAD_WGL_ARB_create_context_robustness = 0;
int GLAD_WGL_ARB_create_context_profile; int GLAD_WGL_ARB_extensions_string = 0;
int GLAD_WGL_NV_swap_group; int GLAD_WGL_ARB_framebuffer_sRGB = 0;
int GLAD_WGL_NV_gpu_affinity; int GLAD_WGL_ARB_make_current_read = 0;
int GLAD_WGL_EXT_pixel_format; int GLAD_WGL_ARB_multisample = 0;
int GLAD_WGL_ARB_extensions_string; int GLAD_WGL_ARB_pbuffer = 0;
int GLAD_WGL_NV_render_texture_rectangle; int GLAD_WGL_ARB_pixel_format = 0;
int GLAD_WGL_EXT_create_context_es_profile; int GLAD_WGL_ARB_pixel_format_float = 0;
int GLAD_WGL_ARB_robustness_share_group_isolation; int GLAD_WGL_ARB_render_texture = 0;
int GLAD_WGL_ARB_create_context_robustness; int GLAD_WGL_ARB_robustness_application_isolation = 0;
int GLAD_WGL_EXT_depth_float; int GLAD_WGL_ARB_robustness_share_group_isolation = 0;
int GLAD_WGL_EXT_swap_control_tear; int GLAD_WGL_ATI_pixel_format_float = 0;
int GLAD_WGL_ARB_context_flush_control; int GLAD_WGL_ATI_render_texture_rectangle = 0;
int GLAD_WGL_ARB_pixel_format; int GLAD_WGL_EXT_colorspace = 0;
int GLAD_WGL_ARB_multisample; int GLAD_WGL_EXT_create_context_es2_profile = 0;
int GLAD_WGL_I3D_genlock; int GLAD_WGL_EXT_create_context_es_profile = 0;
int GLAD_WGL_NV_vertex_array_range; int GLAD_WGL_EXT_depth_float = 0;
int GLAD_WGL_3DL_stereo_control; int GLAD_WGL_EXT_display_color_table = 0;
int GLAD_WGL_EXT_pbuffer; int GLAD_WGL_EXT_extensions_string = 0;
int GLAD_WGL_EXT_display_color_table; int GLAD_WGL_EXT_framebuffer_sRGB = 0;
int GLAD_WGL_NV_video_output; int GLAD_WGL_EXT_make_current_read = 0;
int GLAD_WGL_ARB_robustness_application_isolation; int GLAD_WGL_EXT_multisample = 0;
int GLAD_WGL_3DFX_multisample; int GLAD_WGL_EXT_pbuffer = 0;
int GLAD_WGL_I3D_gamma; int GLAD_WGL_EXT_pixel_format = 0;
int GLAD_WGL_ARB_framebuffer_sRGB; int GLAD_WGL_EXT_pixel_format_packed_float = 0;
int GLAD_WGL_NV_copy_image; int GLAD_WGL_EXT_swap_control = 0;
int GLAD_WGL_EXT_framebuffer_sRGB; int GLAD_WGL_EXT_swap_control_tear = 0;
int GLAD_WGL_NV_present_video; int GLAD_WGL_I3D_digital_video_control = 0;
int GLAD_WGL_EXT_create_context_es2_profile; int GLAD_WGL_I3D_gamma = 0;
int GLAD_WGL_ARB_render_texture; int GLAD_WGL_I3D_genlock = 0;
int GLAD_WGL_ARB_make_current_read; int GLAD_WGL_I3D_image_buffer = 0;
int GLAD_WGL_EXT_multisample; int GLAD_WGL_I3D_swap_frame_lock = 0;
int GLAD_WGL_ARB_create_context; int GLAD_WGL_I3D_swap_frame_usage = 0;
int GLAD_WGL_EXT_extensions_string; int GLAD_WGL_NV_DX_interop = 0;
int GLAD_WGL_NV_render_depth_texture; int GLAD_WGL_NV_DX_interop2 = 0;
int GLAD_WGL_ATI_pixel_format_float; int GLAD_WGL_NV_copy_image = 0;
int GLAD_WGL_EXT_swap_control; int GLAD_WGL_NV_delay_before_swap = 0;
int GLAD_WGL_I3D_digital_video_control; int GLAD_WGL_NV_float_buffer = 0;
int GLAD_WGL_ARB_pbuffer; int GLAD_WGL_NV_gpu_affinity = 0;
int GLAD_WGL_NV_DX_interop; int GLAD_WGL_NV_multigpu_context = 0;
int GLAD_WGL_AMD_gpu_association; int GLAD_WGL_NV_multisample_coverage = 0;
int GLAD_WGL_EXT_pixel_format_packed_float; int GLAD_WGL_NV_present_video = 0;
int GLAD_WGL_EXT_make_current_read; int GLAD_WGL_NV_render_depth_texture = 0;
int GLAD_WGL_I3D_swap_frame_lock; int GLAD_WGL_NV_render_texture_rectangle = 0;
int GLAD_WGL_ARB_buffer_region; int GLAD_WGL_NV_swap_group = 0;
PFNWGLSETSTEREOEMITTERSTATE3DLPROC glad_wglSetStereoEmitterState3DL; int GLAD_WGL_NV_vertex_array_range = 0;
PFNWGLGETGPUIDSAMDPROC glad_wglGetGPUIDsAMD; int GLAD_WGL_NV_video_capture = 0;
PFNWGLGETGPUINFOAMDPROC glad_wglGetGPUInfoAMD; int GLAD_WGL_NV_video_output = 0;
PFNWGLGETCONTEXTGPUIDAMDPROC glad_wglGetContextGPUIDAMD; int GLAD_WGL_OML_sync_control = 0;
PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC glad_wglCreateAssociatedContextAMD; PFNWGLSETSTEREOEMITTERSTATE3DLPROC glad_wglSetStereoEmitterState3DL = NULL;
PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC glad_wglCreateAssociatedContextAttribsAMD; PFNWGLGETGPUIDSAMDPROC glad_wglGetGPUIDsAMD = NULL;
PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC glad_wglDeleteAssociatedContextAMD; PFNWGLGETGPUINFOAMDPROC glad_wglGetGPUInfoAMD = NULL;
PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_wglMakeAssociatedContextCurrentAMD; PFNWGLGETCONTEXTGPUIDAMDPROC glad_wglGetContextGPUIDAMD = NULL;
PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_wglGetCurrentAssociatedContextAMD; PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC glad_wglCreateAssociatedContextAMD = NULL;
PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC glad_wglBlitContextFramebufferAMD; PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC glad_wglCreateAssociatedContextAttribsAMD = NULL;
PFNWGLCREATEBUFFERREGIONARBPROC glad_wglCreateBufferRegionARB; PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC glad_wglDeleteAssociatedContextAMD = NULL;
PFNWGLDELETEBUFFERREGIONARBPROC glad_wglDeleteBufferRegionARB; PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_wglMakeAssociatedContextCurrentAMD = NULL;
PFNWGLSAVEBUFFERREGIONARBPROC glad_wglSaveBufferRegionARB; PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_wglGetCurrentAssociatedContextAMD = NULL;
PFNWGLRESTOREBUFFERREGIONARBPROC glad_wglRestoreBufferRegionARB; PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC glad_wglBlitContextFramebufferAMD = NULL;
PFNWGLCREATECONTEXTATTRIBSARBPROC glad_wglCreateContextAttribsARB; PFNWGLCREATEBUFFERREGIONARBPROC glad_wglCreateBufferRegionARB = NULL;
PFNWGLGETEXTENSIONSSTRINGARBPROC glad_wglGetExtensionsStringARB; PFNWGLDELETEBUFFERREGIONARBPROC glad_wglDeleteBufferRegionARB = NULL;
PFNWGLMAKECONTEXTCURRENTARBPROC glad_wglMakeContextCurrentARB; PFNWGLSAVEBUFFERREGIONARBPROC glad_wglSaveBufferRegionARB = NULL;
PFNWGLGETCURRENTREADDCARBPROC glad_wglGetCurrentReadDCARB; PFNWGLRESTOREBUFFERREGIONARBPROC glad_wglRestoreBufferRegionARB = NULL;
PFNWGLCREATEPBUFFERARBPROC glad_wglCreatePbufferARB; PFNWGLCREATECONTEXTATTRIBSARBPROC glad_wglCreateContextAttribsARB = NULL;
PFNWGLGETPBUFFERDCARBPROC glad_wglGetPbufferDCARB; PFNWGLGETEXTENSIONSSTRINGARBPROC glad_wglGetExtensionsStringARB = NULL;
PFNWGLRELEASEPBUFFERDCARBPROC glad_wglReleasePbufferDCARB; PFNWGLMAKECONTEXTCURRENTARBPROC glad_wglMakeContextCurrentARB = NULL;
PFNWGLDESTROYPBUFFERARBPROC glad_wglDestroyPbufferARB; PFNWGLGETCURRENTREADDCARBPROC glad_wglGetCurrentReadDCARB = NULL;
PFNWGLQUERYPBUFFERARBPROC glad_wglQueryPbufferARB; PFNWGLCREATEPBUFFERARBPROC glad_wglCreatePbufferARB = NULL;
PFNWGLGETPIXELFORMATATTRIBIVARBPROC glad_wglGetPixelFormatAttribivARB; PFNWGLGETPBUFFERDCARBPROC glad_wglGetPbufferDCARB = NULL;
PFNWGLGETPIXELFORMATATTRIBFVARBPROC glad_wglGetPixelFormatAttribfvARB; PFNWGLRELEASEPBUFFERDCARBPROC glad_wglReleasePbufferDCARB = NULL;
PFNWGLCHOOSEPIXELFORMATARBPROC glad_wglChoosePixelFormatARB; PFNWGLDESTROYPBUFFERARBPROC glad_wglDestroyPbufferARB = NULL;
PFNWGLBINDTEXIMAGEARBPROC glad_wglBindTexImageARB; PFNWGLQUERYPBUFFERARBPROC glad_wglQueryPbufferARB = NULL;
PFNWGLRELEASETEXIMAGEARBPROC glad_wglReleaseTexImageARB; PFNWGLGETPIXELFORMATATTRIBIVARBPROC glad_wglGetPixelFormatAttribivARB = NULL;
PFNWGLSETPBUFFERATTRIBARBPROC glad_wglSetPbufferAttribARB; PFNWGLGETPIXELFORMATATTRIBFVARBPROC glad_wglGetPixelFormatAttribfvARB = NULL;
PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC glad_wglCreateDisplayColorTableEXT; PFNWGLCHOOSEPIXELFORMATARBPROC glad_wglChoosePixelFormatARB = NULL;
PFNWGLLOADDISPLAYCOLORTABLEEXTPROC glad_wglLoadDisplayColorTableEXT; PFNWGLBINDTEXIMAGEARBPROC glad_wglBindTexImageARB = NULL;
PFNWGLBINDDISPLAYCOLORTABLEEXTPROC glad_wglBindDisplayColorTableEXT; PFNWGLRELEASETEXIMAGEARBPROC glad_wglReleaseTexImageARB = NULL;
PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC glad_wglDestroyDisplayColorTableEXT; PFNWGLSETPBUFFERATTRIBARBPROC glad_wglSetPbufferAttribARB = NULL;
PFNWGLGETEXTENSIONSSTRINGEXTPROC glad_wglGetExtensionsStringEXT; PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC glad_wglCreateDisplayColorTableEXT = NULL;
PFNWGLMAKECONTEXTCURRENTEXTPROC glad_wglMakeContextCurrentEXT; PFNWGLLOADDISPLAYCOLORTABLEEXTPROC glad_wglLoadDisplayColorTableEXT = NULL;
PFNWGLGETCURRENTREADDCEXTPROC glad_wglGetCurrentReadDCEXT; PFNWGLBINDDISPLAYCOLORTABLEEXTPROC glad_wglBindDisplayColorTableEXT = NULL;
PFNWGLCREATEPBUFFEREXTPROC glad_wglCreatePbufferEXT; PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC glad_wglDestroyDisplayColorTableEXT = NULL;
PFNWGLGETPBUFFERDCEXTPROC glad_wglGetPbufferDCEXT; PFNWGLGETEXTENSIONSSTRINGEXTPROC glad_wglGetExtensionsStringEXT = NULL;
PFNWGLRELEASEPBUFFERDCEXTPROC glad_wglReleasePbufferDCEXT; PFNWGLMAKECONTEXTCURRENTEXTPROC glad_wglMakeContextCurrentEXT = NULL;
PFNWGLDESTROYPBUFFEREXTPROC glad_wglDestroyPbufferEXT; PFNWGLGETCURRENTREADDCEXTPROC glad_wglGetCurrentReadDCEXT = NULL;
PFNWGLQUERYPBUFFEREXTPROC glad_wglQueryPbufferEXT; PFNWGLCREATEPBUFFEREXTPROC glad_wglCreatePbufferEXT = NULL;
PFNWGLGETPIXELFORMATATTRIBIVEXTPROC glad_wglGetPixelFormatAttribivEXT; PFNWGLGETPBUFFERDCEXTPROC glad_wglGetPbufferDCEXT = NULL;
PFNWGLGETPIXELFORMATATTRIBFVEXTPROC glad_wglGetPixelFormatAttribfvEXT; PFNWGLRELEASEPBUFFERDCEXTPROC glad_wglReleasePbufferDCEXT = NULL;
PFNWGLCHOOSEPIXELFORMATEXTPROC glad_wglChoosePixelFormatEXT; PFNWGLDESTROYPBUFFEREXTPROC glad_wglDestroyPbufferEXT = NULL;
PFNWGLSWAPINTERVALEXTPROC glad_wglSwapIntervalEXT; PFNWGLQUERYPBUFFEREXTPROC glad_wglQueryPbufferEXT = NULL;
PFNWGLGETSWAPINTERVALEXTPROC glad_wglGetSwapIntervalEXT; PFNWGLGETPIXELFORMATATTRIBIVEXTPROC glad_wglGetPixelFormatAttribivEXT = NULL;
PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC glad_wglGetDigitalVideoParametersI3D; PFNWGLGETPIXELFORMATATTRIBFVEXTPROC glad_wglGetPixelFormatAttribfvEXT = NULL;
PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC glad_wglSetDigitalVideoParametersI3D; PFNWGLCHOOSEPIXELFORMATEXTPROC glad_wglChoosePixelFormatEXT = NULL;
PFNWGLGETGAMMATABLEPARAMETERSI3DPROC glad_wglGetGammaTableParametersI3D; PFNWGLSWAPINTERVALEXTPROC glad_wglSwapIntervalEXT = NULL;
PFNWGLSETGAMMATABLEPARAMETERSI3DPROC glad_wglSetGammaTableParametersI3D; PFNWGLGETSWAPINTERVALEXTPROC glad_wglGetSwapIntervalEXT = NULL;
PFNWGLGETGAMMATABLEI3DPROC glad_wglGetGammaTableI3D; PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC glad_wglGetDigitalVideoParametersI3D = NULL;
PFNWGLSETGAMMATABLEI3DPROC glad_wglSetGammaTableI3D; PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC glad_wglSetDigitalVideoParametersI3D = NULL;
PFNWGLENABLEGENLOCKI3DPROC glad_wglEnableGenlockI3D; PFNWGLGETGAMMATABLEPARAMETERSI3DPROC glad_wglGetGammaTableParametersI3D = NULL;
PFNWGLDISABLEGENLOCKI3DPROC glad_wglDisableGenlockI3D; PFNWGLSETGAMMATABLEPARAMETERSI3DPROC glad_wglSetGammaTableParametersI3D = NULL;
PFNWGLISENABLEDGENLOCKI3DPROC glad_wglIsEnabledGenlockI3D; PFNWGLGETGAMMATABLEI3DPROC glad_wglGetGammaTableI3D = NULL;
PFNWGLGENLOCKSOURCEI3DPROC glad_wglGenlockSourceI3D; PFNWGLSETGAMMATABLEI3DPROC glad_wglSetGammaTableI3D = NULL;
PFNWGLGETGENLOCKSOURCEI3DPROC glad_wglGetGenlockSourceI3D; PFNWGLENABLEGENLOCKI3DPROC glad_wglEnableGenlockI3D = NULL;
PFNWGLGENLOCKSOURCEEDGEI3DPROC glad_wglGenlockSourceEdgeI3D; PFNWGLDISABLEGENLOCKI3DPROC glad_wglDisableGenlockI3D = NULL;
PFNWGLGETGENLOCKSOURCEEDGEI3DPROC glad_wglGetGenlockSourceEdgeI3D; PFNWGLISENABLEDGENLOCKI3DPROC glad_wglIsEnabledGenlockI3D = NULL;
PFNWGLGENLOCKSAMPLERATEI3DPROC glad_wglGenlockSampleRateI3D; PFNWGLGENLOCKSOURCEI3DPROC glad_wglGenlockSourceI3D = NULL;
PFNWGLGETGENLOCKSAMPLERATEI3DPROC glad_wglGetGenlockSampleRateI3D; PFNWGLGETGENLOCKSOURCEI3DPROC glad_wglGetGenlockSourceI3D = NULL;
PFNWGLGENLOCKSOURCEDELAYI3DPROC glad_wglGenlockSourceDelayI3D; PFNWGLGENLOCKSOURCEEDGEI3DPROC glad_wglGenlockSourceEdgeI3D = NULL;
PFNWGLGETGENLOCKSOURCEDELAYI3DPROC glad_wglGetGenlockSourceDelayI3D; PFNWGLGETGENLOCKSOURCEEDGEI3DPROC glad_wglGetGenlockSourceEdgeI3D = NULL;
PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC glad_wglQueryGenlockMaxSourceDelayI3D; PFNWGLGENLOCKSAMPLERATEI3DPROC glad_wglGenlockSampleRateI3D = NULL;
PFNWGLCREATEIMAGEBUFFERI3DPROC glad_wglCreateImageBufferI3D; PFNWGLGETGENLOCKSAMPLERATEI3DPROC glad_wglGetGenlockSampleRateI3D = NULL;
PFNWGLDESTROYIMAGEBUFFERI3DPROC glad_wglDestroyImageBufferI3D; PFNWGLGENLOCKSOURCEDELAYI3DPROC glad_wglGenlockSourceDelayI3D = NULL;
PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC glad_wglAssociateImageBufferEventsI3D; PFNWGLGETGENLOCKSOURCEDELAYI3DPROC glad_wglGetGenlockSourceDelayI3D = NULL;
PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC glad_wglReleaseImageBufferEventsI3D; PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC glad_wglQueryGenlockMaxSourceDelayI3D = NULL;
PFNWGLENABLEFRAMELOCKI3DPROC glad_wglEnableFrameLockI3D; PFNWGLCREATEIMAGEBUFFERI3DPROC glad_wglCreateImageBufferI3D = NULL;
PFNWGLDISABLEFRAMELOCKI3DPROC glad_wglDisableFrameLockI3D; PFNWGLDESTROYIMAGEBUFFERI3DPROC glad_wglDestroyImageBufferI3D = NULL;
PFNWGLISENABLEDFRAMELOCKI3DPROC glad_wglIsEnabledFrameLockI3D; PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC glad_wglAssociateImageBufferEventsI3D = NULL;
PFNWGLQUERYFRAMELOCKMASTERI3DPROC glad_wglQueryFrameLockMasterI3D; PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC glad_wglReleaseImageBufferEventsI3D = NULL;
PFNWGLGETFRAMEUSAGEI3DPROC glad_wglGetFrameUsageI3D; PFNWGLENABLEFRAMELOCKI3DPROC glad_wglEnableFrameLockI3D = NULL;
PFNWGLBEGINFRAMETRACKINGI3DPROC glad_wglBeginFrameTrackingI3D; PFNWGLDISABLEFRAMELOCKI3DPROC glad_wglDisableFrameLockI3D = NULL;
PFNWGLENDFRAMETRACKINGI3DPROC glad_wglEndFrameTrackingI3D; PFNWGLISENABLEDFRAMELOCKI3DPROC glad_wglIsEnabledFrameLockI3D = NULL;
PFNWGLQUERYFRAMETRACKINGI3DPROC glad_wglQueryFrameTrackingI3D; PFNWGLQUERYFRAMELOCKMASTERI3DPROC glad_wglQueryFrameLockMasterI3D = NULL;
PFNWGLDXSETRESOURCESHAREHANDLENVPROC glad_wglDXSetResourceShareHandleNV; PFNWGLGETFRAMEUSAGEI3DPROC glad_wglGetFrameUsageI3D = NULL;
PFNWGLDXOPENDEVICENVPROC glad_wglDXOpenDeviceNV; PFNWGLBEGINFRAMETRACKINGI3DPROC glad_wglBeginFrameTrackingI3D = NULL;
PFNWGLDXCLOSEDEVICENVPROC glad_wglDXCloseDeviceNV; PFNWGLENDFRAMETRACKINGI3DPROC glad_wglEndFrameTrackingI3D = NULL;
PFNWGLDXREGISTEROBJECTNVPROC glad_wglDXRegisterObjectNV; PFNWGLQUERYFRAMETRACKINGI3DPROC glad_wglQueryFrameTrackingI3D = NULL;
PFNWGLDXUNREGISTEROBJECTNVPROC glad_wglDXUnregisterObjectNV; PFNWGLDXSETRESOURCESHAREHANDLENVPROC glad_wglDXSetResourceShareHandleNV = NULL;
PFNWGLDXOBJECTACCESSNVPROC glad_wglDXObjectAccessNV; PFNWGLDXOPENDEVICENVPROC glad_wglDXOpenDeviceNV = NULL;
PFNWGLDXLOCKOBJECTSNVPROC glad_wglDXLockObjectsNV; PFNWGLDXCLOSEDEVICENVPROC glad_wglDXCloseDeviceNV = NULL;
PFNWGLDXUNLOCKOBJECTSNVPROC glad_wglDXUnlockObjectsNV; PFNWGLDXREGISTEROBJECTNVPROC glad_wglDXRegisterObjectNV = NULL;
PFNWGLCOPYIMAGESUBDATANVPROC glad_wglCopyImageSubDataNV; PFNWGLDXUNREGISTEROBJECTNVPROC glad_wglDXUnregisterObjectNV = NULL;
PFNWGLDELAYBEFORESWAPNVPROC glad_wglDelayBeforeSwapNV; PFNWGLDXOBJECTACCESSNVPROC glad_wglDXObjectAccessNV = NULL;
PFNWGLENUMGPUSNVPROC glad_wglEnumGpusNV; PFNWGLDXLOCKOBJECTSNVPROC glad_wglDXLockObjectsNV = NULL;
PFNWGLENUMGPUDEVICESNVPROC glad_wglEnumGpuDevicesNV; PFNWGLDXUNLOCKOBJECTSNVPROC glad_wglDXUnlockObjectsNV = NULL;
PFNWGLCREATEAFFINITYDCNVPROC glad_wglCreateAffinityDCNV; PFNWGLCOPYIMAGESUBDATANVPROC glad_wglCopyImageSubDataNV = NULL;
PFNWGLENUMGPUSFROMAFFINITYDCNVPROC glad_wglEnumGpusFromAffinityDCNV; PFNWGLDELAYBEFORESWAPNVPROC glad_wglDelayBeforeSwapNV = NULL;
PFNWGLDELETEDCNVPROC glad_wglDeleteDCNV; PFNWGLENUMGPUSNVPROC glad_wglEnumGpusNV = NULL;
PFNWGLENUMERATEVIDEODEVICESNVPROC glad_wglEnumerateVideoDevicesNV; PFNWGLENUMGPUDEVICESNVPROC glad_wglEnumGpuDevicesNV = NULL;
PFNWGLBINDVIDEODEVICENVPROC glad_wglBindVideoDeviceNV; PFNWGLCREATEAFFINITYDCNVPROC glad_wglCreateAffinityDCNV = NULL;
PFNWGLQUERYCURRENTCONTEXTNVPROC glad_wglQueryCurrentContextNV; PFNWGLENUMGPUSFROMAFFINITYDCNVPROC glad_wglEnumGpusFromAffinityDCNV = NULL;
PFNWGLJOINSWAPGROUPNVPROC glad_wglJoinSwapGroupNV; PFNWGLDELETEDCNVPROC glad_wglDeleteDCNV = NULL;
PFNWGLBINDSWAPBARRIERNVPROC glad_wglBindSwapBarrierNV; PFNWGLENUMERATEVIDEODEVICESNVPROC glad_wglEnumerateVideoDevicesNV = NULL;
PFNWGLQUERYSWAPGROUPNVPROC glad_wglQuerySwapGroupNV; PFNWGLBINDVIDEODEVICENVPROC glad_wglBindVideoDeviceNV = NULL;
PFNWGLQUERYMAXSWAPGROUPSNVPROC glad_wglQueryMaxSwapGroupsNV; PFNWGLQUERYCURRENTCONTEXTNVPROC glad_wglQueryCurrentContextNV = NULL;
PFNWGLQUERYFRAMECOUNTNVPROC glad_wglQueryFrameCountNV; PFNWGLJOINSWAPGROUPNVPROC glad_wglJoinSwapGroupNV = NULL;
PFNWGLRESETFRAMECOUNTNVPROC glad_wglResetFrameCountNV; PFNWGLBINDSWAPBARRIERNVPROC glad_wglBindSwapBarrierNV = NULL;
PFNWGLALLOCATEMEMORYNVPROC glad_wglAllocateMemoryNV; PFNWGLQUERYSWAPGROUPNVPROC glad_wglQuerySwapGroupNV = NULL;
PFNWGLFREEMEMORYNVPROC glad_wglFreeMemoryNV; PFNWGLQUERYMAXSWAPGROUPSNVPROC glad_wglQueryMaxSwapGroupsNV = NULL;
PFNWGLBINDVIDEOCAPTUREDEVICENVPROC glad_wglBindVideoCaptureDeviceNV; PFNWGLQUERYFRAMECOUNTNVPROC glad_wglQueryFrameCountNV = NULL;
PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC glad_wglEnumerateVideoCaptureDevicesNV; PFNWGLRESETFRAMECOUNTNVPROC glad_wglResetFrameCountNV = NULL;
PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC glad_wglLockVideoCaptureDeviceNV; PFNWGLALLOCATEMEMORYNVPROC glad_wglAllocateMemoryNV = NULL;
PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC glad_wglQueryVideoCaptureDeviceNV; PFNWGLFREEMEMORYNVPROC glad_wglFreeMemoryNV = NULL;
PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC glad_wglReleaseVideoCaptureDeviceNV; PFNWGLBINDVIDEOCAPTUREDEVICENVPROC glad_wglBindVideoCaptureDeviceNV = NULL;
PFNWGLGETVIDEODEVICENVPROC glad_wglGetVideoDeviceNV; PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC glad_wglEnumerateVideoCaptureDevicesNV = NULL;
PFNWGLRELEASEVIDEODEVICENVPROC glad_wglReleaseVideoDeviceNV; PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC glad_wglLockVideoCaptureDeviceNV = NULL;
PFNWGLBINDVIDEOIMAGENVPROC glad_wglBindVideoImageNV; PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC glad_wglQueryVideoCaptureDeviceNV = NULL;
PFNWGLRELEASEVIDEOIMAGENVPROC glad_wglReleaseVideoImageNV; PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC glad_wglReleaseVideoCaptureDeviceNV = NULL;
PFNWGLSENDPBUFFERTOVIDEONVPROC glad_wglSendPbufferToVideoNV; PFNWGLGETVIDEODEVICENVPROC glad_wglGetVideoDeviceNV = NULL;
PFNWGLGETVIDEOINFONVPROC glad_wglGetVideoInfoNV; PFNWGLRELEASEVIDEODEVICENVPROC glad_wglReleaseVideoDeviceNV = NULL;
PFNWGLGETSYNCVALUESOMLPROC glad_wglGetSyncValuesOML; PFNWGLBINDVIDEOIMAGENVPROC glad_wglBindVideoImageNV = NULL;
PFNWGLGETMSCRATEOMLPROC glad_wglGetMscRateOML; PFNWGLRELEASEVIDEOIMAGENVPROC glad_wglReleaseVideoImageNV = NULL;
PFNWGLSWAPBUFFERSMSCOMLPROC glad_wglSwapBuffersMscOML; PFNWGLSENDPBUFFERTOVIDEONVPROC glad_wglSendPbufferToVideoNV = NULL;
PFNWGLSWAPLAYERBUFFERSMSCOMLPROC glad_wglSwapLayerBuffersMscOML; PFNWGLGETVIDEOINFONVPROC glad_wglGetVideoInfoNV = NULL;
PFNWGLWAITFORMSCOMLPROC glad_wglWaitForMscOML; PFNWGLGETSYNCVALUESOMLPROC glad_wglGetSyncValuesOML = NULL;
PFNWGLWAITFORSBCOMLPROC glad_wglWaitForSbcOML; PFNWGLGETMSCRATEOMLPROC glad_wglGetMscRateOML = NULL;
PFNWGLSWAPBUFFERSMSCOMLPROC glad_wglSwapBuffersMscOML = NULL;
PFNWGLSWAPLAYERBUFFERSMSCOMLPROC glad_wglSwapLayerBuffersMscOML = NULL;
PFNWGLWAITFORMSCOMLPROC glad_wglWaitForMscOML = NULL;
PFNWGLWAITFORSBCOMLPROC glad_wglWaitForSbcOML = NULL;
static void load_WGL_3DL_stereo_control(GLADloadproc load) { static void load_WGL_3DL_stereo_control(GLADloadproc load) {
if(!GLAD_WGL_3DL_stereo_control) return; if(!GLAD_WGL_3DL_stereo_control) return;
glad_wglSetStereoEmitterState3DL = (PFNWGLSETSTEREOEMITTERSTATE3DLPROC)load("wglSetStereoEmitterState3DL"); glad_wglSetStereoEmitterState3DL = (PFNWGLSETSTEREOEMITTERSTATE3DLPROC)load("wglSetStereoEmitterState3DL");
@ -619,6 +651,7 @@ static int find_extensionsWGL(void) {
GLAD_WGL_ARB_buffer_region = has_ext("WGL_ARB_buffer_region"); GLAD_WGL_ARB_buffer_region = has_ext("WGL_ARB_buffer_region");
GLAD_WGL_ARB_context_flush_control = has_ext("WGL_ARB_context_flush_control"); GLAD_WGL_ARB_context_flush_control = has_ext("WGL_ARB_context_flush_control");
GLAD_WGL_ARB_create_context = has_ext("WGL_ARB_create_context"); GLAD_WGL_ARB_create_context = has_ext("WGL_ARB_create_context");
GLAD_WGL_ARB_create_context_no_error = has_ext("WGL_ARB_create_context_no_error");
GLAD_WGL_ARB_create_context_profile = has_ext("WGL_ARB_create_context_profile"); GLAD_WGL_ARB_create_context_profile = has_ext("WGL_ARB_create_context_profile");
GLAD_WGL_ARB_create_context_robustness = has_ext("WGL_ARB_create_context_robustness"); GLAD_WGL_ARB_create_context_robustness = has_ext("WGL_ARB_create_context_robustness");
GLAD_WGL_ARB_extensions_string = has_ext("WGL_ARB_extensions_string"); GLAD_WGL_ARB_extensions_string = has_ext("WGL_ARB_extensions_string");
@ -632,6 +665,8 @@ static int find_extensionsWGL(void) {
GLAD_WGL_ARB_robustness_application_isolation = has_ext("WGL_ARB_robustness_application_isolation"); GLAD_WGL_ARB_robustness_application_isolation = has_ext("WGL_ARB_robustness_application_isolation");
GLAD_WGL_ARB_robustness_share_group_isolation = has_ext("WGL_ARB_robustness_share_group_isolation"); GLAD_WGL_ARB_robustness_share_group_isolation = has_ext("WGL_ARB_robustness_share_group_isolation");
GLAD_WGL_ATI_pixel_format_float = has_ext("WGL_ATI_pixel_format_float"); GLAD_WGL_ATI_pixel_format_float = has_ext("WGL_ATI_pixel_format_float");
GLAD_WGL_ATI_render_texture_rectangle = has_ext("WGL_ATI_render_texture_rectangle");
GLAD_WGL_EXT_colorspace = has_ext("WGL_EXT_colorspace");
GLAD_WGL_EXT_create_context_es2_profile = has_ext("WGL_EXT_create_context_es2_profile"); GLAD_WGL_EXT_create_context_es2_profile = has_ext("WGL_EXT_create_context_es2_profile");
GLAD_WGL_EXT_create_context_es_profile = has_ext("WGL_EXT_create_context_es_profile"); GLAD_WGL_EXT_create_context_es_profile = has_ext("WGL_EXT_create_context_es_profile");
GLAD_WGL_EXT_depth_float = has_ext("WGL_EXT_depth_float"); GLAD_WGL_EXT_depth_float = has_ext("WGL_EXT_depth_float");
@ -657,6 +692,7 @@ static int find_extensionsWGL(void) {
GLAD_WGL_NV_delay_before_swap = has_ext("WGL_NV_delay_before_swap"); GLAD_WGL_NV_delay_before_swap = has_ext("WGL_NV_delay_before_swap");
GLAD_WGL_NV_float_buffer = has_ext("WGL_NV_float_buffer"); GLAD_WGL_NV_float_buffer = has_ext("WGL_NV_float_buffer");
GLAD_WGL_NV_gpu_affinity = has_ext("WGL_NV_gpu_affinity"); GLAD_WGL_NV_gpu_affinity = has_ext("WGL_NV_gpu_affinity");
GLAD_WGL_NV_multigpu_context = has_ext("WGL_NV_multigpu_context");
GLAD_WGL_NV_multisample_coverage = has_ext("WGL_NV_multisample_coverage"); GLAD_WGL_NV_multisample_coverage = has_ext("WGL_NV_multisample_coverage");
GLAD_WGL_NV_present_video = has_ext("WGL_NV_present_video"); GLAD_WGL_NV_present_video = has_ext("WGL_NV_present_video");
GLAD_WGL_NV_render_depth_texture = has_ext("WGL_NV_render_depth_texture"); GLAD_WGL_NV_render_depth_texture = has_ext("WGL_NV_render_depth_texture");

View file

@ -20,7 +20,7 @@
// IN THE SOFTWARE. // IN THE SOFTWARE.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include "T3D/components/game/InteractableComponent.h" #include "T3D/components/game/interactableComponent.h"
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// Constructor/Destructor // Constructor/Destructor
@ -91,4 +91,4 @@ void InteractableComponent::interact(InteractComponent* interactor, RayInfo rayI
if (isMethod("onInteract")) if (isMethod("onInteract"))
Con::executef(this, "onInteract", interactor); Con::executef(this, "onInteract", interactor);
} }
} }

View file

@ -23,7 +23,7 @@
#include "math/mBox.h" #include "math/mBox.h"
#endif #endif
#ifndef _ENTITY_H_ #ifndef _ENTITY_H_
#include "T3D/Entity.h" #include "T3D/entity.h"
#endif #endif
#ifndef _CONVEX_H_ #ifndef _CONVEX_H_
#include "collision/convex.h" #include "collision/convex.h"

View file

@ -10,7 +10,7 @@
#include "T3D/components/camera/cameraComponent.h" #include "T3D/components/camera/cameraComponent.h"
#include "T3D/components/camera/cameraOrbiterComponent.h" #include "T3D/components/camera/cameraOrbiterComponent.h"
#include "T3D/components/game/controlObjectComponent.h" #include "T3D/components/game/controlObjectComponent.h"
#include "T3D/components/audio/soundComponent.h" #include "T3D/components/audio/SoundComponent.h"
#include "T3D/components/game/interactComponent.h" #include "T3D/components/game/interactComponent.h"
class PlayerObject : public Entity class PlayerObject : public Entity

View file

@ -20,7 +20,7 @@
// IN THE SOFTWARE. // IN THE SOFTWARE.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include "T3D/lighting/Skylight.h" #include "T3D/lighting/skylight.h"
#include "math/mathIO.h" #include "math/mathIO.h"
#include "scene/sceneRenderState.h" #include "scene/sceneRenderState.h"
#include "console/consoleTypes.h" #include "console/consoleTypes.h"

View file

@ -317,7 +317,7 @@ void GFXD3D11Device::enumerateAdapters(Vector<GFXAdapter*> &adapterList)
toAdd->mAvailableModes.push_back(vmAdd); toAdd->mAvailableModes.push_back(vmAdd);
} }
//Check adapater can handle feature level 10 //Check adapater can handle feature level 10_!
D3D_FEATURE_LEVEL deviceFeature; D3D_FEATURE_LEVEL deviceFeature;
ID3D11Device *pTmpDevice = nullptr; ID3D11Device *pTmpDevice = nullptr;
// Create temp Direct3D11 device. // Create temp Direct3D11 device.
@ -328,11 +328,11 @@ void GFXD3D11Device::enumerateAdapters(Vector<GFXAdapter*> &adapterList)
if (FAILED(hr)) if (FAILED(hr))
suitable = false; suitable = false;
if (deviceFeature < D3D_FEATURE_LEVEL_10_0) if (deviceFeature < D3D_FEATURE_LEVEL_10_1)
suitable = false; suitable = false;
//double check we support required bgra format for LEVEL_10_0 & LEVEL_10_1 //double check we support required bgra format for LEVEL_10_1
if (deviceFeature == D3D_FEATURE_LEVEL_10_0 || deviceFeature == D3D_FEATURE_LEVEL_10_1) if (deviceFeature == D3D_FEATURE_LEVEL_10_1)
{ {
U32 formatSupported = 0; U32 formatSupported = 0;
pTmpDevice->CheckFormatSupport(DXGI_FORMAT_B8G8R8A8_UNORM, &formatSupported); pTmpDevice->CheckFormatSupport(DXGI_FORMAT_B8G8R8A8_UNORM, &formatSupported);
@ -517,12 +517,6 @@ void GFXD3D11Device::init(const GFXVideoMode &mode, PlatformWindow *window)
mPixVersion = 4.1f; mPixVersion = 4.1f;
mShaderModel = "41"; mShaderModel = "41";
break; break;
case D3D_FEATURE_LEVEL_10_0:
mVertexShaderTarget = "vs_4_0";
mPixelShaderTarget = "ps_4_0";
mPixVersion = 4.0f;
mShaderModel = "40";
break;
default: default:
AssertFatal(false, "GFXD3D11Device::init - We don't support this feature level"); AssertFatal(false, "GFXD3D11Device::init - We don't support this feature level");
} }

View file

@ -55,20 +55,20 @@ void GFXGLCardProfiler::setupCardCapabilities()
setCapability("GL_ARB_buffer_storage", gglHasExtension(ARB_buffer_storage)); setCapability("GL_ARB_buffer_storage", gglHasExtension(ARB_buffer_storage));
#endif #endif
// Check for shader model 5.0
setCapability("GL_ARB_gpu_shader5", gglHasExtension(ARB_gpu_shader5));
// Check for texture storage // Check for texture storage
setCapability("GL_ARB_texture_storage", gglHasExtension(ARB_texture_storage)); setCapability("GL_ARB_texture_storage", gglHasExtension(ARB_texture_storage));
// Check for sampler objects
setCapability("GL_ARB_sampler_objects", gglHasExtension(ARB_sampler_objects));
// Check for copy image support // Check for copy image support
setCapability("GL_ARB_copy_image", gglHasExtension(ARB_copy_image)); setCapability("GL_ARB_copy_image", gglHasExtension(ARB_copy_image));
// Check for vertex attrib binding // Check for vertex attrib binding
setCapability("GL_ARB_vertex_attrib_binding", gglHasExtension(ARB_vertex_attrib_binding)); setCapability("GL_ARB_vertex_attrib_binding", gglHasExtension(ARB_vertex_attrib_binding));
//check for KHR debug
setCapability("GL_KHR_debug", gglHasExtension(KHR_debug));
//check for KHR debug
setCapability("GL_EXT_debug_marker", gglHasExtension(EXT_debug_marker));
} }

View file

@ -132,11 +132,11 @@ void GFXGLDevice::initGLState()
// Set capability extensions. // Set capability extensions.
mCapabilities.anisotropicFiltering = mCardProfiler->queryProfile("GL_EXT_texture_filter_anisotropic"); mCapabilities.anisotropicFiltering = mCardProfiler->queryProfile("GL_EXT_texture_filter_anisotropic");
mCapabilities.bufferStorage = mCardProfiler->queryProfile("GL_ARB_buffer_storage"); mCapabilities.bufferStorage = mCardProfiler->queryProfile("GL_ARB_buffer_storage");
mCapabilities.shaderModel5 = mCardProfiler->queryProfile("GL_ARB_gpu_shader5");
mCapabilities.textureStorage = mCardProfiler->queryProfile("GL_ARB_texture_storage"); mCapabilities.textureStorage = mCardProfiler->queryProfile("GL_ARB_texture_storage");
mCapabilities.samplerObjects = mCardProfiler->queryProfile("GL_ARB_sampler_objects");
mCapabilities.copyImage = mCardProfiler->queryProfile("GL_ARB_copy_image"); mCapabilities.copyImage = mCardProfiler->queryProfile("GL_ARB_copy_image");
mCapabilities.vertexAttributeBinding = mCardProfiler->queryProfile("GL_ARB_vertex_attrib_binding"); mCapabilities.vertexAttributeBinding = mCardProfiler->queryProfile("GL_ARB_vertex_attrib_binding");
mCapabilities.khrDebug = mCardProfiler->queryProfile("GL_KHR_debug");
mCapabilities.extDebugMarker = mCardProfiler->queryProfile("GL_EXT_debug_marker");
String vendorStr = (const char*)glGetString( GL_VENDOR ); String vendorStr = (const char*)glGetString( GL_VENDOR );
if( vendorStr.find("NVIDIA", 0, String::NoCase | String::Left) != String::NPos) if( vendorStr.find("NVIDIA", 0, String::NoCase | String::Left) != String::NPos)
@ -686,7 +686,7 @@ void GFXGLDevice::setCubemapArrayInternal(U32 textureUnit, const GFXGLCubemapArr
{ {
if (texture) if (texture)
{ {
mActiveTextureType[textureUnit] = GL_TEXTURE_CUBE_MAP_ARRAY; mActiveTextureType[textureUnit] = GL_TEXTURE_CUBE_MAP_ARRAY_ARB;
texture->bind(textureUnit); texture->bind(textureUnit);
} }
else if (mActiveTextureType[textureUnit] != GL_ZERO) else if (mActiveTextureType[textureUnit] != GL_ZERO)

View file

@ -50,11 +50,11 @@ public:
{ {
bool anisotropicFiltering; bool anisotropicFiltering;
bool bufferStorage; bool bufferStorage;
bool shaderModel5;
bool textureStorage; bool textureStorage;
bool samplerObjects;
bool copyImage; bool copyImage;
bool vertexAttributeBinding; bool vertexAttributeBinding;
bool khrDebug;
bool extDebugMarker;
}; };
GLCapabilities mCapabilities; GLCapabilities mCapabilities;

View file

@ -107,6 +107,15 @@ void GFXGLDevice::enterDebugEvent(ColorI color, const char *name)
#ifdef TORQUE_BASIC_GPU_PROFILER #ifdef TORQUE_BASIC_GPU_PROFILER
gfxProfiler.enterDebugEvent(color, name); gfxProfiler.enterDebugEvent(color, name);
#endif #endif
if (mCapabilities.khrDebug)
{
glPushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 0, -1, name);
}
else if(mCapabilities.extDebugMarker)
{
glPushGroupMarkerEXT(0, name);
}
} }
void GFXGLDevice::leaveDebugEvent() void GFXGLDevice::leaveDebugEvent()
@ -114,11 +123,28 @@ void GFXGLDevice::leaveDebugEvent()
#ifdef TORQUE_BASIC_GPU_PROFILER #ifdef TORQUE_BASIC_GPU_PROFILER
gfxProfiler.leaveDebugEvent(); gfxProfiler.leaveDebugEvent();
#endif #endif
if (mCapabilities.khrDebug)
{
glPopDebugGroup();
}
else if(mCapabilities.extDebugMarker)
{
glPopGroupMarkerEXT();
}
} }
void GFXGLDevice::setDebugMarker(ColorI color, const char *name) void GFXGLDevice::setDebugMarker(ColorI color, const char *name)
{ {
if (mCapabilities.khrDebug)
{
glDebugMessageInsert(GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_TYPE_MARKER, 0,
GL_DEBUG_SEVERITY_NOTIFICATION, -1, name);
}
else if(mCapabilities.extDebugMarker)
{
glInsertEventMarkerEXT(0, name);
}
} }
#ifdef TORQUE_BASIC_GPU_PROFILER #ifdef TORQUE_BASIC_GPU_PROFILER

View file

@ -626,7 +626,7 @@ void GFXGLShader::initConstantDescs()
case GL_SAMPLER_CUBE: case GL_SAMPLER_CUBE:
desc.constType = GFXSCT_SamplerCube; desc.constType = GFXSCT_SamplerCube;
break; break;
case GL_SAMPLER_CUBE_MAP_ARRAY: case GL_SAMPLER_CUBE_MAP_ARRAY_ARB:
desc.constType = GFXSCT_SamplerCubeArray; desc.constType = GFXSCT_SamplerCubeArray;
break; break;
default: default:
@ -1008,30 +1008,18 @@ bool GFXGLShader::_loadShaderFromStream( GLuint shader,
Vector<U32> lengths; Vector<U32> lengths;
// The GLSL version declaration must go first! // The GLSL version declaration must go first!
char* versionDecl = "#version 150\r\n"; const char *versionDecl = "#version 330\n";
if (!gglHasExtension(ARB_texture_cube_map_array)) buffers.push_back( dStrdup( versionDecl ) );
{ lengths.push_back( dStrlen( versionDecl ) );
Con::errorf("ARB_texture_cube_map_array not found. attempting to use 4.0 core");
versionDecl = "#version 400\r\n";
buffers.push_back(dStrdup(versionDecl));
lengths.push_back(dStrlen(versionDecl));
}
else
{
Con::errorf("Attempting to use 3.2 core with ARB_texture_cube_map_array ");
buffers.push_back(dStrdup(versionDecl));
lengths.push_back(dStrlen(versionDecl));
const char* extension = "#extension GL_ARB_texture_cube_map_array : enable\r\n";
buffers.push_back(dStrdup(extension));
lengths.push_back(dStrlen(extension));
}
if (GFXGL->mCapabilities.shaderModel5) //Required extensions. These are already checked when creating the GFX adapter, if we make it this far it's supported
{ const char* cubeArrayExt = "#extension GL_ARB_texture_cube_map_array : enable\n";
const char* extension = "#extension GL_ARB_gpu_shader5 : enable\r\n"; buffers.push_back(dStrdup(cubeArrayExt));
buffers.push_back(dStrdup(extension)); lengths.push_back(dStrlen(cubeArrayExt));
lengths.push_back(dStrlen(extension));
} const char* gpuShader5Ext = "#extension GL_ARB_gpu_shader5 : enable\n";
buffers.push_back(dStrdup(gpuShader5Ext));
lengths.push_back(dStrlen(gpuShader5Ext));
const char* newLine = "\r\n"; const char* newLine = "\r\n";
buffers.push_back(dStrdup(newLine)); buffers.push_back(dStrdup(newLine));

View file

@ -39,9 +39,6 @@ GFXGLStateBlock::GFXGLStateBlock(const GFXStateBlockDesc& desc) :
mDesc(desc), mDesc(desc),
mCachedHashValue(desc.getHashValue()) mCachedHashValue(desc.getHashValue())
{ {
if( !GFXGL->mCapabilities.samplerObjects )
return;
static Map<GFXSamplerStateDesc, U32> mSamplersMap; static Map<GFXSamplerStateDesc, U32> mSamplersMap;
for(int i = 0; i < TEXTURE_STAGE_COUNT; ++i) for(int i = 0; i < TEXTURE_STAGE_COUNT; ++i)
@ -175,14 +172,10 @@ void GFXGLStateBlock::activate(const GFXGLStateBlock* oldState)
#undef CHECK_TOGGLE_STATE #undef CHECK_TOGGLE_STATE
//sampler objects //sampler objects
if( GFXGL->mCapabilities.samplerObjects ) for (U32 i = 0; i < getMin(getOwningDevice()->getNumSamplers(), (U32) TEXTURE_STAGE_COUNT); i++)
{ {
for (U32 i = 0; i < getMin(getOwningDevice()->getNumSamplers(), (U32) TEXTURE_STAGE_COUNT); i++) if(!oldState || oldState->mSamplerObjects[i] != mSamplerObjects[i])
{ glBindSampler(i, mSamplerObjects[i] );
if(!oldState || oldState->mSamplerObjects[i] != mSamplerObjects[i]) }
glBindSampler(i, mSamplerObjects[i] );
}
}
// TODO: states added for detail blend // TODO: states added for detail blend
} }

View file

@ -216,37 +216,6 @@ void GFXGLTextureObject::bind(U32 textureUnit)
glActiveTexture(GL_TEXTURE0 + textureUnit); glActiveTexture(GL_TEXTURE0 + textureUnit);
glBindTexture(mBinding, mHandle); glBindTexture(mBinding, mHandle);
GFXGL->getOpenglCache()->setCacheBindedTex(textureUnit, mBinding, mHandle); GFXGL->getOpenglCache()->setCacheBindedTex(textureUnit, mBinding, mHandle);
if(GFXGL->mCapabilities.samplerObjects)
return;
GFXGLStateBlockRef sb = mGLDevice->getCurrentStateBlock();
AssertFatal(sb, "GFXGLTextureObject::bind - No active stateblock!");
if (!sb)
return;
const GFXSamplerStateDesc ssd = sb->getDesc().samplers[textureUnit];
if(mNeedInitSamplerState)
{
initSamplerState(ssd);
return;
}
if(mSampler.minFilter != ssd.minFilter || mSampler.mipFilter != ssd.mipFilter)
glTexParameteri(mBinding, GL_TEXTURE_MIN_FILTER, minificationFilter(ssd.minFilter, ssd.mipFilter, mMipLevels));
if(mSampler.magFilter != ssd.magFilter)
glTexParameteri(mBinding, GL_TEXTURE_MAG_FILTER, GFXGLTextureFilter[ssd.magFilter]);
if(mSampler.addressModeU != ssd.addressModeU)
glTexParameteri(mBinding, GL_TEXTURE_WRAP_S, !mIsNPoT2 ? GFXGLTextureAddress[ssd.addressModeU] : GL_CLAMP_TO_EDGE);
if(mSampler.addressModeV != ssd.addressModeV)
glTexParameteri(mBinding, GL_TEXTURE_WRAP_T, !mIsNPoT2 ? GFXGLTextureAddress[ssd.addressModeV] : GL_CLAMP_TO_EDGE);
if(mBinding == GL_TEXTURE_3D && mSampler.addressModeW != ssd.addressModeW )
glTexParameteri(mBinding, GL_TEXTURE_WRAP_R, GFXGLTextureAddress[ssd.addressModeW]);
if(mSampler.maxAnisotropy != ssd.maxAnisotropy && static_cast< GFXGLDevice* >( GFX )->supportsAnisotropic() )
glTexParameterf(mBinding, GL_TEXTURE_MAX_ANISOTROPY_EXT, ssd.maxAnisotropy);
mSampler = ssd;
} }
U8* GFXGLTextureObject::getTextureData( U32 mip ) U8* GFXGLTextureObject::getTextureData( U32 mip )

View file

@ -84,7 +84,7 @@ void GFXGLDevice::enumerateAdapters( Vector<GFXAdapter*> &adapterList )
SDL_ClearError(); SDL_ClearError();
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE); SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
SDL_GL_SetAttribute(SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, 1); SDL_GL_SetAttribute(SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, 1);
@ -111,14 +111,27 @@ void GFXGLDevice::enumerateAdapters( Vector<GFXAdapter*> &adapterList )
loadGLCore(); loadGLCore();
loadGLExtensions(tempContext); loadGLExtensions(tempContext);
//check minimun Opengl 3.2 //check minimun Opengl 3.3
int major, minor; int major, minor;
glGetIntegerv(GL_MAJOR_VERSION, &major); glGetIntegerv(GL_MAJOR_VERSION, &major);
glGetIntegerv(GL_MINOR_VERSION, &minor); glGetIntegerv(GL_MINOR_VERSION, &minor);
if( major < 3 || ( major == 3 && minor < 2 ) ) if( major < 3 || ( major == 3 && minor < 3 ) )
{ {
return; return;
} }
//check for required extensions
if (!gglHasExtension(ARB_texture_cube_map_array))
{
Con::warnf("Adapater supports OpenGL 3.3 but doesnt support GL_ARB_texture_cube_map_array");
return;
}
if (!gglHasExtension(ARB_gpu_shader5))
{
Con::warnf("Adapater supports OpenGL 3.3 but doesnt support GL_ARB_gpu_shader5");
return;
}
GFXAdapter *toAdd = new GFXAdapter; GFXAdapter *toAdd = new GFXAdapter;
toAdd->mIndex = 0; toAdd->mIndex = 0;

View file

@ -14,7 +14,7 @@ namespace PlatformGL
void init() void init()
{ {
const U32 majorOGL = 3; const U32 majorOGL = 3;
const U32 minorOGL = 2; const U32 minorOGL = 3;
U32 debugFlag = 0; U32 debugFlag = 0;
#ifdef TORQUE_DEBUG #ifdef TORQUE_DEBUG
debugFlag |= SDL_GL_CONTEXT_DEBUG_FLAG; debugFlag |= SDL_GL_CONTEXT_DEBUG_FLAG;

View file

@ -20,7 +20,7 @@
// IN THE SOFTWARE. // IN THE SOFTWARE.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#include "shadergen/customShaderFeature.h" #include "shaderGen/customShaderFeature.h"
#ifdef TORQUE_D3D11 #ifdef TORQUE_D3D11
#include "shaderGen/HLSL/customFeatureHLSL.h" #include "shaderGen/HLSL/customFeatureHLSL.h"

View file

@ -19,7 +19,6 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE. // IN THE SOFTWARE.
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
#pragma once
#ifndef CUSTOMSHADERFEATURE_H #ifndef CUSTOMSHADERFEATURE_H
#define CUSTOMSHADERFEATURE_H #define CUSTOMSHADERFEATURE_H

View file

@ -24,6 +24,7 @@
in vec4 hpos; in vec4 hpos;
in vec2 uv0; in vec2 uv0;
#line 27
uniform samplerCube environmentMap; uniform samplerCube environmentMap;
@ -123,8 +124,7 @@ vec4 prefilterEnvMap(vec3 R)
out vec4 OUT_col; out vec4 OUT_col;
void main() void main()
{ {
vec3 N = getCubeDir(face, uv0); vec3 N = getCubeDir(face, uv0);
OUT_col = prefilterEnvMap(N); OUT_col = prefilterEnvMap(N);
} }

View file

@ -1,5 +1,5 @@
#include "../../../gl/hlslCompat.glsl" #include "../../../gl/hlslCompat.glsl"
#include "../../../postFx/gl/postFx.glsl" #include "../../../postFX/gl/postFx.glsl"
#include "../../../gl/torque.glsl" #include "../../../gl/torque.glsl"
#include "shadergen:/autogenConditioners.h" #include "shadergen:/autogenConditioners.h"
#include "../../../gl/lighting.glsl" #include "../../../gl/lighting.glsl"
@ -55,6 +55,7 @@ void main()
float alpha = 1; float alpha = 1;
#ifdef SKYLIGHT_ONLY
#if SKYLIGHT_ONLY == 0 #if SKYLIGHT_ONLY == 0
int i = 0; int i = 0;
float blendFactor[MAX_PROBES]; float blendFactor[MAX_PROBES];
@ -154,6 +155,7 @@ void main()
#endif #endif
//} //}
#endif #endif
#endif //SKYLIGHT_ONLY
vec3 irradiance = vec3(0, 0, 0); vec3 irradiance = vec3(0, 0, 0);
vec3 specular = vec3(0, 0, 0); vec3 specular = vec3(0, 0, 0);
@ -165,6 +167,7 @@ void main()
float lod = 0; float lod = 0;
#endif #endif
#ifdef SKYLIGHT_ONLY
#if SKYLIGHT_ONLY == 0 #if SKYLIGHT_ONLY == 0
alpha = 1; alpha = 1;
for (i = 0; i < numProbes; ++i) for (i = 0; i < numProbes; ++i)
@ -172,7 +175,7 @@ void main()
float contrib = contribution[i]; float contrib = contribution[i];
if (contrib != 0) if (contrib != 0)
{ {
int cubemapIdx = probeConfigData[i].a; float cubemapIdx = probeConfigData[i].a;
vec3 dir = boxProject(surface.P, surface.R, worldToObjArray[i], bbMinArray[i].xyz, bbMaxArray[i].xyz, inRefPosArray[i].xyz); vec3 dir = boxProject(surface.P, surface.R, worldToObjArray[i], bbMinArray[i].xyz, bbMaxArray[i].xyz, inRefPosArray[i].xyz);
irradiance += textureLod(irradianceCubemapAR, vec4(dir, cubemapIdx), 0).xyz * contrib; irradiance += textureLod(irradianceCubemapAR, vec4(dir, cubemapIdx), 0).xyz * contrib;
@ -181,6 +184,7 @@ void main()
} }
} }
#endif #endif
#endif //SKYLIGHT_ONLY
if (skylightCubemapIdx != -1 && alpha > 0.001) if (skylightCubemapIdx != -1 && alpha > 0.001)
{ {