Ver Fonte

linux followup work by tim

AzaezelX há 6 anos atrás
pai
commit
059d531b62
26 ficheiros alterados com 814 adições e 560 exclusões
  1. 18 13
      Engine/lib/glad/include/KHR/khrplatform.h
  2. 61 2
      Engine/lib/glad/include/glad/glad.h
  3. 47 16
      Engine/lib/glad/include/glad/glad_glx.h
  4. 55 21
      Engine/lib/glad/include/glad/glad_wgl.h
  5. 61 2
      Engine/lib/glad/src/glad.c
  6. 257 213
      Engine/lib/glad/src/glx/glad_glx.c
  7. 224 188
      Engine/lib/glad/src/wgl/glad_wgl.c
  8. 2 2
      Engine/source/T3D/components/game/interactableComponent.cpp
  9. 1 1
      Engine/source/T3D/components/physics/simplePhysicsComponent.h
  10. 1 1
      Engine/source/T3D/gameObjects/playerObject.h
  11. 1 1
      Engine/source/T3D/lighting/skylight.cpp
  12. 4 10
      Engine/source/gfx/D3D11/gfxD3D11Device.cpp
  13. 7 7
      Engine/source/gfx/gl/gfxGLCardProfiler.cpp
  14. 3 3
      Engine/source/gfx/gl/gfxGLDevice.cpp
  15. 2 2
      Engine/source/gfx/gl/gfxGLDevice.h
  16. 27 1
      Engine/source/gfx/gl/gfxGLDeviceProfiler.cpp
  17. 13 25
      Engine/source/gfx/gl/gfxGLShader.cpp
  18. 4 11
      Engine/source/gfx/gl/gfxGLStateBlock.cpp
  19. 0 31
      Engine/source/gfx/gl/gfxGLTextureObject.cpp
  20. 16 3
      Engine/source/gfx/gl/sdl/gfxGLDevice.sdl.cpp
  21. 1 1
      Engine/source/platformSDL/sdlPlatformGL.cpp
  22. 1 1
      Engine/source/shaderGen/customShaderFeature.cpp
  23. 0 1
      Engine/source/shaderGen/customShaderFeature.h
  24. 2 2
      Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/gl/prefilterP.glsl
  25. 6 2
      Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/gl/reflectionProbeArrayP.glsl
  26. 0 0
      Templates/BaseGame/game/core/rendering/shaders/postFX/gl/postFx.glsl

+ 18 - 13
Engine/lib/glad/include/KHR/khrplatform.h

@@ -2,7 +2,7 @@
 #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
 ** copy of this software and/or associated documentation files (the
@@ -26,18 +26,16 @@
 
 /* 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
  * encouraged to submit platform specific modifications to the Khronos
  * group so that they can be included in future versions of this file.
- * Please submit changes by sending them to the public Khronos Bugzilla
- * (http://khronos.org/bugzilla) by filing a bug against product
- * "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.
+ * Please submit changes by filing pull requests or issues on
+ * the EGL Registry repository linked above.
  *
  *
  * See the Implementer's Guidelines for information about where this file
@@ -92,18 +90,25 @@
  *                                  int arg2) KHRONOS_APIATTRIBUTES;
  */
 
+#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
+#   define KHRONOS_STATIC 1
+#endif
+
 /*-------------------------------------------------------------------------
  * Definition of KHRONOS_APICALL
  *-------------------------------------------------------------------------
  * 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)
 #elif defined (__SYMBIAN32__)
 #   define KHRONOS_APICALL IMPORT_C
 #elif defined(__ANDROID__)
-#   include <sys/cdefs.h>
-#   define KHRONOS_APICALL __attribute__((visibility("default"))) __NDK_FPABI__
+#   define KHRONOS_APICALL __attribute__((visibility("default")))
 #else
 #   define KHRONOS_APICALL
 #endif
@@ -114,7 +119,7 @@
  * This follows the return type of the function  and precedes the function
  * 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 */
 #   define KHRONOS_APIENTRY __stdcall
 #else

Diff do ficheiro suprimidas por serem muito extensas
+ 61 - 2
Engine/lib/glad/include/glad/glad.h


+ 47 - 16
Engine/lib/glad/include/glad/glad_glx.h

@@ -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++
     Specification: glx
@@ -11,6 +11,7 @@
         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,
@@ -21,12 +22,14 @@
         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,
@@ -40,6 +43,7 @@
         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,
@@ -72,9 +76,10 @@
     Loader: True
     Local files: False
     Omit khrplatform: False
+    Reproducible: False
 
     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:
         Too many extensions
 */
@@ -109,7 +114,7 @@ typedef void* (* GLADloadproc)(const char *name);
 
 #ifndef GLAPI
 # if defined(GLAD_GLAPI_EXPORT)
-#  if defined(WIN32) || defined(__CYGWIN__)
+#  if defined(_WIN32) || defined(__CYGWIN__)
 #   if defined(GLAD_GLAPI_EXPORT_BUILD)
 #    if defined(__GNUC__)
 #     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);
 GLAPI PFNGLXGETCONFIGPROC glad_glXGetConfig;
 #define glXGetConfig glad_glXGetConfig
-typedef GLXContext (APIENTRYP PFNGLXGETCURRENTCONTEXTPROC)();
+typedef GLXContext (APIENTRYP PFNGLXGETCURRENTCONTEXTPROC)(void);
 GLAPI PFNGLXGETCURRENTCONTEXTPROC glad_glXGetCurrentContext;
 #define glXGetCurrentContext glad_glXGetCurrentContext
-typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTDRAWABLEPROC)();
+typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTDRAWABLEPROC)(void);
 GLAPI PFNGLXGETCURRENTDRAWABLEPROC glad_glXGetCurrentDrawable;
 #define glXGetCurrentDrawable glad_glXGetCurrentDrawable
-typedef void (APIENTRYP PFNGLXWAITGLPROC)();
+typedef void (APIENTRYP PFNGLXWAITGLPROC)(void);
 GLAPI PFNGLXWAITGLPROC glad_glXWaitGL;
 #define glXWaitGL glad_glXWaitGL
-typedef void (APIENTRYP PFNGLXWAITXPROC)();
+typedef void (APIENTRYP PFNGLXWAITXPROC)(void);
 GLAPI PFNGLXWAITXPROC glad_glXWaitX;
 #define glXWaitX glad_glXWaitX
 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
 #define GLX_VERSION_1_2 1
 GLAPI int GLAD_GLX_VERSION_1_2;
-typedef Display * (APIENTRYP PFNGLXGETCURRENTDISPLAYPROC)();
+typedef Display * (APIENTRYP PFNGLXGETCURRENTDISPLAYPROC)(void);
 GLAPI PFNGLXGETCURRENTDISPLAYPROC glad_glXGetCurrentDisplay;
 #define glXGetCurrentDisplay glad_glXGetCurrentDisplay
 #endif
@@ -466,7 +471,7 @@ GLAPI PFNGLXCREATENEWCONTEXTPROC glad_glXCreateNewContext;
 typedef Bool (APIENTRYP PFNGLXMAKECONTEXTCURRENTPROC)(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
 GLAPI PFNGLXMAKECONTEXTCURRENTPROC glad_glXMakeContextCurrent;
 #define glXMakeContextCurrent glad_glXMakeContextCurrent
-typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTREADDRAWABLEPROC)();
+typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTREADDRAWABLEPROC)(void);
 GLAPI PFNGLXGETCURRENTREADDRAWABLEPROC glad_glXGetCurrentReadDrawable;
 #define glXGetCurrentReadDrawable glad_glXGetCurrentReadDrawable
 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_MINOR_VERSION_ARB 0x2092
 #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_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
 #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_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095
 #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_ES_PROFILE_BIT_EXT 0x00000004
 #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_ES_PROFILE_VERSION_MESA 0x818C
 #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_FULLSCREEN_MODE_MESA 0x2
 #define GLX_FLOAT_COMPONENTS_NV 0x20B0
@@ -710,7 +719,7 @@ GLAPI PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC glad_glXDeleteAssociatedContextAMD;
 typedef Bool (APIENTRYP PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(GLXContext ctx);
 GLAPI PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_glXMakeAssociatedContextCurrentAMD;
 #define glXMakeAssociatedContextCurrentAMD glad_glXMakeAssociatedContextCurrentAMD
-typedef GLXContext (APIENTRYP PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC)();
+typedef GLXContext (APIENTRYP PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC)(void);
 GLAPI PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC 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);
@@ -728,6 +737,10 @@ typedef GLXContext (APIENTRYP PFNGLXCREATECONTEXTATTRIBSARBPROC)(Display *dpy, G
 GLAPI PFNGLXCREATECONTEXTATTRIBSARBPROC glad_glXCreateContextAttribsARB;
 #define glXCreateContextAttribsARB glad_glXCreateContextAttribsARB
 #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
 #define GLX_ARB_create_context_profile 1
 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
 GLAPI int GLAD_GLX_EXT_buffer_age;
 #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
 #define GLX_EXT_create_context_es2_profile 1
 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
 #define GLX_EXT_import_context 1
 GLAPI int GLAD_GLX_EXT_import_context;
-typedef Display * (APIENTRYP PFNGLXGETCURRENTDISPLAYEXTPROC)();
+typedef Display * (APIENTRYP PFNGLXGETCURRENTDISPLAYEXTPROC)(void);
 GLAPI PFNGLXGETCURRENTDISPLAYEXTPROC glad_glXGetCurrentDisplayEXT;
 #define glXGetCurrentDisplayEXT glad_glXGetCurrentDisplayEXT
 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
 GLAPI int GLAD_GLX_EXT_libglvnd;
 #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
 #define GLX_EXT_stereo_tree 1
 GLAPI int GLAD_GLX_EXT_stereo_tree;
@@ -894,10 +915,20 @@ GLAPI PFNGLXRELEASEBUFFERSMESAPROC glad_glXReleaseBuffersMESA;
 #ifndef GLX_MESA_set_3dfx_mode
 #define GLX_MESA_set_3dfx_mode 1
 GLAPI int GLAD_GLX_MESA_set_3dfx_mode;
-typedef Bool (APIENTRYP PFNGLXSET3DFXMODEMESAPROC)(int mode);
+typedef GLboolean (APIENTRYP PFNGLXSET3DFXMODEMESAPROC)(GLint mode);
 GLAPI PFNGLXSET3DFXMODEMESAPROC glad_glXSet3DfxModeMESA;
 #define glXSet3DfxModeMESA glad_glXSet3DfxModeMESA
 #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
 #define GLX_NV_copy_buffer 1
 GLAPI int GLAD_GLX_NV_copy_buffer;
@@ -1110,7 +1141,7 @@ GLAPI PFNGLXCREATEGLXPBUFFERSGIXPROC glad_glXCreateGLXPbufferSGIX;
 typedef void (APIENTRYP PFNGLXDESTROYGLXPBUFFERSGIXPROC)(Display *dpy, GLXPbufferSGIX pbuf);
 GLAPI PFNGLXDESTROYGLXPBUFFERSGIXPROC 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;
 #define glXQueryGLXPbufferSGIX glad_glXQueryGLXPbufferSGIX
 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);
 GLAPI PFNGLXMAKECURRENTREADSGIPROC glad_glXMakeCurrentReadSGI;
 #define glXMakeCurrentReadSGI glad_glXMakeCurrentReadSGI
-typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTREADDRAWABLESGIPROC)();
+typedef GLXDrawable (APIENTRYP PFNGLXGETCURRENTREADDRAWABLESGIPROC)(void);
 GLAPI PFNGLXGETCURRENTREADDRAWABLESGIPROC glad_glXGetCurrentReadDrawableSGI;
 #define glXGetCurrentReadDrawableSGI glad_glXGetCurrentReadDrawableSGI
 #endif
@@ -1209,7 +1240,7 @@ GLAPI PFNGLXWAITVIDEOSYNCSGIPROC glad_glXWaitVideoSyncSGI;
 #ifndef GLX_SUN_get_transparent_index
 #define GLX_SUN_get_transparent_index 1
 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;
 #define glXGetTransparentIndexSUN glad_glXGetTransparentIndexSUN
 #endif

+ 55 - 21
Engine/lib/glad/include/glad/glad_wgl.h

@@ -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++
     Specification: wgl
@@ -13,6 +13,7 @@
         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,
@@ -26,6 +27,8 @@
         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,
@@ -51,6 +54,7 @@
         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,
@@ -63,19 +67,23 @@
     Loader: True
     Local files: False
     Omit khrplatform: False
+    Reproducible: False
 
     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:
-        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 WIN32_LEAN_AND_MEAN
-#  define WIN32_LEAN_AND_MEAN 1
-# endif
-# include <windows.h>
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN 1
+#endif
+#ifndef NOMINMAX
+#define NOMINMAX 1
+#endif
+#include <windows.h>
 #endif
 
 #include <glad/glad.h>
@@ -104,7 +112,7 @@ typedef void* (* GLADloadproc)(const char *name);
 
 #ifndef GLAPI
 # if defined(GLAD_GLAPI_EXPORT)
-#  if defined(WIN32) || defined(__CYGWIN__)
+#  if defined(_WIN32) || defined(__CYGWIN__)
 #   if defined(GLAD_GLAPI_EXPORT_BUILD)
 #    if defined(__GNUC__)
 #     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_FLAGS_ARB 0x2094
 #define ERROR_INVALID_VERSION_ARB 0x2095
+#define WGL_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3
 #define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
 #define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
 #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_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
 #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_ES_PROFILE_BIT_EXT 0x00000004
 #define WGL_DEPTH_FLOAT_EXT 0x2040
@@ -377,6 +390,11 @@ typedef struct _GPU_DEVICE *PGPU_DEVICE;
 #define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8
 #define ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
 #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_COLOR_SAMPLES_NV 0x20B9
 #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);
 GLAPI PFNWGLGETGPUIDSAMDPROC 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;
 #define wglGetGPUInfoAMD glad_wglGetGPUInfoAMD
 typedef UINT (APIENTRYP PFNWGLGETCONTEXTGPUIDAMDPROC)(HGLRC hglrc);
@@ -438,7 +456,7 @@ GLAPI PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC glad_wglDeleteAssociatedContextAMD;
 typedef BOOL (APIENTRYP PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(HGLRC hglrc);
 GLAPI PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_wglMakeAssociatedContextCurrentAMD;
 #define wglMakeAssociatedContextCurrentAMD glad_wglMakeAssociatedContextCurrentAMD
-typedef HGLRC (APIENTRYP PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC)();
+typedef HGLRC (APIENTRYP PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC)(void);
 GLAPI PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC 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);
@@ -472,6 +490,10 @@ typedef HGLRC (APIENTRYP PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC hDC, HGLRC hShar
 GLAPI PFNWGLCREATECONTEXTATTRIBSARBPROC glad_wglCreateContextAttribsARB;
 #define wglCreateContextAttribsARB glad_wglCreateContextAttribsARB
 #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
 #define WGL_ARB_create_context_profile 1
 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);
 GLAPI PFNWGLMAKECONTEXTCURRENTARBPROC glad_wglMakeContextCurrentARB;
 #define wglMakeContextCurrentARB glad_wglMakeContextCurrentARB
-typedef HDC (APIENTRYP PFNWGLGETCURRENTREADDCARBPROC)();
+typedef HDC (APIENTRYP PFNWGLGETCURRENTREADDCARBPROC)(void);
 GLAPI PFNWGLGETCURRENTREADDCARBPROC glad_wglGetCurrentReadDCARB;
 #define wglGetCurrentReadDCARB glad_wglGetCurrentReadDCARB
 #endif
@@ -566,6 +588,14 @@ GLAPI int GLAD_WGL_ARB_robustness_share_group_isolation;
 #define WGL_ATI_pixel_format_float 1
 GLAPI int GLAD_WGL_ATI_pixel_format_float;
 #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
 #define WGL_EXT_create_context_es2_profile 1
 GLAPI int GLAD_WGL_EXT_create_context_es2_profile;
@@ -597,7 +627,7 @@ GLAPI PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC glad_wglDestroyDisplayColorTableEXT;
 #ifndef WGL_EXT_extensions_string
 #define WGL_EXT_extensions_string 1
 GLAPI int GLAD_WGL_EXT_extensions_string;
-typedef const char * (APIENTRYP PFNWGLGETEXTENSIONSSTRINGEXTPROC)();
+typedef const char * (APIENTRYP PFNWGLGETEXTENSIONSSTRINGEXTPROC)(void);
 GLAPI PFNWGLGETEXTENSIONSSTRINGEXTPROC glad_wglGetExtensionsStringEXT;
 #define wglGetExtensionsStringEXT glad_wglGetExtensionsStringEXT
 #endif
@@ -611,7 +641,7 @@ GLAPI int GLAD_WGL_EXT_make_current_read;
 typedef BOOL (APIENTRYP PFNWGLMAKECONTEXTCURRENTEXTPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
 GLAPI PFNWGLMAKECONTEXTCURRENTEXTPROC glad_wglMakeContextCurrentEXT;
 #define wglMakeContextCurrentEXT glad_wglMakeContextCurrentEXT
-typedef HDC (APIENTRYP PFNWGLGETCURRENTREADDCEXTPROC)();
+typedef HDC (APIENTRYP PFNWGLGETCURRENTREADDCEXTPROC)(void);
 GLAPI PFNWGLGETCURRENTREADDCEXTPROC glad_wglGetCurrentReadDCEXT;
 #define wglGetCurrentReadDCEXT glad_wglGetCurrentReadDCEXT
 #endif
@@ -661,7 +691,7 @@ GLAPI int GLAD_WGL_EXT_swap_control;
 typedef BOOL (APIENTRYP PFNWGLSWAPINTERVALEXTPROC)(int interval);
 GLAPI PFNWGLSWAPINTERVALEXTPROC glad_wglSwapIntervalEXT;
 #define wglSwapIntervalEXT glad_wglSwapIntervalEXT
-typedef int (APIENTRYP PFNWGLGETSWAPINTERVALEXTPROC)();
+typedef int (APIENTRYP PFNWGLGETSWAPINTERVALEXTPROC)(void);
 GLAPI PFNWGLGETSWAPINTERVALEXTPROC glad_wglGetSwapIntervalEXT;
 #define wglGetSwapIntervalEXT glad_wglGetSwapIntervalEXT
 #endif
@@ -754,10 +784,10 @@ GLAPI PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC glad_wglReleaseImageBufferEventsI3D;
 #ifndef WGL_I3D_swap_frame_lock
 #define WGL_I3D_swap_frame_lock 1
 GLAPI int GLAD_WGL_I3D_swap_frame_lock;
-typedef BOOL (APIENTRYP PFNWGLENABLEFRAMELOCKI3DPROC)();
+typedef BOOL (APIENTRYP PFNWGLENABLEFRAMELOCKI3DPROC)(void);
 GLAPI PFNWGLENABLEFRAMELOCKI3DPROC glad_wglEnableFrameLockI3D;
 #define wglEnableFrameLockI3D glad_wglEnableFrameLockI3D
-typedef BOOL (APIENTRYP PFNWGLDISABLEFRAMELOCKI3DPROC)();
+typedef BOOL (APIENTRYP PFNWGLDISABLEFRAMELOCKI3DPROC)(void);
 GLAPI PFNWGLDISABLEFRAMELOCKI3DPROC glad_wglDisableFrameLockI3D;
 #define wglDisableFrameLockI3D glad_wglDisableFrameLockI3D
 typedef BOOL (APIENTRYP PFNWGLISENABLEDFRAMELOCKI3DPROC)(BOOL *pFlag);
@@ -773,10 +803,10 @@ GLAPI int GLAD_WGL_I3D_swap_frame_usage;
 typedef BOOL (APIENTRYP PFNWGLGETFRAMEUSAGEI3DPROC)(float *pUsage);
 GLAPI PFNWGLGETFRAMEUSAGEI3DPROC glad_wglGetFrameUsageI3D;
 #define wglGetFrameUsageI3D glad_wglGetFrameUsageI3D
-typedef BOOL (APIENTRYP PFNWGLBEGINFRAMETRACKINGI3DPROC)();
+typedef BOOL (APIENTRYP PFNWGLBEGINFRAMETRACKINGI3DPROC)(void);
 GLAPI PFNWGLBEGINFRAMETRACKINGI3DPROC glad_wglBeginFrameTrackingI3D;
 #define wglBeginFrameTrackingI3D glad_wglBeginFrameTrackingI3D
-typedef BOOL (APIENTRYP PFNWGLENDFRAMETRACKINGI3DPROC)();
+typedef BOOL (APIENTRYP PFNWGLENDFRAMETRACKINGI3DPROC)(void);
 GLAPI PFNWGLENDFRAMETRACKINGI3DPROC glad_wglEndFrameTrackingI3D;
 #define wglEndFrameTrackingI3D glad_wglEndFrameTrackingI3D
 typedef BOOL (APIENTRYP PFNWGLQUERYFRAMETRACKINGI3DPROC)(DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
@@ -852,6 +882,10 @@ typedef BOOL (APIENTRYP PFNWGLDELETEDCNVPROC)(HDC hdc);
 GLAPI PFNWGLDELETEDCNVPROC glad_wglDeleteDCNV;
 #define wglDeleteDCNV glad_wglDeleteDCNV
 #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
 #define WGL_NV_multisample_coverage 1
 GLAPI int GLAD_WGL_NV_multisample_coverage;
@@ -859,10 +893,10 @@ GLAPI int GLAD_WGL_NV_multisample_coverage;
 #ifndef WGL_NV_present_video
 #define WGL_NV_present_video 1
 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;
 #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;
 #define wglBindVideoDeviceNV glad_wglBindVideoDeviceNV
 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);
 GLAPI PFNWGLSWAPBUFFERSMSCOMLPROC 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;
 #define wglSwapLayerBuffersMscOML glad_wglSwapLayerBuffersMscOML
 typedef BOOL (APIENTRYP PFNWGLWAITFORMSCOMLPROC)(HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);

Diff do ficheiro suprimidas por serem muito extensas
+ 61 - 2
Engine/lib/glad/src/glad.c


+ 257 - 213
Engine/lib/glad/src/glx/glad_glx.c

@@ -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++
     Specification: glx
@@ -11,6 +11,7 @@
         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,
@@ -21,12 +22,14 @@
         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,
@@ -40,6 +43,7 @@
         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,
@@ -72,9 +76,10 @@
     Loader: True
     Local files: False
     Omit khrplatform: False
+    Reproducible: False
 
     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:
         Too many extensions
 */
@@ -86,21 +91,44 @@
 
 static void* get_proc(const char *namez);
 
-#ifdef _WIN32
+#if defined(_WIN32) || defined(__CYGWIN__)
+#ifndef _WINDOWS_
+#undef APIENTRY
+#endif
 #include <windows.h>
 static HMODULE libGL;
 
 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
 int open_gl(void) {
+#ifndef IS_UWP
     libGL = LoadLibraryW(L"opengl32.dll");
     if(libGL != NULL) {
-        gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE)GetProcAddress(
-                libGL, "wglGetProcAddress");
+        void (* tmp)(void);
+        tmp = (void(*)(void)) GetProcAddress(libGL, "wglGetProcAddress");
+        gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE) tmp;
         return gladGetProcAddressPtr != NULL;
     }
+#endif
 
     return 0;
 }
@@ -108,7 +136,7 @@ int open_gl(void) {
 static
 void close_gl(void) {
     if(libGL != NULL) {
-        FreeLibrary(libGL);
+        FreeLibrary((HMODULE) libGL);
         libGL = NULL;
     }
 }
@@ -116,9 +144,9 @@ void close_gl(void) {
 #include <dlfcn.h>
 static void* libGL;
 
-#ifndef __APPLE__
+#if !defined(__APPLE__) && !defined(__HAIKU__)
 typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*);
-PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
+static PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
 #endif
 
 static
@@ -139,7 +167,7 @@ int open_gl(void) {
         libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL);
 
         if(libGL != NULL) {
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__HAIKU__)
             return 1;
 #else
             gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL,
@@ -153,7 +181,7 @@ int open_gl(void) {
 }
 
 static
-void close_gl() {
+void close_gl(void) {
     if(libGL != NULL) {
         dlclose(libGL);
         libGL = NULL;
@@ -166,14 +194,14 @@ void* get_proc(const char *namez) {
     void* result = NULL;
     if(libGL == NULL) return NULL;
 
-#ifndef __APPLE__
+#if !defined(__APPLE__) && !defined(__HAIKU__)
     if(gladGetProcAddressPtr != NULL) {
         result = gladGetProcAddressPtr(namez);
     }
 #endif
     if(result == NULL) {
-#ifdef _WIN32
-        result = (void*)GetProcAddress(libGL, namez);
+#if defined(_WIN32) || defined(__CYGWIN__)
+        result = (void*)GetProcAddress((HMODULE) libGL, namez);
 #else
         result = dlsym(libGL, namez);
 #endif
@@ -234,209 +262,215 @@ static int has_ext(const char *ext) {
     return 0;
 }
 
-int GLAD_GLX_VERSION_1_0;
-int GLAD_GLX_VERSION_1_1;
-int GLAD_GLX_VERSION_1_2;
-int GLAD_GLX_VERSION_1_3;
-int GLAD_GLX_VERSION_1_4;
-PFNGLXGETSELECTEDEVENTPROC glad_glXGetSelectedEvent;
-PFNGLXQUERYEXTENSIONPROC glad_glXQueryExtension;
-PFNGLXMAKECURRENTPROC glad_glXMakeCurrent;
-PFNGLXSELECTEVENTPROC glad_glXSelectEvent;
-PFNGLXCREATECONTEXTPROC glad_glXCreateContext;
-PFNGLXCREATEGLXPIXMAPPROC glad_glXCreateGLXPixmap;
-PFNGLXQUERYVERSIONPROC glad_glXQueryVersion;
-PFNGLXGETCURRENTREADDRAWABLEPROC glad_glXGetCurrentReadDrawable;
-PFNGLXDESTROYPIXMAPPROC glad_glXDestroyPixmap;
-PFNGLXGETCURRENTCONTEXTPROC glad_glXGetCurrentContext;
-PFNGLXGETPROCADDRESSPROC glad_glXGetProcAddress;
-PFNGLXWAITGLPROC glad_glXWaitGL;
-PFNGLXISDIRECTPROC glad_glXIsDirect;
-PFNGLXDESTROYWINDOWPROC glad_glXDestroyWindow;
-PFNGLXCREATEWINDOWPROC glad_glXCreateWindow;
-PFNGLXCOPYCONTEXTPROC glad_glXCopyContext;
-PFNGLXCREATEPBUFFERPROC glad_glXCreatePbuffer;
-PFNGLXSWAPBUFFERSPROC glad_glXSwapBuffers;
-PFNGLXGETCURRENTDISPLAYPROC glad_glXGetCurrentDisplay;
-PFNGLXGETCURRENTDRAWABLEPROC glad_glXGetCurrentDrawable;
-PFNGLXQUERYCONTEXTPROC glad_glXQueryContext;
-PFNGLXCHOOSEVISUALPROC glad_glXChooseVisual;
-PFNGLXQUERYSERVERSTRINGPROC glad_glXQueryServerString;
-PFNGLXDESTROYCONTEXTPROC glad_glXDestroyContext;
-PFNGLXDESTROYGLXPIXMAPPROC glad_glXDestroyGLXPixmap;
-PFNGLXGETFBCONFIGATTRIBPROC glad_glXGetFBConfigAttrib;
-PFNGLXUSEXFONTPROC glad_glXUseXFont;
-PFNGLXDESTROYPBUFFERPROC glad_glXDestroyPbuffer;
-PFNGLXCHOOSEFBCONFIGPROC glad_glXChooseFBConfig;
-PFNGLXCREATENEWCONTEXTPROC glad_glXCreateNewContext;
-PFNGLXMAKECONTEXTCURRENTPROC glad_glXMakeContextCurrent;
-PFNGLXGETCONFIGPROC glad_glXGetConfig;
-PFNGLXGETFBCONFIGSPROC glad_glXGetFBConfigs;
-PFNGLXCREATEPIXMAPPROC glad_glXCreatePixmap;
-PFNGLXWAITXPROC glad_glXWaitX;
-PFNGLXGETVISUALFROMFBCONFIGPROC glad_glXGetVisualFromFBConfig;
-PFNGLXQUERYDRAWABLEPROC glad_glXQueryDrawable;
-PFNGLXQUERYEXTENSIONSSTRINGPROC glad_glXQueryExtensionsString;
-PFNGLXGETCLIENTSTRINGPROC glad_glXGetClientString;
-int GLAD_GLX_ARB_framebuffer_sRGB;
-int GLAD_GLX_EXT_import_context;
-int GLAD_GLX_EXT_libglvnd;
-int GLAD_GLX_SGIS_shared_multisample;
-int GLAD_GLX_SGIX_pbuffer;
-int GLAD_GLX_EXT_swap_control_tear;
-int GLAD_GLX_ARB_fbconfig_float;
-int GLAD_GLX_SGIX_hyperpipe;
-int GLAD_GLX_MESA_set_3dfx_mode;
-int GLAD_GLX_INTEL_swap_event;
-int GLAD_GLX_SGIX_video_resize;
-int GLAD_GLX_MESA_pixmap_colormap;
-int GLAD_GLX_EXT_create_context_es2_profile;
-int GLAD_GLX_ARB_robustness_application_isolation;
-int GLAD_GLX_NV_copy_image;
-int GLAD_GLX_NV_swap_group;
-int GLAD_GLX_OML_sync_control;
-int GLAD_GLX_EXT_framebuffer_sRGB;
-int GLAD_GLX_ARB_create_context_robustness;
-int GLAD_GLX_OML_swap_method;
-int GLAD_GLX_EXT_fbconfig_packed_float;
-int GLAD_GLX_EXT_buffer_age;
-int GLAD_GLX_3DFX_multisample;
-int GLAD_GLX_EXT_visual_info;
-int GLAD_GLX_SGI_video_sync;
-int GLAD_GLX_NV_video_capture;
-int GLAD_GLX_SGIS_multisample;
-int GLAD_GLX_EXT_texture_from_pixmap;
-int GLAD_GLX_NV_video_out;
-int GLAD_GLX_ARB_multisample;
-int GLAD_GLX_NV_delay_before_swap;
-int GLAD_GLX_SGI_make_current_read;
-int GLAD_GLX_SGIX_swap_group;
-int GLAD_GLX_EXT_swap_control;
-int GLAD_GLX_SGIX_video_source;
-int GLAD_GLX_MESA_query_renderer;
-int GLAD_GLX_NV_robustness_video_memory_purge;
-int GLAD_GLX_ARB_create_context;
-int GLAD_GLX_ARB_context_flush_control;
-int GLAD_GLX_ARB_robustness_share_group_isolation;
-int GLAD_GLX_EXT_stereo_tree;
-int GLAD_GLX_SGI_swap_control;
-int GLAD_GLX_SGIX_dmbuffer;
-int GLAD_GLX_SGIX_visual_select_group;
-int GLAD_GLX_SGIS_blended_overlay;
-int GLAD_GLX_NV_multisample_coverage;
-int GLAD_GLX_EXT_create_context_es_profile;
-int GLAD_GLX_SGIX_fbconfig;
-int GLAD_GLX_NV_float_buffer;
-int GLAD_GLX_SGI_cushion;
-int GLAD_GLX_MESA_release_buffers;
-int GLAD_GLX_EXT_visual_rating;
-int GLAD_GLX_MESA_copy_sub_buffer;
-int GLAD_GLX_MESA_agp_offset;
-int GLAD_GLX_NV_copy_buffer;
-int GLAD_GLX_NV_present_video;
-int GLAD_GLX_SUN_get_transparent_index;
-int GLAD_GLX_AMD_gpu_association;
-int GLAD_GLX_ARB_create_context_profile;
-int GLAD_GLX_SGIX_swap_barrier;
-int GLAD_GLX_ARB_get_proc_address;
-int GLAD_GLX_ARB_vertex_buffer_object;
-PFNGLXGETGPUIDSAMDPROC glad_glXGetGPUIDsAMD;
-PFNGLXGETGPUINFOAMDPROC glad_glXGetGPUInfoAMD;
-PFNGLXGETCONTEXTGPUIDAMDPROC glad_glXGetContextGPUIDAMD;
-PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC glad_glXCreateAssociatedContextAMD;
-PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC glad_glXCreateAssociatedContextAttribsAMD;
-PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC glad_glXDeleteAssociatedContextAMD;
-PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_glXMakeAssociatedContextCurrentAMD;
-PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_glXGetCurrentAssociatedContextAMD;
-PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC glad_glXBlitContextFramebufferAMD;
-PFNGLXCREATECONTEXTATTRIBSARBPROC glad_glXCreateContextAttribsARB;
-PFNGLXGETPROCADDRESSARBPROC glad_glXGetProcAddressARB;
-PFNGLXGETCURRENTDISPLAYEXTPROC glad_glXGetCurrentDisplayEXT;
-PFNGLXQUERYCONTEXTINFOEXTPROC glad_glXQueryContextInfoEXT;
-PFNGLXGETCONTEXTIDEXTPROC glad_glXGetContextIDEXT;
-PFNGLXIMPORTCONTEXTEXTPROC glad_glXImportContextEXT;
-PFNGLXFREECONTEXTEXTPROC glad_glXFreeContextEXT;
-PFNGLXSWAPINTERVALEXTPROC glad_glXSwapIntervalEXT;
-PFNGLXBINDTEXIMAGEEXTPROC glad_glXBindTexImageEXT;
-PFNGLXRELEASETEXIMAGEEXTPROC glad_glXReleaseTexImageEXT;
-PFNGLXGETAGPOFFSETMESAPROC glad_glXGetAGPOffsetMESA;
-PFNGLXCOPYSUBBUFFERMESAPROC glad_glXCopySubBufferMESA;
-PFNGLXCREATEGLXPIXMAPMESAPROC glad_glXCreateGLXPixmapMESA;
-PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC glad_glXQueryCurrentRendererIntegerMESA;
-PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC glad_glXQueryCurrentRendererStringMESA;
-PFNGLXQUERYRENDERERINTEGERMESAPROC glad_glXQueryRendererIntegerMESA;
-PFNGLXQUERYRENDERERSTRINGMESAPROC glad_glXQueryRendererStringMESA;
-PFNGLXRELEASEBUFFERSMESAPROC glad_glXReleaseBuffersMESA;
-PFNGLXSET3DFXMODEMESAPROC glad_glXSet3DfxModeMESA;
-PFNGLXCOPYBUFFERSUBDATANVPROC glad_glXCopyBufferSubDataNV;
-PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC glad_glXNamedCopyBufferSubDataNV;
-PFNGLXCOPYIMAGESUBDATANVPROC glad_glXCopyImageSubDataNV;
-PFNGLXDELAYBEFORESWAPNVPROC glad_glXDelayBeforeSwapNV;
-PFNGLXENUMERATEVIDEODEVICESNVPROC glad_glXEnumerateVideoDevicesNV;
-PFNGLXBINDVIDEODEVICENVPROC glad_glXBindVideoDeviceNV;
-PFNGLXJOINSWAPGROUPNVPROC glad_glXJoinSwapGroupNV;
-PFNGLXBINDSWAPBARRIERNVPROC glad_glXBindSwapBarrierNV;
-PFNGLXQUERYSWAPGROUPNVPROC glad_glXQuerySwapGroupNV;
-PFNGLXQUERYMAXSWAPGROUPSNVPROC glad_glXQueryMaxSwapGroupsNV;
-PFNGLXQUERYFRAMECOUNTNVPROC glad_glXQueryFrameCountNV;
-PFNGLXRESETFRAMECOUNTNVPROC glad_glXResetFrameCountNV;
-PFNGLXBINDVIDEOCAPTUREDEVICENVPROC glad_glXBindVideoCaptureDeviceNV;
-PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC glad_glXEnumerateVideoCaptureDevicesNV;
-PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC glad_glXLockVideoCaptureDeviceNV;
-PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC glad_glXQueryVideoCaptureDeviceNV;
-PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC glad_glXReleaseVideoCaptureDeviceNV;
-PFNGLXGETVIDEODEVICENVPROC glad_glXGetVideoDeviceNV;
-PFNGLXRELEASEVIDEODEVICENVPROC glad_glXReleaseVideoDeviceNV;
-PFNGLXBINDVIDEOIMAGENVPROC glad_glXBindVideoImageNV;
-PFNGLXRELEASEVIDEOIMAGENVPROC glad_glXReleaseVideoImageNV;
-PFNGLXSENDPBUFFERTOVIDEONVPROC glad_glXSendPbufferToVideoNV;
-PFNGLXGETVIDEOINFONVPROC glad_glXGetVideoInfoNV;
-PFNGLXGETSYNCVALUESOMLPROC glad_glXGetSyncValuesOML;
-PFNGLXGETMSCRATEOMLPROC glad_glXGetMscRateOML;
-PFNGLXSWAPBUFFERSMSCOMLPROC glad_glXSwapBuffersMscOML;
-PFNGLXWAITFORMSCOMLPROC glad_glXWaitForMscOML;
-PFNGLXWAITFORSBCOMLPROC glad_glXWaitForSbcOML;
+int GLAD_GLX_VERSION_1_0 = 0;
+int GLAD_GLX_VERSION_1_1 = 0;
+int GLAD_GLX_VERSION_1_2 = 0;
+int GLAD_GLX_VERSION_1_3 = 0;
+int GLAD_GLX_VERSION_1_4 = 0;
+PFNGLXCHOOSEFBCONFIGPROC glad_glXChooseFBConfig = NULL;
+PFNGLXCHOOSEVISUALPROC glad_glXChooseVisual = NULL;
+PFNGLXCOPYCONTEXTPROC glad_glXCopyContext = NULL;
+PFNGLXCREATECONTEXTPROC glad_glXCreateContext = NULL;
+PFNGLXCREATEGLXPIXMAPPROC glad_glXCreateGLXPixmap = NULL;
+PFNGLXCREATENEWCONTEXTPROC glad_glXCreateNewContext = NULL;
+PFNGLXCREATEPBUFFERPROC glad_glXCreatePbuffer = NULL;
+PFNGLXCREATEPIXMAPPROC glad_glXCreatePixmap = NULL;
+PFNGLXCREATEWINDOWPROC glad_glXCreateWindow = NULL;
+PFNGLXDESTROYCONTEXTPROC glad_glXDestroyContext = NULL;
+PFNGLXDESTROYGLXPIXMAPPROC glad_glXDestroyGLXPixmap = NULL;
+PFNGLXDESTROYPBUFFERPROC glad_glXDestroyPbuffer = NULL;
+PFNGLXDESTROYPIXMAPPROC glad_glXDestroyPixmap = NULL;
+PFNGLXDESTROYWINDOWPROC glad_glXDestroyWindow = NULL;
+PFNGLXGETCLIENTSTRINGPROC glad_glXGetClientString = NULL;
+PFNGLXGETCONFIGPROC glad_glXGetConfig = NULL;
+PFNGLXGETCURRENTCONTEXTPROC glad_glXGetCurrentContext = NULL;
+PFNGLXGETCURRENTDISPLAYPROC glad_glXGetCurrentDisplay = NULL;
+PFNGLXGETCURRENTDRAWABLEPROC glad_glXGetCurrentDrawable = NULL;
+PFNGLXGETCURRENTREADDRAWABLEPROC glad_glXGetCurrentReadDrawable = NULL;
+PFNGLXGETFBCONFIGATTRIBPROC glad_glXGetFBConfigAttrib = NULL;
+PFNGLXGETFBCONFIGSPROC glad_glXGetFBConfigs = NULL;
+PFNGLXGETPROCADDRESSPROC glad_glXGetProcAddress = NULL;
+PFNGLXGETSELECTEDEVENTPROC glad_glXGetSelectedEvent = NULL;
+PFNGLXGETVISUALFROMFBCONFIGPROC glad_glXGetVisualFromFBConfig = NULL;
+PFNGLXISDIRECTPROC glad_glXIsDirect = NULL;
+PFNGLXMAKECONTEXTCURRENTPROC glad_glXMakeContextCurrent = NULL;
+PFNGLXMAKECURRENTPROC glad_glXMakeCurrent = NULL;
+PFNGLXQUERYCONTEXTPROC glad_glXQueryContext = NULL;
+PFNGLXQUERYDRAWABLEPROC glad_glXQueryDrawable = NULL;
+PFNGLXQUERYEXTENSIONPROC glad_glXQueryExtension = NULL;
+PFNGLXQUERYEXTENSIONSSTRINGPROC glad_glXQueryExtensionsString = NULL;
+PFNGLXQUERYSERVERSTRINGPROC glad_glXQueryServerString = NULL;
+PFNGLXQUERYVERSIONPROC glad_glXQueryVersion = NULL;
+PFNGLXSELECTEVENTPROC glad_glXSelectEvent = NULL;
+PFNGLXSWAPBUFFERSPROC glad_glXSwapBuffers = NULL;
+PFNGLXUSEXFONTPROC glad_glXUseXFont = NULL;
+PFNGLXWAITGLPROC glad_glXWaitGL = NULL;
+PFNGLXWAITXPROC glad_glXWaitX = NULL;
+int GLAD_GLX_3DFX_multisample = 0;
+int GLAD_GLX_AMD_gpu_association = 0;
+int GLAD_GLX_ARB_context_flush_control = 0;
+int GLAD_GLX_ARB_create_context = 0;
+int GLAD_GLX_ARB_create_context_no_error = 0;
+int GLAD_GLX_ARB_create_context_profile = 0;
+int GLAD_GLX_ARB_create_context_robustness = 0;
+int GLAD_GLX_ARB_fbconfig_float = 0;
+int GLAD_GLX_ARB_framebuffer_sRGB = 0;
+int GLAD_GLX_ARB_get_proc_address = 0;
+int GLAD_GLX_ARB_multisample = 0;
+int GLAD_GLX_ARB_robustness_application_isolation = 0;
+int GLAD_GLX_ARB_robustness_share_group_isolation = 0;
+int GLAD_GLX_ARB_vertex_buffer_object = 0;
+int GLAD_GLX_EXT_buffer_age = 0;
+int GLAD_GLX_EXT_context_priority = 0;
+int GLAD_GLX_EXT_create_context_es2_profile = 0;
+int GLAD_GLX_EXT_create_context_es_profile = 0;
+int GLAD_GLX_EXT_fbconfig_packed_float = 0;
+int GLAD_GLX_EXT_framebuffer_sRGB = 0;
+int GLAD_GLX_EXT_import_context = 0;
+int GLAD_GLX_EXT_libglvnd = 0;
+int GLAD_GLX_EXT_no_config_context = 0;
+int GLAD_GLX_EXT_stereo_tree = 0;
+int GLAD_GLX_EXT_swap_control = 0;
+int GLAD_GLX_EXT_swap_control_tear = 0;
+int GLAD_GLX_EXT_texture_from_pixmap = 0;
+int GLAD_GLX_EXT_visual_info = 0;
+int GLAD_GLX_EXT_visual_rating = 0;
+int GLAD_GLX_INTEL_swap_event = 0;
+int GLAD_GLX_MESA_agp_offset = 0;
+int GLAD_GLX_MESA_copy_sub_buffer = 0;
+int GLAD_GLX_MESA_pixmap_colormap = 0;
+int GLAD_GLX_MESA_query_renderer = 0;
+int GLAD_GLX_MESA_release_buffers = 0;
+int GLAD_GLX_MESA_set_3dfx_mode = 0;
+int GLAD_GLX_MESA_swap_control = 0;
+int GLAD_GLX_NV_copy_buffer = 0;
+int GLAD_GLX_NV_copy_image = 0;
+int GLAD_GLX_NV_delay_before_swap = 0;
+int GLAD_GLX_NV_float_buffer = 0;
+int GLAD_GLX_NV_multisample_coverage = 0;
+int GLAD_GLX_NV_present_video = 0;
+int GLAD_GLX_NV_robustness_video_memory_purge = 0;
+int GLAD_GLX_NV_swap_group = 0;
+int GLAD_GLX_NV_video_capture = 0;
+int GLAD_GLX_NV_video_out = 0;
+int GLAD_GLX_OML_swap_method = 0;
+int GLAD_GLX_OML_sync_control = 0;
+int GLAD_GLX_SGIS_blended_overlay = 0;
+int GLAD_GLX_SGIS_multisample = 0;
+int GLAD_GLX_SGIS_shared_multisample = 0;
+int GLAD_GLX_SGIX_dmbuffer = 0;
+int GLAD_GLX_SGIX_fbconfig = 0;
+int GLAD_GLX_SGIX_hyperpipe = 0;
+int GLAD_GLX_SGIX_pbuffer = 0;
+int GLAD_GLX_SGIX_swap_barrier = 0;
+int GLAD_GLX_SGIX_swap_group = 0;
+int GLAD_GLX_SGIX_video_resize = 0;
+int GLAD_GLX_SGIX_video_source = 0;
+int GLAD_GLX_SGIX_visual_select_group = 0;
+int GLAD_GLX_SGI_cushion = 0;
+int GLAD_GLX_SGI_make_current_read = 0;
+int GLAD_GLX_SGI_swap_control = 0;
+int GLAD_GLX_SGI_video_sync = 0;
+int GLAD_GLX_SUN_get_transparent_index = 0;
+PFNGLXGETGPUIDSAMDPROC glad_glXGetGPUIDsAMD = NULL;
+PFNGLXGETGPUINFOAMDPROC glad_glXGetGPUInfoAMD = NULL;
+PFNGLXGETCONTEXTGPUIDAMDPROC glad_glXGetContextGPUIDAMD = NULL;
+PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC glad_glXCreateAssociatedContextAMD = NULL;
+PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC glad_glXCreateAssociatedContextAttribsAMD = NULL;
+PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC glad_glXDeleteAssociatedContextAMD = NULL;
+PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_glXMakeAssociatedContextCurrentAMD = NULL;
+PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_glXGetCurrentAssociatedContextAMD = NULL;
+PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC glad_glXBlitContextFramebufferAMD = NULL;
+PFNGLXCREATECONTEXTATTRIBSARBPROC glad_glXCreateContextAttribsARB = NULL;
+PFNGLXGETPROCADDRESSARBPROC glad_glXGetProcAddressARB = NULL;
+PFNGLXGETCURRENTDISPLAYEXTPROC glad_glXGetCurrentDisplayEXT = NULL;
+PFNGLXQUERYCONTEXTINFOEXTPROC glad_glXQueryContextInfoEXT = NULL;
+PFNGLXGETCONTEXTIDEXTPROC glad_glXGetContextIDEXT = NULL;
+PFNGLXIMPORTCONTEXTEXTPROC glad_glXImportContextEXT = NULL;
+PFNGLXFREECONTEXTEXTPROC glad_glXFreeContextEXT = NULL;
+PFNGLXSWAPINTERVALEXTPROC glad_glXSwapIntervalEXT = NULL;
+PFNGLXBINDTEXIMAGEEXTPROC glad_glXBindTexImageEXT = NULL;
+PFNGLXRELEASETEXIMAGEEXTPROC glad_glXReleaseTexImageEXT = NULL;
+PFNGLXGETAGPOFFSETMESAPROC glad_glXGetAGPOffsetMESA = NULL;
+PFNGLXCOPYSUBBUFFERMESAPROC glad_glXCopySubBufferMESA = NULL;
+PFNGLXCREATEGLXPIXMAPMESAPROC glad_glXCreateGLXPixmapMESA = NULL;
+PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC glad_glXQueryCurrentRendererIntegerMESA = NULL;
+PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC glad_glXQueryCurrentRendererStringMESA = NULL;
+PFNGLXQUERYRENDERERINTEGERMESAPROC glad_glXQueryRendererIntegerMESA = NULL;
+PFNGLXQUERYRENDERERSTRINGMESAPROC glad_glXQueryRendererStringMESA = NULL;
+PFNGLXRELEASEBUFFERSMESAPROC glad_glXReleaseBuffersMESA = NULL;
+PFNGLXSET3DFXMODEMESAPROC glad_glXSet3DfxModeMESA = NULL;
+PFNGLXGETSWAPINTERVALMESAPROC glad_glXGetSwapIntervalMESA = NULL;
+PFNGLXSWAPINTERVALMESAPROC glad_glXSwapIntervalMESA = NULL;
+PFNGLXCOPYBUFFERSUBDATANVPROC glad_glXCopyBufferSubDataNV = NULL;
+PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC glad_glXNamedCopyBufferSubDataNV = NULL;
+PFNGLXCOPYIMAGESUBDATANVPROC glad_glXCopyImageSubDataNV = NULL;
+PFNGLXDELAYBEFORESWAPNVPROC glad_glXDelayBeforeSwapNV = NULL;
+PFNGLXENUMERATEVIDEODEVICESNVPROC glad_glXEnumerateVideoDevicesNV = NULL;
+PFNGLXBINDVIDEODEVICENVPROC glad_glXBindVideoDeviceNV = NULL;
+PFNGLXJOINSWAPGROUPNVPROC glad_glXJoinSwapGroupNV = NULL;
+PFNGLXBINDSWAPBARRIERNVPROC glad_glXBindSwapBarrierNV = NULL;
+PFNGLXQUERYSWAPGROUPNVPROC glad_glXQuerySwapGroupNV = NULL;
+PFNGLXQUERYMAXSWAPGROUPSNVPROC glad_glXQueryMaxSwapGroupsNV = NULL;
+PFNGLXQUERYFRAMECOUNTNVPROC glad_glXQueryFrameCountNV = NULL;
+PFNGLXRESETFRAMECOUNTNVPROC glad_glXResetFrameCountNV = NULL;
+PFNGLXBINDVIDEOCAPTUREDEVICENVPROC glad_glXBindVideoCaptureDeviceNV = NULL;
+PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC glad_glXEnumerateVideoCaptureDevicesNV = NULL;
+PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC glad_glXLockVideoCaptureDeviceNV = NULL;
+PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC glad_glXQueryVideoCaptureDeviceNV = NULL;
+PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC glad_glXReleaseVideoCaptureDeviceNV = NULL;
+PFNGLXGETVIDEODEVICENVPROC glad_glXGetVideoDeviceNV = NULL;
+PFNGLXRELEASEVIDEODEVICENVPROC glad_glXReleaseVideoDeviceNV = NULL;
+PFNGLXBINDVIDEOIMAGENVPROC glad_glXBindVideoImageNV = NULL;
+PFNGLXRELEASEVIDEOIMAGENVPROC glad_glXReleaseVideoImageNV = NULL;
+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_
-PFNGLXASSOCIATEDMPBUFFERSGIXPROC glad_glXAssociateDMPbufferSGIX;
+PFNGLXASSOCIATEDMPBUFFERSGIXPROC glad_glXAssociateDMPbufferSGIX = NULL;
 #endif
-PFNGLXGETFBCONFIGATTRIBSGIXPROC glad_glXGetFBConfigAttribSGIX;
-PFNGLXCHOOSEFBCONFIGSGIXPROC glad_glXChooseFBConfigSGIX;
-PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC glad_glXCreateGLXPixmapWithConfigSGIX;
-PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC glad_glXCreateContextWithConfigSGIX;
-PFNGLXGETVISUALFROMFBCONFIGSGIXPROC glad_glXGetVisualFromFBConfigSGIX;
-PFNGLXGETFBCONFIGFROMVISUALSGIXPROC glad_glXGetFBConfigFromVisualSGIX;
-PFNGLXQUERYHYPERPIPENETWORKSGIXPROC glad_glXQueryHyperpipeNetworkSGIX;
-PFNGLXHYPERPIPECONFIGSGIXPROC glad_glXHyperpipeConfigSGIX;
-PFNGLXQUERYHYPERPIPECONFIGSGIXPROC glad_glXQueryHyperpipeConfigSGIX;
-PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC glad_glXDestroyHyperpipeConfigSGIX;
-PFNGLXBINDHYPERPIPESGIXPROC glad_glXBindHyperpipeSGIX;
-PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC glad_glXQueryHyperpipeBestAttribSGIX;
-PFNGLXHYPERPIPEATTRIBSGIXPROC glad_glXHyperpipeAttribSGIX;
-PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC glad_glXQueryHyperpipeAttribSGIX;
-PFNGLXCREATEGLXPBUFFERSGIXPROC glad_glXCreateGLXPbufferSGIX;
-PFNGLXDESTROYGLXPBUFFERSGIXPROC glad_glXDestroyGLXPbufferSGIX;
-PFNGLXQUERYGLXPBUFFERSGIXPROC glad_glXQueryGLXPbufferSGIX;
-PFNGLXSELECTEVENTSGIXPROC glad_glXSelectEventSGIX;
-PFNGLXGETSELECTEDEVENTSGIXPROC glad_glXGetSelectedEventSGIX;
-PFNGLXBINDSWAPBARRIERSGIXPROC glad_glXBindSwapBarrierSGIX;
-PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC glad_glXQueryMaxSwapBarriersSGIX;
-PFNGLXJOINSWAPGROUPSGIXPROC glad_glXJoinSwapGroupSGIX;
-PFNGLXBINDCHANNELTOWINDOWSGIXPROC glad_glXBindChannelToWindowSGIX;
-PFNGLXCHANNELRECTSGIXPROC glad_glXChannelRectSGIX;
-PFNGLXQUERYCHANNELRECTSGIXPROC glad_glXQueryChannelRectSGIX;
-PFNGLXQUERYCHANNELDELTASSGIXPROC glad_glXQueryChannelDeltasSGIX;
-PFNGLXCHANNELRECTSYNCSGIXPROC glad_glXChannelRectSyncSGIX;
+PFNGLXGETFBCONFIGATTRIBSGIXPROC glad_glXGetFBConfigAttribSGIX = NULL;
+PFNGLXCHOOSEFBCONFIGSGIXPROC glad_glXChooseFBConfigSGIX = NULL;
+PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC glad_glXCreateGLXPixmapWithConfigSGIX = NULL;
+PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC glad_glXCreateContextWithConfigSGIX = NULL;
+PFNGLXGETVISUALFROMFBCONFIGSGIXPROC glad_glXGetVisualFromFBConfigSGIX = NULL;
+PFNGLXGETFBCONFIGFROMVISUALSGIXPROC glad_glXGetFBConfigFromVisualSGIX = NULL;
+PFNGLXQUERYHYPERPIPENETWORKSGIXPROC glad_glXQueryHyperpipeNetworkSGIX = NULL;
+PFNGLXHYPERPIPECONFIGSGIXPROC glad_glXHyperpipeConfigSGIX = NULL;
+PFNGLXQUERYHYPERPIPECONFIGSGIXPROC glad_glXQueryHyperpipeConfigSGIX = NULL;
+PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC glad_glXDestroyHyperpipeConfigSGIX = NULL;
+PFNGLXBINDHYPERPIPESGIXPROC glad_glXBindHyperpipeSGIX = NULL;
+PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC glad_glXQueryHyperpipeBestAttribSGIX = NULL;
+PFNGLXHYPERPIPEATTRIBSGIXPROC glad_glXHyperpipeAttribSGIX = NULL;
+PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC glad_glXQueryHyperpipeAttribSGIX = NULL;
+PFNGLXCREATEGLXPBUFFERSGIXPROC glad_glXCreateGLXPbufferSGIX = NULL;
+PFNGLXDESTROYGLXPBUFFERSGIXPROC glad_glXDestroyGLXPbufferSGIX = NULL;
+PFNGLXQUERYGLXPBUFFERSGIXPROC glad_glXQueryGLXPbufferSGIX = NULL;
+PFNGLXSELECTEVENTSGIXPROC glad_glXSelectEventSGIX = NULL;
+PFNGLXGETSELECTEDEVENTSGIXPROC glad_glXGetSelectedEventSGIX = NULL;
+PFNGLXBINDSWAPBARRIERSGIXPROC glad_glXBindSwapBarrierSGIX = NULL;
+PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC glad_glXQueryMaxSwapBarriersSGIX = NULL;
+PFNGLXJOINSWAPGROUPSGIXPROC glad_glXJoinSwapGroupSGIX = NULL;
+PFNGLXBINDCHANNELTOWINDOWSGIXPROC glad_glXBindChannelToWindowSGIX = NULL;
+PFNGLXCHANNELRECTSGIXPROC glad_glXChannelRectSGIX = NULL;
+PFNGLXQUERYCHANNELRECTSGIXPROC glad_glXQueryChannelRectSGIX = NULL;
+PFNGLXQUERYCHANNELDELTASSGIXPROC glad_glXQueryChannelDeltasSGIX = NULL;
+PFNGLXCHANNELRECTSYNCSGIXPROC glad_glXChannelRectSyncSGIX = NULL;
 #ifdef _VL_H_
-PFNGLXCREATEGLXVIDEOSOURCESGIXPROC glad_glXCreateGLXVideoSourceSGIX;
-PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC glad_glXDestroyGLXVideoSourceSGIX;
+PFNGLXCREATEGLXVIDEOSOURCESGIXPROC glad_glXCreateGLXVideoSourceSGIX = NULL;
+PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC glad_glXDestroyGLXVideoSourceSGIX = NULL;
 #endif
-PFNGLXCUSHIONSGIPROC glad_glXCushionSGI;
-PFNGLXMAKECURRENTREADSGIPROC glad_glXMakeCurrentReadSGI;
-PFNGLXGETCURRENTREADDRAWABLESGIPROC glad_glXGetCurrentReadDrawableSGI;
-PFNGLXSWAPINTERVALSGIPROC glad_glXSwapIntervalSGI;
-PFNGLXGETVIDEOSYNCSGIPROC glad_glXGetVideoSyncSGI;
-PFNGLXWAITVIDEOSYNCSGIPROC glad_glXWaitVideoSyncSGI;
-PFNGLXGETTRANSPARENTINDEXSUNPROC glad_glXGetTransparentIndexSUN;
+PFNGLXCUSHIONSGIPROC glad_glXCushionSGI = NULL;
+PFNGLXMAKECURRENTREADSGIPROC glad_glXMakeCurrentReadSGI = NULL;
+PFNGLXGETCURRENTREADDRAWABLESGIPROC glad_glXGetCurrentReadDrawableSGI = NULL;
+PFNGLXSWAPINTERVALSGIPROC glad_glXSwapIntervalSGI = NULL;
+PFNGLXGETVIDEOSYNCSGIPROC glad_glXGetVideoSyncSGI = NULL;
+PFNGLXWAITVIDEOSYNCSGIPROC glad_glXWaitVideoSyncSGI = NULL;
+PFNGLXGETTRANSPARENTINDEXSUNPROC glad_glXGetTransparentIndexSUN = NULL;
 static void load_GLX_VERSION_1_0(GLADloadproc load) {
 	if(!GLAD_GLX_VERSION_1_0) return;
 	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;
 	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) {
 	if(!GLAD_GLX_NV_copy_buffer) return;
 	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_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_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_robustness = has_ext("GLX_ARB_create_context_robustness");
 	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_vertex_buffer_object = has_ext("GLX_ARB_vertex_buffer_object");
 	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_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_framebuffer_sRGB = has_ext("GLX_EXT_framebuffer_sRGB");
 	GLAD_GLX_EXT_import_context = has_ext("GLX_EXT_import_context");
 	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_swap_control = has_ext("GLX_EXT_swap_control");
 	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_release_buffers = has_ext("GLX_MESA_release_buffers");
 	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_image = has_ext("GLX_NV_copy_image");
 	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_release_buffers(load);
 	load_GLX_MESA_set_3dfx_mode(load);
+	load_GLX_MESA_swap_control(load);
 	load_GLX_NV_copy_buffer(load);
 	load_GLX_NV_copy_image(load);
 	load_GLX_NV_delay_before_swap(load);

+ 224 - 188
Engine/lib/glad/src/wgl/glad_wgl.c

@@ -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++
     Specification: wgl
@@ -13,6 +13,7 @@
         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,
@@ -26,6 +27,8 @@
         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,
@@ -51,6 +54,7 @@
         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,
@@ -63,11 +67,12 @@
     Loader: True
     Local files: False
     Omit khrplatform: False
+    Reproducible: False
 
     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:
-        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>
@@ -77,21 +82,44 @@
 
 static void* get_proc(const char *namez);
 
-#ifdef _WIN32
+#if defined(_WIN32) || defined(__CYGWIN__)
+#ifndef _WINDOWS_
+#undef APIENTRY
+#endif
 #include <windows.h>
 static HMODULE libGL;
 
 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
 int open_gl(void) {
+#ifndef IS_UWP
     libGL = LoadLibraryW(L"opengl32.dll");
     if(libGL != NULL) {
-        gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE)GetProcAddress(
-                libGL, "wglGetProcAddress");
+        void (* tmp)(void);
+        tmp = (void(*)(void)) GetProcAddress(libGL, "wglGetProcAddress");
+        gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE) tmp;
         return gladGetProcAddressPtr != NULL;
     }
+#endif
 
     return 0;
 }
@@ -99,7 +127,7 @@ int open_gl(void) {
 static
 void close_gl(void) {
     if(libGL != NULL) {
-        FreeLibrary(libGL);
+        FreeLibrary((HMODULE) libGL);
         libGL = NULL;
     }
 }
@@ -107,9 +135,9 @@ void close_gl(void) {
 #include <dlfcn.h>
 static void* libGL;
 
-#ifndef __APPLE__
+#if !defined(__APPLE__) && !defined(__HAIKU__)
 typedef void* (APIENTRYP PFNGLXGETPROCADDRESSPROC_PRIVATE)(const char*);
-PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
+static PFNGLXGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
 #endif
 
 static
@@ -130,7 +158,7 @@ int open_gl(void) {
         libGL = dlopen(NAMES[index], RTLD_NOW | RTLD_GLOBAL);
 
         if(libGL != NULL) {
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__HAIKU__)
             return 1;
 #else
             gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL,
@@ -144,7 +172,7 @@ int open_gl(void) {
 }
 
 static
-void close_gl() {
+void close_gl(void) {
     if(libGL != NULL) {
         dlclose(libGL);
         libGL = NULL;
@@ -157,14 +185,14 @@ void* get_proc(const char *namez) {
     void* result = NULL;
     if(libGL == NULL) return NULL;
 
-#ifndef __APPLE__
+#if !defined(__APPLE__) && !defined(__HAIKU__)
     if(gladGetProcAddressPtr != NULL) {
         result = gladGetProcAddressPtr(namez);
     }
 #endif
     if(result == NULL) {
-#ifdef _WIN32
-        result = (void*)GetProcAddress(libGL, namez);
+#if defined(_WIN32) || defined(__CYGWIN__)
+        result = (void*)GetProcAddress((HMODULE) libGL, namez);
 #else
         result = dlsym(libGL, namez);
 #endif
@@ -226,179 +254,183 @@ static int has_ext(const char *ext) {
 
     return 0;
 }
-int GLAD_WGL_VERSION_1_0;
-int GLAD_WGL_NV_multisample_coverage;
-int GLAD_WGL_I3D_image_buffer;
-int GLAD_WGL_I3D_swap_frame_usage;
-int GLAD_WGL_NV_DX_interop2;
-int GLAD_WGL_OML_sync_control;
-int GLAD_WGL_NV_float_buffer;
-int GLAD_WGL_NV_delay_before_swap;
-int GLAD_WGL_NV_video_capture;
-int GLAD_WGL_ARB_pixel_format_float;
-int GLAD_WGL_ARB_create_context_profile;
-int GLAD_WGL_NV_swap_group;
-int GLAD_WGL_NV_gpu_affinity;
-int GLAD_WGL_EXT_pixel_format;
-int GLAD_WGL_ARB_extensions_string;
-int GLAD_WGL_NV_render_texture_rectangle;
-int GLAD_WGL_EXT_create_context_es_profile;
-int GLAD_WGL_ARB_robustness_share_group_isolation;
-int GLAD_WGL_ARB_create_context_robustness;
-int GLAD_WGL_EXT_depth_float;
-int GLAD_WGL_EXT_swap_control_tear;
-int GLAD_WGL_ARB_context_flush_control;
-int GLAD_WGL_ARB_pixel_format;
-int GLAD_WGL_ARB_multisample;
-int GLAD_WGL_I3D_genlock;
-int GLAD_WGL_NV_vertex_array_range;
-int GLAD_WGL_3DL_stereo_control;
-int GLAD_WGL_EXT_pbuffer;
-int GLAD_WGL_EXT_display_color_table;
-int GLAD_WGL_NV_video_output;
-int GLAD_WGL_ARB_robustness_application_isolation;
-int GLAD_WGL_3DFX_multisample;
-int GLAD_WGL_I3D_gamma;
-int GLAD_WGL_ARB_framebuffer_sRGB;
-int GLAD_WGL_NV_copy_image;
-int GLAD_WGL_EXT_framebuffer_sRGB;
-int GLAD_WGL_NV_present_video;
-int GLAD_WGL_EXT_create_context_es2_profile;
-int GLAD_WGL_ARB_render_texture;
-int GLAD_WGL_ARB_make_current_read;
-int GLAD_WGL_EXT_multisample;
-int GLAD_WGL_ARB_create_context;
-int GLAD_WGL_EXT_extensions_string;
-int GLAD_WGL_NV_render_depth_texture;
-int GLAD_WGL_ATI_pixel_format_float;
-int GLAD_WGL_EXT_swap_control;
-int GLAD_WGL_I3D_digital_video_control;
-int GLAD_WGL_ARB_pbuffer;
-int GLAD_WGL_NV_DX_interop;
-int GLAD_WGL_AMD_gpu_association;
-int GLAD_WGL_EXT_pixel_format_packed_float;
-int GLAD_WGL_EXT_make_current_read;
-int GLAD_WGL_I3D_swap_frame_lock;
-int GLAD_WGL_ARB_buffer_region;
-PFNWGLSETSTEREOEMITTERSTATE3DLPROC glad_wglSetStereoEmitterState3DL;
-PFNWGLGETGPUIDSAMDPROC glad_wglGetGPUIDsAMD;
-PFNWGLGETGPUINFOAMDPROC glad_wglGetGPUInfoAMD;
-PFNWGLGETCONTEXTGPUIDAMDPROC glad_wglGetContextGPUIDAMD;
-PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC glad_wglCreateAssociatedContextAMD;
-PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC glad_wglCreateAssociatedContextAttribsAMD;
-PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC glad_wglDeleteAssociatedContextAMD;
-PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_wglMakeAssociatedContextCurrentAMD;
-PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_wglGetCurrentAssociatedContextAMD;
-PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC glad_wglBlitContextFramebufferAMD;
-PFNWGLCREATEBUFFERREGIONARBPROC glad_wglCreateBufferRegionARB;
-PFNWGLDELETEBUFFERREGIONARBPROC glad_wglDeleteBufferRegionARB;
-PFNWGLSAVEBUFFERREGIONARBPROC glad_wglSaveBufferRegionARB;
-PFNWGLRESTOREBUFFERREGIONARBPROC glad_wglRestoreBufferRegionARB;
-PFNWGLCREATECONTEXTATTRIBSARBPROC glad_wglCreateContextAttribsARB;
-PFNWGLGETEXTENSIONSSTRINGARBPROC glad_wglGetExtensionsStringARB;
-PFNWGLMAKECONTEXTCURRENTARBPROC glad_wglMakeContextCurrentARB;
-PFNWGLGETCURRENTREADDCARBPROC glad_wglGetCurrentReadDCARB;
-PFNWGLCREATEPBUFFERARBPROC glad_wglCreatePbufferARB;
-PFNWGLGETPBUFFERDCARBPROC glad_wglGetPbufferDCARB;
-PFNWGLRELEASEPBUFFERDCARBPROC glad_wglReleasePbufferDCARB;
-PFNWGLDESTROYPBUFFERARBPROC glad_wglDestroyPbufferARB;
-PFNWGLQUERYPBUFFERARBPROC glad_wglQueryPbufferARB;
-PFNWGLGETPIXELFORMATATTRIBIVARBPROC glad_wglGetPixelFormatAttribivARB;
-PFNWGLGETPIXELFORMATATTRIBFVARBPROC glad_wglGetPixelFormatAttribfvARB;
-PFNWGLCHOOSEPIXELFORMATARBPROC glad_wglChoosePixelFormatARB;
-PFNWGLBINDTEXIMAGEARBPROC glad_wglBindTexImageARB;
-PFNWGLRELEASETEXIMAGEARBPROC glad_wglReleaseTexImageARB;
-PFNWGLSETPBUFFERATTRIBARBPROC glad_wglSetPbufferAttribARB;
-PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC glad_wglCreateDisplayColorTableEXT;
-PFNWGLLOADDISPLAYCOLORTABLEEXTPROC glad_wglLoadDisplayColorTableEXT;
-PFNWGLBINDDISPLAYCOLORTABLEEXTPROC glad_wglBindDisplayColorTableEXT;
-PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC glad_wglDestroyDisplayColorTableEXT;
-PFNWGLGETEXTENSIONSSTRINGEXTPROC glad_wglGetExtensionsStringEXT;
-PFNWGLMAKECONTEXTCURRENTEXTPROC glad_wglMakeContextCurrentEXT;
-PFNWGLGETCURRENTREADDCEXTPROC glad_wglGetCurrentReadDCEXT;
-PFNWGLCREATEPBUFFEREXTPROC glad_wglCreatePbufferEXT;
-PFNWGLGETPBUFFERDCEXTPROC glad_wglGetPbufferDCEXT;
-PFNWGLRELEASEPBUFFERDCEXTPROC glad_wglReleasePbufferDCEXT;
-PFNWGLDESTROYPBUFFEREXTPROC glad_wglDestroyPbufferEXT;
-PFNWGLQUERYPBUFFEREXTPROC glad_wglQueryPbufferEXT;
-PFNWGLGETPIXELFORMATATTRIBIVEXTPROC glad_wglGetPixelFormatAttribivEXT;
-PFNWGLGETPIXELFORMATATTRIBFVEXTPROC glad_wglGetPixelFormatAttribfvEXT;
-PFNWGLCHOOSEPIXELFORMATEXTPROC glad_wglChoosePixelFormatEXT;
-PFNWGLSWAPINTERVALEXTPROC glad_wglSwapIntervalEXT;
-PFNWGLGETSWAPINTERVALEXTPROC glad_wglGetSwapIntervalEXT;
-PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC glad_wglGetDigitalVideoParametersI3D;
-PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC glad_wglSetDigitalVideoParametersI3D;
-PFNWGLGETGAMMATABLEPARAMETERSI3DPROC glad_wglGetGammaTableParametersI3D;
-PFNWGLSETGAMMATABLEPARAMETERSI3DPROC glad_wglSetGammaTableParametersI3D;
-PFNWGLGETGAMMATABLEI3DPROC glad_wglGetGammaTableI3D;
-PFNWGLSETGAMMATABLEI3DPROC glad_wglSetGammaTableI3D;
-PFNWGLENABLEGENLOCKI3DPROC glad_wglEnableGenlockI3D;
-PFNWGLDISABLEGENLOCKI3DPROC glad_wglDisableGenlockI3D;
-PFNWGLISENABLEDGENLOCKI3DPROC glad_wglIsEnabledGenlockI3D;
-PFNWGLGENLOCKSOURCEI3DPROC glad_wglGenlockSourceI3D;
-PFNWGLGETGENLOCKSOURCEI3DPROC glad_wglGetGenlockSourceI3D;
-PFNWGLGENLOCKSOURCEEDGEI3DPROC glad_wglGenlockSourceEdgeI3D;
-PFNWGLGETGENLOCKSOURCEEDGEI3DPROC glad_wglGetGenlockSourceEdgeI3D;
-PFNWGLGENLOCKSAMPLERATEI3DPROC glad_wglGenlockSampleRateI3D;
-PFNWGLGETGENLOCKSAMPLERATEI3DPROC glad_wglGetGenlockSampleRateI3D;
-PFNWGLGENLOCKSOURCEDELAYI3DPROC glad_wglGenlockSourceDelayI3D;
-PFNWGLGETGENLOCKSOURCEDELAYI3DPROC glad_wglGetGenlockSourceDelayI3D;
-PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC glad_wglQueryGenlockMaxSourceDelayI3D;
-PFNWGLCREATEIMAGEBUFFERI3DPROC glad_wglCreateImageBufferI3D;
-PFNWGLDESTROYIMAGEBUFFERI3DPROC glad_wglDestroyImageBufferI3D;
-PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC glad_wglAssociateImageBufferEventsI3D;
-PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC glad_wglReleaseImageBufferEventsI3D;
-PFNWGLENABLEFRAMELOCKI3DPROC glad_wglEnableFrameLockI3D;
-PFNWGLDISABLEFRAMELOCKI3DPROC glad_wglDisableFrameLockI3D;
-PFNWGLISENABLEDFRAMELOCKI3DPROC glad_wglIsEnabledFrameLockI3D;
-PFNWGLQUERYFRAMELOCKMASTERI3DPROC glad_wglQueryFrameLockMasterI3D;
-PFNWGLGETFRAMEUSAGEI3DPROC glad_wglGetFrameUsageI3D;
-PFNWGLBEGINFRAMETRACKINGI3DPROC glad_wglBeginFrameTrackingI3D;
-PFNWGLENDFRAMETRACKINGI3DPROC glad_wglEndFrameTrackingI3D;
-PFNWGLQUERYFRAMETRACKINGI3DPROC glad_wglQueryFrameTrackingI3D;
-PFNWGLDXSETRESOURCESHAREHANDLENVPROC glad_wglDXSetResourceShareHandleNV;
-PFNWGLDXOPENDEVICENVPROC glad_wglDXOpenDeviceNV;
-PFNWGLDXCLOSEDEVICENVPROC glad_wglDXCloseDeviceNV;
-PFNWGLDXREGISTEROBJECTNVPROC glad_wglDXRegisterObjectNV;
-PFNWGLDXUNREGISTEROBJECTNVPROC glad_wglDXUnregisterObjectNV;
-PFNWGLDXOBJECTACCESSNVPROC glad_wglDXObjectAccessNV;
-PFNWGLDXLOCKOBJECTSNVPROC glad_wglDXLockObjectsNV;
-PFNWGLDXUNLOCKOBJECTSNVPROC glad_wglDXUnlockObjectsNV;
-PFNWGLCOPYIMAGESUBDATANVPROC glad_wglCopyImageSubDataNV;
-PFNWGLDELAYBEFORESWAPNVPROC glad_wglDelayBeforeSwapNV;
-PFNWGLENUMGPUSNVPROC glad_wglEnumGpusNV;
-PFNWGLENUMGPUDEVICESNVPROC glad_wglEnumGpuDevicesNV;
-PFNWGLCREATEAFFINITYDCNVPROC glad_wglCreateAffinityDCNV;
-PFNWGLENUMGPUSFROMAFFINITYDCNVPROC glad_wglEnumGpusFromAffinityDCNV;
-PFNWGLDELETEDCNVPROC glad_wglDeleteDCNV;
-PFNWGLENUMERATEVIDEODEVICESNVPROC glad_wglEnumerateVideoDevicesNV;
-PFNWGLBINDVIDEODEVICENVPROC glad_wglBindVideoDeviceNV;
-PFNWGLQUERYCURRENTCONTEXTNVPROC glad_wglQueryCurrentContextNV;
-PFNWGLJOINSWAPGROUPNVPROC glad_wglJoinSwapGroupNV;
-PFNWGLBINDSWAPBARRIERNVPROC glad_wglBindSwapBarrierNV;
-PFNWGLQUERYSWAPGROUPNVPROC glad_wglQuerySwapGroupNV;
-PFNWGLQUERYMAXSWAPGROUPSNVPROC glad_wglQueryMaxSwapGroupsNV;
-PFNWGLQUERYFRAMECOUNTNVPROC glad_wglQueryFrameCountNV;
-PFNWGLRESETFRAMECOUNTNVPROC glad_wglResetFrameCountNV;
-PFNWGLALLOCATEMEMORYNVPROC glad_wglAllocateMemoryNV;
-PFNWGLFREEMEMORYNVPROC glad_wglFreeMemoryNV;
-PFNWGLBINDVIDEOCAPTUREDEVICENVPROC glad_wglBindVideoCaptureDeviceNV;
-PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC glad_wglEnumerateVideoCaptureDevicesNV;
-PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC glad_wglLockVideoCaptureDeviceNV;
-PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC glad_wglQueryVideoCaptureDeviceNV;
-PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC glad_wglReleaseVideoCaptureDeviceNV;
-PFNWGLGETVIDEODEVICENVPROC glad_wglGetVideoDeviceNV;
-PFNWGLRELEASEVIDEODEVICENVPROC glad_wglReleaseVideoDeviceNV;
-PFNWGLBINDVIDEOIMAGENVPROC glad_wglBindVideoImageNV;
-PFNWGLRELEASEVIDEOIMAGENVPROC glad_wglReleaseVideoImageNV;
-PFNWGLSENDPBUFFERTOVIDEONVPROC glad_wglSendPbufferToVideoNV;
-PFNWGLGETVIDEOINFONVPROC glad_wglGetVideoInfoNV;
-PFNWGLGETSYNCVALUESOMLPROC glad_wglGetSyncValuesOML;
-PFNWGLGETMSCRATEOMLPROC glad_wglGetMscRateOML;
-PFNWGLSWAPBUFFERSMSCOMLPROC glad_wglSwapBuffersMscOML;
-PFNWGLSWAPLAYERBUFFERSMSCOMLPROC glad_wglSwapLayerBuffersMscOML;
-PFNWGLWAITFORMSCOMLPROC glad_wglWaitForMscOML;
-PFNWGLWAITFORSBCOMLPROC glad_wglWaitForSbcOML;
+int GLAD_WGL_VERSION_1_0 = 0;
+int GLAD_WGL_3DFX_multisample = 0;
+int GLAD_WGL_3DL_stereo_control = 0;
+int GLAD_WGL_AMD_gpu_association = 0;
+int GLAD_WGL_ARB_buffer_region = 0;
+int GLAD_WGL_ARB_context_flush_control = 0;
+int GLAD_WGL_ARB_create_context = 0;
+int GLAD_WGL_ARB_create_context_no_error = 0;
+int GLAD_WGL_ARB_create_context_profile = 0;
+int GLAD_WGL_ARB_create_context_robustness = 0;
+int GLAD_WGL_ARB_extensions_string = 0;
+int GLAD_WGL_ARB_framebuffer_sRGB = 0;
+int GLAD_WGL_ARB_make_current_read = 0;
+int GLAD_WGL_ARB_multisample = 0;
+int GLAD_WGL_ARB_pbuffer = 0;
+int GLAD_WGL_ARB_pixel_format = 0;
+int GLAD_WGL_ARB_pixel_format_float = 0;
+int GLAD_WGL_ARB_render_texture = 0;
+int GLAD_WGL_ARB_robustness_application_isolation = 0;
+int GLAD_WGL_ARB_robustness_share_group_isolation = 0;
+int GLAD_WGL_ATI_pixel_format_float = 0;
+int GLAD_WGL_ATI_render_texture_rectangle = 0;
+int GLAD_WGL_EXT_colorspace = 0;
+int GLAD_WGL_EXT_create_context_es2_profile = 0;
+int GLAD_WGL_EXT_create_context_es_profile = 0;
+int GLAD_WGL_EXT_depth_float = 0;
+int GLAD_WGL_EXT_display_color_table = 0;
+int GLAD_WGL_EXT_extensions_string = 0;
+int GLAD_WGL_EXT_framebuffer_sRGB = 0;
+int GLAD_WGL_EXT_make_current_read = 0;
+int GLAD_WGL_EXT_multisample = 0;
+int GLAD_WGL_EXT_pbuffer = 0;
+int GLAD_WGL_EXT_pixel_format = 0;
+int GLAD_WGL_EXT_pixel_format_packed_float = 0;
+int GLAD_WGL_EXT_swap_control = 0;
+int GLAD_WGL_EXT_swap_control_tear = 0;
+int GLAD_WGL_I3D_digital_video_control = 0;
+int GLAD_WGL_I3D_gamma = 0;
+int GLAD_WGL_I3D_genlock = 0;
+int GLAD_WGL_I3D_image_buffer = 0;
+int GLAD_WGL_I3D_swap_frame_lock = 0;
+int GLAD_WGL_I3D_swap_frame_usage = 0;
+int GLAD_WGL_NV_DX_interop = 0;
+int GLAD_WGL_NV_DX_interop2 = 0;
+int GLAD_WGL_NV_copy_image = 0;
+int GLAD_WGL_NV_delay_before_swap = 0;
+int GLAD_WGL_NV_float_buffer = 0;
+int GLAD_WGL_NV_gpu_affinity = 0;
+int GLAD_WGL_NV_multigpu_context = 0;
+int GLAD_WGL_NV_multisample_coverage = 0;
+int GLAD_WGL_NV_present_video = 0;
+int GLAD_WGL_NV_render_depth_texture = 0;
+int GLAD_WGL_NV_render_texture_rectangle = 0;
+int GLAD_WGL_NV_swap_group = 0;
+int GLAD_WGL_NV_vertex_array_range = 0;
+int GLAD_WGL_NV_video_capture = 0;
+int GLAD_WGL_NV_video_output = 0;
+int GLAD_WGL_OML_sync_control = 0;
+PFNWGLSETSTEREOEMITTERSTATE3DLPROC glad_wglSetStereoEmitterState3DL = NULL;
+PFNWGLGETGPUIDSAMDPROC glad_wglGetGPUIDsAMD = NULL;
+PFNWGLGETGPUINFOAMDPROC glad_wglGetGPUInfoAMD = NULL;
+PFNWGLGETCONTEXTGPUIDAMDPROC glad_wglGetContextGPUIDAMD = NULL;
+PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC glad_wglCreateAssociatedContextAMD = NULL;
+PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC glad_wglCreateAssociatedContextAttribsAMD = NULL;
+PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC glad_wglDeleteAssociatedContextAMD = NULL;
+PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC glad_wglMakeAssociatedContextCurrentAMD = NULL;
+PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC glad_wglGetCurrentAssociatedContextAMD = NULL;
+PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC glad_wglBlitContextFramebufferAMD = NULL;
+PFNWGLCREATEBUFFERREGIONARBPROC glad_wglCreateBufferRegionARB = NULL;
+PFNWGLDELETEBUFFERREGIONARBPROC glad_wglDeleteBufferRegionARB = NULL;
+PFNWGLSAVEBUFFERREGIONARBPROC glad_wglSaveBufferRegionARB = NULL;
+PFNWGLRESTOREBUFFERREGIONARBPROC glad_wglRestoreBufferRegionARB = NULL;
+PFNWGLCREATECONTEXTATTRIBSARBPROC glad_wglCreateContextAttribsARB = NULL;
+PFNWGLGETEXTENSIONSSTRINGARBPROC glad_wglGetExtensionsStringARB = NULL;
+PFNWGLMAKECONTEXTCURRENTARBPROC glad_wglMakeContextCurrentARB = NULL;
+PFNWGLGETCURRENTREADDCARBPROC glad_wglGetCurrentReadDCARB = NULL;
+PFNWGLCREATEPBUFFERARBPROC glad_wglCreatePbufferARB = NULL;
+PFNWGLGETPBUFFERDCARBPROC glad_wglGetPbufferDCARB = NULL;
+PFNWGLRELEASEPBUFFERDCARBPROC glad_wglReleasePbufferDCARB = NULL;
+PFNWGLDESTROYPBUFFERARBPROC glad_wglDestroyPbufferARB = NULL;
+PFNWGLQUERYPBUFFERARBPROC glad_wglQueryPbufferARB = NULL;
+PFNWGLGETPIXELFORMATATTRIBIVARBPROC glad_wglGetPixelFormatAttribivARB = NULL;
+PFNWGLGETPIXELFORMATATTRIBFVARBPROC glad_wglGetPixelFormatAttribfvARB = NULL;
+PFNWGLCHOOSEPIXELFORMATARBPROC glad_wglChoosePixelFormatARB = NULL;
+PFNWGLBINDTEXIMAGEARBPROC glad_wglBindTexImageARB = NULL;
+PFNWGLRELEASETEXIMAGEARBPROC glad_wglReleaseTexImageARB = NULL;
+PFNWGLSETPBUFFERATTRIBARBPROC glad_wglSetPbufferAttribARB = NULL;
+PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC glad_wglCreateDisplayColorTableEXT = NULL;
+PFNWGLLOADDISPLAYCOLORTABLEEXTPROC glad_wglLoadDisplayColorTableEXT = NULL;
+PFNWGLBINDDISPLAYCOLORTABLEEXTPROC glad_wglBindDisplayColorTableEXT = NULL;
+PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC glad_wglDestroyDisplayColorTableEXT = NULL;
+PFNWGLGETEXTENSIONSSTRINGEXTPROC glad_wglGetExtensionsStringEXT = NULL;
+PFNWGLMAKECONTEXTCURRENTEXTPROC glad_wglMakeContextCurrentEXT = NULL;
+PFNWGLGETCURRENTREADDCEXTPROC glad_wglGetCurrentReadDCEXT = NULL;
+PFNWGLCREATEPBUFFEREXTPROC glad_wglCreatePbufferEXT = NULL;
+PFNWGLGETPBUFFERDCEXTPROC glad_wglGetPbufferDCEXT = NULL;
+PFNWGLRELEASEPBUFFERDCEXTPROC glad_wglReleasePbufferDCEXT = NULL;
+PFNWGLDESTROYPBUFFEREXTPROC glad_wglDestroyPbufferEXT = NULL;
+PFNWGLQUERYPBUFFEREXTPROC glad_wglQueryPbufferEXT = NULL;
+PFNWGLGETPIXELFORMATATTRIBIVEXTPROC glad_wglGetPixelFormatAttribivEXT = NULL;
+PFNWGLGETPIXELFORMATATTRIBFVEXTPROC glad_wglGetPixelFormatAttribfvEXT = NULL;
+PFNWGLCHOOSEPIXELFORMATEXTPROC glad_wglChoosePixelFormatEXT = NULL;
+PFNWGLSWAPINTERVALEXTPROC glad_wglSwapIntervalEXT = NULL;
+PFNWGLGETSWAPINTERVALEXTPROC glad_wglGetSwapIntervalEXT = NULL;
+PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC glad_wglGetDigitalVideoParametersI3D = NULL;
+PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC glad_wglSetDigitalVideoParametersI3D = NULL;
+PFNWGLGETGAMMATABLEPARAMETERSI3DPROC glad_wglGetGammaTableParametersI3D = NULL;
+PFNWGLSETGAMMATABLEPARAMETERSI3DPROC glad_wglSetGammaTableParametersI3D = NULL;
+PFNWGLGETGAMMATABLEI3DPROC glad_wglGetGammaTableI3D = NULL;
+PFNWGLSETGAMMATABLEI3DPROC glad_wglSetGammaTableI3D = NULL;
+PFNWGLENABLEGENLOCKI3DPROC glad_wglEnableGenlockI3D = NULL;
+PFNWGLDISABLEGENLOCKI3DPROC glad_wglDisableGenlockI3D = NULL;
+PFNWGLISENABLEDGENLOCKI3DPROC glad_wglIsEnabledGenlockI3D = NULL;
+PFNWGLGENLOCKSOURCEI3DPROC glad_wglGenlockSourceI3D = NULL;
+PFNWGLGETGENLOCKSOURCEI3DPROC glad_wglGetGenlockSourceI3D = NULL;
+PFNWGLGENLOCKSOURCEEDGEI3DPROC glad_wglGenlockSourceEdgeI3D = NULL;
+PFNWGLGETGENLOCKSOURCEEDGEI3DPROC glad_wglGetGenlockSourceEdgeI3D = NULL;
+PFNWGLGENLOCKSAMPLERATEI3DPROC glad_wglGenlockSampleRateI3D = NULL;
+PFNWGLGETGENLOCKSAMPLERATEI3DPROC glad_wglGetGenlockSampleRateI3D = NULL;
+PFNWGLGENLOCKSOURCEDELAYI3DPROC glad_wglGenlockSourceDelayI3D = NULL;
+PFNWGLGETGENLOCKSOURCEDELAYI3DPROC glad_wglGetGenlockSourceDelayI3D = NULL;
+PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC glad_wglQueryGenlockMaxSourceDelayI3D = NULL;
+PFNWGLCREATEIMAGEBUFFERI3DPROC glad_wglCreateImageBufferI3D = NULL;
+PFNWGLDESTROYIMAGEBUFFERI3DPROC glad_wglDestroyImageBufferI3D = NULL;
+PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC glad_wglAssociateImageBufferEventsI3D = NULL;
+PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC glad_wglReleaseImageBufferEventsI3D = NULL;
+PFNWGLENABLEFRAMELOCKI3DPROC glad_wglEnableFrameLockI3D = NULL;
+PFNWGLDISABLEFRAMELOCKI3DPROC glad_wglDisableFrameLockI3D = NULL;
+PFNWGLISENABLEDFRAMELOCKI3DPROC glad_wglIsEnabledFrameLockI3D = NULL;
+PFNWGLQUERYFRAMELOCKMASTERI3DPROC glad_wglQueryFrameLockMasterI3D = NULL;
+PFNWGLGETFRAMEUSAGEI3DPROC glad_wglGetFrameUsageI3D = NULL;
+PFNWGLBEGINFRAMETRACKINGI3DPROC glad_wglBeginFrameTrackingI3D = NULL;
+PFNWGLENDFRAMETRACKINGI3DPROC glad_wglEndFrameTrackingI3D = NULL;
+PFNWGLQUERYFRAMETRACKINGI3DPROC glad_wglQueryFrameTrackingI3D = NULL;
+PFNWGLDXSETRESOURCESHAREHANDLENVPROC glad_wglDXSetResourceShareHandleNV = NULL;
+PFNWGLDXOPENDEVICENVPROC glad_wglDXOpenDeviceNV = NULL;
+PFNWGLDXCLOSEDEVICENVPROC glad_wglDXCloseDeviceNV = NULL;
+PFNWGLDXREGISTEROBJECTNVPROC glad_wglDXRegisterObjectNV = NULL;
+PFNWGLDXUNREGISTEROBJECTNVPROC glad_wglDXUnregisterObjectNV = NULL;
+PFNWGLDXOBJECTACCESSNVPROC glad_wglDXObjectAccessNV = NULL;
+PFNWGLDXLOCKOBJECTSNVPROC glad_wglDXLockObjectsNV = NULL;
+PFNWGLDXUNLOCKOBJECTSNVPROC glad_wglDXUnlockObjectsNV = NULL;
+PFNWGLCOPYIMAGESUBDATANVPROC glad_wglCopyImageSubDataNV = NULL;
+PFNWGLDELAYBEFORESWAPNVPROC glad_wglDelayBeforeSwapNV = NULL;
+PFNWGLENUMGPUSNVPROC glad_wglEnumGpusNV = NULL;
+PFNWGLENUMGPUDEVICESNVPROC glad_wglEnumGpuDevicesNV = NULL;
+PFNWGLCREATEAFFINITYDCNVPROC glad_wglCreateAffinityDCNV = NULL;
+PFNWGLENUMGPUSFROMAFFINITYDCNVPROC glad_wglEnumGpusFromAffinityDCNV = NULL;
+PFNWGLDELETEDCNVPROC glad_wglDeleteDCNV = NULL;
+PFNWGLENUMERATEVIDEODEVICESNVPROC glad_wglEnumerateVideoDevicesNV = NULL;
+PFNWGLBINDVIDEODEVICENVPROC glad_wglBindVideoDeviceNV = NULL;
+PFNWGLQUERYCURRENTCONTEXTNVPROC glad_wglQueryCurrentContextNV = NULL;
+PFNWGLJOINSWAPGROUPNVPROC glad_wglJoinSwapGroupNV = NULL;
+PFNWGLBINDSWAPBARRIERNVPROC glad_wglBindSwapBarrierNV = NULL;
+PFNWGLQUERYSWAPGROUPNVPROC glad_wglQuerySwapGroupNV = NULL;
+PFNWGLQUERYMAXSWAPGROUPSNVPROC glad_wglQueryMaxSwapGroupsNV = NULL;
+PFNWGLQUERYFRAMECOUNTNVPROC glad_wglQueryFrameCountNV = NULL;
+PFNWGLRESETFRAMECOUNTNVPROC glad_wglResetFrameCountNV = NULL;
+PFNWGLALLOCATEMEMORYNVPROC glad_wglAllocateMemoryNV = NULL;
+PFNWGLFREEMEMORYNVPROC glad_wglFreeMemoryNV = NULL;
+PFNWGLBINDVIDEOCAPTUREDEVICENVPROC glad_wglBindVideoCaptureDeviceNV = NULL;
+PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC glad_wglEnumerateVideoCaptureDevicesNV = NULL;
+PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC glad_wglLockVideoCaptureDeviceNV = NULL;
+PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC glad_wglQueryVideoCaptureDeviceNV = NULL;
+PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC glad_wglReleaseVideoCaptureDeviceNV = NULL;
+PFNWGLGETVIDEODEVICENVPROC glad_wglGetVideoDeviceNV = NULL;
+PFNWGLRELEASEVIDEODEVICENVPROC glad_wglReleaseVideoDeviceNV = NULL;
+PFNWGLBINDVIDEOIMAGENVPROC glad_wglBindVideoImageNV = NULL;
+PFNWGLRELEASEVIDEOIMAGENVPROC glad_wglReleaseVideoImageNV = NULL;
+PFNWGLSENDPBUFFERTOVIDEONVPROC glad_wglSendPbufferToVideoNV = NULL;
+PFNWGLGETVIDEOINFONVPROC glad_wglGetVideoInfoNV = NULL;
+PFNWGLGETSYNCVALUESOMLPROC glad_wglGetSyncValuesOML = NULL;
+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) {
 	if(!GLAD_WGL_3DL_stereo_control) return;
 	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_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_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_robustness = has_ext("WGL_ARB_create_context_robustness");
 	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_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_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_es_profile = has_ext("WGL_EXT_create_context_es_profile");
 	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_float_buffer = has_ext("WGL_NV_float_buffer");
 	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_present_video = has_ext("WGL_NV_present_video");
 	GLAD_WGL_NV_render_depth_texture = has_ext("WGL_NV_render_depth_texture");

+ 2 - 2
Engine/source/T3D/components/game/interactableComponent.cpp

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

+ 1 - 1
Engine/source/T3D/components/physics/simplePhysicsComponent.h

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

+ 1 - 1
Engine/source/T3D/gameObjects/playerObject.h

@@ -10,7 +10,7 @@
 #include "T3D/components/camera/cameraComponent.h"
 #include "T3D/components/camera/cameraOrbiterComponent.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"
 
 class PlayerObject : public Entity

+ 1 - 1
Engine/source/T3D/lighting/skylight.cpp

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

+ 4 - 10
Engine/source/gfx/D3D11/gfxD3D11Device.cpp

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

+ 7 - 7
Engine/source/gfx/gl/gfxGLCardProfiler.cpp

@@ -55,20 +55,20 @@ void GFXGLCardProfiler::setupCardCapabilities()
    setCapability("GL_ARB_buffer_storage", gglHasExtension(ARB_buffer_storage));
 #endif
 
-   // Check for shader model 5.0
-   setCapability("GL_ARB_gpu_shader5", gglHasExtension(ARB_gpu_shader5));
-
    // Check for 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
    setCapability("GL_ARB_copy_image", gglHasExtension(ARB_copy_image));
 
    // 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));
 
 }
 

+ 3 - 3
Engine/source/gfx/gl/gfxGLDevice.cpp

@@ -132,11 +132,11 @@ void GFXGLDevice::initGLState()
 	// Set capability extensions.
    mCapabilities.anisotropicFiltering = mCardProfiler->queryProfile("GL_EXT_texture_filter_anisotropic");
    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.samplerObjects = mCardProfiler->queryProfile("GL_ARB_sampler_objects");
    mCapabilities.copyImage = mCardProfiler->queryProfile("GL_ARB_copy_image");
    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 );
    if( vendorStr.find("NVIDIA", 0, String::NoCase | String::Left) != String::NPos)
@@ -686,7 +686,7 @@ void GFXGLDevice::setCubemapArrayInternal(U32 textureUnit, const GFXGLCubemapArr
 {
    if (texture)
    {
-      mActiveTextureType[textureUnit] = GL_TEXTURE_CUBE_MAP_ARRAY;
+      mActiveTextureType[textureUnit] = GL_TEXTURE_CUBE_MAP_ARRAY_ARB;
       texture->bind(textureUnit);
    }
    else if (mActiveTextureType[textureUnit] != GL_ZERO)

+ 2 - 2
Engine/source/gfx/gl/gfxGLDevice.h

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

+ 27 - 1
Engine/source/gfx/gl/gfxGLDeviceProfiler.cpp

@@ -107,6 +107,15 @@ void GFXGLDevice::enterDebugEvent(ColorI color, const char *name)
 #ifdef TORQUE_BASIC_GPU_PROFILER
    gfxProfiler.enterDebugEvent(color, name);
 #endif
+
+   if (mCapabilities.khrDebug)
+   {
+      glPushDebugGroup(GL_DEBUG_SOURCE_APPLICATION, 0, -1, name);
+   }
+   else if(mCapabilities.extDebugMarker)
+   {
+      glPushGroupMarkerEXT(0, name);
+   }
 }
 
 void GFXGLDevice::leaveDebugEvent()
@@ -114,11 +123,28 @@ void GFXGLDevice::leaveDebugEvent()
 #ifdef TORQUE_BASIC_GPU_PROFILER
    gfxProfiler.leaveDebugEvent();
 #endif
+
+   if (mCapabilities.khrDebug)
+   {
+      glPopDebugGroup();
+   }
+   else if(mCapabilities.extDebugMarker)
+   {
+      glPopGroupMarkerEXT();
+   }
 }
 
 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

+ 13 - 25
Engine/source/gfx/gl/gfxGLShader.cpp

@@ -626,7 +626,7 @@ void GFXGLShader::initConstantDescs()
          case GL_SAMPLER_CUBE:
             desc.constType = GFXSCT_SamplerCube;
             break;
-         case GL_SAMPLER_CUBE_MAP_ARRAY:
+         case GL_SAMPLER_CUBE_MAP_ARRAY_ARB:
             desc.constType = GFXSCT_SamplerCubeArray;
             break;
          default:
@@ -1008,30 +1008,18 @@ bool GFXGLShader::_loadShaderFromStream(  GLuint shader,
    Vector<U32> lengths;
    
    // The GLSL version declaration must go first!
-   char* versionDecl = "#version 150\r\n";
-   if (!gglHasExtension(ARB_texture_cube_map_array))
-   {
-      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)
-   {
-      const char* extension = "#extension GL_ARB_gpu_shader5 : enable\r\n";
-      buffers.push_back(dStrdup(extension));
-      lengths.push_back(dStrlen(extension));
-   }
+   const char *versionDecl = "#version 330\n";
+   buffers.push_back( dStrdup( versionDecl ) );
+   lengths.push_back( dStrlen( versionDecl ) );
+
+   //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";
+   buffers.push_back(dStrdup(cubeArrayExt));
+   lengths.push_back(dStrlen(cubeArrayExt));
+
+   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";
    buffers.push_back(dStrdup(newLine));

+ 4 - 11
Engine/source/gfx/gl/gfxGLStateBlock.cpp

@@ -39,9 +39,6 @@ GFXGLStateBlock::GFXGLStateBlock(const GFXStateBlockDesc& desc) :
    mDesc(desc),
    mCachedHashValue(desc.getHashValue())
 {
-    if( !GFXGL->mCapabilities.samplerObjects )
-      return;
-
    static Map<GFXSamplerStateDesc, U32> mSamplersMap;
 
    for(int i = 0; i < TEXTURE_STAGE_COUNT; ++i)
@@ -175,14 +172,10 @@ void GFXGLStateBlock::activate(const GFXGLStateBlock* oldState)
 #undef CHECK_TOGGLE_STATE
 
    //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   
 }

+ 0 - 31
Engine/source/gfx/gl/gfxGLTextureObject.cpp

@@ -216,37 +216,6 @@ void GFXGLTextureObject::bind(U32 textureUnit)
    glActiveTexture(GL_TEXTURE0 + textureUnit);
    glBindTexture(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 )

+ 16 - 3
Engine/source/gfx/gl/sdl/gfxGLDevice.sdl.cpp

@@ -84,7 +84,7 @@ void GFXGLDevice::enumerateAdapters( Vector<GFXAdapter*> &adapterList )
 
    SDL_ClearError();
    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_FRAMEBUFFER_SRGB_CAPABLE, 1);
 
@@ -111,14 +111,27 @@ void GFXGLDevice::enumerateAdapters( Vector<GFXAdapter*> &adapterList )
    loadGLCore();
    loadGLExtensions(tempContext);
 
-   //check minimun Opengl 3.2
+   //check minimun Opengl 3.3
    int major, minor;
    glGetIntegerv(GL_MAJOR_VERSION, &major);
    glGetIntegerv(GL_MINOR_VERSION, &minor);
-   if( major < 3 || ( major == 3 && minor < 2 ) )
+   if( major < 3 || ( major == 3 && minor < 3 ) )
    {
       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;
    toAdd->mIndex = 0;

+ 1 - 1
Engine/source/platformSDL/sdlPlatformGL.cpp

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

+ 1 - 1
Engine/source/shaderGen/customShaderFeature.cpp

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

+ 0 - 1
Engine/source/shaderGen/customShaderFeature.h

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

+ 2 - 2
Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/gl/prefilterP.glsl

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

+ 6 - 2
Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/gl/reflectionProbeArrayP.glsl

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

+ 0 - 0
Templates/BaseGame/game/core/rendering/shaders/postFX/gl/postFX.glsl → Templates/BaseGame/game/core/rendering/shaders/postFX/gl/postFx.glsl


Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff