From 9281e477eb3845b4a375836bcd00df99ff4b6af1 Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 7 Jun 2016 00:32:45 +0200 Subject: [PATCH 1/9] Embed standard shader into raylib --- src/rlgl.c | 58 +++++++++------ src/standard_shader.h | 166 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 203 insertions(+), 21 deletions(-) create mode 100644 src/standard_shader.h diff --git a/src/rlgl.c b/src/rlgl.c index 8d230550f..3dda77b16 100644 --- a/src/rlgl.c +++ b/src/rlgl.c @@ -62,6 +62,10 @@ #include // Required for: va_list, va_start(), vfprintf(), va_end() [Used only on TraceLog()] #endif +#if !defined(GRAPHICS_API_OPENGL_11) + #include "standard_shader.h" // Standard shader to embed +#endif + //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- @@ -189,26 +193,27 @@ static bool useTempBuffer = false; // Shader Programs static Shader defaultShader; -static Shader standardShader; -static Shader currentShader; // By default, defaultShader +static Shader standardShader; // Lazy initialization when GetStandardShader() +static Shader currentShader; // By default, defaultShader +static bool standardShaderLoaded = false; // Flags for supported extensions -static bool vaoSupported = false; // VAO support (OpenGL ES2 could not support VAO extension) +static bool vaoSupported = false; // VAO support (OpenGL ES2 could not support VAO extension) // Compressed textures support flags -static bool texCompETC1Supported = false; // ETC1 texture compression support -static bool texCompETC2Supported = false; // ETC2/EAC texture compression support -static bool texCompPVRTSupported = false; // PVR texture compression support -static bool texCompASTCSupported = false; // ASTC texture compression support +static bool texCompETC1Supported = false; // ETC1 texture compression support +static bool texCompETC2Supported = false; // ETC2/EAC texture compression support +static bool texCompPVRTSupported = false; // PVR texture compression support +static bool texCompASTCSupported = false; // ASTC texture compression support // Lighting data -static Light lights[MAX_LIGHTS]; // Lights pool -static int lightsCount; // Counts current enabled physic objects +static Light lights[MAX_LIGHTS]; // Lights pool +static int lightsCount; // Counts current enabled physic objects #endif // Compressed textures support flags -static bool texCompDXTSupported = false; // DDS texture compression support -static bool npotSupported = false; // NPOT textures full support +static bool texCompDXTSupported = false; // DDS texture compression support +static bool npotSupported = false; // NPOT textures full support #if defined(GRAPHICS_API_OPENGL_ES2) // NOTE: VAO functionality is exposed through extensions (OES) @@ -1031,7 +1036,6 @@ void rlglInit(void) // Init default Shader (customized for GL 3.3 and ES2) defaultShader = LoadDefaultShader(); - standardShader = LoadStandardShader(); currentShader = defaultShader; LoadDefaultBuffers(); // Initialize default vertex arrays buffers (lines, triangles, quads) @@ -2184,14 +2188,22 @@ Shader GetDefaultShader(void) } // Get default shader +// NOTE: Inits global variable standardShader Shader GetStandardShader(void) { -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - return standardShader; -#else Shader shader = { 0 }; - return shader; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (standardShaderLoaded) shader = standardShader; + else + { + // Lazy initialization of standard shader + standardShader = LoadStandardShader(); + shader = standardShader; + } #endif + + return shader; } // Get shader uniform location @@ -2567,18 +2579,22 @@ static Shader LoadDefaultShader(void) // Load standard shader // NOTE: This shader supports: -// - Up to 3 different maps: diffuse, normal, specular -// - Material properties: colAmbient, colDiffuse, colSpecular, glossiness -// - Up to 8 lights: Point, Directional or Spot +// - Up to 3 different maps: diffuse, normal, specular +// - Material properties: colAmbient, colDiffuse, colSpecular, glossiness +// - Up to 8 lights: Point, Directional or Spot static Shader LoadStandardShader(void) { - // Load standard shader (TODO: rewrite as char pointers) - Shader shader = LoadShader("resources/shaders/standard.vs", "resources/shaders/standard.fs"); + Shader shader; + + // Load standard shader (embeded in standard_shader.h) + shader.id = LoadShaderProgram(vStandardShaderStr, fStandardShaderStr); if (shader.id != 0) { LoadDefaultShaderLocations(&shader); TraceLog(INFO, "[SHDR ID %i] Standard shader loaded successfully", shader.id); + + standardShaderLoaded = true; } else { diff --git a/src/standard_shader.h b/src/standard_shader.h new file mode 100644 index 000000000..956b5c32c --- /dev/null +++ b/src/standard_shader.h @@ -0,0 +1,166 @@ + +// Vertex shader definition to embed, no external file required +const static unsigned char vStandardShaderStr[] = +#if defined(GRAPHICS_API_OPENGL_21) +"#version 120 \n" +#elif defined(GRAPHICS_API_OPENGL_ES2) +"#version 100 \n" +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_21) +"attribute vec3 vertexPosition; \n" +"attribute vec3 vertexNormal; \n" +"attribute vec2 vertexTexCoord; \n" +"attribute vec4 vertexColor; \n" +"varying vec3 fragPosition; \n" +"varying vec3 fragNormal; \n" +"varying vec2 fragTexCoord; \n" +"varying vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_33) +"#version 330 \n" +"in vec3 vertexPosition; \n" +"in vec3 vertexNormal; \n" +"in vec2 vertexTexCoord; \n" +"in vec4 vertexColor; \n" +"out vec3 fragPosition; \n" +"out vec3 fragNormal; \n" +"out vec2 fragTexCoord; \n" +"out vec4 fragColor; \n" +#endif +"uniform mat4 mvpMatrix; \n" +"void main() \n" +"{ \n" +" fragPosition = vertexPosition; \n" +" fragNormal = vertexNormal; \n" +" fragTexCoord = vertexTexCoord; \n" +" fragColor = vertexColor; \n" +" gl_Position = mvpMatrix*vec4(vertexPosition, 1.0); \n" +"} \n"; + +// Fragment shader definition to embed, no external file required +const static unsigned char fStandardShaderStr[] = +#if defined(GRAPHICS_API_OPENGL_21) +"#version 120 \n" +#elif defined(GRAPHICS_API_OPENGL_ES2) +"#version 100 \n" +"precision mediump float; \n" // precision required for OpenGL ES2 (WebGL) +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_21) +"varying vec3 fragPosition; \n" +"varying vec3 fragNormal; \n" +"varying vec2 fragTexCoord; \n" +"varying vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_33) +"#version 330 \n" +"in vec3 fragPosition; \n" +"in vec3 fragNormal; \n" +"in vec2 fragTexCoord; \n" +"in vec4 fragColor; \n" +"out vec4 finalColor; \n" +#endif +"uniform sampler2D texture0; \n" +"uniform sampler2D texture1; \n" +"uniform sampler2D texture2; \n" +"uniform vec4 colAmbient; \n" +"uniform vec4 colDiffuse; \n" +"uniform vec4 colSpecular; \n" +"uniform float glossiness; \n" +"uniform int useNormal; \n" +"uniform int useSpecular; \n" +"uniform mat4 modelMatrix; \n" +"uniform vec3 viewDir; \n" +"struct Light { \n" +" int enabled; \n" +" int type; \n" +" vec3 position; \n" +" vec3 direction; \n" +" vec4 diffuse; \n" +" float intensity; \n" +" float radius; \n" +" float coneAngle; }; \n" +"const int maxLights = 8; \n" +"uniform int lightsCount; \n" +"uniform Light lights[maxLights]; \n" +"\n" +"vec3 CalcPointLight(Light l, vec3 n, vec3 v, float s) \n" +"{\n" +" vec3 surfacePos = vec3(modelMatrix*vec4(fragPosition, 1));\n" +" vec3 surfaceToLight = l.position - surfacePos;\n" +" float brightness = clamp(dot(n, surfaceToLight)/(length(surfaceToLight)*length(n)), 0, 1);\n" +" float diff = 1.0/dot(surfaceToLight/l.radius, surfaceToLight/l.radius)*brightness*l.intensity;\n" +" float spec = 0.0;\n" +" if (diff > 0.0)\n" +" {\n" +" vec3 h = normalize(-l.direction + v);\n" +" spec = pow(dot(n, h), 3 + glossiness)*s;\n" +" }\n" +" return (diff*l.diffuse.rgb + spec*colSpecular.rgb);\n" +"}\n" +"\n" +"vec3 CalcDirectionalLight(Light l, vec3 n, vec3 v, float s)\n" +"{\n" +" vec3 lightDir = normalize(-l.direction);\n" +" float diff = clamp(dot(n, lightDir), 0.0, 1.0)*l.intensity;\n" +" float spec = 0.0;\n" +" if (diff > 0.0)\n" +" {\n" +" vec3 h = normalize(lightDir + v);\n" +" spec = pow(dot(n, h), 3 + glossiness)*s;\n" +" }\n" +" return (diff*l.intensity*l.diffuse.rgb + spec*colSpecular.rgb);\n" +"}\n" +"\n" +"vec3 CalcSpotLight(Light l, vec3 n, vec3 v, float s)\n" +"{\n" +" vec3 surfacePos = vec3(modelMatrix*vec4(fragPosition, 1));\n" +" vec3 lightToSurface = normalize(surfacePos - l.position);\n" +" vec3 lightDir = normalize(-l.direction);\n" +" float diff = clamp(dot(n, lightDir), 0.0, 1.0)*l.intensity;\n" +" float attenuation = clamp(dot(n, lightToSurface), 0.0, 1.0);\n" +" attenuation = dot(lightToSurface, -lightDir);\n" +" float lightToSurfaceAngle = degrees(acos(attenuation));\n" +" if (lightToSurfaceAngle > l.coneAngle) attenuation = 0.0;\n" +" float falloff = (l.coneAngle - lightToSurfaceAngle)/l.coneAngle;\n" +" float diffAttenuation = diff*attenuation;\n" +" float spec = 0.0;\n" +" if (diffAttenuation > 0.0)\n" +" {\n" +" vec3 h = normalize(lightDir + v);\n" +" spec = pow(dot(n, h), 3 + glossiness)*s;\n" +" }\n" +" return (falloff*(diffAttenuation*l.diffuse.rgb + spec*colSpecular.rgb));\n" +"}\n" +"\n" +"void main()\n" +"{\n" +" mat3 normalMatrix = transpose(inverse(mat3(modelMatrix)));\n" +" vec3 normal = normalize(normalMatrix*fragNormal);\n" +" vec3 n = normalize(normal);\n" +" vec3 v = normalize(viewDir);\n" +" vec4 texelColor = texture(texture0, fragTexCoord);\n" +" vec3 lighting = colAmbient.rgb;\n" +" if (useNormal == 1)\n" +" {\n" +" n *= texture(texture1, fragTexCoord).rgb;\n" +" n = normalize(n);\n" +" }\n" +" float spec = 1.0;\n" +" if (useSpecular == 1) spec *= normalize(texture(texture2, fragTexCoord).r);\n" +" for (int i = 0; i < lightsCount; i++)\n" +" {\n" +" if (lights[i].enabled == 1)\n" +" {\n" +" switch (lights[i].type)\n" +" {\n" +" case 0: lighting += CalcPointLight(lights[i], n, v, spec); break;\n" +" case 1: lighting += CalcDirectionalLight(lights[i], n, v, spec); break;\n" +" case 2: lighting += CalcSpotLight(lights[i], n, v, spec); break;\n" +" default: break;\n" +" }\n" +" }\n" +" }\n" +#if defined(GRAPHICS_API_OPENGL_33) +" finalColor = vec4(texelColor.rgb*lighting*colDiffuse.rgb, texelColor.a*colDiffuse.a); \n" +#elif defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_21) +" gl_FragColor = vec4(texelColor.rgb*lighting*colDiffuse.rgb, texelColor.a*colDiffuse.a); \n" +#endif +"} \n"; \ No newline at end of file From 3d5a4081775633a3b13b04b0a594059b3e3b494e Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 7 Jun 2016 18:53:47 +0200 Subject: [PATCH 2/9] Remove DEBUG flag for raylib lib compilation ...on Android --- src/android/jni/Android.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/android/jni/Android.mk b/src/android/jni/Android.mk index 0325d1f5f..a9178dac8 100644 --- a/src/android/jni/Android.mk +++ b/src/android/jni/Android.mk @@ -52,7 +52,7 @@ LOCAL_SRC_FILES :=\ LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/include $(LOCAL_PATH)/../.. # Required flags for compilation: defines PLATFORM_ANDROID and GRAPHICS_API_OPENGL_ES2 -LOCAL_CFLAGS := -Wall -std=c99 -Wno-missing-braces -g -DPLATFORM_ANDROID -DGRAPHICS_API_OPENGL_ES2 +LOCAL_CFLAGS := -Wall -std=c99 -Wno-missing-braces -DPLATFORM_ANDROID -DGRAPHICS_API_OPENGL_ES2 # Build the static library libraylib.a include $(BUILD_STATIC_LIBRARY) From 058af472ea68d0e18e46a44bd0bd44445aa4587b Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 7 Jun 2016 18:57:20 +0200 Subject: [PATCH 3/9] Converted GLAD to header only --- src/Makefile | 12 +- src/external/glad.c | 7684 ------------------------------------------- src/external/glad.h | 7678 ++++++++++++++++++++++++++++++++++++++++++ src/rlgl.c | 3 +- 4 files changed, 7681 insertions(+), 7696 deletions(-) delete mode 100644 src/external/glad.c diff --git a/src/Makefile b/src/Makefile index 92e37cfbe..ce703c3a1 100644 --- a/src/Makefile +++ b/src/Makefile @@ -92,13 +92,7 @@ else endif # define all object files required -ifeq ($(PLATFORM),PLATFORM_DESKTOP) - OBJS = core.o rlgl.o glad.o shapes.o text.o textures.o models.o audio.o utils.o camera.o gestures.o stb_vorbis.o -else - #GLAD only required on desktop platform - OBJS = core.o rlgl.o shapes.o text.o textures.o models.o audio.o stb_vorbis.o utils.o camera.o gestures.o -endif - +OBJS = core.o rlgl.o shapes.o text.o textures.o models.o audio.o utils.o camera.o gestures.o stb_vorbis.o # typing 'make' will invoke the default target entry called 'all', # in this case, the 'default' target entry is raylib @@ -153,10 +147,6 @@ camera.o: camera.c gestures.o: gestures.c $(CC) -c gestures.c $(CFLAGS) $(INCLUDES) -D$(PLATFORM) -# compile glad module -glad.o: external/glad.c - $(CC) -c external/glad.c $(CFLAGS) $(INCLUDES) - # compile stb_vorbis library stb_vorbis.o: external/stb_vorbis.c $(CC) -c external/stb_vorbis.c -O1 $(INCLUDES) -D$(PLATFORM) diff --git a/src/external/glad.c b/src/external/glad.c deleted file mode 100644 index aace05a7e..000000000 --- a/src/external/glad.c +++ /dev/null @@ -1,7684 +0,0 @@ -/* - - OpenGL loader generated by glad 0.1.9a3 on 01/22/16 00:32:54. - - Language/Generator: C/C++ - Specification: gl - APIs: gl=3.3 - Profile: core - Extensions: - GL_SGIX_pixel_tiles, GL_EXT_post_depth_coverage, GL_APPLE_element_array, GL_AMD_multi_draw_indirect, GL_EXT_blend_subtract, GL_SGIX_tag_sample_buffer, GL_NV_point_sprite, GL_IBM_texture_mirrored_repeat, GL_APPLE_transform_hint, GL_ATI_separate_stencil, GL_NV_shader_atomic_int64, GL_NV_vertex_program2_option, GL_EXT_texture_buffer_object, GL_ARB_vertex_blend, GL_OVR_multiview, GL_NV_vertex_program2, GL_ARB_program_interface_query, GL_EXT_misc_attribute, GL_NV_multisample_coverage, GL_ARB_shading_language_packing, GL_EXT_texture_cube_map, GL_NV_viewport_array2, GL_ARB_texture_stencil8, GL_EXT_index_func, GL_OES_compressed_paletted_texture, GL_NV_depth_clamp, GL_NV_shader_buffer_load, GL_EXT_color_subtable, GL_SUNX_constant_data, GL_EXT_texture_compression_s3tc, GL_EXT_multi_draw_arrays, GL_ARB_shader_atomic_counters, GL_ARB_arrays_of_arrays, GL_NV_conditional_render, GL_EXT_texture_env_combine, GL_NV_fog_distance, GL_SGIX_async_histogram, GL_MESA_resize_buffers, GL_NV_light_max_exponent, GL_NV_texture_env_combine4, GL_ARB_texture_view, GL_ARB_texture_env_combine, GL_ARB_map_buffer_range, GL_EXT_convolution, GL_NV_compute_program5, GL_NV_vertex_attrib_integer_64bit, GL_EXT_paletted_texture, GL_ARB_texture_buffer_object, GL_ATI_pn_triangles, GL_SGIX_resample, GL_SGIX_flush_raster, GL_EXT_light_texture, GL_ARB_point_sprite, GL_SUN_convolution_border_modes, GL_NV_parameter_buffer_object2, GL_ARB_half_float_pixel, GL_NV_tessellation_program5, GL_REND_screen_coordinates, GL_HP_image_transform, GL_EXT_packed_float, GL_OML_subsample, GL_SGIX_vertex_preclip, GL_SGIX_texture_scale_bias, GL_AMD_draw_buffers_blend, GL_APPLE_texture_range, GL_EXT_texture_array, GL_NV_texture_barrier, GL_ARB_texture_query_levels, GL_NV_texgen_emboss, GL_EXT_texture_swizzle, GL_ARB_texture_rg, GL_ARB_vertex_type_2_10_10_10_rev, GL_ARB_fragment_shader, GL_3DFX_tbuffer, GL_GREMEDY_frame_terminator, GL_ARB_blend_func_extended, GL_EXT_separate_shader_objects, GL_NV_texture_multisample, GL_ARB_shader_objects, GL_ARB_framebuffer_object, GL_ATI_envmap_bumpmap, GL_ARB_robust_buffer_access_behavior, GL_ARB_shader_stencil_export, GL_NV_texture_rectangle, GL_ARB_enhanced_layouts, GL_ARB_texture_rectangle, GL_SGI_texture_color_table, GL_ATI_map_object_buffer, GL_ARB_robustness, GL_NV_pixel_data_range, GL_EXT_framebuffer_blit, GL_ARB_gpu_shader_fp64, GL_NV_command_list, GL_SGIX_depth_texture, GL_EXT_vertex_weighting, GL_GREMEDY_string_marker, GL_ARB_texture_compression_bptc, GL_EXT_subtexture, GL_EXT_pixel_transform_color_table, GL_EXT_texture_compression_rgtc, GL_ARB_shader_atomic_counter_ops, GL_SGIX_depth_pass_instrument, GL_EXT_gpu_program_parameters, GL_NV_evaluators, GL_SGIS_texture_filter4, GL_AMD_performance_monitor, GL_NV_geometry_shader4, GL_EXT_stencil_clear_tag, GL_NV_vertex_program1_1, GL_NV_present_video, GL_ARB_texture_compression_rgtc, GL_HP_convolution_border_modes, GL_EXT_shader_integer_mix, GL_SGIX_framezoom, GL_ARB_stencil_texturing, GL_ARB_shader_clock, GL_NV_shader_atomic_fp16_vector, GL_SGIX_fog_offset, GL_ARB_draw_elements_base_vertex, GL_INGR_interlace_read, GL_NV_transform_feedback, GL_NV_fragment_program, GL_AMD_stencil_operation_extended, GL_ARB_seamless_cubemap_per_texture, GL_ARB_instanced_arrays, GL_EXT_polygon_offset, GL_NV_vertex_array_range2, GL_KHR_robustness, GL_AMD_sparse_texture, GL_ARB_clip_control, GL_NV_fragment_coverage_to_color, GL_NV_fence, GL_ARB_texture_buffer_range, GL_SUN_mesh_array, GL_ARB_vertex_attrib_binding, GL_ARB_framebuffer_no_attachments, GL_ARB_cl_event, GL_ARB_derivative_control, GL_NV_packed_depth_stencil, GL_OES_single_precision, GL_NV_primitive_restart, GL_SUN_global_alpha, GL_ARB_fragment_shader_interlock, GL_EXT_texture_object, GL_AMD_name_gen_delete, GL_NV_texture_compression_vtc, GL_NV_sample_mask_override_coverage, GL_NV_texture_shader3, GL_NV_texture_shader2, GL_EXT_texture, GL_ARB_buffer_storage, GL_AMD_shader_atomic_counter_ops, GL_APPLE_vertex_program_evaluators, GL_ARB_multi_bind, GL_ARB_explicit_uniform_location, GL_ARB_depth_buffer_float, GL_NV_path_rendering_shared_edge, GL_SGIX_shadow_ambient, GL_ARB_texture_cube_map, GL_AMD_vertex_shader_viewport_index, GL_SGIX_list_priority, GL_NV_vertex_buffer_unified_memory, GL_NV_uniform_buffer_unified_memory, GL_EXT_texture_env_dot3, GL_ATI_texture_env_combine3, GL_ARB_map_buffer_alignment, GL_NV_blend_equation_advanced, GL_SGIS_sharpen_texture, GL_KHR_robust_buffer_access_behavior, GL_ARB_pipeline_statistics_query, GL_ARB_vertex_program, GL_ARB_texture_rgb10_a2ui, GL_OML_interlace, GL_ATI_pixel_format_float, GL_NV_geometry_shader_passthrough, GL_ARB_vertex_buffer_object, GL_EXT_shadow_funcs, GL_ATI_text_fragment_shader, GL_NV_vertex_array_range, GL_SGIX_fragment_lighting, GL_NV_texture_expand_normal, GL_NV_framebuffer_multisample_coverage, GL_EXT_timer_query, GL_EXT_vertex_array_bgra, GL_NV_bindless_texture, GL_KHR_debug, GL_SGIS_texture_border_clamp, GL_ATI_vertex_attrib_array_object, GL_SGIX_clipmap, GL_EXT_geometry_shader4, GL_ARB_shader_texture_image_samples, GL_MESA_ycbcr_texture, GL_MESAX_texture_stack, GL_AMD_seamless_cubemap_per_texture, GL_EXT_bindable_uniform, GL_KHR_texture_compression_astc_hdr, GL_ARB_shader_ballot, GL_KHR_blend_equation_advanced, GL_ARB_fragment_program_shadow, GL_ATI_element_array, GL_AMD_texture_texture4, GL_SGIX_reference_plane, GL_EXT_stencil_two_side, GL_ARB_transform_feedback_overflow_query, GL_SGIX_texture_lod_bias, GL_KHR_no_error, GL_NV_explicit_multisample, GL_IBM_static_data, GL_EXT_clip_volume_hint, GL_EXT_texture_perturb_normal, GL_NV_fragment_program2, GL_NV_fragment_program4, GL_EXT_point_parameters, GL_PGI_misc_hints, GL_SGIX_subsample, GL_AMD_shader_stencil_export, GL_ARB_shader_texture_lod, GL_ARB_vertex_shader, GL_ARB_depth_clamp, GL_SGIS_texture_select, GL_NV_texture_shader, GL_ARB_tessellation_shader, GL_EXT_draw_buffers2, GL_ARB_vertex_attrib_64bit, GL_EXT_texture_filter_minmax, GL_WIN_specular_fog, GL_AMD_interleaved_elements, GL_ARB_fragment_program, GL_OML_resample, GL_APPLE_ycbcr_422, GL_SGIX_texture_add_env, GL_ARB_shadow_ambient, GL_ARB_texture_storage, GL_EXT_pixel_buffer_object, GL_ARB_copy_image, GL_SGIS_pixel_texture, GL_SGIS_generate_mipmap, GL_SGIX_instruments, GL_HP_texture_lighting, GL_ARB_shader_storage_buffer_object, GL_EXT_sparse_texture2, GL_EXT_blend_minmax, GL_MESA_pack_invert, GL_ARB_base_instance, GL_SGIX_convolution_accuracy, GL_PGI_vertex_hints, GL_AMD_transform_feedback4, GL_ARB_ES3_1_compatibility, GL_EXT_texture_integer, GL_ARB_texture_multisample, GL_AMD_gpu_shader_int64, GL_S3_s3tc, GL_ARB_query_buffer_object, GL_AMD_vertex_shader_tessellator, GL_ARB_invalidate_subdata, GL_EXT_index_material, GL_NV_blend_equation_advanced_coherent, GL_KHR_texture_compression_astc_sliced_3d, GL_INTEL_parallel_arrays, GL_ATI_draw_buffers, GL_EXT_cmyka, GL_SGIX_pixel_texture, GL_APPLE_specular_vector, GL_ARB_compatibility, GL_ARB_timer_query, GL_SGIX_interlace, GL_NV_parameter_buffer_object, GL_AMD_shader_trinary_minmax, GL_ARB_direct_state_access, GL_EXT_rescale_normal, GL_ARB_pixel_buffer_object, GL_ARB_uniform_buffer_object, GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_texture_swizzle, GL_NV_transform_feedback2, GL_SGIX_async_pixel, GL_NV_fragment_program_option, GL_ARB_explicit_attrib_location, GL_EXT_blend_color, GL_NV_shader_thread_group, GL_EXT_stencil_wrap, GL_EXT_index_array_formats, GL_OVR_multiview2, GL_EXT_histogram, GL_ARB_get_texture_sub_image, GL_SGIS_point_parameters, GL_SGIX_ycrcb, GL_EXT_direct_state_access, GL_ARB_cull_distance, GL_AMD_sample_positions, GL_NV_vertex_program, GL_NV_shader_thread_shuffle, GL_ARB_shader_precision, GL_EXT_vertex_shader, GL_EXT_blend_func_separate, GL_APPLE_fence, GL_OES_byte_coordinates, GL_ARB_transpose_matrix, GL_ARB_provoking_vertex, GL_EXT_fog_coord, GL_EXT_vertex_array, GL_ARB_half_float_vertex, GL_EXT_blend_equation_separate, GL_NV_framebuffer_mixed_samples, GL_NVX_conditional_render, GL_ARB_multi_draw_indirect, GL_EXT_raster_multisample, GL_NV_copy_image, GL_ARB_fragment_layer_viewport, GL_INTEL_framebuffer_CMAA, GL_ARB_transform_feedback2, GL_ARB_transform_feedback3, GL_SGIX_ycrcba, GL_EXT_debug_marker, GL_EXT_bgra, GL_ARB_sparse_texture_clamp, GL_EXT_pixel_transform, GL_ARB_conservative_depth, GL_ATI_fragment_shader, GL_ARB_vertex_array_object, GL_SUN_triangle_list, GL_EXT_texture_env_add, GL_EXT_packed_depth_stencil, GL_EXT_texture_mirror_clamp, GL_NV_multisample_filter_hint, GL_APPLE_float_pixels, GL_ARB_transform_feedback_instanced, GL_SGIX_async, GL_EXT_texture_compression_latc, GL_NV_shader_atomic_float, GL_ARB_shading_language_100, GL_INTEL_performance_query, GL_ARB_texture_mirror_clamp_to_edge, GL_NV_gpu_shader5, GL_NV_bindless_multi_draw_indirect_count, GL_ARB_ES2_compatibility, GL_ARB_indirect_parameters, GL_NV_half_float, GL_ARB_ES3_2_compatibility, GL_ATI_texture_mirror_once, GL_IBM_rasterpos_clip, GL_SGIX_shadow, GL_EXT_polygon_offset_clamp, GL_NV_deep_texture3D, GL_ARB_shader_draw_parameters, GL_SGIX_calligraphic_fragment, GL_ARB_shader_bit_encoding, GL_EXT_compiled_vertex_array, GL_NV_depth_buffer_float, GL_NV_occlusion_query, GL_APPLE_flush_buffer_range, GL_ARB_imaging, GL_ARB_draw_buffers_blend, GL_AMD_gcn_shader, GL_AMD_blend_minmax_factor, GL_EXT_texture_sRGB_decode, GL_ARB_shading_language_420pack, GL_ARB_shader_viewport_layer_array, GL_ATI_meminfo, GL_EXT_abgr, GL_AMD_pinned_memory, GL_EXT_texture_snorm, GL_SGIX_texture_coordinate_clamp, GL_ARB_clear_buffer_object, GL_ARB_multisample, GL_EXT_debug_label, GL_ARB_sample_shading, GL_NV_internalformat_sample_query, GL_INTEL_map_texture, GL_ARB_texture_env_crossbar, GL_EXT_422_pixels, GL_ARB_compute_shader, GL_EXT_blend_logic_op, GL_IBM_cull_vertex, GL_IBM_vertex_array_lists, GL_ARB_color_buffer_float, GL_ARB_bindless_texture, GL_ARB_window_pos, GL_ARB_internalformat_query, GL_ARB_shadow, GL_ARB_texture_mirrored_repeat, GL_EXT_shader_image_load_store, GL_EXT_copy_texture, GL_NV_register_combiners2, GL_SGIX_ycrcb_subsample, GL_SGIX_ir_instrument1, GL_NV_draw_texture, GL_EXT_texture_shared_exponent, GL_EXT_draw_instanced, GL_NV_copy_depth_to_color, GL_ARB_viewport_array, GL_ARB_separate_shader_objects, GL_EXT_depth_bounds_test, GL_EXT_shared_texture_palette, GL_ARB_texture_env_add, GL_NV_video_capture, GL_ARB_sampler_objects, GL_ARB_matrix_palette, GL_SGIS_texture_color_mask, GL_EXT_packed_pixels, GL_EXT_coordinate_frame, GL_ARB_texture_compression, GL_APPLE_aux_depth_stencil, GL_ARB_shader_subroutine, GL_EXT_framebuffer_sRGB, GL_ARB_texture_storage_multisample, GL_KHR_blend_equation_advanced_coherent, GL_EXT_vertex_attrib_64bit, GL_ARB_depth_texture, GL_NV_shader_buffer_store, GL_OES_query_matrix, GL_MESA_window_pos, GL_NV_fill_rectangle, GL_NV_shader_storage_buffer_object, GL_ARB_texture_query_lod, GL_ARB_copy_buffer, GL_ARB_shader_image_size, GL_NV_shader_atomic_counters, GL_APPLE_object_purgeable, GL_ARB_occlusion_query, GL_INGR_color_clamp, GL_SGI_color_table, GL_NV_gpu_program5_mem_extended, GL_ARB_texture_cube_map_array, GL_SGIX_scalebias_hint, GL_EXT_gpu_shader4, GL_NV_geometry_program4, GL_EXT_framebuffer_multisample_blit_scaled, GL_AMD_debug_output, GL_ARB_texture_border_clamp, GL_ARB_fragment_coord_conventions, GL_ARB_multitexture, GL_SGIX_polynomial_ffd, GL_EXT_provoking_vertex, GL_ARB_point_parameters, GL_ARB_shader_image_load_store, GL_ARB_conditional_render_inverted, GL_HP_occlusion_test, GL_ARB_ES3_compatibility, GL_ARB_texture_barrier, GL_ARB_texture_buffer_object_rgb32, GL_NV_bindless_multi_draw_indirect, GL_SGIX_texture_multi_buffer, GL_EXT_transform_feedback, GL_KHR_texture_compression_astc_ldr, GL_3DFX_multisample, GL_INTEL_fragment_shader_ordering, GL_ARB_texture_env_dot3, GL_NV_gpu_program4, GL_NV_gpu_program5, GL_NV_float_buffer, GL_SGIS_texture_edge_clamp, GL_ARB_framebuffer_sRGB, GL_SUN_slice_accum, GL_EXT_index_texture, GL_EXT_shader_image_load_formatted, GL_ARB_geometry_shader4, GL_EXT_separate_specular_color, GL_AMD_depth_clamp_separate, GL_NV_conservative_raster, GL_ARB_sparse_texture2, GL_SGIX_sprite, GL_ARB_get_program_binary, GL_AMD_occlusion_query_event, GL_SGIS_multisample, GL_EXT_framebuffer_object, GL_ARB_robustness_isolation, GL_ARB_vertex_array_bgra, GL_APPLE_vertex_array_range, GL_AMD_query_buffer_object, GL_NV_register_combiners, GL_ARB_draw_buffers, GL_ARB_clear_texture, GL_ARB_debug_output, GL_SGI_color_matrix, GL_EXT_cull_vertex, GL_EXT_texture_sRGB, GL_APPLE_row_bytes, GL_NV_texgen_reflection, GL_IBM_multimode_draw_arrays, GL_APPLE_vertex_array_object, GL_3DFX_texture_compression_FXT1, GL_NV_fragment_shader_interlock, GL_AMD_conservative_depth, GL_ARB_texture_float, GL_ARB_compressed_texture_pixel_storage, GL_SGIS_detail_texture, GL_ARB_draw_instanced, GL_OES_read_format, GL_ATI_texture_float, GL_ARB_texture_gather, GL_AMD_vertex_shader_layer, GL_ARB_shading_language_include, GL_APPLE_client_storage, GL_WIN_phong_shading, GL_INGR_blend_func_separate, GL_NV_path_rendering, GL_NV_conservative_raster_dilate, GL_ATI_vertex_streams, GL_ARB_post_depth_coverage, GL_ARB_texture_non_power_of_two, GL_APPLE_rgb_422, GL_EXT_texture_lod_bias, GL_ARB_gpu_shader_int64, GL_ARB_seamless_cube_map, GL_ARB_shader_group_vote, GL_NV_vdpau_interop, GL_ARB_occlusion_query2, GL_ARB_internalformat_query2, GL_EXT_texture_filter_anisotropic, GL_SUN_vertex, GL_SGIX_igloo_interface, GL_SGIS_texture_lod, GL_NV_vertex_program3, GL_ARB_draw_indirect, GL_NV_vertex_program4, GL_AMD_transform_feedback3_lines_triangles, GL_SGIS_fog_function, GL_EXT_x11_sync_object, GL_ARB_sync, GL_NV_sample_locations, GL_ARB_compute_variable_group_size, GL_OES_fixed_point, GL_NV_blend_square, GL_EXT_framebuffer_multisample, GL_ARB_gpu_shader5, GL_SGIS_texture4D, GL_EXT_texture3D, GL_EXT_multisample, GL_EXT_secondary_color, GL_ARB_texture_filter_minmax, GL_ATI_vertex_array_object, GL_ARB_parallel_shader_compile, GL_NVX_gpu_memory_info, GL_ARB_sparse_texture, GL_SGIS_point_line_texgen, GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_EXT_draw_range_elements, GL_SGIX_blend_alpha_minmax, GL_KHR_context_flush_control - Loader: No - - Commandline: - --profile="core" --api="gl=3.3" --generator="c" --spec="gl" --no-loader --extensions="GL_SGIX_pixel_tiles,GL_EXT_post_depth_coverage,GL_APPLE_element_array,GL_AMD_multi_draw_indirect,GL_EXT_blend_subtract,GL_SGIX_tag_sample_buffer,GL_NV_point_sprite,GL_IBM_texture_mirrored_repeat,GL_APPLE_transform_hint,GL_ATI_separate_stencil,GL_NV_shader_atomic_int64,GL_NV_vertex_program2_option,GL_EXT_texture_buffer_object,GL_ARB_vertex_blend,GL_OVR_multiview,GL_NV_vertex_program2,GL_ARB_program_interface_query,GL_EXT_misc_attribute,GL_NV_multisample_coverage,GL_ARB_shading_language_packing,GL_EXT_texture_cube_map,GL_NV_viewport_array2,GL_ARB_texture_stencil8,GL_EXT_index_func,GL_OES_compressed_paletted_texture,GL_NV_depth_clamp,GL_NV_shader_buffer_load,GL_EXT_color_subtable,GL_SUNX_constant_data,GL_EXT_texture_compression_s3tc,GL_EXT_multi_draw_arrays,GL_ARB_shader_atomic_counters,GL_ARB_arrays_of_arrays,GL_NV_conditional_render,GL_EXT_texture_env_combine,GL_NV_fog_distance,GL_SGIX_async_histogram,GL_MESA_resize_buffers,GL_NV_light_max_exponent,GL_NV_texture_env_combine4,GL_ARB_texture_view,GL_ARB_texture_env_combine,GL_ARB_map_buffer_range,GL_EXT_convolution,GL_NV_compute_program5,GL_NV_vertex_attrib_integer_64bit,GL_EXT_paletted_texture,GL_ARB_texture_buffer_object,GL_ATI_pn_triangles,GL_SGIX_resample,GL_SGIX_flush_raster,GL_EXT_light_texture,GL_ARB_point_sprite,GL_SUN_convolution_border_modes,GL_NV_parameter_buffer_object2,GL_ARB_half_float_pixel,GL_NV_tessellation_program5,GL_REND_screen_coordinates,GL_HP_image_transform,GL_EXT_packed_float,GL_OML_subsample,GL_SGIX_vertex_preclip,GL_SGIX_texture_scale_bias,GL_AMD_draw_buffers_blend,GL_APPLE_texture_range,GL_EXT_texture_array,GL_NV_texture_barrier,GL_ARB_texture_query_levels,GL_NV_texgen_emboss,GL_EXT_texture_swizzle,GL_ARB_texture_rg,GL_ARB_vertex_type_2_10_10_10_rev,GL_ARB_fragment_shader,GL_3DFX_tbuffer,GL_GREMEDY_frame_terminator,GL_ARB_blend_func_extended,GL_EXT_separate_shader_objects,GL_NV_texture_multisample,GL_ARB_shader_objects,GL_ARB_framebuffer_object,GL_ATI_envmap_bumpmap,GL_ARB_robust_buffer_access_behavior,GL_ARB_shader_stencil_export,GL_NV_texture_rectangle,GL_ARB_enhanced_layouts,GL_ARB_texture_rectangle,GL_SGI_texture_color_table,GL_ATI_map_object_buffer,GL_ARB_robustness,GL_NV_pixel_data_range,GL_EXT_framebuffer_blit,GL_ARB_gpu_shader_fp64,GL_NV_command_list,GL_SGIX_depth_texture,GL_EXT_vertex_weighting,GL_GREMEDY_string_marker,GL_ARB_texture_compression_bptc,GL_EXT_subtexture,GL_EXT_pixel_transform_color_table,GL_EXT_texture_compression_rgtc,GL_ARB_shader_atomic_counter_ops,GL_SGIX_depth_pass_instrument,GL_EXT_gpu_program_parameters,GL_NV_evaluators,GL_SGIS_texture_filter4,GL_AMD_performance_monitor,GL_NV_geometry_shader4,GL_EXT_stencil_clear_tag,GL_NV_vertex_program1_1,GL_NV_present_video,GL_ARB_texture_compression_rgtc,GL_HP_convolution_border_modes,GL_EXT_shader_integer_mix,GL_SGIX_framezoom,GL_ARB_stencil_texturing,GL_ARB_shader_clock,GL_NV_shader_atomic_fp16_vector,GL_SGIX_fog_offset,GL_ARB_draw_elements_base_vertex,GL_INGR_interlace_read,GL_NV_transform_feedback,GL_NV_fragment_program,GL_AMD_stencil_operation_extended,GL_ARB_seamless_cubemap_per_texture,GL_ARB_instanced_arrays,GL_EXT_polygon_offset,GL_NV_vertex_array_range2,GL_KHR_robustness,GL_AMD_sparse_texture,GL_ARB_clip_control,GL_NV_fragment_coverage_to_color,GL_NV_fence,GL_ARB_texture_buffer_range,GL_SUN_mesh_array,GL_ARB_vertex_attrib_binding,GL_ARB_framebuffer_no_attachments,GL_ARB_cl_event,GL_ARB_derivative_control,GL_NV_packed_depth_stencil,GL_OES_single_precision,GL_NV_primitive_restart,GL_SUN_global_alpha,GL_ARB_fragment_shader_interlock,GL_EXT_texture_object,GL_AMD_name_gen_delete,GL_NV_texture_compression_vtc,GL_NV_sample_mask_override_coverage,GL_NV_texture_shader3,GL_NV_texture_shader2,GL_EXT_texture,GL_ARB_buffer_storage,GL_AMD_shader_atomic_counter_ops,GL_APPLE_vertex_program_evaluators,GL_ARB_multi_bind,GL_ARB_explicit_uniform_location,GL_ARB_depth_buffer_float,GL_NV_path_rendering_shared_edge,GL_SGIX_shadow_ambient,GL_ARB_texture_cube_map,GL_AMD_vertex_shader_viewport_index,GL_SGIX_list_priority,GL_NV_vertex_buffer_unified_memory,GL_NV_uniform_buffer_unified_memory,GL_EXT_texture_env_dot3,GL_ATI_texture_env_combine3,GL_ARB_map_buffer_alignment,GL_NV_blend_equation_advanced,GL_SGIS_sharpen_texture,GL_KHR_robust_buffer_access_behavior,GL_ARB_pipeline_statistics_query,GL_ARB_vertex_program,GL_ARB_texture_rgb10_a2ui,GL_OML_interlace,GL_ATI_pixel_format_float,GL_NV_geometry_shader_passthrough,GL_ARB_vertex_buffer_object,GL_EXT_shadow_funcs,GL_ATI_text_fragment_shader,GL_NV_vertex_array_range,GL_SGIX_fragment_lighting,GL_NV_texture_expand_normal,GL_NV_framebuffer_multisample_coverage,GL_EXT_timer_query,GL_EXT_vertex_array_bgra,GL_NV_bindless_texture,GL_KHR_debug,GL_SGIS_texture_border_clamp,GL_ATI_vertex_attrib_array_object,GL_SGIX_clipmap,GL_EXT_geometry_shader4,GL_ARB_shader_texture_image_samples,GL_MESA_ycbcr_texture,GL_MESAX_texture_stack,GL_AMD_seamless_cubemap_per_texture,GL_EXT_bindable_uniform,GL_KHR_texture_compression_astc_hdr,GL_ARB_shader_ballot,GL_KHR_blend_equation_advanced,GL_ARB_fragment_program_shadow,GL_ATI_element_array,GL_AMD_texture_texture4,GL_SGIX_reference_plane,GL_EXT_stencil_two_side,GL_ARB_transform_feedback_overflow_query,GL_SGIX_texture_lod_bias,GL_KHR_no_error,GL_NV_explicit_multisample,GL_IBM_static_data,GL_EXT_clip_volume_hint,GL_EXT_texture_perturb_normal,GL_NV_fragment_program2,GL_NV_fragment_program4,GL_EXT_point_parameters,GL_PGI_misc_hints,GL_SGIX_subsample,GL_AMD_shader_stencil_export,GL_ARB_shader_texture_lod,GL_ARB_vertex_shader,GL_ARB_depth_clamp,GL_SGIS_texture_select,GL_NV_texture_shader,GL_ARB_tessellation_shader,GL_EXT_draw_buffers2,GL_ARB_vertex_attrib_64bit,GL_EXT_texture_filter_minmax,GL_WIN_specular_fog,GL_AMD_interleaved_elements,GL_ARB_fragment_program,GL_OML_resample,GL_APPLE_ycbcr_422,GL_SGIX_texture_add_env,GL_ARB_shadow_ambient,GL_ARB_texture_storage,GL_EXT_pixel_buffer_object,GL_ARB_copy_image,GL_SGIS_pixel_texture,GL_SGIS_generate_mipmap,GL_SGIX_instruments,GL_HP_texture_lighting,GL_ARB_shader_storage_buffer_object,GL_EXT_sparse_texture2,GL_EXT_blend_minmax,GL_MESA_pack_invert,GL_ARB_base_instance,GL_SGIX_convolution_accuracy,GL_PGI_vertex_hints,GL_AMD_transform_feedback4,GL_ARB_ES3_1_compatibility,GL_EXT_texture_integer,GL_ARB_texture_multisample,GL_AMD_gpu_shader_int64,GL_S3_s3tc,GL_ARB_query_buffer_object,GL_AMD_vertex_shader_tessellator,GL_ARB_invalidate_subdata,GL_EXT_index_material,GL_NV_blend_equation_advanced_coherent,GL_KHR_texture_compression_astc_sliced_3d,GL_INTEL_parallel_arrays,GL_ATI_draw_buffers,GL_EXT_cmyka,GL_SGIX_pixel_texture,GL_APPLE_specular_vector,GL_ARB_compatibility,GL_ARB_timer_query,GL_SGIX_interlace,GL_NV_parameter_buffer_object,GL_AMD_shader_trinary_minmax,GL_ARB_direct_state_access,GL_EXT_rescale_normal,GL_ARB_pixel_buffer_object,GL_ARB_uniform_buffer_object,GL_ARB_vertex_type_10f_11f_11f_rev,GL_ARB_texture_swizzle,GL_NV_transform_feedback2,GL_SGIX_async_pixel,GL_NV_fragment_program_option,GL_ARB_explicit_attrib_location,GL_EXT_blend_color,GL_NV_shader_thread_group,GL_EXT_stencil_wrap,GL_EXT_index_array_formats,GL_OVR_multiview2,GL_EXT_histogram,GL_ARB_get_texture_sub_image,GL_SGIS_point_parameters,GL_SGIX_ycrcb,GL_EXT_direct_state_access,GL_ARB_cull_distance,GL_AMD_sample_positions,GL_NV_vertex_program,GL_NV_shader_thread_shuffle,GL_ARB_shader_precision,GL_EXT_vertex_shader,GL_EXT_blend_func_separate,GL_APPLE_fence,GL_OES_byte_coordinates,GL_ARB_transpose_matrix,GL_ARB_provoking_vertex,GL_EXT_fog_coord,GL_EXT_vertex_array,GL_ARB_half_float_vertex,GL_EXT_blend_equation_separate,GL_NV_framebuffer_mixed_samples,GL_NVX_conditional_render,GL_ARB_multi_draw_indirect,GL_EXT_raster_multisample,GL_NV_copy_image,GL_ARB_fragment_layer_viewport,GL_INTEL_framebuffer_CMAA,GL_ARB_transform_feedback2,GL_ARB_transform_feedback3,GL_SGIX_ycrcba,GL_EXT_debug_marker,GL_EXT_bgra,GL_ARB_sparse_texture_clamp,GL_EXT_pixel_transform,GL_ARB_conservative_depth,GL_ATI_fragment_shader,GL_ARB_vertex_array_object,GL_SUN_triangle_list,GL_EXT_texture_env_add,GL_EXT_packed_depth_stencil,GL_EXT_texture_mirror_clamp,GL_NV_multisample_filter_hint,GL_APPLE_float_pixels,GL_ARB_transform_feedback_instanced,GL_SGIX_async,GL_EXT_texture_compression_latc,GL_NV_shader_atomic_float,GL_ARB_shading_language_100,GL_INTEL_performance_query,GL_ARB_texture_mirror_clamp_to_edge,GL_NV_gpu_shader5,GL_NV_bindless_multi_draw_indirect_count,GL_ARB_ES2_compatibility,GL_ARB_indirect_parameters,GL_NV_half_float,GL_ARB_ES3_2_compatibility,GL_ATI_texture_mirror_once,GL_IBM_rasterpos_clip,GL_SGIX_shadow,GL_EXT_polygon_offset_clamp,GL_NV_deep_texture3D,GL_ARB_shader_draw_parameters,GL_SGIX_calligraphic_fragment,GL_ARB_shader_bit_encoding,GL_EXT_compiled_vertex_array,GL_NV_depth_buffer_float,GL_NV_occlusion_query,GL_APPLE_flush_buffer_range,GL_ARB_imaging,GL_ARB_draw_buffers_blend,GL_AMD_gcn_shader,GL_AMD_blend_minmax_factor,GL_EXT_texture_sRGB_decode,GL_ARB_shading_language_420pack,GL_ARB_shader_viewport_layer_array,GL_ATI_meminfo,GL_EXT_abgr,GL_AMD_pinned_memory,GL_EXT_texture_snorm,GL_SGIX_texture_coordinate_clamp,GL_ARB_clear_buffer_object,GL_ARB_multisample,GL_EXT_debug_label,GL_ARB_sample_shading,GL_NV_internalformat_sample_query,GL_INTEL_map_texture,GL_ARB_texture_env_crossbar,GL_EXT_422_pixels,GL_ARB_compute_shader,GL_EXT_blend_logic_op,GL_IBM_cull_vertex,GL_IBM_vertex_array_lists,GL_ARB_color_buffer_float,GL_ARB_bindless_texture,GL_ARB_window_pos,GL_ARB_internalformat_query,GL_ARB_shadow,GL_ARB_texture_mirrored_repeat,GL_EXT_shader_image_load_store,GL_EXT_copy_texture,GL_NV_register_combiners2,GL_SGIX_ycrcb_subsample,GL_SGIX_ir_instrument1,GL_NV_draw_texture,GL_EXT_texture_shared_exponent,GL_EXT_draw_instanced,GL_NV_copy_depth_to_color,GL_ARB_viewport_array,GL_ARB_separate_shader_objects,GL_EXT_depth_bounds_test,GL_EXT_shared_texture_palette,GL_ARB_texture_env_add,GL_NV_video_capture,GL_ARB_sampler_objects,GL_ARB_matrix_palette,GL_SGIS_texture_color_mask,GL_EXT_packed_pixels,GL_EXT_coordinate_frame,GL_ARB_texture_compression,GL_APPLE_aux_depth_stencil,GL_ARB_shader_subroutine,GL_EXT_framebuffer_sRGB,GL_ARB_texture_storage_multisample,GL_KHR_blend_equation_advanced_coherent,GL_EXT_vertex_attrib_64bit,GL_ARB_depth_texture,GL_NV_shader_buffer_store,GL_OES_query_matrix,GL_MESA_window_pos,GL_NV_fill_rectangle,GL_NV_shader_storage_buffer_object,GL_ARB_texture_query_lod,GL_ARB_copy_buffer,GL_ARB_shader_image_size,GL_NV_shader_atomic_counters,GL_APPLE_object_purgeable,GL_ARB_occlusion_query,GL_INGR_color_clamp,GL_SGI_color_table,GL_NV_gpu_program5_mem_extended,GL_ARB_texture_cube_map_array,GL_SGIX_scalebias_hint,GL_EXT_gpu_shader4,GL_NV_geometry_program4,GL_EXT_framebuffer_multisample_blit_scaled,GL_AMD_debug_output,GL_ARB_texture_border_clamp,GL_ARB_fragment_coord_conventions,GL_ARB_multitexture,GL_SGIX_polynomial_ffd,GL_EXT_provoking_vertex,GL_ARB_point_parameters,GL_ARB_shader_image_load_store,GL_ARB_conditional_render_inverted,GL_HP_occlusion_test,GL_ARB_ES3_compatibility,GL_ARB_texture_barrier,GL_ARB_texture_buffer_object_rgb32,GL_NV_bindless_multi_draw_indirect,GL_SGIX_texture_multi_buffer,GL_EXT_transform_feedback,GL_KHR_texture_compression_astc_ldr,GL_3DFX_multisample,GL_INTEL_fragment_shader_ordering,GL_ARB_texture_env_dot3,GL_NV_gpu_program4,GL_NV_gpu_program5,GL_NV_float_buffer,GL_SGIS_texture_edge_clamp,GL_ARB_framebuffer_sRGB,GL_SUN_slice_accum,GL_EXT_index_texture,GL_EXT_shader_image_load_formatted,GL_ARB_geometry_shader4,GL_EXT_separate_specular_color,GL_AMD_depth_clamp_separate,GL_NV_conservative_raster,GL_ARB_sparse_texture2,GL_SGIX_sprite,GL_ARB_get_program_binary,GL_AMD_occlusion_query_event,GL_SGIS_multisample,GL_EXT_framebuffer_object,GL_ARB_robustness_isolation,GL_ARB_vertex_array_bgra,GL_APPLE_vertex_array_range,GL_AMD_query_buffer_object,GL_NV_register_combiners,GL_ARB_draw_buffers,GL_ARB_clear_texture,GL_ARB_debug_output,GL_SGI_color_matrix,GL_EXT_cull_vertex,GL_EXT_texture_sRGB,GL_APPLE_row_bytes,GL_NV_texgen_reflection,GL_IBM_multimode_draw_arrays,GL_APPLE_vertex_array_object,GL_3DFX_texture_compression_FXT1,GL_NV_fragment_shader_interlock,GL_AMD_conservative_depth,GL_ARB_texture_float,GL_ARB_compressed_texture_pixel_storage,GL_SGIS_detail_texture,GL_ARB_draw_instanced,GL_OES_read_format,GL_ATI_texture_float,GL_ARB_texture_gather,GL_AMD_vertex_shader_layer,GL_ARB_shading_language_include,GL_APPLE_client_storage,GL_WIN_phong_shading,GL_INGR_blend_func_separate,GL_NV_path_rendering,GL_NV_conservative_raster_dilate,GL_ATI_vertex_streams,GL_ARB_post_depth_coverage,GL_ARB_texture_non_power_of_two,GL_APPLE_rgb_422,GL_EXT_texture_lod_bias,GL_ARB_gpu_shader_int64,GL_ARB_seamless_cube_map,GL_ARB_shader_group_vote,GL_NV_vdpau_interop,GL_ARB_occlusion_query2,GL_ARB_internalformat_query2,GL_EXT_texture_filter_anisotropic,GL_SUN_vertex,GL_SGIX_igloo_interface,GL_SGIS_texture_lod,GL_NV_vertex_program3,GL_ARB_draw_indirect,GL_NV_vertex_program4,GL_AMD_transform_feedback3_lines_triangles,GL_SGIS_fog_function,GL_EXT_x11_sync_object,GL_ARB_sync,GL_NV_sample_locations,GL_ARB_compute_variable_group_size,GL_OES_fixed_point,GL_NV_blend_square,GL_EXT_framebuffer_multisample,GL_ARB_gpu_shader5,GL_SGIS_texture4D,GL_EXT_texture3D,GL_EXT_multisample,GL_EXT_secondary_color,GL_ARB_texture_filter_minmax,GL_ATI_vertex_array_object,GL_ARB_parallel_shader_compile,GL_NVX_gpu_memory_info,GL_ARB_sparse_texture,GL_SGIS_point_line_texgen,GL_ARB_sample_locations,GL_ARB_sparse_buffer,GL_EXT_draw_range_elements,GL_SGIX_blend_alpha_minmax,GL_KHR_context_flush_control" - Online: - Too many extensions -*/ - -#include -#include -#include -#include "glad.h" - -struct gladGLversionStruct GLVersion; - -#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) -#define _GLAD_IS_SOME_NEW_VERSION 1 -#endif - -static int max_loaded_major; -static int max_loaded_minor; - -static const char *exts = NULL; -static int num_exts_i = 0; -static const char **exts_i = NULL; - -static int get_exts(void) { -#ifdef _GLAD_IS_SOME_NEW_VERSION - if(max_loaded_major < 3) { -#endif - exts = (const char *)glGetString(GL_EXTENSIONS); -#ifdef _GLAD_IS_SOME_NEW_VERSION - } else { - int index; - - num_exts_i = 0; - glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i); - if (num_exts_i > 0) { - exts_i = (const char **)realloc((void *)exts_i, num_exts_i * sizeof *exts_i); - } - - if (exts_i == NULL) { - return 0; - } - - for(index = 0; index < num_exts_i; index++) { - exts_i[index] = (const char*)glGetStringi(GL_EXTENSIONS, index); - } - } -#endif - return 1; -} - -static void free_exts(void) { - if (exts_i != NULL) { - free(exts_i); - exts_i = NULL; - } -} - -static int has_ext(const char *ext) { -#ifdef _GLAD_IS_SOME_NEW_VERSION - if(max_loaded_major < 3) { -#endif - const char *extensions; - const char *loc; - const char *terminator; - extensions = exts; - if(extensions == NULL || ext == NULL) { - return 0; - } - - while(1) { - loc = strstr(extensions, ext); - if(loc == NULL) { - return 0; - } - - terminator = loc + strlen(ext); - if((loc == extensions || *(loc - 1) == ' ') && - (*terminator == ' ' || *terminator == '\0')) { - return 1; - } - extensions = terminator; - } -#ifdef _GLAD_IS_SOME_NEW_VERSION - } else { - int index; - - for(index = 0; index < num_exts_i; index++) { - const char *e = exts_i[index]; - - if(strcmp(e, ext) == 0) { - return 1; - } - } - } -#endif - - return 0; -} -int GLAD_GL_VERSION_1_0; -int GLAD_GL_VERSION_1_1; -int GLAD_GL_VERSION_1_2; -int GLAD_GL_VERSION_1_3; -int GLAD_GL_VERSION_1_4; -int GLAD_GL_VERSION_1_5; -int GLAD_GL_VERSION_2_0; -int GLAD_GL_VERSION_2_1; -int GLAD_GL_VERSION_3_0; -int GLAD_GL_VERSION_3_1; -int GLAD_GL_VERSION_3_2; -int GLAD_GL_VERSION_3_3; -PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; -PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; -PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate; -PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; -PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D; -PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv; -PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv; -PFNGLBINDSAMPLERPROC glad_glBindSampler; -PFNGLLINEWIDTHPROC glad_glLineWidth; -PFNGLCOLORP3UIVPROC glad_glColorP3uiv; -PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; -PFNGLCOMPILESHADERPROC glad_glCompileShader; -PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying; -PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer; -PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui; -PFNGLVERTEXP4UIPROC glad_glVertexP4ui; -PFNGLENABLEIPROC glad_glEnablei; -PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui; -PFNGLCREATESHADERPROC glad_glCreateShader; -PFNGLISBUFFERPROC glad_glIsBuffer; -PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv; -PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; -PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; -PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; -PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f; -PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; -PFNGLHINTPROC glad_glHint; -PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s; -PFNGLSAMPLEMASKIPROC glad_glSampleMaski; -PFNGLVERTEXP2UIPROC glad_glVertexP2ui; -PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; -PFNGLPOINTSIZEPROC glad_glPointSize; -PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; -PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; -PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv; -PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; -PFNGLWAITSYNCPROC glad_glWaitSync; -PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; -PFNGLUNIFORM3IPROC glad_glUniform3i; -PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; -PFNGLUNIFORM3FPROC glad_glUniform3f; -PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv; -PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; -PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui; -PFNGLCOLORMASKIPROC glad_glColorMaski; -PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; -PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; -PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui; -PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv; -PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex; -PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv; -PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv; -PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui; -PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; -PFNGLDRAWARRAYSPROC glad_glDrawArrays; -PFNGLUNIFORM1UIPROC glad_glUniform1ui; -PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; -PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui; -PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; -PFNGLCLEARPROC glad_glClear; -PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; -PFNGLISENABLEDPROC glad_glIsEnabled; -PFNGLSTENCILOPPROC glad_glStencilOp; -PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; -PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; -PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; -PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation; -PFNGLTEXIMAGE1DPROC glad_glTexImage1D; -PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; -PFNGLGETTEXIMAGEPROC glad_glGetTexImage; -PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v; -PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; -PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; -PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer; -PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; -PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; -PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; -PFNGLGETQUERYIVPROC glad_glGetQueryiv; -PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv; -PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; -PFNGLISSHADERPROC glad_glIsShader; -PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; -PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; -PFNGLENABLEPROC glad_glEnable; -PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv; -PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation; -PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv; -PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv; -PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui; -PFNGLGETUNIFORMFVPROC glad_glGetUniformfv; -PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv; -PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; -PFNGLDRAWBUFFERPROC glad_glDrawBuffer; -PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv; -PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced; -PFNGLFLUSHPROC glad_glFlush; -PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; -PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv; -PFNGLFENCESYNCPROC glad_glFenceSync; -PFNGLCOLORP3UIPROC glad_glColorP3ui; -PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; -PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; -PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv; -PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv; -PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate; -PFNGLGENSAMPLERSPROC glad_glGenSamplers; -PFNGLCLAMPCOLORPROC glad_glClampColor; -PFNGLUNIFORM4IVPROC glad_glUniform4iv; -PFNGLCLEARSTENCILPROC glad_glClearStencil; -PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv; -PFNGLGENTEXTURESPROC glad_glGenTextures; -PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv; -PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; -PFNGLISSYNCPROC glad_glIsSync; -PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName; -PFNGLUNIFORM2IPROC glad_glUniform2i; -PFNGLUNIFORM2FPROC glad_glUniform2f; -PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui; -PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; -PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; -PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; -PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange; -PFNGLGENQUERIESPROC glad_glGenQueries; -PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui; -PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D; -PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v; -PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers; -PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; -PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; -PFNGLISENABLEDIPROC glad_glIsEnabledi; -PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui; -PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed; -PFNGLUNIFORM2IVPROC glad_glUniform2iv; -PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv; -PFNGLUNIFORM4UIVPROC glad_glUniform4uiv; -PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; -PFNGLGETSHADERIVPROC glad_glGetShaderiv; -PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation; -PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; -PFNGLGETDOUBLEVPROC glad_glGetDoublev; -PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d; -PFNGLGETUNIFORMIVPROC glad_glGetUniformiv; -PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv; -PFNGLUNIFORM3FVPROC glad_glUniform3fv; -PFNGLDEPTHRANGEPROC glad_glDepthRange; -PFNGLMAPBUFFERPROC glad_glMapBuffer; -PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; -PFNGLDELETESYNCPROC glad_glDeleteSync; -PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D; -PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; -PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements; -PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; -PFNGLUNIFORM3IVPROC glad_glUniform3iv; -PFNGLPOLYGONMODEPROC glad_glPolygonMode; -PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; -PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv; -PFNGLUSEPROGRAMPROC glad_glUseProgram; -PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; -PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; -PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; -PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv; -PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex; -PFNGLUNIFORM2UIVPROC glad_glUniform2uiv; -PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; -PFNGLFINISHPROC glad_glFinish; -PFNGLDELETESHADERPROC glad_glDeleteShader; -PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv; -PFNGLVIEWPORTPROC glad_glViewport; -PFNGLUNIFORM1UIVPROC glad_glUniform1uiv; -PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings; -PFNGLUNIFORM2UIPROC glad_glUniform2ui; -PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i; -PFNGLCLEARDEPTHPROC glad_glClearDepth; -PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; -PFNGLTEXPARAMETERFPROC glad_glTexParameterf; -PFNGLTEXPARAMETERIPROC glad_glTexParameteri; -PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; -PFNGLTEXBUFFERPROC glad_glTexBuffer; -PFNGLPIXELSTOREIPROC glad_glPixelStorei; -PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram; -PFNGLPIXELSTOREFPROC glad_glPixelStoref; -PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; -PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv; -PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv; -PFNGLLINKPROGRAMPROC glad_glLinkProgram; -PFNGLBINDTEXTUREPROC glad_glBindTexture; -PFNGLGETSTRINGPROC glad_glGetString; -PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv; -PFNGLDETACHSHADERPROC glad_glDetachShader; -PFNGLENDQUERYPROC glad_glEndQuery; -PFNGLNORMALP3UIPROC glad_glNormalP3ui; -PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui; -PFNGLDELETETEXTURESPROC glad_glDeleteTextures; -PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate; -PFNGLDELETEQUERIESPROC glad_glDeleteQueries; -PFNGLNORMALP3UIVPROC glad_glNormalP3uiv; -PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f; -PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d; -PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; -PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; -PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex; -PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; -PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri; -PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf; -PFNGLUNIFORM1FPROC glad_glUniform1f; -PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; -PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; -PFNGLUNIFORM1IPROC glad_glUniform1i; -PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; -PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; -PFNGLDISABLEPROC glad_glDisable; -PFNGLLOGICOPPROC glad_glLogicOp; -PFNGLUNIFORM4UIPROC glad_glUniform4ui; -PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; -PFNGLCULLFACEPROC glad_glCullFace; -PFNGLGETSTRINGIPROC glad_glGetStringi; -PFNGLATTACHSHADERPROC glad_glAttachShader; -PFNGLQUERYCOUNTERPROC glad_glQueryCounter; -PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; -PFNGLDRAWELEMENTSPROC glad_glDrawElements; -PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv; -PFNGLUNIFORM1IVPROC glad_glUniform1iv; -PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv; -PFNGLREADBUFFERPROC glad_glReadBuffer; -PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; -PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced; -PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; -PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv; -PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f; -PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv; -PFNGLPOINTPARAMETERIPROC glad_glPointParameteri; -PFNGLBLENDCOLORPROC glad_glBlendColor; -PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv; -PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer; -PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; -PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s; -PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; -PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv; -PFNGLISPROGRAMPROC glad_glIsProgram; -PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv; -PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv; -PFNGLUNIFORM4IPROC glad_glUniform4i; -PFNGLACTIVETEXTUREPROC glad_glActiveTexture; -PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; -PFNGLREADPIXELSPROC glad_glReadPixels; -PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv; -PFNGLUNIFORM4FPROC glad_glUniform4f; -PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample; -PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv; -PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; -PFNGLSTENCILFUNCPROC glad_glStencilFunc; -PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding; -PFNGLCOLORP4UIPROC glad_glColorP4ui; -PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; -PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; -PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i; -PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData; -PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate; -PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; -PFNGLGENBUFFERSPROC glad_glGenBuffers; -PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv; -PFNGLBLENDFUNCPROC glad_glBlendFunc; -PFNGLCREATEPROGRAMPROC glad_glCreateProgram; -PFNGLTEXIMAGE3DPROC glad_glTexImage3D; -PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer; -PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex; -PFNGLGETINTEGER64VPROC glad_glGetInteger64v; -PFNGLSCISSORPROC glad_glScissor; -PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv; -PFNGLGETBOOLEANVPROC glad_glGetBooleanv; -PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv; -PFNGLUNIFORM3UIVPROC glad_glUniform3uiv; -PFNGLCLEARCOLORPROC glad_glClearColor; -PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv; -PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv; -PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; -PFNGLCOLORP4UIVPROC glad_glColorP4uiv; -PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv; -PFNGLUNIFORM3UIPROC glad_glUniform3ui; -PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv; -PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; -PFNGLUNIFORM2FVPROC glad_glUniform2fv; -PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv; -PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange; -PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv; -PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv; -PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; -PFNGLDEPTHFUNCPROC glad_glDepthFunc; -PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; -PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv; -PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; -PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui; -PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync; -PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui; -PFNGLCOLORMASKPROC glad_glColorMask; -PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; -PFNGLBLENDEQUATIONPROC glad_glBlendEquation; -PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; -PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; -PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv; -PFNGLUNIFORM4FVPROC glad_glUniform4fv; -PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; -PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv; -PFNGLISSAMPLERPROC glad_glIsSampler; -PFNGLVERTEXP3UIPROC glad_glVertexP3ui; -PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor; -PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D; -PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; -PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex; -PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; -PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; -PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv; -PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; -PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv; -PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; -PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements; -PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv; -PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase; -PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; -PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv; -PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange; -PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture; -PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays; -PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv; -PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv; -PFNGLDISABLEIPROC glad_glDisablei; -PFNGLSHADERSOURCEPROC glad_glShaderSource; -PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; -PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv; -PFNGLGETSYNCIVPROC glad_glGetSynciv; -PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv; -PFNGLBEGINQUERYPROC glad_glBeginQuery; -PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; -PFNGLBINDBUFFERPROC glad_glBindBuffer; -PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv; -PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv; -PFNGLBUFFERDATAPROC glad_glBufferData; -PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; -PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui; -PFNGLGETERRORPROC glad_glGetError; -PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui; -PFNGLGETFLOATVPROC glad_glGetFloatv; -PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D; -PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv; -PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv; -PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; -PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv; -PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv; -PFNGLGETINTEGERVPROC glad_glGetIntegerv; -PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; -PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D; -PFNGLISQUERYPROC glad_glIsQuery; -PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv; -PFNGLTEXIMAGE2DPROC glad_glTexImage2D; -PFNGLSTENCILMASKPROC glad_glStencilMask; -PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv; -PFNGLISTEXTUREPROC glad_glIsTexture; -PFNGLUNIFORM1FVPROC glad_glUniform1fv; -PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv; -PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; -PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv; -PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData; -PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv; -PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d; -PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; -PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv; -PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v; -PFNGLDEPTHMASKPROC glad_glDepthMask; -PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s; -PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample; -PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex; -PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; -PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform; -PFNGLFRONTFACEPROC glad_glFrontFace; -int GLAD_GL_SGIX_pixel_tiles; -int GLAD_GL_NV_point_sprite; -int GLAD_GL_APPLE_element_array; -int GLAD_GL_AMD_multi_draw_indirect; -int GLAD_GL_EXT_blend_subtract; -int GLAD_GL_SGIX_tag_sample_buffer; -int GLAD_GL_IBM_texture_mirrored_repeat; -int GLAD_GL_APPLE_transform_hint; -int GLAD_GL_ATI_separate_stencil; -int GLAD_GL_NV_shader_atomic_int64; -int GLAD_GL_NV_vertex_program2_option; -int GLAD_GL_EXT_texture_buffer_object; -int GLAD_GL_ARB_vertex_blend; -int GLAD_GL_OVR_multiview; -int GLAD_GL_ARB_program_interface_query; -int GLAD_GL_EXT_misc_attribute; -int GLAD_GL_NV_multisample_coverage; -int GLAD_GL_ARB_shading_language_packing; -int GLAD_GL_EXT_texture_cube_map; -int GLAD_GL_NV_viewport_array2; -int GLAD_GL_KHR_robustness; -int GLAD_GL_EXT_index_func; -int GLAD_GL_OES_compressed_paletted_texture; -int GLAD_GL_NV_depth_clamp; -int GLAD_GL_NV_shader_buffer_load; -int GLAD_GL_EXT_color_subtable; -int GLAD_GL_SUNX_constant_data; -int GLAD_GL_EXT_multi_draw_arrays; -int GLAD_GL_ARB_shader_atomic_counters; -int GLAD_GL_ARB_arrays_of_arrays; -int GLAD_GL_NV_conditional_render; -int GLAD_GL_EXT_texture_env_combine; -int GLAD_GL_AMD_depth_clamp_separate; -int GLAD_GL_SGIX_async_histogram; -int GLAD_GL_MESA_resize_buffers; -int GLAD_GL_ARB_sample_shading; -int GLAD_GL_NV_texture_env_combine4; -int GLAD_GL_ARB_texture_view; -int GLAD_GL_ARB_texture_env_combine; -int GLAD_GL_ARB_map_buffer_range; -int GLAD_GL_EXT_convolution; -int GLAD_GL_NV_compute_program5; -int GLAD_GL_EXT_paletted_texture; -int GLAD_GL_ARB_texture_buffer_object; -int GLAD_GL_SUN_triangle_list; -int GLAD_GL_SGIX_resample; -int GLAD_GL_SGIX_flush_raster; -int GLAD_GL_EXT_light_texture; -int GLAD_GL_ARB_point_sprite; -int GLAD_GL_ARB_sparse_texture2; -int GLAD_GL_ARB_half_float_pixel; -int GLAD_GL_NV_tessellation_program5; -int GLAD_GL_REND_screen_coordinates; -int GLAD_GL_HP_image_transform; -int GLAD_GL_EXT_packed_float; -int GLAD_GL_ATI_vertex_attrib_array_object; -int GLAD_GL_SGIX_vertex_preclip; -int GLAD_GL_SGIX_texture_scale_bias; -int GLAD_GL_AMD_draw_buffers_blend; -int GLAD_GL_APPLE_texture_range; -int GLAD_GL_SGIX_framezoom; -int GLAD_GL_NV_texture_barrier; -int GLAD_GL_ARB_texture_query_levels; -int GLAD_GL_EXT_blend_logic_op; -int GLAD_GL_EXT_texture_swizzle; -int GLAD_GL_ARB_texture_rg; -int GLAD_GL_ARB_vertex_type_2_10_10_10_rev; -int GLAD_GL_ARB_fragment_shader; -int GLAD_GL_3DFX_tbuffer; -int GLAD_GL_SGIX_ycrcb; -int GLAD_GL_IBM_cull_vertex; -int GLAD_GL_EXT_separate_shader_objects; -int GLAD_GL_NV_texture_multisample; -int GLAD_GL_ARB_shader_objects; -int GLAD_GL_ARB_framebuffer_object; -int GLAD_GL_ATI_envmap_bumpmap; -int GLAD_GL_ARB_robust_buffer_access_behavior; -int GLAD_GL_ARB_shader_stencil_export; -int GLAD_GL_AMD_sample_positions; -int GLAD_GL_ARB_enhanced_layouts; -int GLAD_GL_ARB_texture_rectangle; -int GLAD_GL_SGI_texture_color_table; -int GLAD_GL_ATI_map_object_buffer; -int GLAD_GL_ARB_robustness; -int GLAD_GL_NV_pixel_data_range; -int GLAD_GL_EXT_framebuffer_blit; -int GLAD_GL_ARB_gpu_shader_fp64; -int GLAD_GL_NV_command_list; -int GLAD_GL_ARB_window_pos; -int GLAD_GL_ARB_robustness_isolation; -int GLAD_GL_GREMEDY_string_marker; -int GLAD_GL_ARB_texture_compression_bptc; -int GLAD_GL_EXT_subtexture; -int GLAD_GL_EXT_pixel_transform_color_table; -int GLAD_GL_EXT_texture_compression_rgtc; -int GLAD_GL_ARB_shadow; -int GLAD_GL_SGIX_depth_pass_instrument; -int GLAD_GL_NVX_conditional_render; -int GLAD_GL_NV_evaluators; -int GLAD_GL_SGIS_texture_filter4; -int GLAD_GL_AMD_performance_monitor; -int GLAD_GL_NV_geometry_shader4; -int GLAD_GL_EXT_stencil_clear_tag; -int GLAD_GL_NV_vertex_program1_1; -int GLAD_GL_NV_present_video; -int GLAD_GL_ARB_texture_compression_rgtc; -int GLAD_GL_ARB_texture_filter_minmax; -int GLAD_GL_HP_convolution_border_modes; -int GLAD_GL_EXT_gpu_program_parameters; -int GLAD_GL_SGIX_list_priority; -int GLAD_GL_ARB_stencil_texturing; -int GLAD_GL_ARB_shader_clock; -int GLAD_GL_NV_shader_atomic_fp16_vector; -int GLAD_GL_SGIX_fog_offset; -int GLAD_GL_ARB_draw_elements_base_vertex; -int GLAD_GL_INGR_interlace_read; -int GLAD_GL_NV_transform_feedback; -int GLAD_GL_EXT_post_depth_coverage; -int GLAD_GL_ARB_debug_output; -int GLAD_GL_AMD_stencil_operation_extended; -int GLAD_GL_ARB_compatibility; -int GLAD_GL_ARB_instanced_arrays; -int GLAD_GL_ARB_get_texture_sub_image; -int GLAD_GL_NV_vertex_array_range2; -int GLAD_GL_ARB_texture_stencil8; -int GLAD_GL_AMD_sparse_texture; -int GLAD_GL_ARB_clip_control; -int GLAD_GL_NV_fragment_coverage_to_color; -int GLAD_GL_NV_fence; -int GLAD_GL_ARB_texture_buffer_range; -int GLAD_GL_SUN_mesh_array; -int GLAD_GL_ARB_vertex_attrib_binding; -int GLAD_GL_EXT_texture_compression_s3tc; -int GLAD_GL_ARB_cl_event; -int GLAD_GL_ARB_derivative_control; -int GLAD_GL_NV_packed_depth_stencil; -int GLAD_GL_OES_single_precision; -int GLAD_GL_NV_primitive_restart; -int GLAD_GL_ARB_fragment_shader_interlock; -int GLAD_GL_EXT_texture_object; -int GLAD_GL_AMD_name_gen_delete; -int GLAD_GL_NV_texture_compression_vtc; -int GLAD_GL_NV_sample_mask_override_coverage; -int GLAD_GL_NV_texture_shader3; -int GLAD_GL_NV_texture_shader2; -int GLAD_GL_EXT_texture; -int GLAD_GL_ARB_buffer_storage; -int GLAD_GL_AMD_shader_atomic_counter_ops; -int GLAD_GL_APPLE_vertex_program_evaluators; -int GLAD_GL_ARB_multi_bind; -int GLAD_GL_ARB_explicit_uniform_location; -int GLAD_GL_ARB_depth_buffer_float; -int GLAD_GL_NV_path_rendering_shared_edge; -int GLAD_GL_SGIX_shadow_ambient; -int GLAD_GL_ARB_texture_cube_map; -int GLAD_GL_AMD_vertex_shader_viewport_index; -int GLAD_GL_EXT_shader_integer_mix; -int GLAD_GL_NV_vertex_buffer_unified_memory; -int GLAD_GL_EXT_fog_coord; -int GLAD_GL_EXT_texture_env_dot3; -int GLAD_GL_ATI_texture_env_combine3; -int GLAD_GL_ARB_map_buffer_alignment; -int GLAD_GL_NV_blend_equation_advanced; -int GLAD_GL_SGIS_sharpen_texture; -int GLAD_GL_KHR_robust_buffer_access_behavior; -int GLAD_GL_ARB_pipeline_statistics_query; -int GLAD_GL_ARB_vertex_program; -int GLAD_GL_ARB_texture_rgb10_a2ui; -int GLAD_GL_OML_interlace; -int GLAD_GL_ATI_pixel_format_float; -int GLAD_GL_ARB_vertex_buffer_object; -int GLAD_GL_EXT_shadow_funcs; -int GLAD_GL_ATI_text_fragment_shader; -int GLAD_GL_NV_vertex_array_range; -int GLAD_GL_SGIX_fragment_lighting; -int GLAD_GL_NV_texture_expand_normal; -int GLAD_GL_NV_framebuffer_multisample_coverage; -int GLAD_GL_ARB_framebuffer_no_attachments; -int GLAD_GL_EXT_timer_query; -int GLAD_GL_EXT_vertex_array_bgra; -int GLAD_GL_NV_bindless_texture; -int GLAD_GL_KHR_debug; -int GLAD_GL_SGIS_texture_border_clamp; -int GLAD_GL_OML_subsample; -int GLAD_GL_SGIX_clipmap; -int GLAD_GL_EXT_geometry_shader4; -int GLAD_GL_ARB_shader_texture_image_samples; -int GLAD_GL_MESA_ycbcr_texture; -int GLAD_GL_MESAX_texture_stack; -int GLAD_GL_AMD_seamless_cubemap_per_texture; -int GLAD_GL_EXT_bindable_uniform; -int GLAD_GL_KHR_texture_compression_astc_hdr; -int GLAD_GL_ARB_shader_ballot; -int GLAD_GL_KHR_blend_equation_advanced; -int GLAD_GL_ARB_fragment_program_shadow; -int GLAD_GL_ATI_element_array; -int GLAD_GL_ARB_sparse_texture_clamp; -int GLAD_GL_AMD_texture_texture4; -int GLAD_GL_SGIX_reference_plane; -int GLAD_GL_EXT_stencil_two_side; -int GLAD_GL_ARB_transform_feedback_overflow_query; -int GLAD_GL_SGIX_texture_lod_bias; -int GLAD_GL_KHR_no_error; -int GLAD_GL_NV_explicit_multisample; -int GLAD_GL_IBM_static_data; -int GLAD_GL_EXT_clip_volume_hint; -int GLAD_GL_EXT_texture_perturb_normal; -int GLAD_GL_NV_fragment_program2; -int GLAD_GL_NV_fragment_program4; -int GLAD_GL_EXT_point_parameters; -int GLAD_GL_PGI_misc_hints; -int GLAD_GL_SGIX_subsample; -int GLAD_GL_AMD_shader_stencil_export; -int GLAD_GL_ARB_shader_texture_lod; -int GLAD_GL_ARB_vertex_shader; -int GLAD_GL_ARB_depth_clamp; -int GLAD_GL_SGIS_texture_select; -int GLAD_GL_NV_texture_shader; -int GLAD_GL_ARB_tessellation_shader; -int GLAD_GL_EXT_draw_buffers2; -int GLAD_GL_ARB_vertex_attrib_64bit; -int GLAD_GL_EXT_texture_filter_minmax; -int GLAD_GL_ARB_texture_gather; -int GLAD_GL_AMD_interleaved_elements; -int GLAD_GL_ARB_fragment_program; -int GLAD_GL_OML_resample; -int GLAD_GL_APPLE_ycbcr_422; -int GLAD_GL_SGIX_texture_add_env; -int GLAD_GL_ARB_shadow_ambient; -int GLAD_GL_ARB_texture_storage; -int GLAD_GL_EXT_pixel_buffer_object; -int GLAD_GL_NV_vertex_program; -int GLAD_GL_SGIS_pixel_texture; -int GLAD_GL_SGIS_generate_mipmap; -int GLAD_GL_SGIX_instruments; -int GLAD_GL_ARB_fragment_layer_viewport; -int GLAD_GL_ARB_shader_storage_buffer_object; -int GLAD_GL_EXT_sparse_texture2; -int GLAD_GL_EXT_blend_minmax; -int GLAD_GL_MESA_pack_invert; -int GLAD_GL_ARB_base_instance; -int GLAD_GL_SUN_global_alpha; -int GLAD_GL_PGI_vertex_hints; -int GLAD_GL_AMD_transform_feedback4; -int GLAD_GL_ARB_ES3_1_compatibility; -int GLAD_GL_EXT_texture_integer; -int GLAD_GL_ARB_texture_multisample; -int GLAD_GL_AMD_gpu_shader_int64; -int GLAD_GL_S3_s3tc; -int GLAD_GL_ARB_query_buffer_object; -int GLAD_GL_AMD_vertex_shader_tessellator; -int GLAD_GL_ARB_invalidate_subdata; -int GLAD_GL_ARB_draw_indirect; -int GLAD_GL_ARB_transform_feedback2; -int GLAD_GL_EXT_index_material; -int GLAD_GL_NV_blend_equation_advanced_coherent; -int GLAD_GL_ARB_texture_non_power_of_two; -int GLAD_GL_KHR_texture_compression_astc_sliced_3d; -int GLAD_GL_ATI_draw_buffers; -int GLAD_GL_EXT_cmyka; -int GLAD_GL_SGIX_pixel_texture; -int GLAD_GL_APPLE_specular_vector; -int GLAD_GL_ARB_seamless_cubemap_per_texture; -int GLAD_GL_ARB_conservative_depth; -int GLAD_GL_SGIX_interlace; -int GLAD_GL_NV_parameter_buffer_object; -int GLAD_GL_AMD_shader_trinary_minmax; -int GLAD_GL_EXT_texture_lod_bias; -int GLAD_GL_EXT_rescale_normal; -int GLAD_GL_ARB_pixel_buffer_object; -int GLAD_GL_ARB_uniform_buffer_object; -int GLAD_GL_ARB_vertex_type_10f_11f_11f_rev; -int GLAD_GL_ARB_texture_swizzle; -int GLAD_GL_ARB_texture_compression; -int GLAD_GL_SGIX_async_pixel; -int GLAD_GL_NV_fragment_program_option; -int GLAD_GL_ARB_explicit_attrib_location; -int GLAD_GL_EXT_blend_color; -int GLAD_GL_NV_shader_thread_group; -int GLAD_GL_EXT_stencil_wrap; -int GLAD_GL_EXT_index_array_formats; -int GLAD_GL_OVR_multiview2; -int GLAD_GL_EXT_histogram; -int GLAD_GL_EXT_polygon_offset; -int GLAD_GL_SGIS_point_parameters; -int GLAD_GL_EXT_direct_state_access; -int GLAD_GL_ARB_shader_group_vote; -int GLAD_GL_NV_texture_rectangle; -int GLAD_GL_ARB_copy_image; -int GLAD_GL_NV_shader_thread_shuffle; -int GLAD_GL_ARB_shader_precision; -int GLAD_GL_EXT_vertex_shader; -int GLAD_GL_EXT_blend_func_separate; -int GLAD_GL_APPLE_fence; -int GLAD_GL_OES_byte_coordinates; -int GLAD_GL_ARB_transpose_matrix; -int GLAD_GL_ARB_provoking_vertex; -int GLAD_GL_NV_uniform_buffer_unified_memory; -int GLAD_GL_NV_fragment_shader_interlock; -int GLAD_GL_EXT_vertex_array; -int GLAD_GL_ARB_half_float_vertex; -int GLAD_GL_EXT_blend_equation_separate; -int GLAD_GL_NV_framebuffer_mixed_samples; -int GLAD_GL_ARB_multi_draw_indirect; -int GLAD_GL_EXT_raster_multisample; -int GLAD_GL_NV_copy_image; -int GLAD_GL_NV_geometry_shader_passthrough; -int GLAD_GL_INTEL_framebuffer_CMAA; -int GLAD_GL_SGIX_convolution_accuracy; -int GLAD_GL_ARB_transform_feedback3; -int GLAD_GL_SGIX_ycrcba; -int GLAD_GL_EXT_debug_marker; -int GLAD_GL_EXT_bgra; -int GLAD_GL_INTEL_parallel_arrays; -int GLAD_GL_EXT_pixel_transform; -int GLAD_GL_NV_vertex_attrib_integer_64bit; -int GLAD_GL_ATI_fragment_shader; -int GLAD_GL_ARB_vertex_array_object; -int GLAD_GL_ATI_pn_triangles; -int GLAD_GL_EXT_texture_env_add; -int GLAD_GL_EXT_packed_depth_stencil; -int GLAD_GL_EXT_texture_mirror_clamp; -int GLAD_GL_NV_multisample_filter_hint; -int GLAD_GL_INTEL_performance_query; -int GLAD_GL_ARB_transform_feedback_instanced; -int GLAD_GL_SGIX_async; -int GLAD_GL_EXT_texture_compression_latc; -int GLAD_GL_NV_shader_atomic_float; -int GLAD_GL_ARB_shading_language_100; -int GLAD_GL_APPLE_float_pixels; -int GLAD_GL_ARB_texture_mirror_clamp_to_edge; -int GLAD_GL_NV_vertex_program2; -int GLAD_GL_NV_bindless_multi_draw_indirect_count; -int GLAD_GL_ARB_depth_texture; -int GLAD_GL_ARB_ES2_compatibility; -int GLAD_GL_ARB_indirect_parameters; -int GLAD_GL_NV_half_float; -int GLAD_GL_ARB_ES3_2_compatibility; -int GLAD_GL_ATI_texture_mirror_once; -int GLAD_GL_IBM_rasterpos_clip; -int GLAD_GL_SGIX_shadow; -int GLAD_GL_EXT_polygon_offset_clamp; -int GLAD_GL_NV_deep_texture3D; -int GLAD_GL_ARB_shader_draw_parameters; -int GLAD_GL_SGIX_calligraphic_fragment; -int GLAD_GL_ARB_shader_bit_encoding; -int GLAD_GL_EXT_compiled_vertex_array; -int GLAD_GL_NV_depth_buffer_float; -int GLAD_GL_APPLE_flush_buffer_range; -int GLAD_GL_ARB_imaging; -int GLAD_GL_ARB_draw_buffers_blend; -int GLAD_GL_AMD_gcn_shader; -int GLAD_GL_AMD_blend_minmax_factor; -int GLAD_GL_EXT_texture_sRGB_decode; -int GLAD_GL_ARB_shading_language_420pack; -int GLAD_GL_ARB_shader_viewport_layer_array; -int GLAD_GL_ATI_meminfo; -int GLAD_GL_EXT_abgr; -int GLAD_GL_AMD_pinned_memory; -int GLAD_GL_EXT_texture_snorm; -int GLAD_GL_SGIX_texture_coordinate_clamp; -int GLAD_GL_ARB_clear_buffer_object; -int GLAD_GL_ARB_multisample; -int GLAD_GL_EXT_debug_label; -int GLAD_GL_NV_light_max_exponent; -int GLAD_GL_NV_internalformat_sample_query; -int GLAD_GL_INTEL_map_texture; -int GLAD_GL_ARB_texture_env_crossbar; -int GLAD_GL_EXT_422_pixels; -int GLAD_GL_ARB_compute_shader; -int GLAD_GL_NV_texgen_emboss; -int GLAD_GL_ARB_blend_func_extended; -int GLAD_GL_IBM_vertex_array_lists; -int GLAD_GL_ARB_color_buffer_float; -int GLAD_GL_ARB_bindless_texture; -int GLAD_GL_SGIX_depth_texture; -int GLAD_GL_ARB_internalformat_query; -int GLAD_GL_ARB_shader_atomic_counter_ops; -int GLAD_GL_ARB_texture_mirrored_repeat; -int GLAD_GL_EXT_shader_image_load_store; -int GLAD_GL_EXT_copy_texture; -int GLAD_GL_NV_register_combiners2; -int GLAD_GL_SGIX_ycrcb_subsample; -int GLAD_GL_ARB_copy_buffer; -int GLAD_GL_NV_draw_texture; -int GLAD_GL_EXT_texture_shared_exponent; -int GLAD_GL_EXT_draw_instanced; -int GLAD_GL_NV_copy_depth_to_color; -int GLAD_GL_ARB_viewport_array; -int GLAD_GL_ARB_separate_shader_objects; -int GLAD_GL_EXT_multisample; -int GLAD_GL_EXT_depth_bounds_test; -int GLAD_GL_EXT_shared_texture_palette; -int GLAD_GL_ARB_texture_env_add; -int GLAD_GL_NV_video_capture; -int GLAD_GL_ARB_sampler_objects; -int GLAD_GL_ARB_matrix_palette; -int GLAD_GL_SGIS_texture_color_mask; -int GLAD_GL_EXT_packed_pixels; -int GLAD_GL_EXT_coordinate_frame; -int GLAD_GL_NV_transform_feedback2; -int GLAD_GL_APPLE_aux_depth_stencil; -int GLAD_GL_ARB_shader_subroutine; -int GLAD_GL_EXT_framebuffer_sRGB; -int GLAD_GL_ARB_texture_storage_multisample; -int GLAD_GL_KHR_blend_equation_advanced_coherent; -int GLAD_GL_EXT_vertex_attrib_64bit; -int GLAD_GL_HP_texture_lighting; -int GLAD_GL_NV_shader_buffer_store; -int GLAD_GL_OES_query_matrix; -int GLAD_GL_MESA_window_pos; -int GLAD_GL_NV_fill_rectangle; -int GLAD_GL_NV_shader_storage_buffer_object; -int GLAD_GL_ARB_texture_query_lod; -int GLAD_GL_SGIX_ir_instrument1; -int GLAD_GL_ARB_shader_image_size; -int GLAD_GL_NV_shader_atomic_counters; -int GLAD_GL_APPLE_object_purgeable; -int GLAD_GL_ARB_occlusion_query; -int GLAD_GL_INGR_color_clamp; -int GLAD_GL_SGI_color_table; -int GLAD_GL_EXT_framebuffer_multisample_blit_scaled; -int GLAD_GL_ARB_texture_cube_map_array; -int GLAD_GL_AMD_debug_output; -int GLAD_GL_EXT_gpu_shader4; -int GLAD_GL_NV_geometry_program4; -int GLAD_GL_NV_gpu_program5_mem_extended; -int GLAD_GL_SGIX_scalebias_hint; -int GLAD_GL_ARB_texture_border_clamp; -int GLAD_GL_ARB_fragment_coord_conventions; -int GLAD_GL_SGIX_polynomial_ffd; -int GLAD_GL_EXT_provoking_vertex; -int GLAD_GL_ARB_point_parameters; -int GLAD_GL_ARB_shader_image_load_store; -int GLAD_GL_ARB_conditional_render_inverted; -int GLAD_GL_HP_occlusion_test; -int GLAD_GL_ARB_ES3_compatibility; -int GLAD_GL_EXT_texture_array; -int GLAD_GL_ARB_texture_buffer_object_rgb32; -int GLAD_GL_NV_bindless_multi_draw_indirect; -int GLAD_GL_SGIX_texture_multi_buffer; -int GLAD_GL_EXT_transform_feedback; -int GLAD_GL_KHR_texture_compression_astc_ldr; -int GLAD_GL_3DFX_multisample; -int GLAD_GL_INTEL_fragment_shader_ordering; -int GLAD_GL_ARB_texture_env_dot3; -int GLAD_GL_NV_gpu_program4; -int GLAD_GL_NV_gpu_program5; -int GLAD_GL_NV_float_buffer; -int GLAD_GL_SGIS_texture_edge_clamp; -int GLAD_GL_ARB_framebuffer_sRGB; -int GLAD_GL_SUN_slice_accum; -int GLAD_GL_EXT_index_texture; -int GLAD_GL_EXT_shader_image_load_formatted; -int GLAD_GL_ARB_geometry_shader4; -int GLAD_GL_EXT_separate_specular_color; -int GLAD_GL_NV_fog_distance; -int GLAD_GL_NV_conservative_raster; -int GLAD_GL_SUN_convolution_border_modes; -int GLAD_GL_SGIX_sprite; -int GLAD_GL_ARB_get_program_binary; -int GLAD_GL_ARB_timer_query; -int GLAD_GL_AMD_occlusion_query_event; -int GLAD_GL_SGIS_multisample; -int GLAD_GL_EXT_framebuffer_object; -int GLAD_GL_EXT_vertex_weighting; -int GLAD_GL_ARB_vertex_array_bgra; -int GLAD_GL_APPLE_vertex_array_range; -int GLAD_GL_AMD_query_buffer_object; -int GLAD_GL_NV_register_combiners; -int GLAD_GL_ARB_draw_buffers; -int GLAD_GL_ARB_clear_texture; -int GLAD_GL_NV_fragment_program; -int GLAD_GL_SGI_color_matrix; -int GLAD_GL_EXT_cull_vertex; -int GLAD_GL_EXT_texture_sRGB; -int GLAD_GL_APPLE_row_bytes; -int GLAD_GL_NV_texgen_reflection; -int GLAD_GL_IBM_multimode_draw_arrays; -int GLAD_GL_APPLE_vertex_array_object; -int GLAD_GL_3DFX_texture_compression_FXT1; -int GLAD_GL_GREMEDY_frame_terminator; -int GLAD_GL_AMD_conservative_depth; -int GLAD_GL_ARB_texture_float; -int GLAD_GL_ARB_compressed_texture_pixel_storage; -int GLAD_GL_SGIS_detail_texture; -int GLAD_GL_ARB_draw_instanced; -int GLAD_GL_OES_read_format; -int GLAD_GL_ATI_texture_float; -int GLAD_GL_WIN_specular_fog; -int GLAD_GL_AMD_vertex_shader_layer; -int GLAD_GL_ARB_shading_language_include; -int GLAD_GL_APPLE_client_storage; -int GLAD_GL_WIN_phong_shading; -int GLAD_GL_INGR_blend_func_separate; -int GLAD_GL_NV_path_rendering; -int GLAD_GL_NV_conservative_raster_dilate; -int GLAD_GL_ARB_texture_barrier; -int GLAD_GL_ATI_vertex_streams; -int GLAD_GL_ARB_post_depth_coverage; -int GLAD_GL_NV_occlusion_query; -int GLAD_GL_APPLE_rgb_422; -int GLAD_GL_ARB_direct_state_access; -int GLAD_GL_ARB_gpu_shader_int64; -int GLAD_GL_ARB_seamless_cube_map; -int GLAD_GL_ARB_cull_distance; -int GLAD_GL_NV_vdpau_interop; -int GLAD_GL_ARB_occlusion_query2; -int GLAD_GL_ARB_internalformat_query2; -int GLAD_GL_EXT_texture_filter_anisotropic; -int GLAD_GL_SUN_vertex; -int GLAD_GL_ARB_sparse_texture; -int GLAD_GL_SGIS_texture_lod; -int GLAD_GL_NV_vertex_program3; -int GLAD_GL_NV_gpu_shader5; -int GLAD_GL_NV_vertex_program4; -int GLAD_GL_AMD_transform_feedback3_lines_triangles; -int GLAD_GL_SGIS_fog_function; -int GLAD_GL_EXT_x11_sync_object; -int GLAD_GL_ARB_sync; -int GLAD_GL_NV_sample_locations; -int GLAD_GL_ARB_compute_variable_group_size; -int GLAD_GL_OES_fixed_point; -int GLAD_GL_NV_blend_square; -int GLAD_GL_EXT_framebuffer_multisample; -int GLAD_GL_ARB_gpu_shader5; -int GLAD_GL_SGIS_texture4D; -int GLAD_GL_EXT_texture3D; -int GLAD_GL_ARB_multitexture; -int GLAD_GL_EXT_secondary_color; -int GLAD_GL_NV_parameter_buffer_object2; -int GLAD_GL_ATI_vertex_array_object; -int GLAD_GL_ARB_parallel_shader_compile; -int GLAD_GL_NVX_gpu_memory_info; -int GLAD_GL_SGIX_igloo_interface; -int GLAD_GL_SGIS_point_line_texgen; -int GLAD_GL_ARB_sample_locations; -int GLAD_GL_ARB_sparse_buffer; -int GLAD_GL_EXT_draw_range_elements; -int GLAD_GL_SGIX_blend_alpha_minmax; -int GLAD_GL_KHR_context_flush_control; -PFNGLELEMENTPOINTERAPPLEPROC glad_glElementPointerAPPLE; -PFNGLDRAWELEMENTARRAYAPPLEPROC glad_glDrawElementArrayAPPLE; -PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC glad_glDrawRangeElementArrayAPPLE; -PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC glad_glMultiDrawElementArrayAPPLE; -PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC glad_glMultiDrawRangeElementArrayAPPLE; -PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC glad_glMultiDrawArraysIndirectAMD; -PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC glad_glMultiDrawElementsIndirectAMD; -PFNGLTAGSAMPLEBUFFERSGIXPROC glad_glTagSampleBufferSGIX; -PFNGLPOINTPARAMETERINVPROC glad_glPointParameteriNV; -PFNGLPOINTPARAMETERIVNVPROC glad_glPointParameterivNV; -PFNGLSTENCILOPSEPARATEATIPROC glad_glStencilOpSeparateATI; -PFNGLSTENCILFUNCSEPARATEATIPROC glad_glStencilFuncSeparateATI; -PFNGLTEXBUFFEREXTPROC glad_glTexBufferEXT; -PFNGLWEIGHTBVARBPROC glad_glWeightbvARB; -PFNGLWEIGHTSVARBPROC glad_glWeightsvARB; -PFNGLWEIGHTIVARBPROC glad_glWeightivARB; -PFNGLWEIGHTFVARBPROC glad_glWeightfvARB; -PFNGLWEIGHTDVARBPROC glad_glWeightdvARB; -PFNGLWEIGHTUBVARBPROC glad_glWeightubvARB; -PFNGLWEIGHTUSVARBPROC glad_glWeightusvARB; -PFNGLWEIGHTUIVARBPROC glad_glWeightuivARB; -PFNGLWEIGHTPOINTERARBPROC glad_glWeightPointerARB; -PFNGLVERTEXBLENDARBPROC glad_glVertexBlendARB; -PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC glad_glFramebufferTextureMultiviewOVR; -PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv; -PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex; -PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName; -PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv; -PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation; -PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glad_glGetProgramResourceLocationIndex; -PFNGLINDEXFUNCEXTPROC glad_glIndexFuncEXT; -PFNGLMAKEBUFFERRESIDENTNVPROC glad_glMakeBufferResidentNV; -PFNGLMAKEBUFFERNONRESIDENTNVPROC glad_glMakeBufferNonResidentNV; -PFNGLISBUFFERRESIDENTNVPROC glad_glIsBufferResidentNV; -PFNGLMAKENAMEDBUFFERRESIDENTNVPROC glad_glMakeNamedBufferResidentNV; -PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC glad_glMakeNamedBufferNonResidentNV; -PFNGLISNAMEDBUFFERRESIDENTNVPROC glad_glIsNamedBufferResidentNV; -PFNGLGETBUFFERPARAMETERUI64VNVPROC glad_glGetBufferParameterui64vNV; -PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC glad_glGetNamedBufferParameterui64vNV; -PFNGLGETINTEGERUI64VNVPROC glad_glGetIntegerui64vNV; -PFNGLUNIFORMUI64NVPROC glad_glUniformui64NV; -PFNGLUNIFORMUI64VNVPROC glad_glUniformui64vNV; -PFNGLGETUNIFORMUI64VNVPROC glad_glGetUniformui64vNV; -PFNGLPROGRAMUNIFORMUI64NVPROC glad_glProgramUniformui64NV; -PFNGLPROGRAMUNIFORMUI64VNVPROC glad_glProgramUniformui64vNV; -PFNGLCOLORSUBTABLEEXTPROC glad_glColorSubTableEXT; -PFNGLCOPYCOLORSUBTABLEEXTPROC glad_glCopyColorSubTableEXT; -PFNGLFINISHTEXTURESUNXPROC glad_glFinishTextureSUNX; -PFNGLMULTIDRAWARRAYSEXTPROC glad_glMultiDrawArraysEXT; -PFNGLMULTIDRAWELEMENTSEXTPROC glad_glMultiDrawElementsEXT; -PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv; -PFNGLBEGINCONDITIONALRENDERNVPROC glad_glBeginConditionalRenderNV; -PFNGLENDCONDITIONALRENDERNVPROC glad_glEndConditionalRenderNV; -PFNGLRESIZEBUFFERSMESAPROC glad_glResizeBuffersMESA; -PFNGLTEXTUREVIEWPROC glad_glTextureView; -PFNGLCONVOLUTIONFILTER1DEXTPROC glad_glConvolutionFilter1DEXT; -PFNGLCONVOLUTIONFILTER2DEXTPROC glad_glConvolutionFilter2DEXT; -PFNGLCONVOLUTIONPARAMETERFEXTPROC glad_glConvolutionParameterfEXT; -PFNGLCONVOLUTIONPARAMETERFVEXTPROC glad_glConvolutionParameterfvEXT; -PFNGLCONVOLUTIONPARAMETERIEXTPROC glad_glConvolutionParameteriEXT; -PFNGLCONVOLUTIONPARAMETERIVEXTPROC glad_glConvolutionParameterivEXT; -PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC glad_glCopyConvolutionFilter1DEXT; -PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC glad_glCopyConvolutionFilter2DEXT; -PFNGLGETCONVOLUTIONFILTEREXTPROC glad_glGetConvolutionFilterEXT; -PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC glad_glGetConvolutionParameterfvEXT; -PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC glad_glGetConvolutionParameterivEXT; -PFNGLGETSEPARABLEFILTEREXTPROC glad_glGetSeparableFilterEXT; -PFNGLSEPARABLEFILTER2DEXTPROC glad_glSeparableFilter2DEXT; -PFNGLVERTEXATTRIBL1I64NVPROC glad_glVertexAttribL1i64NV; -PFNGLVERTEXATTRIBL2I64NVPROC glad_glVertexAttribL2i64NV; -PFNGLVERTEXATTRIBL3I64NVPROC glad_glVertexAttribL3i64NV; -PFNGLVERTEXATTRIBL4I64NVPROC glad_glVertexAttribL4i64NV; -PFNGLVERTEXATTRIBL1I64VNVPROC glad_glVertexAttribL1i64vNV; -PFNGLVERTEXATTRIBL2I64VNVPROC glad_glVertexAttribL2i64vNV; -PFNGLVERTEXATTRIBL3I64VNVPROC glad_glVertexAttribL3i64vNV; -PFNGLVERTEXATTRIBL4I64VNVPROC glad_glVertexAttribL4i64vNV; -PFNGLVERTEXATTRIBL1UI64NVPROC glad_glVertexAttribL1ui64NV; -PFNGLVERTEXATTRIBL2UI64NVPROC glad_glVertexAttribL2ui64NV; -PFNGLVERTEXATTRIBL3UI64NVPROC glad_glVertexAttribL3ui64NV; -PFNGLVERTEXATTRIBL4UI64NVPROC glad_glVertexAttribL4ui64NV; -PFNGLVERTEXATTRIBL1UI64VNVPROC glad_glVertexAttribL1ui64vNV; -PFNGLVERTEXATTRIBL2UI64VNVPROC glad_glVertexAttribL2ui64vNV; -PFNGLVERTEXATTRIBL3UI64VNVPROC glad_glVertexAttribL3ui64vNV; -PFNGLVERTEXATTRIBL4UI64VNVPROC glad_glVertexAttribL4ui64vNV; -PFNGLGETVERTEXATTRIBLI64VNVPROC glad_glGetVertexAttribLi64vNV; -PFNGLGETVERTEXATTRIBLUI64VNVPROC glad_glGetVertexAttribLui64vNV; -PFNGLVERTEXATTRIBLFORMATNVPROC glad_glVertexAttribLFormatNV; -PFNGLCOLORTABLEEXTPROC glad_glColorTableEXT; -PFNGLGETCOLORTABLEEXTPROC glad_glGetColorTableEXT; -PFNGLGETCOLORTABLEPARAMETERIVEXTPROC glad_glGetColorTableParameterivEXT; -PFNGLGETCOLORTABLEPARAMETERFVEXTPROC glad_glGetColorTableParameterfvEXT; -PFNGLTEXBUFFERARBPROC glad_glTexBufferARB; -PFNGLPNTRIANGLESIATIPROC glad_glPNTrianglesiATI; -PFNGLPNTRIANGLESFATIPROC glad_glPNTrianglesfATI; -PFNGLFLUSHRASTERSGIXPROC glad_glFlushRasterSGIX; -PFNGLAPPLYTEXTUREEXTPROC glad_glApplyTextureEXT; -PFNGLTEXTURELIGHTEXTPROC glad_glTextureLightEXT; -PFNGLTEXTUREMATERIALEXTPROC glad_glTextureMaterialEXT; -PFNGLIMAGETRANSFORMPARAMETERIHPPROC glad_glImageTransformParameteriHP; -PFNGLIMAGETRANSFORMPARAMETERFHPPROC glad_glImageTransformParameterfHP; -PFNGLIMAGETRANSFORMPARAMETERIVHPPROC glad_glImageTransformParameterivHP; -PFNGLIMAGETRANSFORMPARAMETERFVHPPROC glad_glImageTransformParameterfvHP; -PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC glad_glGetImageTransformParameterivHP; -PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC glad_glGetImageTransformParameterfvHP; -PFNGLBLENDFUNCINDEXEDAMDPROC glad_glBlendFuncIndexedAMD; -PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC glad_glBlendFuncSeparateIndexedAMD; -PFNGLBLENDEQUATIONINDEXEDAMDPROC glad_glBlendEquationIndexedAMD; -PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC glad_glBlendEquationSeparateIndexedAMD; -PFNGLTEXTURERANGEAPPLEPROC glad_glTextureRangeAPPLE; -PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC glad_glGetTexParameterPointervAPPLE; -PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC glad_glFramebufferTextureLayerEXT; -PFNGLTEXTUREBARRIERNVPROC glad_glTextureBarrierNV; -PFNGLTBUFFERMASK3DFXPROC glad_glTbufferMask3DFX; -PFNGLFRAMETERMINATORGREMEDYPROC glad_glFrameTerminatorGREMEDY; -PFNGLUSESHADERPROGRAMEXTPROC glad_glUseShaderProgramEXT; -PFNGLACTIVEPROGRAMEXTPROC glad_glActiveProgramEXT; -PFNGLCREATESHADERPROGRAMEXTPROC glad_glCreateShaderProgramEXT; -PFNGLACTIVESHADERPROGRAMEXTPROC glad_glActiveShaderProgramEXT; -PFNGLBINDPROGRAMPIPELINEEXTPROC glad_glBindProgramPipelineEXT; -PFNGLCREATESHADERPROGRAMVEXTPROC glad_glCreateShaderProgramvEXT; -PFNGLDELETEPROGRAMPIPELINESEXTPROC glad_glDeleteProgramPipelinesEXT; -PFNGLGENPROGRAMPIPELINESEXTPROC glad_glGenProgramPipelinesEXT; -PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC glad_glGetProgramPipelineInfoLogEXT; -PFNGLGETPROGRAMPIPELINEIVEXTPROC glad_glGetProgramPipelineivEXT; -PFNGLISPROGRAMPIPELINEEXTPROC glad_glIsProgramPipelineEXT; -PFNGLPROGRAMPARAMETERIEXTPROC glad_glProgramParameteriEXT; -PFNGLPROGRAMUNIFORM1FEXTPROC glad_glProgramUniform1fEXT; -PFNGLPROGRAMUNIFORM1FVEXTPROC glad_glProgramUniform1fvEXT; -PFNGLPROGRAMUNIFORM1IEXTPROC glad_glProgramUniform1iEXT; -PFNGLPROGRAMUNIFORM1IVEXTPROC glad_glProgramUniform1ivEXT; -PFNGLPROGRAMUNIFORM2FEXTPROC glad_glProgramUniform2fEXT; -PFNGLPROGRAMUNIFORM2FVEXTPROC glad_glProgramUniform2fvEXT; -PFNGLPROGRAMUNIFORM2IEXTPROC glad_glProgramUniform2iEXT; -PFNGLPROGRAMUNIFORM2IVEXTPROC glad_glProgramUniform2ivEXT; -PFNGLPROGRAMUNIFORM3FEXTPROC glad_glProgramUniform3fEXT; -PFNGLPROGRAMUNIFORM3FVEXTPROC glad_glProgramUniform3fvEXT; -PFNGLPROGRAMUNIFORM3IEXTPROC glad_glProgramUniform3iEXT; -PFNGLPROGRAMUNIFORM3IVEXTPROC glad_glProgramUniform3ivEXT; -PFNGLPROGRAMUNIFORM4FEXTPROC glad_glProgramUniform4fEXT; -PFNGLPROGRAMUNIFORM4FVEXTPROC glad_glProgramUniform4fvEXT; -PFNGLPROGRAMUNIFORM4IEXTPROC glad_glProgramUniform4iEXT; -PFNGLPROGRAMUNIFORM4IVEXTPROC glad_glProgramUniform4ivEXT; -PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC glad_glProgramUniformMatrix2fvEXT; -PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC glad_glProgramUniformMatrix3fvEXT; -PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC glad_glProgramUniformMatrix4fvEXT; -PFNGLUSEPROGRAMSTAGESEXTPROC glad_glUseProgramStagesEXT; -PFNGLVALIDATEPROGRAMPIPELINEEXTPROC glad_glValidateProgramPipelineEXT; -PFNGLPROGRAMUNIFORM1UIEXTPROC glad_glProgramUniform1uiEXT; -PFNGLPROGRAMUNIFORM2UIEXTPROC glad_glProgramUniform2uiEXT; -PFNGLPROGRAMUNIFORM3UIEXTPROC glad_glProgramUniform3uiEXT; -PFNGLPROGRAMUNIFORM4UIEXTPROC glad_glProgramUniform4uiEXT; -PFNGLPROGRAMUNIFORM1UIVEXTPROC glad_glProgramUniform1uivEXT; -PFNGLPROGRAMUNIFORM2UIVEXTPROC glad_glProgramUniform2uivEXT; -PFNGLPROGRAMUNIFORM3UIVEXTPROC glad_glProgramUniform3uivEXT; -PFNGLPROGRAMUNIFORM4UIVEXTPROC glad_glProgramUniform4uivEXT; -PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC glad_glProgramUniformMatrix2x3fvEXT; -PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC glad_glProgramUniformMatrix3x2fvEXT; -PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC glad_glProgramUniformMatrix2x4fvEXT; -PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC glad_glProgramUniformMatrix4x2fvEXT; -PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC glad_glProgramUniformMatrix3x4fvEXT; -PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC glad_glProgramUniformMatrix4x3fvEXT; -PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC glad_glTexImage2DMultisampleCoverageNV; -PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC glad_glTexImage3DMultisampleCoverageNV; -PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC glad_glTextureImage2DMultisampleNV; -PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC glad_glTextureImage3DMultisampleNV; -PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC glad_glTextureImage2DMultisampleCoverageNV; -PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC glad_glTextureImage3DMultisampleCoverageNV; -PFNGLDELETEOBJECTARBPROC glad_glDeleteObjectARB; -PFNGLGETHANDLEARBPROC glad_glGetHandleARB; -PFNGLDETACHOBJECTARBPROC glad_glDetachObjectARB; -PFNGLCREATESHADEROBJECTARBPROC glad_glCreateShaderObjectARB; -PFNGLSHADERSOURCEARBPROC glad_glShaderSourceARB; -PFNGLCOMPILESHADERARBPROC glad_glCompileShaderARB; -PFNGLCREATEPROGRAMOBJECTARBPROC glad_glCreateProgramObjectARB; -PFNGLATTACHOBJECTARBPROC glad_glAttachObjectARB; -PFNGLLINKPROGRAMARBPROC glad_glLinkProgramARB; -PFNGLUSEPROGRAMOBJECTARBPROC glad_glUseProgramObjectARB; -PFNGLVALIDATEPROGRAMARBPROC glad_glValidateProgramARB; -PFNGLUNIFORM1FARBPROC glad_glUniform1fARB; -PFNGLUNIFORM2FARBPROC glad_glUniform2fARB; -PFNGLUNIFORM3FARBPROC glad_glUniform3fARB; -PFNGLUNIFORM4FARBPROC glad_glUniform4fARB; -PFNGLUNIFORM1IARBPROC glad_glUniform1iARB; -PFNGLUNIFORM2IARBPROC glad_glUniform2iARB; -PFNGLUNIFORM3IARBPROC glad_glUniform3iARB; -PFNGLUNIFORM4IARBPROC glad_glUniform4iARB; -PFNGLUNIFORM1FVARBPROC glad_glUniform1fvARB; -PFNGLUNIFORM2FVARBPROC glad_glUniform2fvARB; -PFNGLUNIFORM3FVARBPROC glad_glUniform3fvARB; -PFNGLUNIFORM4FVARBPROC glad_glUniform4fvARB; -PFNGLUNIFORM1IVARBPROC glad_glUniform1ivARB; -PFNGLUNIFORM2IVARBPROC glad_glUniform2ivARB; -PFNGLUNIFORM3IVARBPROC glad_glUniform3ivARB; -PFNGLUNIFORM4IVARBPROC glad_glUniform4ivARB; -PFNGLUNIFORMMATRIX2FVARBPROC glad_glUniformMatrix2fvARB; -PFNGLUNIFORMMATRIX3FVARBPROC glad_glUniformMatrix3fvARB; -PFNGLUNIFORMMATRIX4FVARBPROC glad_glUniformMatrix4fvARB; -PFNGLGETOBJECTPARAMETERFVARBPROC glad_glGetObjectParameterfvARB; -PFNGLGETOBJECTPARAMETERIVARBPROC glad_glGetObjectParameterivARB; -PFNGLGETINFOLOGARBPROC glad_glGetInfoLogARB; -PFNGLGETATTACHEDOBJECTSARBPROC glad_glGetAttachedObjectsARB; -PFNGLGETUNIFORMLOCATIONARBPROC glad_glGetUniformLocationARB; -PFNGLGETACTIVEUNIFORMARBPROC glad_glGetActiveUniformARB; -PFNGLGETUNIFORMFVARBPROC glad_glGetUniformfvARB; -PFNGLGETUNIFORMIVARBPROC glad_glGetUniformivARB; -PFNGLGETSHADERSOURCEARBPROC glad_glGetShaderSourceARB; -PFNGLTEXBUMPPARAMETERIVATIPROC glad_glTexBumpParameterivATI; -PFNGLTEXBUMPPARAMETERFVATIPROC glad_glTexBumpParameterfvATI; -PFNGLGETTEXBUMPPARAMETERIVATIPROC glad_glGetTexBumpParameterivATI; -PFNGLGETTEXBUMPPARAMETERFVATIPROC glad_glGetTexBumpParameterfvATI; -PFNGLMAPOBJECTBUFFERATIPROC glad_glMapObjectBufferATI; -PFNGLUNMAPOBJECTBUFFERATIPROC glad_glUnmapObjectBufferATI; -PFNGLGETGRAPHICSRESETSTATUSARBPROC glad_glGetGraphicsResetStatusARB; -PFNGLGETNTEXIMAGEARBPROC glad_glGetnTexImageARB; -PFNGLREADNPIXELSARBPROC glad_glReadnPixelsARB; -PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC glad_glGetnCompressedTexImageARB; -PFNGLGETNUNIFORMFVARBPROC glad_glGetnUniformfvARB; -PFNGLGETNUNIFORMIVARBPROC glad_glGetnUniformivARB; -PFNGLGETNUNIFORMUIVARBPROC glad_glGetnUniformuivARB; -PFNGLGETNUNIFORMDVARBPROC glad_glGetnUniformdvARB; -PFNGLGETNMAPDVARBPROC glad_glGetnMapdvARB; -PFNGLGETNMAPFVARBPROC glad_glGetnMapfvARB; -PFNGLGETNMAPIVARBPROC glad_glGetnMapivARB; -PFNGLGETNPIXELMAPFVARBPROC glad_glGetnPixelMapfvARB; -PFNGLGETNPIXELMAPUIVARBPROC glad_glGetnPixelMapuivARB; -PFNGLGETNPIXELMAPUSVARBPROC glad_glGetnPixelMapusvARB; -PFNGLGETNPOLYGONSTIPPLEARBPROC glad_glGetnPolygonStippleARB; -PFNGLGETNCOLORTABLEARBPROC glad_glGetnColorTableARB; -PFNGLGETNCONVOLUTIONFILTERARBPROC glad_glGetnConvolutionFilterARB; -PFNGLGETNSEPARABLEFILTERARBPROC glad_glGetnSeparableFilterARB; -PFNGLGETNHISTOGRAMARBPROC glad_glGetnHistogramARB; -PFNGLGETNMINMAXARBPROC glad_glGetnMinmaxARB; -PFNGLPIXELDATARANGENVPROC glad_glPixelDataRangeNV; -PFNGLFLUSHPIXELDATARANGENVPROC glad_glFlushPixelDataRangeNV; -PFNGLBLITFRAMEBUFFEREXTPROC glad_glBlitFramebufferEXT; -PFNGLUNIFORM1DPROC glad_glUniform1d; -PFNGLUNIFORM2DPROC glad_glUniform2d; -PFNGLUNIFORM3DPROC glad_glUniform3d; -PFNGLUNIFORM4DPROC glad_glUniform4d; -PFNGLUNIFORM1DVPROC glad_glUniform1dv; -PFNGLUNIFORM2DVPROC glad_glUniform2dv; -PFNGLUNIFORM3DVPROC glad_glUniform3dv; -PFNGLUNIFORM4DVPROC glad_glUniform4dv; -PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv; -PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv; -PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv; -PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv; -PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv; -PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv; -PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv; -PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv; -PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv; -PFNGLGETUNIFORMDVPROC glad_glGetUniformdv; -PFNGLCREATESTATESNVPROC glad_glCreateStatesNV; -PFNGLDELETESTATESNVPROC glad_glDeleteStatesNV; -PFNGLISSTATENVPROC glad_glIsStateNV; -PFNGLSTATECAPTURENVPROC glad_glStateCaptureNV; -PFNGLGETCOMMANDHEADERNVPROC glad_glGetCommandHeaderNV; -PFNGLGETSTAGEINDEXNVPROC glad_glGetStageIndexNV; -PFNGLDRAWCOMMANDSNVPROC glad_glDrawCommandsNV; -PFNGLDRAWCOMMANDSADDRESSNVPROC glad_glDrawCommandsAddressNV; -PFNGLDRAWCOMMANDSSTATESNVPROC glad_glDrawCommandsStatesNV; -PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC glad_glDrawCommandsStatesAddressNV; -PFNGLCREATECOMMANDLISTSNVPROC glad_glCreateCommandListsNV; -PFNGLDELETECOMMANDLISTSNVPROC glad_glDeleteCommandListsNV; -PFNGLISCOMMANDLISTNVPROC glad_glIsCommandListNV; -PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC glad_glListDrawCommandsStatesClientNV; -PFNGLCOMMANDLISTSEGMENTSNVPROC glad_glCommandListSegmentsNV; -PFNGLCOMPILECOMMANDLISTNVPROC glad_glCompileCommandListNV; -PFNGLCALLCOMMANDLISTNVPROC glad_glCallCommandListNV; -PFNGLVERTEXWEIGHTFEXTPROC glad_glVertexWeightfEXT; -PFNGLVERTEXWEIGHTFVEXTPROC glad_glVertexWeightfvEXT; -PFNGLVERTEXWEIGHTPOINTEREXTPROC glad_glVertexWeightPointerEXT; -PFNGLSTRINGMARKERGREMEDYPROC glad_glStringMarkerGREMEDY; -PFNGLTEXSUBIMAGE1DEXTPROC glad_glTexSubImage1DEXT; -PFNGLTEXSUBIMAGE2DEXTPROC glad_glTexSubImage2DEXT; -PFNGLPROGRAMENVPARAMETERS4FVEXTPROC glad_glProgramEnvParameters4fvEXT; -PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC glad_glProgramLocalParameters4fvEXT; -PFNGLMAPCONTROLPOINTSNVPROC glad_glMapControlPointsNV; -PFNGLMAPPARAMETERIVNVPROC glad_glMapParameterivNV; -PFNGLMAPPARAMETERFVNVPROC glad_glMapParameterfvNV; -PFNGLGETMAPCONTROLPOINTSNVPROC glad_glGetMapControlPointsNV; -PFNGLGETMAPPARAMETERIVNVPROC glad_glGetMapParameterivNV; -PFNGLGETMAPPARAMETERFVNVPROC glad_glGetMapParameterfvNV; -PFNGLGETMAPATTRIBPARAMETERIVNVPROC glad_glGetMapAttribParameterivNV; -PFNGLGETMAPATTRIBPARAMETERFVNVPROC glad_glGetMapAttribParameterfvNV; -PFNGLEVALMAPSNVPROC glad_glEvalMapsNV; -PFNGLGETTEXFILTERFUNCSGISPROC glad_glGetTexFilterFuncSGIS; -PFNGLTEXFILTERFUNCSGISPROC glad_glTexFilterFuncSGIS; -PFNGLGETPERFMONITORGROUPSAMDPROC glad_glGetPerfMonitorGroupsAMD; -PFNGLGETPERFMONITORCOUNTERSAMDPROC glad_glGetPerfMonitorCountersAMD; -PFNGLGETPERFMONITORGROUPSTRINGAMDPROC glad_glGetPerfMonitorGroupStringAMD; -PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC glad_glGetPerfMonitorCounterStringAMD; -PFNGLGETPERFMONITORCOUNTERINFOAMDPROC glad_glGetPerfMonitorCounterInfoAMD; -PFNGLGENPERFMONITORSAMDPROC glad_glGenPerfMonitorsAMD; -PFNGLDELETEPERFMONITORSAMDPROC glad_glDeletePerfMonitorsAMD; -PFNGLSELECTPERFMONITORCOUNTERSAMDPROC glad_glSelectPerfMonitorCountersAMD; -PFNGLBEGINPERFMONITORAMDPROC glad_glBeginPerfMonitorAMD; -PFNGLENDPERFMONITORAMDPROC glad_glEndPerfMonitorAMD; -PFNGLGETPERFMONITORCOUNTERDATAAMDPROC glad_glGetPerfMonitorCounterDataAMD; -PFNGLSTENCILCLEARTAGEXTPROC glad_glStencilClearTagEXT; -PFNGLPRESENTFRAMEKEYEDNVPROC glad_glPresentFrameKeyedNV; -PFNGLPRESENTFRAMEDUALFILLNVPROC glad_glPresentFrameDualFillNV; -PFNGLGETVIDEOIVNVPROC glad_glGetVideoivNV; -PFNGLGETVIDEOUIVNVPROC glad_glGetVideouivNV; -PFNGLGETVIDEOI64VNVPROC glad_glGetVideoi64vNV; -PFNGLGETVIDEOUI64VNVPROC glad_glGetVideoui64vNV; -PFNGLFRAMEZOOMSGIXPROC glad_glFrameZoomSGIX; -PFNGLBEGINTRANSFORMFEEDBACKNVPROC glad_glBeginTransformFeedbackNV; -PFNGLENDTRANSFORMFEEDBACKNVPROC glad_glEndTransformFeedbackNV; -PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC glad_glTransformFeedbackAttribsNV; -PFNGLBINDBUFFERRANGENVPROC glad_glBindBufferRangeNV; -PFNGLBINDBUFFEROFFSETNVPROC glad_glBindBufferOffsetNV; -PFNGLBINDBUFFERBASENVPROC glad_glBindBufferBaseNV; -PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC glad_glTransformFeedbackVaryingsNV; -PFNGLACTIVEVARYINGNVPROC glad_glActiveVaryingNV; -PFNGLGETVARYINGLOCATIONNVPROC glad_glGetVaryingLocationNV; -PFNGLGETACTIVEVARYINGNVPROC glad_glGetActiveVaryingNV; -PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC glad_glGetTransformFeedbackVaryingNV; -PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC glad_glTransformFeedbackStreamAttribsNV; -PFNGLPROGRAMNAMEDPARAMETER4FNVPROC glad_glProgramNamedParameter4fNV; -PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC glad_glProgramNamedParameter4fvNV; -PFNGLPROGRAMNAMEDPARAMETER4DNVPROC glad_glProgramNamedParameter4dNV; -PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC glad_glProgramNamedParameter4dvNV; -PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC glad_glGetProgramNamedParameterfvNV; -PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC glad_glGetProgramNamedParameterdvNV; -PFNGLSTENCILOPVALUEAMDPROC glad_glStencilOpValueAMD; -PFNGLVERTEXATTRIBDIVISORARBPROC glad_glVertexAttribDivisorARB; -PFNGLPOLYGONOFFSETEXTPROC glad_glPolygonOffsetEXT; -PFNGLGETGRAPHICSRESETSTATUSPROC glad_glGetGraphicsResetStatus; -PFNGLREADNPIXELSPROC glad_glReadnPixels; -PFNGLGETNUNIFORMFVPROC glad_glGetnUniformfv; -PFNGLGETNUNIFORMIVPROC glad_glGetnUniformiv; -PFNGLGETNUNIFORMUIVPROC glad_glGetnUniformuiv; -PFNGLGETGRAPHICSRESETSTATUSKHRPROC glad_glGetGraphicsResetStatusKHR; -PFNGLREADNPIXELSKHRPROC glad_glReadnPixelsKHR; -PFNGLGETNUNIFORMFVKHRPROC glad_glGetnUniformfvKHR; -PFNGLGETNUNIFORMIVKHRPROC glad_glGetnUniformivKHR; -PFNGLGETNUNIFORMUIVKHRPROC glad_glGetnUniformuivKHR; -PFNGLTEXSTORAGESPARSEAMDPROC glad_glTexStorageSparseAMD; -PFNGLTEXTURESTORAGESPARSEAMDPROC glad_glTextureStorageSparseAMD; -PFNGLCLIPCONTROLPROC glad_glClipControl; -PFNGLFRAGMENTCOVERAGECOLORNVPROC glad_glFragmentCoverageColorNV; -PFNGLDELETEFENCESNVPROC glad_glDeleteFencesNV; -PFNGLGENFENCESNVPROC glad_glGenFencesNV; -PFNGLISFENCENVPROC glad_glIsFenceNV; -PFNGLTESTFENCENVPROC glad_glTestFenceNV; -PFNGLGETFENCEIVNVPROC glad_glGetFenceivNV; -PFNGLFINISHFENCENVPROC glad_glFinishFenceNV; -PFNGLSETFENCENVPROC glad_glSetFenceNV; -PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange; -PFNGLDRAWMESHARRAYSSUNPROC glad_glDrawMeshArraysSUN; -PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer; -PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat; -PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat; -PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat; -PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding; -PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor; -PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri; -PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv; -PFNGLCREATESYNCFROMCLEVENTARBPROC glad_glCreateSyncFromCLeventARB; -PFNGLCLEARDEPTHFOESPROC glad_glClearDepthfOES; -PFNGLCLIPPLANEFOESPROC glad_glClipPlanefOES; -PFNGLDEPTHRANGEFOESPROC glad_glDepthRangefOES; -PFNGLFRUSTUMFOESPROC glad_glFrustumfOES; -PFNGLGETCLIPPLANEFOESPROC glad_glGetClipPlanefOES; -PFNGLORTHOFOESPROC glad_glOrthofOES; -PFNGLPRIMITIVERESTARTNVPROC glad_glPrimitiveRestartNV; -PFNGLPRIMITIVERESTARTINDEXNVPROC glad_glPrimitiveRestartIndexNV; -PFNGLGLOBALALPHAFACTORBSUNPROC glad_glGlobalAlphaFactorbSUN; -PFNGLGLOBALALPHAFACTORSSUNPROC glad_glGlobalAlphaFactorsSUN; -PFNGLGLOBALALPHAFACTORISUNPROC glad_glGlobalAlphaFactoriSUN; -PFNGLGLOBALALPHAFACTORFSUNPROC glad_glGlobalAlphaFactorfSUN; -PFNGLGLOBALALPHAFACTORDSUNPROC glad_glGlobalAlphaFactordSUN; -PFNGLGLOBALALPHAFACTORUBSUNPROC glad_glGlobalAlphaFactorubSUN; -PFNGLGLOBALALPHAFACTORUSSUNPROC glad_glGlobalAlphaFactorusSUN; -PFNGLGLOBALALPHAFACTORUISUNPROC glad_glGlobalAlphaFactoruiSUN; -PFNGLARETEXTURESRESIDENTEXTPROC glad_glAreTexturesResidentEXT; -PFNGLBINDTEXTUREEXTPROC glad_glBindTextureEXT; -PFNGLDELETETEXTURESEXTPROC glad_glDeleteTexturesEXT; -PFNGLGENTEXTURESEXTPROC glad_glGenTexturesEXT; -PFNGLISTEXTUREEXTPROC glad_glIsTextureEXT; -PFNGLPRIORITIZETEXTURESEXTPROC glad_glPrioritizeTexturesEXT; -PFNGLGENNAMESAMDPROC glad_glGenNamesAMD; -PFNGLDELETENAMESAMDPROC glad_glDeleteNamesAMD; -PFNGLISNAMEAMDPROC glad_glIsNameAMD; -PFNGLBUFFERSTORAGEPROC glad_glBufferStorage; -PFNGLENABLEVERTEXATTRIBAPPLEPROC glad_glEnableVertexAttribAPPLE; -PFNGLDISABLEVERTEXATTRIBAPPLEPROC glad_glDisableVertexAttribAPPLE; -PFNGLISVERTEXATTRIBENABLEDAPPLEPROC glad_glIsVertexAttribEnabledAPPLE; -PFNGLMAPVERTEXATTRIB1DAPPLEPROC glad_glMapVertexAttrib1dAPPLE; -PFNGLMAPVERTEXATTRIB1FAPPLEPROC glad_glMapVertexAttrib1fAPPLE; -PFNGLMAPVERTEXATTRIB2DAPPLEPROC glad_glMapVertexAttrib2dAPPLE; -PFNGLMAPVERTEXATTRIB2FAPPLEPROC glad_glMapVertexAttrib2fAPPLE; -PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase; -PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange; -PFNGLBINDTEXTURESPROC glad_glBindTextures; -PFNGLBINDSAMPLERSPROC glad_glBindSamplers; -PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures; -PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers; -PFNGLGETLISTPARAMETERFVSGIXPROC glad_glGetListParameterfvSGIX; -PFNGLGETLISTPARAMETERIVSGIXPROC glad_glGetListParameterivSGIX; -PFNGLLISTPARAMETERFSGIXPROC glad_glListParameterfSGIX; -PFNGLLISTPARAMETERFVSGIXPROC glad_glListParameterfvSGIX; -PFNGLLISTPARAMETERISGIXPROC glad_glListParameteriSGIX; -PFNGLLISTPARAMETERIVSGIXPROC glad_glListParameterivSGIX; -PFNGLBUFFERADDRESSRANGENVPROC glad_glBufferAddressRangeNV; -PFNGLVERTEXFORMATNVPROC glad_glVertexFormatNV; -PFNGLNORMALFORMATNVPROC glad_glNormalFormatNV; -PFNGLCOLORFORMATNVPROC glad_glColorFormatNV; -PFNGLINDEXFORMATNVPROC glad_glIndexFormatNV; -PFNGLTEXCOORDFORMATNVPROC glad_glTexCoordFormatNV; -PFNGLEDGEFLAGFORMATNVPROC glad_glEdgeFlagFormatNV; -PFNGLSECONDARYCOLORFORMATNVPROC glad_glSecondaryColorFormatNV; -PFNGLFOGCOORDFORMATNVPROC glad_glFogCoordFormatNV; -PFNGLVERTEXATTRIBFORMATNVPROC glad_glVertexAttribFormatNV; -PFNGLVERTEXATTRIBIFORMATNVPROC glad_glVertexAttribIFormatNV; -PFNGLGETINTEGERUI64I_VNVPROC glad_glGetIntegerui64i_vNV; -PFNGLBLENDPARAMETERINVPROC glad_glBlendParameteriNV; -PFNGLBLENDBARRIERNVPROC glad_glBlendBarrierNV; -PFNGLSHARPENTEXFUNCSGISPROC glad_glSharpenTexFuncSGIS; -PFNGLGETSHARPENTEXFUNCSGISPROC glad_glGetSharpenTexFuncSGIS; -PFNGLVERTEXATTRIB1DARBPROC glad_glVertexAttrib1dARB; -PFNGLVERTEXATTRIB1DVARBPROC glad_glVertexAttrib1dvARB; -PFNGLVERTEXATTRIB1FARBPROC glad_glVertexAttrib1fARB; -PFNGLVERTEXATTRIB1FVARBPROC glad_glVertexAttrib1fvARB; -PFNGLVERTEXATTRIB1SARBPROC glad_glVertexAttrib1sARB; -PFNGLVERTEXATTRIB1SVARBPROC glad_glVertexAttrib1svARB; -PFNGLVERTEXATTRIB2DARBPROC glad_glVertexAttrib2dARB; -PFNGLVERTEXATTRIB2DVARBPROC glad_glVertexAttrib2dvARB; -PFNGLVERTEXATTRIB2FARBPROC glad_glVertexAttrib2fARB; -PFNGLVERTEXATTRIB2FVARBPROC glad_glVertexAttrib2fvARB; -PFNGLVERTEXATTRIB2SARBPROC glad_glVertexAttrib2sARB; -PFNGLVERTEXATTRIB2SVARBPROC glad_glVertexAttrib2svARB; -PFNGLVERTEXATTRIB3DARBPROC glad_glVertexAttrib3dARB; -PFNGLVERTEXATTRIB3DVARBPROC glad_glVertexAttrib3dvARB; -PFNGLVERTEXATTRIB3FARBPROC glad_glVertexAttrib3fARB; -PFNGLVERTEXATTRIB3FVARBPROC glad_glVertexAttrib3fvARB; -PFNGLVERTEXATTRIB3SARBPROC glad_glVertexAttrib3sARB; -PFNGLVERTEXATTRIB3SVARBPROC glad_glVertexAttrib3svARB; -PFNGLVERTEXATTRIB4NBVARBPROC glad_glVertexAttrib4NbvARB; -PFNGLVERTEXATTRIB4NIVARBPROC glad_glVertexAttrib4NivARB; -PFNGLVERTEXATTRIB4NSVARBPROC glad_glVertexAttrib4NsvARB; -PFNGLVERTEXATTRIB4NUBARBPROC glad_glVertexAttrib4NubARB; -PFNGLVERTEXATTRIB4NUBVARBPROC glad_glVertexAttrib4NubvARB; -PFNGLVERTEXATTRIB4NUIVARBPROC glad_glVertexAttrib4NuivARB; -PFNGLVERTEXATTRIB4NUSVARBPROC glad_glVertexAttrib4NusvARB; -PFNGLVERTEXATTRIB4BVARBPROC glad_glVertexAttrib4bvARB; -PFNGLVERTEXATTRIB4DARBPROC glad_glVertexAttrib4dARB; -PFNGLVERTEXATTRIB4DVARBPROC glad_glVertexAttrib4dvARB; -PFNGLVERTEXATTRIB4FARBPROC glad_glVertexAttrib4fARB; -PFNGLVERTEXATTRIB4FVARBPROC glad_glVertexAttrib4fvARB; -PFNGLVERTEXATTRIB4IVARBPROC glad_glVertexAttrib4ivARB; -PFNGLVERTEXATTRIB4SARBPROC glad_glVertexAttrib4sARB; -PFNGLVERTEXATTRIB4SVARBPROC glad_glVertexAttrib4svARB; -PFNGLVERTEXATTRIB4UBVARBPROC glad_glVertexAttrib4ubvARB; -PFNGLVERTEXATTRIB4UIVARBPROC glad_glVertexAttrib4uivARB; -PFNGLVERTEXATTRIB4USVARBPROC glad_glVertexAttrib4usvARB; -PFNGLVERTEXATTRIBPOINTERARBPROC glad_glVertexAttribPointerARB; -PFNGLENABLEVERTEXATTRIBARRAYARBPROC glad_glEnableVertexAttribArrayARB; -PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glad_glDisableVertexAttribArrayARB; -PFNGLPROGRAMSTRINGARBPROC glad_glProgramStringARB; -PFNGLBINDPROGRAMARBPROC glad_glBindProgramARB; -PFNGLDELETEPROGRAMSARBPROC glad_glDeleteProgramsARB; -PFNGLGENPROGRAMSARBPROC glad_glGenProgramsARB; -PFNGLPROGRAMENVPARAMETER4DARBPROC glad_glProgramEnvParameter4dARB; -PFNGLPROGRAMENVPARAMETER4DVARBPROC glad_glProgramEnvParameter4dvARB; -PFNGLPROGRAMENVPARAMETER4FARBPROC glad_glProgramEnvParameter4fARB; -PFNGLPROGRAMENVPARAMETER4FVARBPROC glad_glProgramEnvParameter4fvARB; -PFNGLPROGRAMLOCALPARAMETER4DARBPROC glad_glProgramLocalParameter4dARB; -PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glad_glProgramLocalParameter4dvARB; -PFNGLPROGRAMLOCALPARAMETER4FARBPROC glad_glProgramLocalParameter4fARB; -PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glad_glProgramLocalParameter4fvARB; -PFNGLGETPROGRAMENVPARAMETERDVARBPROC glad_glGetProgramEnvParameterdvARB; -PFNGLGETPROGRAMENVPARAMETERFVARBPROC glad_glGetProgramEnvParameterfvARB; -PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glad_glGetProgramLocalParameterdvARB; -PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glad_glGetProgramLocalParameterfvARB; -PFNGLGETPROGRAMIVARBPROC glad_glGetProgramivARB; -PFNGLGETPROGRAMSTRINGARBPROC glad_glGetProgramStringARB; -PFNGLGETVERTEXATTRIBDVARBPROC glad_glGetVertexAttribdvARB; -PFNGLGETVERTEXATTRIBFVARBPROC glad_glGetVertexAttribfvARB; -PFNGLGETVERTEXATTRIBIVARBPROC glad_glGetVertexAttribivARB; -PFNGLGETVERTEXATTRIBPOINTERVARBPROC glad_glGetVertexAttribPointervARB; -PFNGLISPROGRAMARBPROC glad_glIsProgramARB; -PFNGLBINDBUFFERARBPROC glad_glBindBufferARB; -PFNGLDELETEBUFFERSARBPROC glad_glDeleteBuffersARB; -PFNGLGENBUFFERSARBPROC glad_glGenBuffersARB; -PFNGLISBUFFERARBPROC glad_glIsBufferARB; -PFNGLBUFFERDATAARBPROC glad_glBufferDataARB; -PFNGLBUFFERSUBDATAARBPROC glad_glBufferSubDataARB; -PFNGLGETBUFFERSUBDATAARBPROC glad_glGetBufferSubDataARB; -PFNGLMAPBUFFERARBPROC glad_glMapBufferARB; -PFNGLUNMAPBUFFERARBPROC glad_glUnmapBufferARB; -PFNGLGETBUFFERPARAMETERIVARBPROC glad_glGetBufferParameterivARB; -PFNGLGETBUFFERPOINTERVARBPROC glad_glGetBufferPointervARB; -PFNGLFLUSHVERTEXARRAYRANGENVPROC glad_glFlushVertexArrayRangeNV; -PFNGLVERTEXARRAYRANGENVPROC glad_glVertexArrayRangeNV; -PFNGLFRAGMENTCOLORMATERIALSGIXPROC glad_glFragmentColorMaterialSGIX; -PFNGLFRAGMENTLIGHTFSGIXPROC glad_glFragmentLightfSGIX; -PFNGLFRAGMENTLIGHTFVSGIXPROC glad_glFragmentLightfvSGIX; -PFNGLFRAGMENTLIGHTISGIXPROC glad_glFragmentLightiSGIX; -PFNGLFRAGMENTLIGHTIVSGIXPROC glad_glFragmentLightivSGIX; -PFNGLFRAGMENTLIGHTMODELFSGIXPROC glad_glFragmentLightModelfSGIX; -PFNGLFRAGMENTLIGHTMODELFVSGIXPROC glad_glFragmentLightModelfvSGIX; -PFNGLFRAGMENTLIGHTMODELISGIXPROC glad_glFragmentLightModeliSGIX; -PFNGLFRAGMENTLIGHTMODELIVSGIXPROC glad_glFragmentLightModelivSGIX; -PFNGLFRAGMENTMATERIALFSGIXPROC glad_glFragmentMaterialfSGIX; -PFNGLFRAGMENTMATERIALFVSGIXPROC glad_glFragmentMaterialfvSGIX; -PFNGLFRAGMENTMATERIALISGIXPROC glad_glFragmentMaterialiSGIX; -PFNGLFRAGMENTMATERIALIVSGIXPROC glad_glFragmentMaterialivSGIX; -PFNGLGETFRAGMENTLIGHTFVSGIXPROC glad_glGetFragmentLightfvSGIX; -PFNGLGETFRAGMENTLIGHTIVSGIXPROC glad_glGetFragmentLightivSGIX; -PFNGLGETFRAGMENTMATERIALFVSGIXPROC glad_glGetFragmentMaterialfvSGIX; -PFNGLGETFRAGMENTMATERIALIVSGIXPROC glad_glGetFragmentMaterialivSGIX; -PFNGLLIGHTENVISGIXPROC glad_glLightEnviSGIX; -PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC glad_glRenderbufferStorageMultisampleCoverageNV; -PFNGLGETQUERYOBJECTI64VEXTPROC glad_glGetQueryObjecti64vEXT; -PFNGLGETQUERYOBJECTUI64VEXTPROC glad_glGetQueryObjectui64vEXT; -PFNGLGETTEXTUREHANDLENVPROC glad_glGetTextureHandleNV; -PFNGLGETTEXTURESAMPLERHANDLENVPROC glad_glGetTextureSamplerHandleNV; -PFNGLMAKETEXTUREHANDLERESIDENTNVPROC glad_glMakeTextureHandleResidentNV; -PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC glad_glMakeTextureHandleNonResidentNV; -PFNGLGETIMAGEHANDLENVPROC glad_glGetImageHandleNV; -PFNGLMAKEIMAGEHANDLERESIDENTNVPROC glad_glMakeImageHandleResidentNV; -PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC glad_glMakeImageHandleNonResidentNV; -PFNGLUNIFORMHANDLEUI64NVPROC glad_glUniformHandleui64NV; -PFNGLUNIFORMHANDLEUI64VNVPROC glad_glUniformHandleui64vNV; -PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC glad_glProgramUniformHandleui64NV; -PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC glad_glProgramUniformHandleui64vNV; -PFNGLISTEXTUREHANDLERESIDENTNVPROC glad_glIsTextureHandleResidentNV; -PFNGLISIMAGEHANDLERESIDENTNVPROC glad_glIsImageHandleResidentNV; -PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl; -PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert; -PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback; -PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog; -PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup; -PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup; -PFNGLOBJECTLABELPROC glad_glObjectLabel; -PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel; -PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel; -PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel; -PFNGLGETPOINTERVPROC glad_glGetPointerv; -PFNGLDEBUGMESSAGECONTROLKHRPROC glad_glDebugMessageControlKHR; -PFNGLDEBUGMESSAGEINSERTKHRPROC glad_glDebugMessageInsertKHR; -PFNGLDEBUGMESSAGECALLBACKKHRPROC glad_glDebugMessageCallbackKHR; -PFNGLGETDEBUGMESSAGELOGKHRPROC glad_glGetDebugMessageLogKHR; -PFNGLPUSHDEBUGGROUPKHRPROC glad_glPushDebugGroupKHR; -PFNGLPOPDEBUGGROUPKHRPROC glad_glPopDebugGroupKHR; -PFNGLOBJECTLABELKHRPROC glad_glObjectLabelKHR; -PFNGLGETOBJECTLABELKHRPROC glad_glGetObjectLabelKHR; -PFNGLOBJECTPTRLABELKHRPROC glad_glObjectPtrLabelKHR; -PFNGLGETOBJECTPTRLABELKHRPROC glad_glGetObjectPtrLabelKHR; -PFNGLGETPOINTERVKHRPROC glad_glGetPointervKHR; -PFNGLVERTEXATTRIBARRAYOBJECTATIPROC glad_glVertexAttribArrayObjectATI; -PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC glad_glGetVertexAttribArrayObjectfvATI; -PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC glad_glGetVertexAttribArrayObjectivATI; -PFNGLUNIFORMBUFFEREXTPROC glad_glUniformBufferEXT; -PFNGLGETUNIFORMBUFFERSIZEEXTPROC glad_glGetUniformBufferSizeEXT; -PFNGLGETUNIFORMOFFSETEXTPROC glad_glGetUniformOffsetEXT; -PFNGLBLENDBARRIERKHRPROC glad_glBlendBarrierKHR; -PFNGLELEMENTPOINTERATIPROC glad_glElementPointerATI; -PFNGLDRAWELEMENTARRAYATIPROC glad_glDrawElementArrayATI; -PFNGLDRAWRANGEELEMENTARRAYATIPROC glad_glDrawRangeElementArrayATI; -PFNGLREFERENCEPLANESGIXPROC glad_glReferencePlaneSGIX; -PFNGLACTIVESTENCILFACEEXTPROC glad_glActiveStencilFaceEXT; -PFNGLGETMULTISAMPLEFVNVPROC glad_glGetMultisamplefvNV; -PFNGLSAMPLEMASKINDEXEDNVPROC glad_glSampleMaskIndexedNV; -PFNGLTEXRENDERBUFFERNVPROC glad_glTexRenderbufferNV; -PFNGLFLUSHSTATICDATAIBMPROC glad_glFlushStaticDataIBM; -PFNGLTEXTURENORMALEXTPROC glad_glTextureNormalEXT; -PFNGLPOINTPARAMETERFEXTPROC glad_glPointParameterfEXT; -PFNGLPOINTPARAMETERFVEXTPROC glad_glPointParameterfvEXT; -PFNGLHINTPGIPROC glad_glHintPGI; -PFNGLBINDATTRIBLOCATIONARBPROC glad_glBindAttribLocationARB; -PFNGLGETACTIVEATTRIBARBPROC glad_glGetActiveAttribARB; -PFNGLGETATTRIBLOCATIONARBPROC glad_glGetAttribLocationARB; -PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri; -PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv; -PFNGLCOLORMASKINDEXEDEXTPROC glad_glColorMaskIndexedEXT; -PFNGLGETBOOLEANINDEXEDVEXTPROC glad_glGetBooleanIndexedvEXT; -PFNGLGETINTEGERINDEXEDVEXTPROC glad_glGetIntegerIndexedvEXT; -PFNGLENABLEINDEXEDEXTPROC glad_glEnableIndexedEXT; -PFNGLDISABLEINDEXEDEXTPROC glad_glDisableIndexedEXT; -PFNGLISENABLEDINDEXEDEXTPROC glad_glIsEnabledIndexedEXT; -PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d; -PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d; -PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d; -PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d; -PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv; -PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv; -PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv; -PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv; -PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer; -PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv; -PFNGLRASTERSAMPLESEXTPROC glad_glRasterSamplesEXT; -PFNGLVERTEXATTRIBPARAMETERIAMDPROC glad_glVertexAttribParameteriAMD; -PFNGLTEXSTORAGE1DPROC glad_glTexStorage1D; -PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D; -PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D; -PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData; -PFNGLPIXELTEXGENPARAMETERISGISPROC glad_glPixelTexGenParameteriSGIS; -PFNGLPIXELTEXGENPARAMETERIVSGISPROC glad_glPixelTexGenParameterivSGIS; -PFNGLPIXELTEXGENPARAMETERFSGISPROC glad_glPixelTexGenParameterfSGIS; -PFNGLPIXELTEXGENPARAMETERFVSGISPROC glad_glPixelTexGenParameterfvSGIS; -PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC glad_glGetPixelTexGenParameterivSGIS; -PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC glad_glGetPixelTexGenParameterfvSGIS; -PFNGLGETINSTRUMENTSSGIXPROC glad_glGetInstrumentsSGIX; -PFNGLINSTRUMENTSBUFFERSGIXPROC glad_glInstrumentsBufferSGIX; -PFNGLPOLLINSTRUMENTSSGIXPROC glad_glPollInstrumentsSGIX; -PFNGLREADINSTRUMENTSSGIXPROC glad_glReadInstrumentsSGIX; -PFNGLSTARTINSTRUMENTSSGIXPROC glad_glStartInstrumentsSGIX; -PFNGLSTOPINSTRUMENTSSGIXPROC glad_glStopInstrumentsSGIX; -PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding; -PFNGLBLENDEQUATIONEXTPROC glad_glBlendEquationEXT; -PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glad_glDrawArraysInstancedBaseInstance; -PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance; -PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance; -PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion; -PFNGLTEXPARAMETERIIVEXTPROC glad_glTexParameterIivEXT; -PFNGLTEXPARAMETERIUIVEXTPROC glad_glTexParameterIuivEXT; -PFNGLGETTEXPARAMETERIIVEXTPROC glad_glGetTexParameterIivEXT; -PFNGLGETTEXPARAMETERIUIVEXTPROC glad_glGetTexParameterIuivEXT; -PFNGLCLEARCOLORIIEXTPROC glad_glClearColorIiEXT; -PFNGLCLEARCOLORIUIEXTPROC glad_glClearColorIuiEXT; -PFNGLUNIFORM1I64NVPROC glad_glUniform1i64NV; -PFNGLUNIFORM2I64NVPROC glad_glUniform2i64NV; -PFNGLUNIFORM3I64NVPROC glad_glUniform3i64NV; -PFNGLUNIFORM4I64NVPROC glad_glUniform4i64NV; -PFNGLUNIFORM1I64VNVPROC glad_glUniform1i64vNV; -PFNGLUNIFORM2I64VNVPROC glad_glUniform2i64vNV; -PFNGLUNIFORM3I64VNVPROC glad_glUniform3i64vNV; -PFNGLUNIFORM4I64VNVPROC glad_glUniform4i64vNV; -PFNGLUNIFORM1UI64NVPROC glad_glUniform1ui64NV; -PFNGLUNIFORM2UI64NVPROC glad_glUniform2ui64NV; -PFNGLUNIFORM3UI64NVPROC glad_glUniform3ui64NV; -PFNGLUNIFORM4UI64NVPROC glad_glUniform4ui64NV; -PFNGLUNIFORM1UI64VNVPROC glad_glUniform1ui64vNV; -PFNGLUNIFORM2UI64VNVPROC glad_glUniform2ui64vNV; -PFNGLUNIFORM3UI64VNVPROC glad_glUniform3ui64vNV; -PFNGLUNIFORM4UI64VNVPROC glad_glUniform4ui64vNV; -PFNGLGETUNIFORMI64VNVPROC glad_glGetUniformi64vNV; -PFNGLPROGRAMUNIFORM1I64NVPROC glad_glProgramUniform1i64NV; -PFNGLPROGRAMUNIFORM2I64NVPROC glad_glProgramUniform2i64NV; -PFNGLPROGRAMUNIFORM3I64NVPROC glad_glProgramUniform3i64NV; -PFNGLPROGRAMUNIFORM4I64NVPROC glad_glProgramUniform4i64NV; -PFNGLPROGRAMUNIFORM1I64VNVPROC glad_glProgramUniform1i64vNV; -PFNGLPROGRAMUNIFORM2I64VNVPROC glad_glProgramUniform2i64vNV; -PFNGLPROGRAMUNIFORM3I64VNVPROC glad_glProgramUniform3i64vNV; -PFNGLPROGRAMUNIFORM4I64VNVPROC glad_glProgramUniform4i64vNV; -PFNGLPROGRAMUNIFORM1UI64NVPROC glad_glProgramUniform1ui64NV; -PFNGLPROGRAMUNIFORM2UI64NVPROC glad_glProgramUniform2ui64NV; -PFNGLPROGRAMUNIFORM3UI64NVPROC glad_glProgramUniform3ui64NV; -PFNGLPROGRAMUNIFORM4UI64NVPROC glad_glProgramUniform4ui64NV; -PFNGLPROGRAMUNIFORM1UI64VNVPROC glad_glProgramUniform1ui64vNV; -PFNGLPROGRAMUNIFORM2UI64VNVPROC glad_glProgramUniform2ui64vNV; -PFNGLPROGRAMUNIFORM3UI64VNVPROC glad_glProgramUniform3ui64vNV; -PFNGLPROGRAMUNIFORM4UI64VNVPROC glad_glProgramUniform4ui64vNV; -PFNGLTESSELLATIONFACTORAMDPROC glad_glTessellationFactorAMD; -PFNGLTESSELLATIONMODEAMDPROC glad_glTessellationModeAMD; -PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage; -PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage; -PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData; -PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData; -PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer; -PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer; -PFNGLINDEXMATERIALEXTPROC glad_glIndexMaterialEXT; -PFNGLVERTEXPOINTERVINTELPROC glad_glVertexPointervINTEL; -PFNGLNORMALPOINTERVINTELPROC glad_glNormalPointervINTEL; -PFNGLCOLORPOINTERVINTELPROC glad_glColorPointervINTEL; -PFNGLTEXCOORDPOINTERVINTELPROC glad_glTexCoordPointervINTEL; -PFNGLDRAWBUFFERSATIPROC glad_glDrawBuffersATI; -PFNGLPIXELTEXGENSGIXPROC glad_glPixelTexGenSGIX; -PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC glad_glProgramBufferParametersfvNV; -PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC glad_glProgramBufferParametersIivNV; -PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC glad_glProgramBufferParametersIuivNV; -PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks; -PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase; -PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange; -PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv; -PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v; -PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v; -PFNGLCREATEBUFFERSPROC glad_glCreateBuffers; -PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage; -PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData; -PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData; -PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData; -PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData; -PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData; -PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer; -PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange; -PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer; -PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange; -PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv; -PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v; -PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv; -PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData; -PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers; -PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer; -PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri; -PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture; -PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer; -PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer; -PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers; -PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer; -PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData; -PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData; -PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv; -PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv; -PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv; -PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi; -PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer; -PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus; -PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv; -PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv; -PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers; -PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage; -PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample; -PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv; -PFNGLCREATETEXTURESPROC glad_glCreateTextures; -PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer; -PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange; -PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D; -PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D; -PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D; -PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample; -PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample; -PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D; -PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D; -PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D; -PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D; -PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D; -PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D; -PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D; -PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D; -PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D; -PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf; -PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv; -PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri; -PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv; -PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv; -PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv; -PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap; -PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit; -PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage; -PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage; -PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv; -PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv; -PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv; -PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv; -PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv; -PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv; -PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays; -PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib; -PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib; -PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer; -PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer; -PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers; -PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding; -PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat; -PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat; -PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat; -PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor; -PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv; -PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv; -PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv; -PFNGLCREATESAMPLERSPROC glad_glCreateSamplers; -PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines; -PFNGLCREATEQUERIESPROC glad_glCreateQueries; -PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v; -PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv; -PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v; -PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv; -PFNGLBINDTRANSFORMFEEDBACKNVPROC glad_glBindTransformFeedbackNV; -PFNGLDELETETRANSFORMFEEDBACKSNVPROC glad_glDeleteTransformFeedbacksNV; -PFNGLGENTRANSFORMFEEDBACKSNVPROC glad_glGenTransformFeedbacksNV; -PFNGLISTRANSFORMFEEDBACKNVPROC glad_glIsTransformFeedbackNV; -PFNGLPAUSETRANSFORMFEEDBACKNVPROC glad_glPauseTransformFeedbackNV; -PFNGLRESUMETRANSFORMFEEDBACKNVPROC glad_glResumeTransformFeedbackNV; -PFNGLDRAWTRANSFORMFEEDBACKNVPROC glad_glDrawTransformFeedbackNV; -PFNGLBLENDCOLOREXTPROC glad_glBlendColorEXT; -PFNGLGETHISTOGRAMEXTPROC glad_glGetHistogramEXT; -PFNGLGETHISTOGRAMPARAMETERFVEXTPROC glad_glGetHistogramParameterfvEXT; -PFNGLGETHISTOGRAMPARAMETERIVEXTPROC glad_glGetHistogramParameterivEXT; -PFNGLGETMINMAXEXTPROC glad_glGetMinmaxEXT; -PFNGLGETMINMAXPARAMETERFVEXTPROC glad_glGetMinmaxParameterfvEXT; -PFNGLGETMINMAXPARAMETERIVEXTPROC glad_glGetMinmaxParameterivEXT; -PFNGLHISTOGRAMEXTPROC glad_glHistogramEXT; -PFNGLMINMAXEXTPROC glad_glMinmaxEXT; -PFNGLRESETHISTOGRAMEXTPROC glad_glResetHistogramEXT; -PFNGLRESETMINMAXEXTPROC glad_glResetMinmaxEXT; -PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage; -PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage; -PFNGLPOINTPARAMETERFSGISPROC glad_glPointParameterfSGIS; -PFNGLPOINTPARAMETERFVSGISPROC glad_glPointParameterfvSGIS; -PFNGLMATRIXLOADFEXTPROC glad_glMatrixLoadfEXT; -PFNGLMATRIXLOADDEXTPROC glad_glMatrixLoaddEXT; -PFNGLMATRIXMULTFEXTPROC glad_glMatrixMultfEXT; -PFNGLMATRIXMULTDEXTPROC glad_glMatrixMultdEXT; -PFNGLMATRIXLOADIDENTITYEXTPROC glad_glMatrixLoadIdentityEXT; -PFNGLMATRIXROTATEFEXTPROC glad_glMatrixRotatefEXT; -PFNGLMATRIXROTATEDEXTPROC glad_glMatrixRotatedEXT; -PFNGLMATRIXSCALEFEXTPROC glad_glMatrixScalefEXT; -PFNGLMATRIXSCALEDEXTPROC glad_glMatrixScaledEXT; -PFNGLMATRIXTRANSLATEFEXTPROC glad_glMatrixTranslatefEXT; -PFNGLMATRIXTRANSLATEDEXTPROC glad_glMatrixTranslatedEXT; -PFNGLMATRIXFRUSTUMEXTPROC glad_glMatrixFrustumEXT; -PFNGLMATRIXORTHOEXTPROC glad_glMatrixOrthoEXT; -PFNGLMATRIXPOPEXTPROC glad_glMatrixPopEXT; -PFNGLMATRIXPUSHEXTPROC glad_glMatrixPushEXT; -PFNGLCLIENTATTRIBDEFAULTEXTPROC glad_glClientAttribDefaultEXT; -PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC glad_glPushClientAttribDefaultEXT; -PFNGLTEXTUREPARAMETERFEXTPROC glad_glTextureParameterfEXT; -PFNGLTEXTUREPARAMETERFVEXTPROC glad_glTextureParameterfvEXT; -PFNGLTEXTUREPARAMETERIEXTPROC glad_glTextureParameteriEXT; -PFNGLTEXTUREPARAMETERIVEXTPROC glad_glTextureParameterivEXT; -PFNGLTEXTUREIMAGE1DEXTPROC glad_glTextureImage1DEXT; -PFNGLTEXTUREIMAGE2DEXTPROC glad_glTextureImage2DEXT; -PFNGLTEXTURESUBIMAGE1DEXTPROC glad_glTextureSubImage1DEXT; -PFNGLTEXTURESUBIMAGE2DEXTPROC glad_glTextureSubImage2DEXT; -PFNGLCOPYTEXTUREIMAGE1DEXTPROC glad_glCopyTextureImage1DEXT; -PFNGLCOPYTEXTUREIMAGE2DEXTPROC glad_glCopyTextureImage2DEXT; -PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC glad_glCopyTextureSubImage1DEXT; -PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC glad_glCopyTextureSubImage2DEXT; -PFNGLGETTEXTUREIMAGEEXTPROC glad_glGetTextureImageEXT; -PFNGLGETTEXTUREPARAMETERFVEXTPROC glad_glGetTextureParameterfvEXT; -PFNGLGETTEXTUREPARAMETERIVEXTPROC glad_glGetTextureParameterivEXT; -PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC glad_glGetTextureLevelParameterfvEXT; -PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC glad_glGetTextureLevelParameterivEXT; -PFNGLTEXTUREIMAGE3DEXTPROC glad_glTextureImage3DEXT; -PFNGLTEXTURESUBIMAGE3DEXTPROC glad_glTextureSubImage3DEXT; -PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC glad_glCopyTextureSubImage3DEXT; -PFNGLBINDMULTITEXTUREEXTPROC glad_glBindMultiTextureEXT; -PFNGLMULTITEXCOORDPOINTEREXTPROC glad_glMultiTexCoordPointerEXT; -PFNGLMULTITEXENVFEXTPROC glad_glMultiTexEnvfEXT; -PFNGLMULTITEXENVFVEXTPROC glad_glMultiTexEnvfvEXT; -PFNGLMULTITEXENVIEXTPROC glad_glMultiTexEnviEXT; -PFNGLMULTITEXENVIVEXTPROC glad_glMultiTexEnvivEXT; -PFNGLMULTITEXGENDEXTPROC glad_glMultiTexGendEXT; -PFNGLMULTITEXGENDVEXTPROC glad_glMultiTexGendvEXT; -PFNGLMULTITEXGENFEXTPROC glad_glMultiTexGenfEXT; -PFNGLMULTITEXGENFVEXTPROC glad_glMultiTexGenfvEXT; -PFNGLMULTITEXGENIEXTPROC glad_glMultiTexGeniEXT; -PFNGLMULTITEXGENIVEXTPROC glad_glMultiTexGenivEXT; -PFNGLGETMULTITEXENVFVEXTPROC glad_glGetMultiTexEnvfvEXT; -PFNGLGETMULTITEXENVIVEXTPROC glad_glGetMultiTexEnvivEXT; -PFNGLGETMULTITEXGENDVEXTPROC glad_glGetMultiTexGendvEXT; -PFNGLGETMULTITEXGENFVEXTPROC glad_glGetMultiTexGenfvEXT; -PFNGLGETMULTITEXGENIVEXTPROC glad_glGetMultiTexGenivEXT; -PFNGLMULTITEXPARAMETERIEXTPROC glad_glMultiTexParameteriEXT; -PFNGLMULTITEXPARAMETERIVEXTPROC glad_glMultiTexParameterivEXT; -PFNGLMULTITEXPARAMETERFEXTPROC glad_glMultiTexParameterfEXT; -PFNGLMULTITEXPARAMETERFVEXTPROC glad_glMultiTexParameterfvEXT; -PFNGLMULTITEXIMAGE1DEXTPROC glad_glMultiTexImage1DEXT; -PFNGLMULTITEXIMAGE2DEXTPROC glad_glMultiTexImage2DEXT; -PFNGLMULTITEXSUBIMAGE1DEXTPROC glad_glMultiTexSubImage1DEXT; -PFNGLMULTITEXSUBIMAGE2DEXTPROC glad_glMultiTexSubImage2DEXT; -PFNGLCOPYMULTITEXIMAGE1DEXTPROC glad_glCopyMultiTexImage1DEXT; -PFNGLCOPYMULTITEXIMAGE2DEXTPROC glad_glCopyMultiTexImage2DEXT; -PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC glad_glCopyMultiTexSubImage1DEXT; -PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC glad_glCopyMultiTexSubImage2DEXT; -PFNGLGETMULTITEXIMAGEEXTPROC glad_glGetMultiTexImageEXT; -PFNGLGETMULTITEXPARAMETERFVEXTPROC glad_glGetMultiTexParameterfvEXT; -PFNGLGETMULTITEXPARAMETERIVEXTPROC glad_glGetMultiTexParameterivEXT; -PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC glad_glGetMultiTexLevelParameterfvEXT; -PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC glad_glGetMultiTexLevelParameterivEXT; -PFNGLMULTITEXIMAGE3DEXTPROC glad_glMultiTexImage3DEXT; -PFNGLMULTITEXSUBIMAGE3DEXTPROC glad_glMultiTexSubImage3DEXT; -PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC glad_glCopyMultiTexSubImage3DEXT; -PFNGLENABLECLIENTSTATEINDEXEDEXTPROC glad_glEnableClientStateIndexedEXT; -PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC glad_glDisableClientStateIndexedEXT; -PFNGLGETFLOATINDEXEDVEXTPROC glad_glGetFloatIndexedvEXT; -PFNGLGETDOUBLEINDEXEDVEXTPROC glad_glGetDoubleIndexedvEXT; -PFNGLGETPOINTERINDEXEDVEXTPROC glad_glGetPointerIndexedvEXT; -PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC glad_glCompressedTextureImage3DEXT; -PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC glad_glCompressedTextureImage2DEXT; -PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC glad_glCompressedTextureImage1DEXT; -PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC glad_glCompressedTextureSubImage3DEXT; -PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC glad_glCompressedTextureSubImage2DEXT; -PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC glad_glCompressedTextureSubImage1DEXT; -PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC glad_glGetCompressedTextureImageEXT; -PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC glad_glCompressedMultiTexImage3DEXT; -PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC glad_glCompressedMultiTexImage2DEXT; -PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC glad_glCompressedMultiTexImage1DEXT; -PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC glad_glCompressedMultiTexSubImage3DEXT; -PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC glad_glCompressedMultiTexSubImage2DEXT; -PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC glad_glCompressedMultiTexSubImage1DEXT; -PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC glad_glGetCompressedMultiTexImageEXT; -PFNGLMATRIXLOADTRANSPOSEFEXTPROC glad_glMatrixLoadTransposefEXT; -PFNGLMATRIXLOADTRANSPOSEDEXTPROC glad_glMatrixLoadTransposedEXT; -PFNGLMATRIXMULTTRANSPOSEFEXTPROC glad_glMatrixMultTransposefEXT; -PFNGLMATRIXMULTTRANSPOSEDEXTPROC glad_glMatrixMultTransposedEXT; -PFNGLNAMEDBUFFERDATAEXTPROC glad_glNamedBufferDataEXT; -PFNGLNAMEDBUFFERSUBDATAEXTPROC glad_glNamedBufferSubDataEXT; -PFNGLMAPNAMEDBUFFEREXTPROC glad_glMapNamedBufferEXT; -PFNGLUNMAPNAMEDBUFFEREXTPROC glad_glUnmapNamedBufferEXT; -PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC glad_glGetNamedBufferParameterivEXT; -PFNGLGETNAMEDBUFFERPOINTERVEXTPROC glad_glGetNamedBufferPointervEXT; -PFNGLGETNAMEDBUFFERSUBDATAEXTPROC glad_glGetNamedBufferSubDataEXT; -PFNGLTEXTUREBUFFEREXTPROC glad_glTextureBufferEXT; -PFNGLMULTITEXBUFFEREXTPROC glad_glMultiTexBufferEXT; -PFNGLTEXTUREPARAMETERIIVEXTPROC glad_glTextureParameterIivEXT; -PFNGLTEXTUREPARAMETERIUIVEXTPROC glad_glTextureParameterIuivEXT; -PFNGLGETTEXTUREPARAMETERIIVEXTPROC glad_glGetTextureParameterIivEXT; -PFNGLGETTEXTUREPARAMETERIUIVEXTPROC glad_glGetTextureParameterIuivEXT; -PFNGLMULTITEXPARAMETERIIVEXTPROC glad_glMultiTexParameterIivEXT; -PFNGLMULTITEXPARAMETERIUIVEXTPROC glad_glMultiTexParameterIuivEXT; -PFNGLGETMULTITEXPARAMETERIIVEXTPROC glad_glGetMultiTexParameterIivEXT; -PFNGLGETMULTITEXPARAMETERIUIVEXTPROC glad_glGetMultiTexParameterIuivEXT; -PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC glad_glNamedProgramLocalParameters4fvEXT; -PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC glad_glNamedProgramLocalParameterI4iEXT; -PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC glad_glNamedProgramLocalParameterI4ivEXT; -PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC glad_glNamedProgramLocalParametersI4ivEXT; -PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC glad_glNamedProgramLocalParameterI4uiEXT; -PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC glad_glNamedProgramLocalParameterI4uivEXT; -PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC glad_glNamedProgramLocalParametersI4uivEXT; -PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC glad_glGetNamedProgramLocalParameterIivEXT; -PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC glad_glGetNamedProgramLocalParameterIuivEXT; -PFNGLENABLECLIENTSTATEIEXTPROC glad_glEnableClientStateiEXT; -PFNGLDISABLECLIENTSTATEIEXTPROC glad_glDisableClientStateiEXT; -PFNGLGETFLOATI_VEXTPROC glad_glGetFloati_vEXT; -PFNGLGETDOUBLEI_VEXTPROC glad_glGetDoublei_vEXT; -PFNGLGETPOINTERI_VEXTPROC glad_glGetPointeri_vEXT; -PFNGLNAMEDPROGRAMSTRINGEXTPROC glad_glNamedProgramStringEXT; -PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC glad_glNamedProgramLocalParameter4dEXT; -PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC glad_glNamedProgramLocalParameter4dvEXT; -PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC glad_glNamedProgramLocalParameter4fEXT; -PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC glad_glNamedProgramLocalParameter4fvEXT; -PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC glad_glGetNamedProgramLocalParameterdvEXT; -PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC glad_glGetNamedProgramLocalParameterfvEXT; -PFNGLGETNAMEDPROGRAMIVEXTPROC glad_glGetNamedProgramivEXT; -PFNGLGETNAMEDPROGRAMSTRINGEXTPROC glad_glGetNamedProgramStringEXT; -PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC glad_glNamedRenderbufferStorageEXT; -PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC glad_glGetNamedRenderbufferParameterivEXT; -PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glNamedRenderbufferStorageMultisampleEXT; -PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC glad_glNamedRenderbufferStorageMultisampleCoverageEXT; -PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC glad_glCheckNamedFramebufferStatusEXT; -PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC glad_glNamedFramebufferTexture1DEXT; -PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC glad_glNamedFramebufferTexture2DEXT; -PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC glad_glNamedFramebufferTexture3DEXT; -PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC glad_glNamedFramebufferRenderbufferEXT; -PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetNamedFramebufferAttachmentParameterivEXT; -PFNGLGENERATETEXTUREMIPMAPEXTPROC glad_glGenerateTextureMipmapEXT; -PFNGLGENERATEMULTITEXMIPMAPEXTPROC glad_glGenerateMultiTexMipmapEXT; -PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC glad_glFramebufferDrawBufferEXT; -PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC glad_glFramebufferDrawBuffersEXT; -PFNGLFRAMEBUFFERREADBUFFEREXTPROC glad_glFramebufferReadBufferEXT; -PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC glad_glGetFramebufferParameterivEXT; -PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC glad_glNamedCopyBufferSubDataEXT; -PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC glad_glNamedFramebufferTextureEXT; -PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC glad_glNamedFramebufferTextureLayerEXT; -PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC glad_glNamedFramebufferTextureFaceEXT; -PFNGLTEXTURERENDERBUFFEREXTPROC glad_glTextureRenderbufferEXT; -PFNGLMULTITEXRENDERBUFFEREXTPROC glad_glMultiTexRenderbufferEXT; -PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC glad_glVertexArrayVertexOffsetEXT; -PFNGLVERTEXARRAYCOLOROFFSETEXTPROC glad_glVertexArrayColorOffsetEXT; -PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC glad_glVertexArrayEdgeFlagOffsetEXT; -PFNGLVERTEXARRAYINDEXOFFSETEXTPROC glad_glVertexArrayIndexOffsetEXT; -PFNGLVERTEXARRAYNORMALOFFSETEXTPROC glad_glVertexArrayNormalOffsetEXT; -PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC glad_glVertexArrayTexCoordOffsetEXT; -PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC glad_glVertexArrayMultiTexCoordOffsetEXT; -PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC glad_glVertexArrayFogCoordOffsetEXT; -PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC glad_glVertexArraySecondaryColorOffsetEXT; -PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC glad_glVertexArrayVertexAttribOffsetEXT; -PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC glad_glVertexArrayVertexAttribIOffsetEXT; -PFNGLENABLEVERTEXARRAYEXTPROC glad_glEnableVertexArrayEXT; -PFNGLDISABLEVERTEXARRAYEXTPROC glad_glDisableVertexArrayEXT; -PFNGLENABLEVERTEXARRAYATTRIBEXTPROC glad_glEnableVertexArrayAttribEXT; -PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC glad_glDisableVertexArrayAttribEXT; -PFNGLGETVERTEXARRAYINTEGERVEXTPROC glad_glGetVertexArrayIntegervEXT; -PFNGLGETVERTEXARRAYPOINTERVEXTPROC glad_glGetVertexArrayPointervEXT; -PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC glad_glGetVertexArrayIntegeri_vEXT; -PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC glad_glGetVertexArrayPointeri_vEXT; -PFNGLMAPNAMEDBUFFERRANGEEXTPROC glad_glMapNamedBufferRangeEXT; -PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC glad_glFlushMappedNamedBufferRangeEXT; -PFNGLNAMEDBUFFERSTORAGEEXTPROC glad_glNamedBufferStorageEXT; -PFNGLCLEARNAMEDBUFFERDATAEXTPROC glad_glClearNamedBufferDataEXT; -PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC glad_glClearNamedBufferSubDataEXT; -PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC glad_glNamedFramebufferParameteriEXT; -PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC glad_glGetNamedFramebufferParameterivEXT; -PFNGLPROGRAMUNIFORM1DEXTPROC glad_glProgramUniform1dEXT; -PFNGLPROGRAMUNIFORM2DEXTPROC glad_glProgramUniform2dEXT; -PFNGLPROGRAMUNIFORM3DEXTPROC glad_glProgramUniform3dEXT; -PFNGLPROGRAMUNIFORM4DEXTPROC glad_glProgramUniform4dEXT; -PFNGLPROGRAMUNIFORM1DVEXTPROC glad_glProgramUniform1dvEXT; -PFNGLPROGRAMUNIFORM2DVEXTPROC glad_glProgramUniform2dvEXT; -PFNGLPROGRAMUNIFORM3DVEXTPROC glad_glProgramUniform3dvEXT; -PFNGLPROGRAMUNIFORM4DVEXTPROC glad_glProgramUniform4dvEXT; -PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC glad_glProgramUniformMatrix2dvEXT; -PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC glad_glProgramUniformMatrix3dvEXT; -PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC glad_glProgramUniformMatrix4dvEXT; -PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC glad_glProgramUniformMatrix2x3dvEXT; -PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC glad_glProgramUniformMatrix2x4dvEXT; -PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC glad_glProgramUniformMatrix3x2dvEXT; -PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC glad_glProgramUniformMatrix3x4dvEXT; -PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC glad_glProgramUniformMatrix4x2dvEXT; -PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC glad_glProgramUniformMatrix4x3dvEXT; -PFNGLTEXTUREBUFFERRANGEEXTPROC glad_glTextureBufferRangeEXT; -PFNGLTEXTURESTORAGE1DEXTPROC glad_glTextureStorage1DEXT; -PFNGLTEXTURESTORAGE2DEXTPROC glad_glTextureStorage2DEXT; -PFNGLTEXTURESTORAGE3DEXTPROC glad_glTextureStorage3DEXT; -PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC glad_glTextureStorage2DMultisampleEXT; -PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC glad_glTextureStorage3DMultisampleEXT; -PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC glad_glVertexArrayBindVertexBufferEXT; -PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC glad_glVertexArrayVertexAttribFormatEXT; -PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC glad_glVertexArrayVertexAttribIFormatEXT; -PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC glad_glVertexArrayVertexAttribLFormatEXT; -PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC glad_glVertexArrayVertexAttribBindingEXT; -PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC glad_glVertexArrayVertexBindingDivisorEXT; -PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC glad_glVertexArrayVertexAttribLOffsetEXT; -PFNGLTEXTUREPAGECOMMITMENTEXTPROC glad_glTexturePageCommitmentEXT; -PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC glad_glVertexArrayVertexAttribDivisorEXT; -PFNGLSETMULTISAMPLEFVAMDPROC glad_glSetMultisamplefvAMD; -PFNGLAREPROGRAMSRESIDENTNVPROC glad_glAreProgramsResidentNV; -PFNGLBINDPROGRAMNVPROC glad_glBindProgramNV; -PFNGLDELETEPROGRAMSNVPROC glad_glDeleteProgramsNV; -PFNGLEXECUTEPROGRAMNVPROC glad_glExecuteProgramNV; -PFNGLGENPROGRAMSNVPROC glad_glGenProgramsNV; -PFNGLGETPROGRAMPARAMETERDVNVPROC glad_glGetProgramParameterdvNV; -PFNGLGETPROGRAMPARAMETERFVNVPROC glad_glGetProgramParameterfvNV; -PFNGLGETPROGRAMIVNVPROC glad_glGetProgramivNV; -PFNGLGETPROGRAMSTRINGNVPROC glad_glGetProgramStringNV; -PFNGLGETTRACKMATRIXIVNVPROC glad_glGetTrackMatrixivNV; -PFNGLGETVERTEXATTRIBDVNVPROC glad_glGetVertexAttribdvNV; -PFNGLGETVERTEXATTRIBFVNVPROC glad_glGetVertexAttribfvNV; -PFNGLGETVERTEXATTRIBIVNVPROC glad_glGetVertexAttribivNV; -PFNGLGETVERTEXATTRIBPOINTERVNVPROC glad_glGetVertexAttribPointervNV; -PFNGLISPROGRAMNVPROC glad_glIsProgramNV; -PFNGLLOADPROGRAMNVPROC glad_glLoadProgramNV; -PFNGLPROGRAMPARAMETER4DNVPROC glad_glProgramParameter4dNV; -PFNGLPROGRAMPARAMETER4DVNVPROC glad_glProgramParameter4dvNV; -PFNGLPROGRAMPARAMETER4FNVPROC glad_glProgramParameter4fNV; -PFNGLPROGRAMPARAMETER4FVNVPROC glad_glProgramParameter4fvNV; -PFNGLPROGRAMPARAMETERS4DVNVPROC glad_glProgramParameters4dvNV; -PFNGLPROGRAMPARAMETERS4FVNVPROC glad_glProgramParameters4fvNV; -PFNGLREQUESTRESIDENTPROGRAMSNVPROC glad_glRequestResidentProgramsNV; -PFNGLTRACKMATRIXNVPROC glad_glTrackMatrixNV; -PFNGLVERTEXATTRIBPOINTERNVPROC glad_glVertexAttribPointerNV; -PFNGLVERTEXATTRIB1DNVPROC glad_glVertexAttrib1dNV; -PFNGLVERTEXATTRIB1DVNVPROC glad_glVertexAttrib1dvNV; -PFNGLVERTEXATTRIB1FNVPROC glad_glVertexAttrib1fNV; -PFNGLVERTEXATTRIB1FVNVPROC glad_glVertexAttrib1fvNV; -PFNGLVERTEXATTRIB1SNVPROC glad_glVertexAttrib1sNV; -PFNGLVERTEXATTRIB1SVNVPROC glad_glVertexAttrib1svNV; -PFNGLVERTEXATTRIB2DNVPROC glad_glVertexAttrib2dNV; -PFNGLVERTEXATTRIB2DVNVPROC glad_glVertexAttrib2dvNV; -PFNGLVERTEXATTRIB2FNVPROC glad_glVertexAttrib2fNV; -PFNGLVERTEXATTRIB2FVNVPROC glad_glVertexAttrib2fvNV; -PFNGLVERTEXATTRIB2SNVPROC glad_glVertexAttrib2sNV; -PFNGLVERTEXATTRIB2SVNVPROC glad_glVertexAttrib2svNV; -PFNGLVERTEXATTRIB3DNVPROC glad_glVertexAttrib3dNV; -PFNGLVERTEXATTRIB3DVNVPROC glad_glVertexAttrib3dvNV; -PFNGLVERTEXATTRIB3FNVPROC glad_glVertexAttrib3fNV; -PFNGLVERTEXATTRIB3FVNVPROC glad_glVertexAttrib3fvNV; -PFNGLVERTEXATTRIB3SNVPROC glad_glVertexAttrib3sNV; -PFNGLVERTEXATTRIB3SVNVPROC glad_glVertexAttrib3svNV; -PFNGLVERTEXATTRIB4DNVPROC glad_glVertexAttrib4dNV; -PFNGLVERTEXATTRIB4DVNVPROC glad_glVertexAttrib4dvNV; -PFNGLVERTEXATTRIB4FNVPROC glad_glVertexAttrib4fNV; -PFNGLVERTEXATTRIB4FVNVPROC glad_glVertexAttrib4fvNV; -PFNGLVERTEXATTRIB4SNVPROC glad_glVertexAttrib4sNV; -PFNGLVERTEXATTRIB4SVNVPROC glad_glVertexAttrib4svNV; -PFNGLVERTEXATTRIB4UBNVPROC glad_glVertexAttrib4ubNV; -PFNGLVERTEXATTRIB4UBVNVPROC glad_glVertexAttrib4ubvNV; -PFNGLVERTEXATTRIBS1DVNVPROC glad_glVertexAttribs1dvNV; -PFNGLVERTEXATTRIBS1FVNVPROC glad_glVertexAttribs1fvNV; -PFNGLVERTEXATTRIBS1SVNVPROC glad_glVertexAttribs1svNV; -PFNGLVERTEXATTRIBS2DVNVPROC glad_glVertexAttribs2dvNV; -PFNGLVERTEXATTRIBS2FVNVPROC glad_glVertexAttribs2fvNV; -PFNGLVERTEXATTRIBS2SVNVPROC glad_glVertexAttribs2svNV; -PFNGLVERTEXATTRIBS3DVNVPROC glad_glVertexAttribs3dvNV; -PFNGLVERTEXATTRIBS3FVNVPROC glad_glVertexAttribs3fvNV; -PFNGLVERTEXATTRIBS3SVNVPROC glad_glVertexAttribs3svNV; -PFNGLVERTEXATTRIBS4DVNVPROC glad_glVertexAttribs4dvNV; -PFNGLVERTEXATTRIBS4FVNVPROC glad_glVertexAttribs4fvNV; -PFNGLVERTEXATTRIBS4SVNVPROC glad_glVertexAttribs4svNV; -PFNGLVERTEXATTRIBS4UBVNVPROC glad_glVertexAttribs4ubvNV; -PFNGLBEGINVERTEXSHADEREXTPROC glad_glBeginVertexShaderEXT; -PFNGLENDVERTEXSHADEREXTPROC glad_glEndVertexShaderEXT; -PFNGLBINDVERTEXSHADEREXTPROC glad_glBindVertexShaderEXT; -PFNGLGENVERTEXSHADERSEXTPROC glad_glGenVertexShadersEXT; -PFNGLDELETEVERTEXSHADEREXTPROC glad_glDeleteVertexShaderEXT; -PFNGLSHADEROP1EXTPROC glad_glShaderOp1EXT; -PFNGLSHADEROP2EXTPROC glad_glShaderOp2EXT; -PFNGLSHADEROP3EXTPROC glad_glShaderOp3EXT; -PFNGLSWIZZLEEXTPROC glad_glSwizzleEXT; -PFNGLWRITEMASKEXTPROC glad_glWriteMaskEXT; -PFNGLINSERTCOMPONENTEXTPROC glad_glInsertComponentEXT; -PFNGLEXTRACTCOMPONENTEXTPROC glad_glExtractComponentEXT; -PFNGLGENSYMBOLSEXTPROC glad_glGenSymbolsEXT; -PFNGLSETINVARIANTEXTPROC glad_glSetInvariantEXT; -PFNGLSETLOCALCONSTANTEXTPROC glad_glSetLocalConstantEXT; -PFNGLVARIANTBVEXTPROC glad_glVariantbvEXT; -PFNGLVARIANTSVEXTPROC glad_glVariantsvEXT; -PFNGLVARIANTIVEXTPROC glad_glVariantivEXT; -PFNGLVARIANTFVEXTPROC glad_glVariantfvEXT; -PFNGLVARIANTDVEXTPROC glad_glVariantdvEXT; -PFNGLVARIANTUBVEXTPROC glad_glVariantubvEXT; -PFNGLVARIANTUSVEXTPROC glad_glVariantusvEXT; -PFNGLVARIANTUIVEXTPROC glad_glVariantuivEXT; -PFNGLVARIANTPOINTEREXTPROC glad_glVariantPointerEXT; -PFNGLENABLEVARIANTCLIENTSTATEEXTPROC glad_glEnableVariantClientStateEXT; -PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC glad_glDisableVariantClientStateEXT; -PFNGLBINDLIGHTPARAMETEREXTPROC glad_glBindLightParameterEXT; -PFNGLBINDMATERIALPARAMETEREXTPROC glad_glBindMaterialParameterEXT; -PFNGLBINDTEXGENPARAMETEREXTPROC glad_glBindTexGenParameterEXT; -PFNGLBINDTEXTUREUNITPARAMETEREXTPROC glad_glBindTextureUnitParameterEXT; -PFNGLBINDPARAMETEREXTPROC glad_glBindParameterEXT; -PFNGLISVARIANTENABLEDEXTPROC glad_glIsVariantEnabledEXT; -PFNGLGETVARIANTBOOLEANVEXTPROC glad_glGetVariantBooleanvEXT; -PFNGLGETVARIANTINTEGERVEXTPROC glad_glGetVariantIntegervEXT; -PFNGLGETVARIANTFLOATVEXTPROC glad_glGetVariantFloatvEXT; -PFNGLGETVARIANTPOINTERVEXTPROC glad_glGetVariantPointervEXT; -PFNGLGETINVARIANTBOOLEANVEXTPROC glad_glGetInvariantBooleanvEXT; -PFNGLGETINVARIANTINTEGERVEXTPROC glad_glGetInvariantIntegervEXT; -PFNGLGETINVARIANTFLOATVEXTPROC glad_glGetInvariantFloatvEXT; -PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC glad_glGetLocalConstantBooleanvEXT; -PFNGLGETLOCALCONSTANTINTEGERVEXTPROC glad_glGetLocalConstantIntegervEXT; -PFNGLGETLOCALCONSTANTFLOATVEXTPROC glad_glGetLocalConstantFloatvEXT; -PFNGLBLENDFUNCSEPARATEEXTPROC glad_glBlendFuncSeparateEXT; -PFNGLGENFENCESAPPLEPROC glad_glGenFencesAPPLE; -PFNGLDELETEFENCESAPPLEPROC glad_glDeleteFencesAPPLE; -PFNGLSETFENCEAPPLEPROC glad_glSetFenceAPPLE; -PFNGLISFENCEAPPLEPROC glad_glIsFenceAPPLE; -PFNGLTESTFENCEAPPLEPROC glad_glTestFenceAPPLE; -PFNGLFINISHFENCEAPPLEPROC glad_glFinishFenceAPPLE; -PFNGLTESTOBJECTAPPLEPROC glad_glTestObjectAPPLE; -PFNGLFINISHOBJECTAPPLEPROC glad_glFinishObjectAPPLE; -PFNGLMULTITEXCOORD1BOESPROC glad_glMultiTexCoord1bOES; -PFNGLMULTITEXCOORD1BVOESPROC glad_glMultiTexCoord1bvOES; -PFNGLMULTITEXCOORD2BOESPROC glad_glMultiTexCoord2bOES; -PFNGLMULTITEXCOORD2BVOESPROC glad_glMultiTexCoord2bvOES; -PFNGLMULTITEXCOORD3BOESPROC glad_glMultiTexCoord3bOES; -PFNGLMULTITEXCOORD3BVOESPROC glad_glMultiTexCoord3bvOES; -PFNGLMULTITEXCOORD4BOESPROC glad_glMultiTexCoord4bOES; -PFNGLMULTITEXCOORD4BVOESPROC glad_glMultiTexCoord4bvOES; -PFNGLTEXCOORD1BOESPROC glad_glTexCoord1bOES; -PFNGLTEXCOORD1BVOESPROC glad_glTexCoord1bvOES; -PFNGLTEXCOORD2BOESPROC glad_glTexCoord2bOES; -PFNGLTEXCOORD2BVOESPROC glad_glTexCoord2bvOES; -PFNGLTEXCOORD3BOESPROC glad_glTexCoord3bOES; -PFNGLTEXCOORD3BVOESPROC glad_glTexCoord3bvOES; -PFNGLTEXCOORD4BOESPROC glad_glTexCoord4bOES; -PFNGLTEXCOORD4BVOESPROC glad_glTexCoord4bvOES; -PFNGLVERTEX2BOESPROC glad_glVertex2bOES; -PFNGLVERTEX2BVOESPROC glad_glVertex2bvOES; -PFNGLVERTEX3BOESPROC glad_glVertex3bOES; -PFNGLVERTEX3BVOESPROC glad_glVertex3bvOES; -PFNGLVERTEX4BOESPROC glad_glVertex4bOES; -PFNGLVERTEX4BVOESPROC glad_glVertex4bvOES; -PFNGLLOADTRANSPOSEMATRIXFARBPROC glad_glLoadTransposeMatrixfARB; -PFNGLLOADTRANSPOSEMATRIXDARBPROC glad_glLoadTransposeMatrixdARB; -PFNGLMULTTRANSPOSEMATRIXFARBPROC glad_glMultTransposeMatrixfARB; -PFNGLMULTTRANSPOSEMATRIXDARBPROC glad_glMultTransposeMatrixdARB; -PFNGLFOGCOORDFEXTPROC glad_glFogCoordfEXT; -PFNGLFOGCOORDFVEXTPROC glad_glFogCoordfvEXT; -PFNGLFOGCOORDDEXTPROC glad_glFogCoorddEXT; -PFNGLFOGCOORDDVEXTPROC glad_glFogCoorddvEXT; -PFNGLFOGCOORDPOINTEREXTPROC glad_glFogCoordPointerEXT; -PFNGLARRAYELEMENTEXTPROC glad_glArrayElementEXT; -PFNGLCOLORPOINTEREXTPROC glad_glColorPointerEXT; -PFNGLDRAWARRAYSEXTPROC glad_glDrawArraysEXT; -PFNGLEDGEFLAGPOINTEREXTPROC glad_glEdgeFlagPointerEXT; -PFNGLGETPOINTERVEXTPROC glad_glGetPointervEXT; -PFNGLINDEXPOINTEREXTPROC glad_glIndexPointerEXT; -PFNGLNORMALPOINTEREXTPROC glad_glNormalPointerEXT; -PFNGLTEXCOORDPOINTEREXTPROC glad_glTexCoordPointerEXT; -PFNGLVERTEXPOINTEREXTPROC glad_glVertexPointerEXT; -PFNGLBLENDEQUATIONSEPARATEEXTPROC glad_glBlendEquationSeparateEXT; -PFNGLCOVERAGEMODULATIONTABLENVPROC glad_glCoverageModulationTableNV; -PFNGLGETCOVERAGEMODULATIONTABLENVPROC glad_glGetCoverageModulationTableNV; -PFNGLCOVERAGEMODULATIONNVPROC glad_glCoverageModulationNV; -PFNGLBEGINCONDITIONALRENDERNVXPROC glad_glBeginConditionalRenderNVX; -PFNGLENDCONDITIONALRENDERNVXPROC glad_glEndConditionalRenderNVX; -PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect; -PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect; -PFNGLCOPYIMAGESUBDATANVPROC glad_glCopyImageSubDataNV; -PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC glad_glApplyFramebufferAttachmentCMAAINTEL; -PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback; -PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks; -PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks; -PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback; -PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback; -PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback; -PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback; -PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream; -PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed; -PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed; -PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv; -PFNGLINSERTEVENTMARKEREXTPROC glad_glInsertEventMarkerEXT; -PFNGLPUSHGROUPMARKEREXTPROC glad_glPushGroupMarkerEXT; -PFNGLPOPGROUPMARKEREXTPROC glad_glPopGroupMarkerEXT; -PFNGLPIXELTRANSFORMPARAMETERIEXTPROC glad_glPixelTransformParameteriEXT; -PFNGLPIXELTRANSFORMPARAMETERFEXTPROC glad_glPixelTransformParameterfEXT; -PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC glad_glPixelTransformParameterivEXT; -PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC glad_glPixelTransformParameterfvEXT; -PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC glad_glGetPixelTransformParameterivEXT; -PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC glad_glGetPixelTransformParameterfvEXT; -PFNGLGENFRAGMENTSHADERSATIPROC glad_glGenFragmentShadersATI; -PFNGLBINDFRAGMENTSHADERATIPROC glad_glBindFragmentShaderATI; -PFNGLDELETEFRAGMENTSHADERATIPROC glad_glDeleteFragmentShaderATI; -PFNGLBEGINFRAGMENTSHADERATIPROC glad_glBeginFragmentShaderATI; -PFNGLENDFRAGMENTSHADERATIPROC glad_glEndFragmentShaderATI; -PFNGLPASSTEXCOORDATIPROC glad_glPassTexCoordATI; -PFNGLSAMPLEMAPATIPROC glad_glSampleMapATI; -PFNGLCOLORFRAGMENTOP1ATIPROC glad_glColorFragmentOp1ATI; -PFNGLCOLORFRAGMENTOP2ATIPROC glad_glColorFragmentOp2ATI; -PFNGLCOLORFRAGMENTOP3ATIPROC glad_glColorFragmentOp3ATI; -PFNGLALPHAFRAGMENTOP1ATIPROC glad_glAlphaFragmentOp1ATI; -PFNGLALPHAFRAGMENTOP2ATIPROC glad_glAlphaFragmentOp2ATI; -PFNGLALPHAFRAGMENTOP3ATIPROC glad_glAlphaFragmentOp3ATI; -PFNGLSETFRAGMENTSHADERCONSTANTATIPROC glad_glSetFragmentShaderConstantATI; -PFNGLREPLACEMENTCODEUISUNPROC glad_glReplacementCodeuiSUN; -PFNGLREPLACEMENTCODEUSSUNPROC glad_glReplacementCodeusSUN; -PFNGLREPLACEMENTCODEUBSUNPROC glad_glReplacementCodeubSUN; -PFNGLREPLACEMENTCODEUIVSUNPROC glad_glReplacementCodeuivSUN; -PFNGLREPLACEMENTCODEUSVSUNPROC glad_glReplacementCodeusvSUN; -PFNGLREPLACEMENTCODEUBVSUNPROC glad_glReplacementCodeubvSUN; -PFNGLREPLACEMENTCODEPOINTERSUNPROC glad_glReplacementCodePointerSUN; -PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced; -PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced; -PFNGLASYNCMARKERSGIXPROC glad_glAsyncMarkerSGIX; -PFNGLFINISHASYNCSGIXPROC glad_glFinishAsyncSGIX; -PFNGLPOLLASYNCSGIXPROC glad_glPollAsyncSGIX; -PFNGLGENASYNCMARKERSSGIXPROC glad_glGenAsyncMarkersSGIX; -PFNGLDELETEASYNCMARKERSSGIXPROC glad_glDeleteAsyncMarkersSGIX; -PFNGLISASYNCMARKERSGIXPROC glad_glIsAsyncMarkerSGIX; -PFNGLBEGINPERFQUERYINTELPROC glad_glBeginPerfQueryINTEL; -PFNGLCREATEPERFQUERYINTELPROC glad_glCreatePerfQueryINTEL; -PFNGLDELETEPERFQUERYINTELPROC glad_glDeletePerfQueryINTEL; -PFNGLENDPERFQUERYINTELPROC glad_glEndPerfQueryINTEL; -PFNGLGETFIRSTPERFQUERYIDINTELPROC glad_glGetFirstPerfQueryIdINTEL; -PFNGLGETNEXTPERFQUERYIDINTELPROC glad_glGetNextPerfQueryIdINTEL; -PFNGLGETPERFCOUNTERINFOINTELPROC glad_glGetPerfCounterInfoINTEL; -PFNGLGETPERFQUERYDATAINTELPROC glad_glGetPerfQueryDataINTEL; -PFNGLGETPERFQUERYIDBYNAMEINTELPROC glad_glGetPerfQueryIdByNameINTEL; -PFNGLGETPERFQUERYINFOINTELPROC glad_glGetPerfQueryInfoINTEL; -PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC glad_glMultiDrawArraysIndirectBindlessCountNV; -PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC glad_glMultiDrawElementsIndirectBindlessCountNV; -PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler; -PFNGLSHADERBINARYPROC glad_glShaderBinary; -PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat; -PFNGLDEPTHRANGEFPROC glad_glDepthRangef; -PFNGLCLEARDEPTHFPROC glad_glClearDepthf; -PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC glad_glMultiDrawArraysIndirectCountARB; -PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC glad_glMultiDrawElementsIndirectCountARB; -PFNGLVERTEX2HNVPROC glad_glVertex2hNV; -PFNGLVERTEX2HVNVPROC glad_glVertex2hvNV; -PFNGLVERTEX3HNVPROC glad_glVertex3hNV; -PFNGLVERTEX3HVNVPROC glad_glVertex3hvNV; -PFNGLVERTEX4HNVPROC glad_glVertex4hNV; -PFNGLVERTEX4HVNVPROC glad_glVertex4hvNV; -PFNGLNORMAL3HNVPROC glad_glNormal3hNV; -PFNGLNORMAL3HVNVPROC glad_glNormal3hvNV; -PFNGLCOLOR3HNVPROC glad_glColor3hNV; -PFNGLCOLOR3HVNVPROC glad_glColor3hvNV; -PFNGLCOLOR4HNVPROC glad_glColor4hNV; -PFNGLCOLOR4HVNVPROC glad_glColor4hvNV; -PFNGLTEXCOORD1HNVPROC glad_glTexCoord1hNV; -PFNGLTEXCOORD1HVNVPROC glad_glTexCoord1hvNV; -PFNGLTEXCOORD2HNVPROC glad_glTexCoord2hNV; -PFNGLTEXCOORD2HVNVPROC glad_glTexCoord2hvNV; -PFNGLTEXCOORD3HNVPROC glad_glTexCoord3hNV; -PFNGLTEXCOORD3HVNVPROC glad_glTexCoord3hvNV; -PFNGLTEXCOORD4HNVPROC glad_glTexCoord4hNV; -PFNGLTEXCOORD4HVNVPROC glad_glTexCoord4hvNV; -PFNGLMULTITEXCOORD1HNVPROC glad_glMultiTexCoord1hNV; -PFNGLMULTITEXCOORD1HVNVPROC glad_glMultiTexCoord1hvNV; -PFNGLMULTITEXCOORD2HNVPROC glad_glMultiTexCoord2hNV; -PFNGLMULTITEXCOORD2HVNVPROC glad_glMultiTexCoord2hvNV; -PFNGLMULTITEXCOORD3HNVPROC glad_glMultiTexCoord3hNV; -PFNGLMULTITEXCOORD3HVNVPROC glad_glMultiTexCoord3hvNV; -PFNGLMULTITEXCOORD4HNVPROC glad_glMultiTexCoord4hNV; -PFNGLMULTITEXCOORD4HVNVPROC glad_glMultiTexCoord4hvNV; -PFNGLFOGCOORDHNVPROC glad_glFogCoordhNV; -PFNGLFOGCOORDHVNVPROC glad_glFogCoordhvNV; -PFNGLSECONDARYCOLOR3HNVPROC glad_glSecondaryColor3hNV; -PFNGLSECONDARYCOLOR3HVNVPROC glad_glSecondaryColor3hvNV; -PFNGLVERTEXWEIGHTHNVPROC glad_glVertexWeighthNV; -PFNGLVERTEXWEIGHTHVNVPROC glad_glVertexWeighthvNV; -PFNGLVERTEXATTRIB1HNVPROC glad_glVertexAttrib1hNV; -PFNGLVERTEXATTRIB1HVNVPROC glad_glVertexAttrib1hvNV; -PFNGLVERTEXATTRIB2HNVPROC glad_glVertexAttrib2hNV; -PFNGLVERTEXATTRIB2HVNVPROC glad_glVertexAttrib2hvNV; -PFNGLVERTEXATTRIB3HNVPROC glad_glVertexAttrib3hNV; -PFNGLVERTEXATTRIB3HVNVPROC glad_glVertexAttrib3hvNV; -PFNGLVERTEXATTRIB4HNVPROC glad_glVertexAttrib4hNV; -PFNGLVERTEXATTRIB4HVNVPROC glad_glVertexAttrib4hvNV; -PFNGLVERTEXATTRIBS1HVNVPROC glad_glVertexAttribs1hvNV; -PFNGLVERTEXATTRIBS2HVNVPROC glad_glVertexAttribs2hvNV; -PFNGLVERTEXATTRIBS3HVNVPROC glad_glVertexAttribs3hvNV; -PFNGLVERTEXATTRIBS4HVNVPROC glad_glVertexAttribs4hvNV; -PFNGLPRIMITIVEBOUNDINGBOXARBPROC glad_glPrimitiveBoundingBoxARB; -PFNGLPOLYGONOFFSETCLAMPEXTPROC glad_glPolygonOffsetClampEXT; -PFNGLLOCKARRAYSEXTPROC glad_glLockArraysEXT; -PFNGLUNLOCKARRAYSEXTPROC glad_glUnlockArraysEXT; -PFNGLDEPTHRANGEDNVPROC glad_glDepthRangedNV; -PFNGLCLEARDEPTHDNVPROC glad_glClearDepthdNV; -PFNGLDEPTHBOUNDSDNVPROC glad_glDepthBoundsdNV; -PFNGLGENOCCLUSIONQUERIESNVPROC glad_glGenOcclusionQueriesNV; -PFNGLDELETEOCCLUSIONQUERIESNVPROC glad_glDeleteOcclusionQueriesNV; -PFNGLISOCCLUSIONQUERYNVPROC glad_glIsOcclusionQueryNV; -PFNGLBEGINOCCLUSIONQUERYNVPROC glad_glBeginOcclusionQueryNV; -PFNGLENDOCCLUSIONQUERYNVPROC glad_glEndOcclusionQueryNV; -PFNGLGETOCCLUSIONQUERYIVNVPROC glad_glGetOcclusionQueryivNV; -PFNGLGETOCCLUSIONQUERYUIVNVPROC glad_glGetOcclusionQueryuivNV; -PFNGLBUFFERPARAMETERIAPPLEPROC glad_glBufferParameteriAPPLE; -PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC glad_glFlushMappedBufferRangeAPPLE; -PFNGLCOLORTABLEPROC glad_glColorTable; -PFNGLCOLORTABLEPARAMETERFVPROC glad_glColorTableParameterfv; -PFNGLCOLORTABLEPARAMETERIVPROC glad_glColorTableParameteriv; -PFNGLCOPYCOLORTABLEPROC glad_glCopyColorTable; -PFNGLGETCOLORTABLEPROC glad_glGetColorTable; -PFNGLGETCOLORTABLEPARAMETERFVPROC glad_glGetColorTableParameterfv; -PFNGLGETCOLORTABLEPARAMETERIVPROC glad_glGetColorTableParameteriv; -PFNGLCOLORSUBTABLEPROC glad_glColorSubTable; -PFNGLCOPYCOLORSUBTABLEPROC glad_glCopyColorSubTable; -PFNGLCONVOLUTIONFILTER1DPROC glad_glConvolutionFilter1D; -PFNGLCONVOLUTIONFILTER2DPROC glad_glConvolutionFilter2D; -PFNGLCONVOLUTIONPARAMETERFPROC glad_glConvolutionParameterf; -PFNGLCONVOLUTIONPARAMETERFVPROC glad_glConvolutionParameterfv; -PFNGLCONVOLUTIONPARAMETERIPROC glad_glConvolutionParameteri; -PFNGLCONVOLUTIONPARAMETERIVPROC glad_glConvolutionParameteriv; -PFNGLCOPYCONVOLUTIONFILTER1DPROC glad_glCopyConvolutionFilter1D; -PFNGLCOPYCONVOLUTIONFILTER2DPROC glad_glCopyConvolutionFilter2D; -PFNGLGETCONVOLUTIONFILTERPROC glad_glGetConvolutionFilter; -PFNGLGETCONVOLUTIONPARAMETERFVPROC glad_glGetConvolutionParameterfv; -PFNGLGETCONVOLUTIONPARAMETERIVPROC glad_glGetConvolutionParameteriv; -PFNGLGETSEPARABLEFILTERPROC glad_glGetSeparableFilter; -PFNGLSEPARABLEFILTER2DPROC glad_glSeparableFilter2D; -PFNGLGETHISTOGRAMPROC glad_glGetHistogram; -PFNGLGETHISTOGRAMPARAMETERFVPROC glad_glGetHistogramParameterfv; -PFNGLGETHISTOGRAMPARAMETERIVPROC glad_glGetHistogramParameteriv; -PFNGLGETMINMAXPROC glad_glGetMinmax; -PFNGLGETMINMAXPARAMETERFVPROC glad_glGetMinmaxParameterfv; -PFNGLGETMINMAXPARAMETERIVPROC glad_glGetMinmaxParameteriv; -PFNGLHISTOGRAMPROC glad_glHistogram; -PFNGLMINMAXPROC glad_glMinmax; -PFNGLRESETHISTOGRAMPROC glad_glResetHistogram; -PFNGLRESETMINMAXPROC glad_glResetMinmax; -PFNGLBLENDEQUATIONIARBPROC glad_glBlendEquationiARB; -PFNGLBLENDEQUATIONSEPARATEIARBPROC glad_glBlendEquationSeparateiARB; -PFNGLBLENDFUNCIARBPROC glad_glBlendFunciARB; -PFNGLBLENDFUNCSEPARATEIARBPROC glad_glBlendFuncSeparateiARB; -PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData; -PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData; -PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB; -PFNGLLABELOBJECTEXTPROC glad_glLabelObjectEXT; -PFNGLGETOBJECTLABELEXTPROC glad_glGetObjectLabelEXT; -PFNGLMINSAMPLESHADINGARBPROC glad_glMinSampleShadingARB; -PFNGLGETINTERNALFORMATSAMPLEIVNVPROC glad_glGetInternalformatSampleivNV; -PFNGLSYNCTEXTUREINTELPROC glad_glSyncTextureINTEL; -PFNGLUNMAPTEXTURE2DINTELPROC glad_glUnmapTexture2DINTEL; -PFNGLMAPTEXTURE2DINTELPROC glad_glMapTexture2DINTEL; -PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute; -PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect; -PFNGLCOLORPOINTERLISTIBMPROC glad_glColorPointerListIBM; -PFNGLSECONDARYCOLORPOINTERLISTIBMPROC glad_glSecondaryColorPointerListIBM; -PFNGLEDGEFLAGPOINTERLISTIBMPROC glad_glEdgeFlagPointerListIBM; -PFNGLFOGCOORDPOINTERLISTIBMPROC glad_glFogCoordPointerListIBM; -PFNGLINDEXPOINTERLISTIBMPROC glad_glIndexPointerListIBM; -PFNGLNORMALPOINTERLISTIBMPROC glad_glNormalPointerListIBM; -PFNGLTEXCOORDPOINTERLISTIBMPROC glad_glTexCoordPointerListIBM; -PFNGLVERTEXPOINTERLISTIBMPROC glad_glVertexPointerListIBM; -PFNGLCLAMPCOLORARBPROC glad_glClampColorARB; -PFNGLGETTEXTUREHANDLEARBPROC glad_glGetTextureHandleARB; -PFNGLGETTEXTURESAMPLERHANDLEARBPROC glad_glGetTextureSamplerHandleARB; -PFNGLMAKETEXTUREHANDLERESIDENTARBPROC glad_glMakeTextureHandleResidentARB; -PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC glad_glMakeTextureHandleNonResidentARB; -PFNGLGETIMAGEHANDLEARBPROC glad_glGetImageHandleARB; -PFNGLMAKEIMAGEHANDLERESIDENTARBPROC glad_glMakeImageHandleResidentARB; -PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC glad_glMakeImageHandleNonResidentARB; -PFNGLUNIFORMHANDLEUI64ARBPROC glad_glUniformHandleui64ARB; -PFNGLUNIFORMHANDLEUI64VARBPROC glad_glUniformHandleui64vARB; -PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC glad_glProgramUniformHandleui64ARB; -PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC glad_glProgramUniformHandleui64vARB; -PFNGLISTEXTUREHANDLERESIDENTARBPROC glad_glIsTextureHandleResidentARB; -PFNGLISIMAGEHANDLERESIDENTARBPROC glad_glIsImageHandleResidentARB; -PFNGLVERTEXATTRIBL1UI64ARBPROC glad_glVertexAttribL1ui64ARB; -PFNGLVERTEXATTRIBL1UI64VARBPROC glad_glVertexAttribL1ui64vARB; -PFNGLGETVERTEXATTRIBLUI64VARBPROC glad_glGetVertexAttribLui64vARB; -PFNGLWINDOWPOS2DARBPROC glad_glWindowPos2dARB; -PFNGLWINDOWPOS2DVARBPROC glad_glWindowPos2dvARB; -PFNGLWINDOWPOS2FARBPROC glad_glWindowPos2fARB; -PFNGLWINDOWPOS2FVARBPROC glad_glWindowPos2fvARB; -PFNGLWINDOWPOS2IARBPROC glad_glWindowPos2iARB; -PFNGLWINDOWPOS2IVARBPROC glad_glWindowPos2ivARB; -PFNGLWINDOWPOS2SARBPROC glad_glWindowPos2sARB; -PFNGLWINDOWPOS2SVARBPROC glad_glWindowPos2svARB; -PFNGLWINDOWPOS3DARBPROC glad_glWindowPos3dARB; -PFNGLWINDOWPOS3DVARBPROC glad_glWindowPos3dvARB; -PFNGLWINDOWPOS3FARBPROC glad_glWindowPos3fARB; -PFNGLWINDOWPOS3FVARBPROC glad_glWindowPos3fvARB; -PFNGLWINDOWPOS3IARBPROC glad_glWindowPos3iARB; -PFNGLWINDOWPOS3IVARBPROC glad_glWindowPos3ivARB; -PFNGLWINDOWPOS3SARBPROC glad_glWindowPos3sARB; -PFNGLWINDOWPOS3SVARBPROC glad_glWindowPos3svARB; -PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ; -PFNGLBINDIMAGETEXTUREEXTPROC glad_glBindImageTextureEXT; -PFNGLMEMORYBARRIEREXTPROC glad_glMemoryBarrierEXT; -PFNGLCOPYTEXIMAGE1DEXTPROC glad_glCopyTexImage1DEXT; -PFNGLCOPYTEXIMAGE2DEXTPROC glad_glCopyTexImage2DEXT; -PFNGLCOPYTEXSUBIMAGE1DEXTPROC glad_glCopyTexSubImage1DEXT; -PFNGLCOPYTEXSUBIMAGE2DEXTPROC glad_glCopyTexSubImage2DEXT; -PFNGLCOPYTEXSUBIMAGE3DEXTPROC glad_glCopyTexSubImage3DEXT; -PFNGLCOMBINERSTAGEPARAMETERFVNVPROC glad_glCombinerStageParameterfvNV; -PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC glad_glGetCombinerStageParameterfvNV; -PFNGLDRAWTEXTURENVPROC glad_glDrawTextureNV; -PFNGLDRAWARRAYSINSTANCEDEXTPROC glad_glDrawArraysInstancedEXT; -PFNGLDRAWELEMENTSINSTANCEDEXTPROC glad_glDrawElementsInstancedEXT; -PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv; -PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf; -PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv; -PFNGLSCISSORARRAYVPROC glad_glScissorArrayv; -PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed; -PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv; -PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv; -PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed; -PFNGLGETFLOATI_VPROC glad_glGetFloati_v; -PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v; -PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages; -PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram; -PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv; -PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline; -PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines; -PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines; -PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline; -PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv; -PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i; -PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv; -PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f; -PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv; -PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d; -PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv; -PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui; -PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv; -PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i; -PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv; -PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f; -PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv; -PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d; -PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv; -PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui; -PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv; -PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i; -PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv; -PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f; -PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv; -PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d; -PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv; -PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui; -PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv; -PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i; -PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv; -PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f; -PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv; -PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d; -PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv; -PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui; -PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv; -PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv; -PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv; -PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv; -PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv; -PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv; -PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv; -PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv; -PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv; -PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv; -PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv; -PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv; -PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv; -PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv; -PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv; -PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv; -PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv; -PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv; -PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv; -PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline; -PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog; -PFNGLDEPTHBOUNDSEXTPROC glad_glDepthBoundsEXT; -PFNGLBEGINVIDEOCAPTURENVPROC glad_glBeginVideoCaptureNV; -PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC glad_glBindVideoCaptureStreamBufferNV; -PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC glad_glBindVideoCaptureStreamTextureNV; -PFNGLENDVIDEOCAPTURENVPROC glad_glEndVideoCaptureNV; -PFNGLGETVIDEOCAPTUREIVNVPROC glad_glGetVideoCaptureivNV; -PFNGLGETVIDEOCAPTURESTREAMIVNVPROC glad_glGetVideoCaptureStreamivNV; -PFNGLGETVIDEOCAPTURESTREAMFVNVPROC glad_glGetVideoCaptureStreamfvNV; -PFNGLGETVIDEOCAPTURESTREAMDVNVPROC glad_glGetVideoCaptureStreamdvNV; -PFNGLVIDEOCAPTURENVPROC glad_glVideoCaptureNV; -PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC glad_glVideoCaptureStreamParameterivNV; -PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC glad_glVideoCaptureStreamParameterfvNV; -PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC glad_glVideoCaptureStreamParameterdvNV; -PFNGLCURRENTPALETTEMATRIXARBPROC glad_glCurrentPaletteMatrixARB; -PFNGLMATRIXINDEXUBVARBPROC glad_glMatrixIndexubvARB; -PFNGLMATRIXINDEXUSVARBPROC glad_glMatrixIndexusvARB; -PFNGLMATRIXINDEXUIVARBPROC glad_glMatrixIndexuivARB; -PFNGLMATRIXINDEXPOINTERARBPROC glad_glMatrixIndexPointerARB; -PFNGLTEXTURECOLORMASKSGISPROC glad_glTextureColorMaskSGIS; -PFNGLTANGENT3BEXTPROC glad_glTangent3bEXT; -PFNGLTANGENT3BVEXTPROC glad_glTangent3bvEXT; -PFNGLTANGENT3DEXTPROC glad_glTangent3dEXT; -PFNGLTANGENT3DVEXTPROC glad_glTangent3dvEXT; -PFNGLTANGENT3FEXTPROC glad_glTangent3fEXT; -PFNGLTANGENT3FVEXTPROC glad_glTangent3fvEXT; -PFNGLTANGENT3IEXTPROC glad_glTangent3iEXT; -PFNGLTANGENT3IVEXTPROC glad_glTangent3ivEXT; -PFNGLTANGENT3SEXTPROC glad_glTangent3sEXT; -PFNGLTANGENT3SVEXTPROC glad_glTangent3svEXT; -PFNGLBINORMAL3BEXTPROC glad_glBinormal3bEXT; -PFNGLBINORMAL3BVEXTPROC glad_glBinormal3bvEXT; -PFNGLBINORMAL3DEXTPROC glad_glBinormal3dEXT; -PFNGLBINORMAL3DVEXTPROC glad_glBinormal3dvEXT; -PFNGLBINORMAL3FEXTPROC glad_glBinormal3fEXT; -PFNGLBINORMAL3FVEXTPROC glad_glBinormal3fvEXT; -PFNGLBINORMAL3IEXTPROC glad_glBinormal3iEXT; -PFNGLBINORMAL3IVEXTPROC glad_glBinormal3ivEXT; -PFNGLBINORMAL3SEXTPROC glad_glBinormal3sEXT; -PFNGLBINORMAL3SVEXTPROC glad_glBinormal3svEXT; -PFNGLTANGENTPOINTEREXTPROC glad_glTangentPointerEXT; -PFNGLBINORMALPOINTEREXTPROC glad_glBinormalPointerEXT; -PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB; -PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB; -PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glad_glCompressedTexImage1DARB; -PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glad_glCompressedTexSubImage3DARB; -PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glad_glCompressedTexSubImage2DARB; -PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glad_glCompressedTexSubImage1DARB; -PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glad_glGetCompressedTexImageARB; -PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation; -PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex; -PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv; -PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName; -PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName; -PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv; -PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv; -PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv; -PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample; -PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample; -PFNGLVERTEXATTRIBL1DEXTPROC glad_glVertexAttribL1dEXT; -PFNGLVERTEXATTRIBL2DEXTPROC glad_glVertexAttribL2dEXT; -PFNGLVERTEXATTRIBL3DEXTPROC glad_glVertexAttribL3dEXT; -PFNGLVERTEXATTRIBL4DEXTPROC glad_glVertexAttribL4dEXT; -PFNGLVERTEXATTRIBL1DVEXTPROC glad_glVertexAttribL1dvEXT; -PFNGLVERTEXATTRIBL2DVEXTPROC glad_glVertexAttribL2dvEXT; -PFNGLVERTEXATTRIBL3DVEXTPROC glad_glVertexAttribL3dvEXT; -PFNGLVERTEXATTRIBL4DVEXTPROC glad_glVertexAttribL4dvEXT; -PFNGLVERTEXATTRIBLPOINTEREXTPROC glad_glVertexAttribLPointerEXT; -PFNGLGETVERTEXATTRIBLDVEXTPROC glad_glGetVertexAttribLdvEXT; -PFNGLQUERYMATRIXXOESPROC glad_glQueryMatrixxOES; -PFNGLWINDOWPOS2DMESAPROC glad_glWindowPos2dMESA; -PFNGLWINDOWPOS2DVMESAPROC glad_glWindowPos2dvMESA; -PFNGLWINDOWPOS2FMESAPROC glad_glWindowPos2fMESA; -PFNGLWINDOWPOS2FVMESAPROC glad_glWindowPos2fvMESA; -PFNGLWINDOWPOS2IMESAPROC glad_glWindowPos2iMESA; -PFNGLWINDOWPOS2IVMESAPROC glad_glWindowPos2ivMESA; -PFNGLWINDOWPOS2SMESAPROC glad_glWindowPos2sMESA; -PFNGLWINDOWPOS2SVMESAPROC glad_glWindowPos2svMESA; -PFNGLWINDOWPOS3DMESAPROC glad_glWindowPos3dMESA; -PFNGLWINDOWPOS3DVMESAPROC glad_glWindowPos3dvMESA; -PFNGLWINDOWPOS3FMESAPROC glad_glWindowPos3fMESA; -PFNGLWINDOWPOS3FVMESAPROC glad_glWindowPos3fvMESA; -PFNGLWINDOWPOS3IMESAPROC glad_glWindowPos3iMESA; -PFNGLWINDOWPOS3IVMESAPROC glad_glWindowPos3ivMESA; -PFNGLWINDOWPOS3SMESAPROC glad_glWindowPos3sMESA; -PFNGLWINDOWPOS3SVMESAPROC glad_glWindowPos3svMESA; -PFNGLWINDOWPOS4DMESAPROC glad_glWindowPos4dMESA; -PFNGLWINDOWPOS4DVMESAPROC glad_glWindowPos4dvMESA; -PFNGLWINDOWPOS4FMESAPROC glad_glWindowPos4fMESA; -PFNGLWINDOWPOS4FVMESAPROC glad_glWindowPos4fvMESA; -PFNGLWINDOWPOS4IMESAPROC glad_glWindowPos4iMESA; -PFNGLWINDOWPOS4IVMESAPROC glad_glWindowPos4ivMESA; -PFNGLWINDOWPOS4SMESAPROC glad_glWindowPos4sMESA; -PFNGLWINDOWPOS4SVMESAPROC glad_glWindowPos4svMESA; -PFNGLOBJECTPURGEABLEAPPLEPROC glad_glObjectPurgeableAPPLE; -PFNGLOBJECTUNPURGEABLEAPPLEPROC glad_glObjectUnpurgeableAPPLE; -PFNGLGETOBJECTPARAMETERIVAPPLEPROC glad_glGetObjectParameterivAPPLE; -PFNGLGENQUERIESARBPROC glad_glGenQueriesARB; -PFNGLDELETEQUERIESARBPROC glad_glDeleteQueriesARB; -PFNGLISQUERYARBPROC glad_glIsQueryARB; -PFNGLBEGINQUERYARBPROC glad_glBeginQueryARB; -PFNGLENDQUERYARBPROC glad_glEndQueryARB; -PFNGLGETQUERYIVARBPROC glad_glGetQueryivARB; -PFNGLGETQUERYOBJECTIVARBPROC glad_glGetQueryObjectivARB; -PFNGLGETQUERYOBJECTUIVARBPROC glad_glGetQueryObjectuivARB; -PFNGLCOLORTABLESGIPROC glad_glColorTableSGI; -PFNGLCOLORTABLEPARAMETERFVSGIPROC glad_glColorTableParameterfvSGI; -PFNGLCOLORTABLEPARAMETERIVSGIPROC glad_glColorTableParameterivSGI; -PFNGLCOPYCOLORTABLESGIPROC glad_glCopyColorTableSGI; -PFNGLGETCOLORTABLESGIPROC glad_glGetColorTableSGI; -PFNGLGETCOLORTABLEPARAMETERFVSGIPROC glad_glGetColorTableParameterfvSGI; -PFNGLGETCOLORTABLEPARAMETERIVSGIPROC glad_glGetColorTableParameterivSGI; -PFNGLGETUNIFORMUIVEXTPROC glad_glGetUniformuivEXT; -PFNGLBINDFRAGDATALOCATIONEXTPROC glad_glBindFragDataLocationEXT; -PFNGLGETFRAGDATALOCATIONEXTPROC glad_glGetFragDataLocationEXT; -PFNGLUNIFORM1UIEXTPROC glad_glUniform1uiEXT; -PFNGLUNIFORM2UIEXTPROC glad_glUniform2uiEXT; -PFNGLUNIFORM3UIEXTPROC glad_glUniform3uiEXT; -PFNGLUNIFORM4UIEXTPROC glad_glUniform4uiEXT; -PFNGLUNIFORM1UIVEXTPROC glad_glUniform1uivEXT; -PFNGLUNIFORM2UIVEXTPROC glad_glUniform2uivEXT; -PFNGLUNIFORM3UIVEXTPROC glad_glUniform3uivEXT; -PFNGLUNIFORM4UIVEXTPROC glad_glUniform4uivEXT; -PFNGLPROGRAMVERTEXLIMITNVPROC glad_glProgramVertexLimitNV; -PFNGLFRAMEBUFFERTEXTUREEXTPROC glad_glFramebufferTextureEXT; -PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC glad_glFramebufferTextureFaceEXT; -PFNGLDEBUGMESSAGEENABLEAMDPROC glad_glDebugMessageEnableAMD; -PFNGLDEBUGMESSAGEINSERTAMDPROC glad_glDebugMessageInsertAMD; -PFNGLDEBUGMESSAGECALLBACKAMDPROC glad_glDebugMessageCallbackAMD; -PFNGLGETDEBUGMESSAGELOGAMDPROC glad_glGetDebugMessageLogAMD; -PFNGLACTIVETEXTUREARBPROC glad_glActiveTextureARB; -PFNGLCLIENTACTIVETEXTUREARBPROC glad_glClientActiveTextureARB; -PFNGLMULTITEXCOORD1DARBPROC glad_glMultiTexCoord1dARB; -PFNGLMULTITEXCOORD1DVARBPROC glad_glMultiTexCoord1dvARB; -PFNGLMULTITEXCOORD1FARBPROC glad_glMultiTexCoord1fARB; -PFNGLMULTITEXCOORD1FVARBPROC glad_glMultiTexCoord1fvARB; -PFNGLMULTITEXCOORD1IARBPROC glad_glMultiTexCoord1iARB; -PFNGLMULTITEXCOORD1IVARBPROC glad_glMultiTexCoord1ivARB; -PFNGLMULTITEXCOORD1SARBPROC glad_glMultiTexCoord1sARB; -PFNGLMULTITEXCOORD1SVARBPROC glad_glMultiTexCoord1svARB; -PFNGLMULTITEXCOORD2DARBPROC glad_glMultiTexCoord2dARB; -PFNGLMULTITEXCOORD2DVARBPROC glad_glMultiTexCoord2dvARB; -PFNGLMULTITEXCOORD2FARBPROC glad_glMultiTexCoord2fARB; -PFNGLMULTITEXCOORD2FVARBPROC glad_glMultiTexCoord2fvARB; -PFNGLMULTITEXCOORD2IARBPROC glad_glMultiTexCoord2iARB; -PFNGLMULTITEXCOORD2IVARBPROC glad_glMultiTexCoord2ivARB; -PFNGLMULTITEXCOORD2SARBPROC glad_glMultiTexCoord2sARB; -PFNGLMULTITEXCOORD2SVARBPROC glad_glMultiTexCoord2svARB; -PFNGLMULTITEXCOORD3DARBPROC glad_glMultiTexCoord3dARB; -PFNGLMULTITEXCOORD3DVARBPROC glad_glMultiTexCoord3dvARB; -PFNGLMULTITEXCOORD3FARBPROC glad_glMultiTexCoord3fARB; -PFNGLMULTITEXCOORD3FVARBPROC glad_glMultiTexCoord3fvARB; -PFNGLMULTITEXCOORD3IARBPROC glad_glMultiTexCoord3iARB; -PFNGLMULTITEXCOORD3IVARBPROC glad_glMultiTexCoord3ivARB; -PFNGLMULTITEXCOORD3SARBPROC glad_glMultiTexCoord3sARB; -PFNGLMULTITEXCOORD3SVARBPROC glad_glMultiTexCoord3svARB; -PFNGLMULTITEXCOORD4DARBPROC glad_glMultiTexCoord4dARB; -PFNGLMULTITEXCOORD4DVARBPROC glad_glMultiTexCoord4dvARB; -PFNGLMULTITEXCOORD4FARBPROC glad_glMultiTexCoord4fARB; -PFNGLMULTITEXCOORD4FVARBPROC glad_glMultiTexCoord4fvARB; -PFNGLMULTITEXCOORD4IARBPROC glad_glMultiTexCoord4iARB; -PFNGLMULTITEXCOORD4IVARBPROC glad_glMultiTexCoord4ivARB; -PFNGLMULTITEXCOORD4SARBPROC glad_glMultiTexCoord4sARB; -PFNGLMULTITEXCOORD4SVARBPROC glad_glMultiTexCoord4svARB; -PFNGLDEFORMATIONMAP3DSGIXPROC glad_glDeformationMap3dSGIX; -PFNGLDEFORMATIONMAP3FSGIXPROC glad_glDeformationMap3fSGIX; -PFNGLDEFORMSGIXPROC glad_glDeformSGIX; -PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC glad_glLoadIdentityDeformationMapSGIX; -PFNGLPROVOKINGVERTEXEXTPROC glad_glProvokingVertexEXT; -PFNGLPOINTPARAMETERFARBPROC glad_glPointParameterfARB; -PFNGLPOINTPARAMETERFVARBPROC glad_glPointParameterfvARB; -PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture; -PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier; -PFNGLTEXTUREBARRIERPROC glad_glTextureBarrier; -PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC glad_glMultiDrawArraysIndirectBindlessNV; -PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC glad_glMultiDrawElementsIndirectBindlessNV; -PFNGLBEGINTRANSFORMFEEDBACKEXTPROC glad_glBeginTransformFeedbackEXT; -PFNGLENDTRANSFORMFEEDBACKEXTPROC glad_glEndTransformFeedbackEXT; -PFNGLBINDBUFFERRANGEEXTPROC glad_glBindBufferRangeEXT; -PFNGLBINDBUFFEROFFSETEXTPROC glad_glBindBufferOffsetEXT; -PFNGLBINDBUFFERBASEEXTPROC glad_glBindBufferBaseEXT; -PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC glad_glTransformFeedbackVaryingsEXT; -PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC glad_glGetTransformFeedbackVaryingEXT; -PFNGLPROGRAMLOCALPARAMETERI4INVPROC glad_glProgramLocalParameterI4iNV; -PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC glad_glProgramLocalParameterI4ivNV; -PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC glad_glProgramLocalParametersI4ivNV; -PFNGLPROGRAMLOCALPARAMETERI4UINVPROC glad_glProgramLocalParameterI4uiNV; -PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC glad_glProgramLocalParameterI4uivNV; -PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC glad_glProgramLocalParametersI4uivNV; -PFNGLPROGRAMENVPARAMETERI4INVPROC glad_glProgramEnvParameterI4iNV; -PFNGLPROGRAMENVPARAMETERI4IVNVPROC glad_glProgramEnvParameterI4ivNV; -PFNGLPROGRAMENVPARAMETERSI4IVNVPROC glad_glProgramEnvParametersI4ivNV; -PFNGLPROGRAMENVPARAMETERI4UINVPROC glad_glProgramEnvParameterI4uiNV; -PFNGLPROGRAMENVPARAMETERI4UIVNVPROC glad_glProgramEnvParameterI4uivNV; -PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC glad_glProgramEnvParametersI4uivNV; -PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC glad_glGetProgramLocalParameterIivNV; -PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC glad_glGetProgramLocalParameterIuivNV; -PFNGLGETPROGRAMENVPARAMETERIIVNVPROC glad_glGetProgramEnvParameterIivNV; -PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC glad_glGetProgramEnvParameterIuivNV; -PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC glad_glProgramSubroutineParametersuivNV; -PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC glad_glGetProgramSubroutineParameteruivNV; -PFNGLPROGRAMPARAMETERIARBPROC glad_glProgramParameteriARB; -PFNGLFRAMEBUFFERTEXTUREARBPROC glad_glFramebufferTextureARB; -PFNGLFRAMEBUFFERTEXTURELAYERARBPROC glad_glFramebufferTextureLayerARB; -PFNGLFRAMEBUFFERTEXTUREFACEARBPROC glad_glFramebufferTextureFaceARB; -PFNGLSUBPIXELPRECISIONBIASNVPROC glad_glSubpixelPrecisionBiasNV; -PFNGLSPRITEPARAMETERFSGIXPROC glad_glSpriteParameterfSGIX; -PFNGLSPRITEPARAMETERFVSGIXPROC glad_glSpriteParameterfvSGIX; -PFNGLSPRITEPARAMETERISGIXPROC glad_glSpriteParameteriSGIX; -PFNGLSPRITEPARAMETERIVSGIXPROC glad_glSpriteParameterivSGIX; -PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary; -PFNGLPROGRAMBINARYPROC glad_glProgramBinary; -PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri; -PFNGLQUERYOBJECTPARAMETERUIAMDPROC glad_glQueryObjectParameteruiAMD; -PFNGLSAMPLEMASKSGISPROC glad_glSampleMaskSGIS; -PFNGLSAMPLEPATTERNSGISPROC glad_glSamplePatternSGIS; -PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT; -PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT; -PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT; -PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT; -PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT; -PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT; -PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT; -PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT; -PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT; -PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT; -PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT; -PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT; -PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT; -PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT; -PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT; -PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT; -PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT; -PFNGLVERTEXARRAYRANGEAPPLEPROC glad_glVertexArrayRangeAPPLE; -PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC glad_glFlushVertexArrayRangeAPPLE; -PFNGLVERTEXARRAYPARAMETERIAPPLEPROC glad_glVertexArrayParameteriAPPLE; -PFNGLCOMBINERPARAMETERFVNVPROC glad_glCombinerParameterfvNV; -PFNGLCOMBINERPARAMETERFNVPROC glad_glCombinerParameterfNV; -PFNGLCOMBINERPARAMETERIVNVPROC glad_glCombinerParameterivNV; -PFNGLCOMBINERPARAMETERINVPROC glad_glCombinerParameteriNV; -PFNGLCOMBINERINPUTNVPROC glad_glCombinerInputNV; -PFNGLCOMBINEROUTPUTNVPROC glad_glCombinerOutputNV; -PFNGLFINALCOMBINERINPUTNVPROC glad_glFinalCombinerInputNV; -PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC glad_glGetCombinerInputParameterfvNV; -PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC glad_glGetCombinerInputParameterivNV; -PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC glad_glGetCombinerOutputParameterfvNV; -PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC glad_glGetCombinerOutputParameterivNV; -PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC glad_glGetFinalCombinerInputParameterfvNV; -PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC glad_glGetFinalCombinerInputParameterivNV; -PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB; -PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage; -PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage; -PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB; -PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB; -PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB; -PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB; -PFNGLCULLPARAMETERDVEXTPROC glad_glCullParameterdvEXT; -PFNGLCULLPARAMETERFVEXTPROC glad_glCullParameterfvEXT; -PFNGLMULTIMODEDRAWARRAYSIBMPROC glad_glMultiModeDrawArraysIBM; -PFNGLMULTIMODEDRAWELEMENTSIBMPROC glad_glMultiModeDrawElementsIBM; -PFNGLBINDVERTEXARRAYAPPLEPROC glad_glBindVertexArrayAPPLE; -PFNGLDELETEVERTEXARRAYSAPPLEPROC glad_glDeleteVertexArraysAPPLE; -PFNGLGENVERTEXARRAYSAPPLEPROC glad_glGenVertexArraysAPPLE; -PFNGLISVERTEXARRAYAPPLEPROC glad_glIsVertexArrayAPPLE; -PFNGLDETAILTEXFUNCSGISPROC glad_glDetailTexFuncSGIS; -PFNGLGETDETAILTEXFUNCSGISPROC glad_glGetDetailTexFuncSGIS; -PFNGLDRAWARRAYSINSTANCEDARBPROC glad_glDrawArraysInstancedARB; -PFNGLDRAWELEMENTSINSTANCEDARBPROC glad_glDrawElementsInstancedARB; -PFNGLNAMEDSTRINGARBPROC glad_glNamedStringARB; -PFNGLDELETENAMEDSTRINGARBPROC glad_glDeleteNamedStringARB; -PFNGLCOMPILESHADERINCLUDEARBPROC glad_glCompileShaderIncludeARB; -PFNGLISNAMEDSTRINGARBPROC glad_glIsNamedStringARB; -PFNGLGETNAMEDSTRINGARBPROC glad_glGetNamedStringARB; -PFNGLGETNAMEDSTRINGIVARBPROC glad_glGetNamedStringivARB; -PFNGLBLENDFUNCSEPARATEINGRPROC glad_glBlendFuncSeparateINGR; -PFNGLGENPATHSNVPROC glad_glGenPathsNV; -PFNGLDELETEPATHSNVPROC glad_glDeletePathsNV; -PFNGLISPATHNVPROC glad_glIsPathNV; -PFNGLPATHCOMMANDSNVPROC glad_glPathCommandsNV; -PFNGLPATHCOORDSNVPROC glad_glPathCoordsNV; -PFNGLPATHSUBCOMMANDSNVPROC glad_glPathSubCommandsNV; -PFNGLPATHSUBCOORDSNVPROC glad_glPathSubCoordsNV; -PFNGLPATHSTRINGNVPROC glad_glPathStringNV; -PFNGLPATHGLYPHSNVPROC glad_glPathGlyphsNV; -PFNGLPATHGLYPHRANGENVPROC glad_glPathGlyphRangeNV; -PFNGLWEIGHTPATHSNVPROC glad_glWeightPathsNV; -PFNGLCOPYPATHNVPROC glad_glCopyPathNV; -PFNGLINTERPOLATEPATHSNVPROC glad_glInterpolatePathsNV; -PFNGLTRANSFORMPATHNVPROC glad_glTransformPathNV; -PFNGLPATHPARAMETERIVNVPROC glad_glPathParameterivNV; -PFNGLPATHPARAMETERINVPROC glad_glPathParameteriNV; -PFNGLPATHPARAMETERFVNVPROC glad_glPathParameterfvNV; -PFNGLPATHPARAMETERFNVPROC glad_glPathParameterfNV; -PFNGLPATHDASHARRAYNVPROC glad_glPathDashArrayNV; -PFNGLPATHSTENCILFUNCNVPROC glad_glPathStencilFuncNV; -PFNGLPATHSTENCILDEPTHOFFSETNVPROC glad_glPathStencilDepthOffsetNV; -PFNGLSTENCILFILLPATHNVPROC glad_glStencilFillPathNV; -PFNGLSTENCILSTROKEPATHNVPROC glad_glStencilStrokePathNV; -PFNGLSTENCILFILLPATHINSTANCEDNVPROC glad_glStencilFillPathInstancedNV; -PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC glad_glStencilStrokePathInstancedNV; -PFNGLPATHCOVERDEPTHFUNCNVPROC glad_glPathCoverDepthFuncNV; -PFNGLCOVERFILLPATHNVPROC glad_glCoverFillPathNV; -PFNGLCOVERSTROKEPATHNVPROC glad_glCoverStrokePathNV; -PFNGLCOVERFILLPATHINSTANCEDNVPROC glad_glCoverFillPathInstancedNV; -PFNGLCOVERSTROKEPATHINSTANCEDNVPROC glad_glCoverStrokePathInstancedNV; -PFNGLGETPATHPARAMETERIVNVPROC glad_glGetPathParameterivNV; -PFNGLGETPATHPARAMETERFVNVPROC glad_glGetPathParameterfvNV; -PFNGLGETPATHCOMMANDSNVPROC glad_glGetPathCommandsNV; -PFNGLGETPATHCOORDSNVPROC glad_glGetPathCoordsNV; -PFNGLGETPATHDASHARRAYNVPROC glad_glGetPathDashArrayNV; -PFNGLGETPATHMETRICSNVPROC glad_glGetPathMetricsNV; -PFNGLGETPATHMETRICRANGENVPROC glad_glGetPathMetricRangeNV; -PFNGLGETPATHSPACINGNVPROC glad_glGetPathSpacingNV; -PFNGLISPOINTINFILLPATHNVPROC glad_glIsPointInFillPathNV; -PFNGLISPOINTINSTROKEPATHNVPROC glad_glIsPointInStrokePathNV; -PFNGLGETPATHLENGTHNVPROC glad_glGetPathLengthNV; -PFNGLPOINTALONGPATHNVPROC glad_glPointAlongPathNV; -PFNGLMATRIXLOAD3X2FNVPROC glad_glMatrixLoad3x2fNV; -PFNGLMATRIXLOAD3X3FNVPROC glad_glMatrixLoad3x3fNV; -PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC glad_glMatrixLoadTranspose3x3fNV; -PFNGLMATRIXMULT3X2FNVPROC glad_glMatrixMult3x2fNV; -PFNGLMATRIXMULT3X3FNVPROC glad_glMatrixMult3x3fNV; -PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC glad_glMatrixMultTranspose3x3fNV; -PFNGLSTENCILTHENCOVERFILLPATHNVPROC glad_glStencilThenCoverFillPathNV; -PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC glad_glStencilThenCoverStrokePathNV; -PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC glad_glStencilThenCoverFillPathInstancedNV; -PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC glad_glStencilThenCoverStrokePathInstancedNV; -PFNGLPATHGLYPHINDEXRANGENVPROC glad_glPathGlyphIndexRangeNV; -PFNGLPATHGLYPHINDEXARRAYNVPROC glad_glPathGlyphIndexArrayNV; -PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC glad_glPathMemoryGlyphIndexArrayNV; -PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC glad_glProgramPathFragmentInputGenNV; -PFNGLGETPROGRAMRESOURCEFVNVPROC glad_glGetProgramResourcefvNV; -PFNGLPATHCOLORGENNVPROC glad_glPathColorGenNV; -PFNGLPATHTEXGENNVPROC glad_glPathTexGenNV; -PFNGLPATHFOGGENNVPROC glad_glPathFogGenNV; -PFNGLGETPATHCOLORGENIVNVPROC glad_glGetPathColorGenivNV; -PFNGLGETPATHCOLORGENFVNVPROC glad_glGetPathColorGenfvNV; -PFNGLGETPATHTEXGENIVNVPROC glad_glGetPathTexGenivNV; -PFNGLGETPATHTEXGENFVNVPROC glad_glGetPathTexGenfvNV; -PFNGLCONSERVATIVERASTERPARAMETERFNVPROC glad_glConservativeRasterParameterfNV; -PFNGLVERTEXSTREAM1SATIPROC glad_glVertexStream1sATI; -PFNGLVERTEXSTREAM1SVATIPROC glad_glVertexStream1svATI; -PFNGLVERTEXSTREAM1IATIPROC glad_glVertexStream1iATI; -PFNGLVERTEXSTREAM1IVATIPROC glad_glVertexStream1ivATI; -PFNGLVERTEXSTREAM1FATIPROC glad_glVertexStream1fATI; -PFNGLVERTEXSTREAM1FVATIPROC glad_glVertexStream1fvATI; -PFNGLVERTEXSTREAM1DATIPROC glad_glVertexStream1dATI; -PFNGLVERTEXSTREAM1DVATIPROC glad_glVertexStream1dvATI; -PFNGLVERTEXSTREAM2SATIPROC glad_glVertexStream2sATI; -PFNGLVERTEXSTREAM2SVATIPROC glad_glVertexStream2svATI; -PFNGLVERTEXSTREAM2IATIPROC glad_glVertexStream2iATI; -PFNGLVERTEXSTREAM2IVATIPROC glad_glVertexStream2ivATI; -PFNGLVERTEXSTREAM2FATIPROC glad_glVertexStream2fATI; -PFNGLVERTEXSTREAM2FVATIPROC glad_glVertexStream2fvATI; -PFNGLVERTEXSTREAM2DATIPROC glad_glVertexStream2dATI; -PFNGLVERTEXSTREAM2DVATIPROC glad_glVertexStream2dvATI; -PFNGLVERTEXSTREAM3SATIPROC glad_glVertexStream3sATI; -PFNGLVERTEXSTREAM3SVATIPROC glad_glVertexStream3svATI; -PFNGLVERTEXSTREAM3IATIPROC glad_glVertexStream3iATI; -PFNGLVERTEXSTREAM3IVATIPROC glad_glVertexStream3ivATI; -PFNGLVERTEXSTREAM3FATIPROC glad_glVertexStream3fATI; -PFNGLVERTEXSTREAM3FVATIPROC glad_glVertexStream3fvATI; -PFNGLVERTEXSTREAM3DATIPROC glad_glVertexStream3dATI; -PFNGLVERTEXSTREAM3DVATIPROC glad_glVertexStream3dvATI; -PFNGLVERTEXSTREAM4SATIPROC glad_glVertexStream4sATI; -PFNGLVERTEXSTREAM4SVATIPROC glad_glVertexStream4svATI; -PFNGLVERTEXSTREAM4IATIPROC glad_glVertexStream4iATI; -PFNGLVERTEXSTREAM4IVATIPROC glad_glVertexStream4ivATI; -PFNGLVERTEXSTREAM4FATIPROC glad_glVertexStream4fATI; -PFNGLVERTEXSTREAM4FVATIPROC glad_glVertexStream4fvATI; -PFNGLVERTEXSTREAM4DATIPROC glad_glVertexStream4dATI; -PFNGLVERTEXSTREAM4DVATIPROC glad_glVertexStream4dvATI; -PFNGLNORMALSTREAM3BATIPROC glad_glNormalStream3bATI; -PFNGLNORMALSTREAM3BVATIPROC glad_glNormalStream3bvATI; -PFNGLNORMALSTREAM3SATIPROC glad_glNormalStream3sATI; -PFNGLNORMALSTREAM3SVATIPROC glad_glNormalStream3svATI; -PFNGLNORMALSTREAM3IATIPROC glad_glNormalStream3iATI; -PFNGLNORMALSTREAM3IVATIPROC glad_glNormalStream3ivATI; -PFNGLNORMALSTREAM3FATIPROC glad_glNormalStream3fATI; -PFNGLNORMALSTREAM3FVATIPROC glad_glNormalStream3fvATI; -PFNGLNORMALSTREAM3DATIPROC glad_glNormalStream3dATI; -PFNGLNORMALSTREAM3DVATIPROC glad_glNormalStream3dvATI; -PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC glad_glClientActiveVertexStreamATI; -PFNGLVERTEXBLENDENVIATIPROC glad_glVertexBlendEnviATI; -PFNGLVERTEXBLENDENVFATIPROC glad_glVertexBlendEnvfATI; -PFNGLUNIFORM1I64ARBPROC glad_glUniform1i64ARB; -PFNGLUNIFORM2I64ARBPROC glad_glUniform2i64ARB; -PFNGLUNIFORM3I64ARBPROC glad_glUniform3i64ARB; -PFNGLUNIFORM4I64ARBPROC glad_glUniform4i64ARB; -PFNGLUNIFORM1I64VARBPROC glad_glUniform1i64vARB; -PFNGLUNIFORM2I64VARBPROC glad_glUniform2i64vARB; -PFNGLUNIFORM3I64VARBPROC glad_glUniform3i64vARB; -PFNGLUNIFORM4I64VARBPROC glad_glUniform4i64vARB; -PFNGLUNIFORM1UI64ARBPROC glad_glUniform1ui64ARB; -PFNGLUNIFORM2UI64ARBPROC glad_glUniform2ui64ARB; -PFNGLUNIFORM3UI64ARBPROC glad_glUniform3ui64ARB; -PFNGLUNIFORM4UI64ARBPROC glad_glUniform4ui64ARB; -PFNGLUNIFORM1UI64VARBPROC glad_glUniform1ui64vARB; -PFNGLUNIFORM2UI64VARBPROC glad_glUniform2ui64vARB; -PFNGLUNIFORM3UI64VARBPROC glad_glUniform3ui64vARB; -PFNGLUNIFORM4UI64VARBPROC glad_glUniform4ui64vARB; -PFNGLGETUNIFORMI64VARBPROC glad_glGetUniformi64vARB; -PFNGLGETUNIFORMUI64VARBPROC glad_glGetUniformui64vARB; -PFNGLGETNUNIFORMI64VARBPROC glad_glGetnUniformi64vARB; -PFNGLGETNUNIFORMUI64VARBPROC glad_glGetnUniformui64vARB; -PFNGLPROGRAMUNIFORM1I64ARBPROC glad_glProgramUniform1i64ARB; -PFNGLPROGRAMUNIFORM2I64ARBPROC glad_glProgramUniform2i64ARB; -PFNGLPROGRAMUNIFORM3I64ARBPROC glad_glProgramUniform3i64ARB; -PFNGLPROGRAMUNIFORM4I64ARBPROC glad_glProgramUniform4i64ARB; -PFNGLPROGRAMUNIFORM1I64VARBPROC glad_glProgramUniform1i64vARB; -PFNGLPROGRAMUNIFORM2I64VARBPROC glad_glProgramUniform2i64vARB; -PFNGLPROGRAMUNIFORM3I64VARBPROC glad_glProgramUniform3i64vARB; -PFNGLPROGRAMUNIFORM4I64VARBPROC glad_glProgramUniform4i64vARB; -PFNGLPROGRAMUNIFORM1UI64ARBPROC glad_glProgramUniform1ui64ARB; -PFNGLPROGRAMUNIFORM2UI64ARBPROC glad_glProgramUniform2ui64ARB; -PFNGLPROGRAMUNIFORM3UI64ARBPROC glad_glProgramUniform3ui64ARB; -PFNGLPROGRAMUNIFORM4UI64ARBPROC glad_glProgramUniform4ui64ARB; -PFNGLPROGRAMUNIFORM1UI64VARBPROC glad_glProgramUniform1ui64vARB; -PFNGLPROGRAMUNIFORM2UI64VARBPROC glad_glProgramUniform2ui64vARB; -PFNGLPROGRAMUNIFORM3UI64VARBPROC glad_glProgramUniform3ui64vARB; -PFNGLPROGRAMUNIFORM4UI64VARBPROC glad_glProgramUniform4ui64vARB; -PFNGLVDPAUINITNVPROC glad_glVDPAUInitNV; -PFNGLVDPAUFININVPROC glad_glVDPAUFiniNV; -PFNGLVDPAUREGISTERVIDEOSURFACENVPROC glad_glVDPAURegisterVideoSurfaceNV; -PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC glad_glVDPAURegisterOutputSurfaceNV; -PFNGLVDPAUISSURFACENVPROC glad_glVDPAUIsSurfaceNV; -PFNGLVDPAUUNREGISTERSURFACENVPROC glad_glVDPAUUnregisterSurfaceNV; -PFNGLVDPAUGETSURFACEIVNVPROC glad_glVDPAUGetSurfaceivNV; -PFNGLVDPAUSURFACEACCESSNVPROC glad_glVDPAUSurfaceAccessNV; -PFNGLVDPAUMAPSURFACESNVPROC glad_glVDPAUMapSurfacesNV; -PFNGLVDPAUUNMAPSURFACESNVPROC glad_glVDPAUUnmapSurfacesNV; -PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v; -PFNGLCOLOR4UBVERTEX2FSUNPROC glad_glColor4ubVertex2fSUN; -PFNGLCOLOR4UBVERTEX2FVSUNPROC glad_glColor4ubVertex2fvSUN; -PFNGLCOLOR4UBVERTEX3FSUNPROC glad_glColor4ubVertex3fSUN; -PFNGLCOLOR4UBVERTEX3FVSUNPROC glad_glColor4ubVertex3fvSUN; -PFNGLCOLOR3FVERTEX3FSUNPROC glad_glColor3fVertex3fSUN; -PFNGLCOLOR3FVERTEX3FVSUNPROC glad_glColor3fVertex3fvSUN; -PFNGLNORMAL3FVERTEX3FSUNPROC glad_glNormal3fVertex3fSUN; -PFNGLNORMAL3FVERTEX3FVSUNPROC glad_glNormal3fVertex3fvSUN; -PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC glad_glColor4fNormal3fVertex3fSUN; -PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC glad_glColor4fNormal3fVertex3fvSUN; -PFNGLTEXCOORD2FVERTEX3FSUNPROC glad_glTexCoord2fVertex3fSUN; -PFNGLTEXCOORD2FVERTEX3FVSUNPROC glad_glTexCoord2fVertex3fvSUN; -PFNGLTEXCOORD4FVERTEX4FSUNPROC glad_glTexCoord4fVertex4fSUN; -PFNGLTEXCOORD4FVERTEX4FVSUNPROC glad_glTexCoord4fVertex4fvSUN; -PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC glad_glTexCoord2fColor4ubVertex3fSUN; -PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC glad_glTexCoord2fColor4ubVertex3fvSUN; -PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC glad_glTexCoord2fColor3fVertex3fSUN; -PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC glad_glTexCoord2fColor3fVertex3fvSUN; -PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC glad_glTexCoord2fNormal3fVertex3fSUN; -PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC glad_glTexCoord2fNormal3fVertex3fvSUN; -PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC glad_glTexCoord2fColor4fNormal3fVertex3fSUN; -PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC glad_glTexCoord2fColor4fNormal3fVertex3fvSUN; -PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC glad_glTexCoord4fColor4fNormal3fVertex4fSUN; -PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC glad_glTexCoord4fColor4fNormal3fVertex4fvSUN; -PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC glad_glReplacementCodeuiVertex3fSUN; -PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC glad_glReplacementCodeuiVertex3fvSUN; -PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC glad_glReplacementCodeuiColor4ubVertex3fSUN; -PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC glad_glReplacementCodeuiColor4ubVertex3fvSUN; -PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC glad_glReplacementCodeuiColor3fVertex3fSUN; -PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC glad_glReplacementCodeuiColor3fVertex3fvSUN; -PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC glad_glReplacementCodeuiNormal3fVertex3fSUN; -PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC glad_glReplacementCodeuiNormal3fVertex3fvSUN; -PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC glad_glReplacementCodeuiColor4fNormal3fVertex3fSUN; -PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC glad_glReplacementCodeuiColor4fNormal3fVertex3fvSUN; -PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC glad_glReplacementCodeuiTexCoord2fVertex3fSUN; -PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC glad_glReplacementCodeuiTexCoord2fVertex3fvSUN; -PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC glad_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN; -PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC glad_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN; -PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC glad_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN; -PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC glad_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN; -PFNGLIGLOOINTERFACESGIXPROC glad_glIglooInterfaceSGIX; -PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect; -PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect; -PFNGLVERTEXATTRIBI1IEXTPROC glad_glVertexAttribI1iEXT; -PFNGLVERTEXATTRIBI2IEXTPROC glad_glVertexAttribI2iEXT; -PFNGLVERTEXATTRIBI3IEXTPROC glad_glVertexAttribI3iEXT; -PFNGLVERTEXATTRIBI4IEXTPROC glad_glVertexAttribI4iEXT; -PFNGLVERTEXATTRIBI1UIEXTPROC glad_glVertexAttribI1uiEXT; -PFNGLVERTEXATTRIBI2UIEXTPROC glad_glVertexAttribI2uiEXT; -PFNGLVERTEXATTRIBI3UIEXTPROC glad_glVertexAttribI3uiEXT; -PFNGLVERTEXATTRIBI4UIEXTPROC glad_glVertexAttribI4uiEXT; -PFNGLVERTEXATTRIBI1IVEXTPROC glad_glVertexAttribI1ivEXT; -PFNGLVERTEXATTRIBI2IVEXTPROC glad_glVertexAttribI2ivEXT; -PFNGLVERTEXATTRIBI3IVEXTPROC glad_glVertexAttribI3ivEXT; -PFNGLVERTEXATTRIBI4IVEXTPROC glad_glVertexAttribI4ivEXT; -PFNGLVERTEXATTRIBI1UIVEXTPROC glad_glVertexAttribI1uivEXT; -PFNGLVERTEXATTRIBI2UIVEXTPROC glad_glVertexAttribI2uivEXT; -PFNGLVERTEXATTRIBI3UIVEXTPROC glad_glVertexAttribI3uivEXT; -PFNGLVERTEXATTRIBI4UIVEXTPROC glad_glVertexAttribI4uivEXT; -PFNGLVERTEXATTRIBI4BVEXTPROC glad_glVertexAttribI4bvEXT; -PFNGLVERTEXATTRIBI4SVEXTPROC glad_glVertexAttribI4svEXT; -PFNGLVERTEXATTRIBI4UBVEXTPROC glad_glVertexAttribI4ubvEXT; -PFNGLVERTEXATTRIBI4USVEXTPROC glad_glVertexAttribI4usvEXT; -PFNGLVERTEXATTRIBIPOINTEREXTPROC glad_glVertexAttribIPointerEXT; -PFNGLGETVERTEXATTRIBIIVEXTPROC glad_glGetVertexAttribIivEXT; -PFNGLGETVERTEXATTRIBIUIVEXTPROC glad_glGetVertexAttribIuivEXT; -PFNGLFOGFUNCSGISPROC glad_glFogFuncSGIS; -PFNGLGETFOGFUNCSGISPROC glad_glGetFogFuncSGIS; -PFNGLIMPORTSYNCEXTPROC glad_glImportSyncEXT; -PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC glad_glFramebufferSampleLocationsfvNV; -PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC glad_glNamedFramebufferSampleLocationsfvNV; -PFNGLRESOLVEDEPTHVALUESNVPROC glad_glResolveDepthValuesNV; -PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC glad_glDispatchComputeGroupSizeARB; -PFNGLALPHAFUNCXOESPROC glad_glAlphaFuncxOES; -PFNGLCLEARCOLORXOESPROC glad_glClearColorxOES; -PFNGLCLEARDEPTHXOESPROC glad_glClearDepthxOES; -PFNGLCLIPPLANEXOESPROC glad_glClipPlanexOES; -PFNGLCOLOR4XOESPROC glad_glColor4xOES; -PFNGLDEPTHRANGEXOESPROC glad_glDepthRangexOES; -PFNGLFOGXOESPROC glad_glFogxOES; -PFNGLFOGXVOESPROC glad_glFogxvOES; -PFNGLFRUSTUMXOESPROC glad_glFrustumxOES; -PFNGLGETCLIPPLANEXOESPROC glad_glGetClipPlanexOES; -PFNGLGETFIXEDVOESPROC glad_glGetFixedvOES; -PFNGLGETTEXENVXVOESPROC glad_glGetTexEnvxvOES; -PFNGLGETTEXPARAMETERXVOESPROC glad_glGetTexParameterxvOES; -PFNGLLIGHTMODELXOESPROC glad_glLightModelxOES; -PFNGLLIGHTMODELXVOESPROC glad_glLightModelxvOES; -PFNGLLIGHTXOESPROC glad_glLightxOES; -PFNGLLIGHTXVOESPROC glad_glLightxvOES; -PFNGLLINEWIDTHXOESPROC glad_glLineWidthxOES; -PFNGLLOADMATRIXXOESPROC glad_glLoadMatrixxOES; -PFNGLMATERIALXOESPROC glad_glMaterialxOES; -PFNGLMATERIALXVOESPROC glad_glMaterialxvOES; -PFNGLMULTMATRIXXOESPROC glad_glMultMatrixxOES; -PFNGLMULTITEXCOORD4XOESPROC glad_glMultiTexCoord4xOES; -PFNGLNORMAL3XOESPROC glad_glNormal3xOES; -PFNGLORTHOXOESPROC glad_glOrthoxOES; -PFNGLPOINTPARAMETERXVOESPROC glad_glPointParameterxvOES; -PFNGLPOINTSIZEXOESPROC glad_glPointSizexOES; -PFNGLPOLYGONOFFSETXOESPROC glad_glPolygonOffsetxOES; -PFNGLROTATEXOESPROC glad_glRotatexOES; -PFNGLSCALEXOESPROC glad_glScalexOES; -PFNGLTEXENVXOESPROC glad_glTexEnvxOES; -PFNGLTEXENVXVOESPROC glad_glTexEnvxvOES; -PFNGLTEXPARAMETERXOESPROC glad_glTexParameterxOES; -PFNGLTEXPARAMETERXVOESPROC glad_glTexParameterxvOES; -PFNGLTRANSLATEXOESPROC glad_glTranslatexOES; -PFNGLGETLIGHTXVOESPROC glad_glGetLightxvOES; -PFNGLGETMATERIALXVOESPROC glad_glGetMaterialxvOES; -PFNGLPOINTPARAMETERXOESPROC glad_glPointParameterxOES; -PFNGLSAMPLECOVERAGEXOESPROC glad_glSampleCoveragexOES; -PFNGLACCUMXOESPROC glad_glAccumxOES; -PFNGLBITMAPXOESPROC glad_glBitmapxOES; -PFNGLBLENDCOLORXOESPROC glad_glBlendColorxOES; -PFNGLCLEARACCUMXOESPROC glad_glClearAccumxOES; -PFNGLCOLOR3XOESPROC glad_glColor3xOES; -PFNGLCOLOR3XVOESPROC glad_glColor3xvOES; -PFNGLCOLOR4XVOESPROC glad_glColor4xvOES; -PFNGLCONVOLUTIONPARAMETERXOESPROC glad_glConvolutionParameterxOES; -PFNGLCONVOLUTIONPARAMETERXVOESPROC glad_glConvolutionParameterxvOES; -PFNGLEVALCOORD1XOESPROC glad_glEvalCoord1xOES; -PFNGLEVALCOORD1XVOESPROC glad_glEvalCoord1xvOES; -PFNGLEVALCOORD2XOESPROC glad_glEvalCoord2xOES; -PFNGLEVALCOORD2XVOESPROC glad_glEvalCoord2xvOES; -PFNGLFEEDBACKBUFFERXOESPROC glad_glFeedbackBufferxOES; -PFNGLGETCONVOLUTIONPARAMETERXVOESPROC glad_glGetConvolutionParameterxvOES; -PFNGLGETHISTOGRAMPARAMETERXVOESPROC glad_glGetHistogramParameterxvOES; -PFNGLGETLIGHTXOESPROC glad_glGetLightxOES; -PFNGLGETMAPXVOESPROC glad_glGetMapxvOES; -PFNGLGETMATERIALXOESPROC glad_glGetMaterialxOES; -PFNGLGETPIXELMAPXVPROC glad_glGetPixelMapxv; -PFNGLGETTEXGENXVOESPROC glad_glGetTexGenxvOES; -PFNGLGETTEXLEVELPARAMETERXVOESPROC glad_glGetTexLevelParameterxvOES; -PFNGLINDEXXOESPROC glad_glIndexxOES; -PFNGLINDEXXVOESPROC glad_glIndexxvOES; -PFNGLLOADTRANSPOSEMATRIXXOESPROC glad_glLoadTransposeMatrixxOES; -PFNGLMAP1XOESPROC glad_glMap1xOES; -PFNGLMAP2XOESPROC glad_glMap2xOES; -PFNGLMAPGRID1XOESPROC glad_glMapGrid1xOES; -PFNGLMAPGRID2XOESPROC glad_glMapGrid2xOES; -PFNGLMULTTRANSPOSEMATRIXXOESPROC glad_glMultTransposeMatrixxOES; -PFNGLMULTITEXCOORD1XOESPROC glad_glMultiTexCoord1xOES; -PFNGLMULTITEXCOORD1XVOESPROC glad_glMultiTexCoord1xvOES; -PFNGLMULTITEXCOORD2XOESPROC glad_glMultiTexCoord2xOES; -PFNGLMULTITEXCOORD2XVOESPROC glad_glMultiTexCoord2xvOES; -PFNGLMULTITEXCOORD3XOESPROC glad_glMultiTexCoord3xOES; -PFNGLMULTITEXCOORD3XVOESPROC glad_glMultiTexCoord3xvOES; -PFNGLMULTITEXCOORD4XVOESPROC glad_glMultiTexCoord4xvOES; -PFNGLNORMAL3XVOESPROC glad_glNormal3xvOES; -PFNGLPASSTHROUGHXOESPROC glad_glPassThroughxOES; -PFNGLPIXELMAPXPROC glad_glPixelMapx; -PFNGLPIXELSTOREXPROC glad_glPixelStorex; -PFNGLPIXELTRANSFERXOESPROC glad_glPixelTransferxOES; -PFNGLPIXELZOOMXOESPROC glad_glPixelZoomxOES; -PFNGLPRIORITIZETEXTURESXOESPROC glad_glPrioritizeTexturesxOES; -PFNGLRASTERPOS2XOESPROC glad_glRasterPos2xOES; -PFNGLRASTERPOS2XVOESPROC glad_glRasterPos2xvOES; -PFNGLRASTERPOS3XOESPROC glad_glRasterPos3xOES; -PFNGLRASTERPOS3XVOESPROC glad_glRasterPos3xvOES; -PFNGLRASTERPOS4XOESPROC glad_glRasterPos4xOES; -PFNGLRASTERPOS4XVOESPROC glad_glRasterPos4xvOES; -PFNGLRECTXOESPROC glad_glRectxOES; -PFNGLRECTXVOESPROC glad_glRectxvOES; -PFNGLTEXCOORD1XOESPROC glad_glTexCoord1xOES; -PFNGLTEXCOORD1XVOESPROC glad_glTexCoord1xvOES; -PFNGLTEXCOORD2XOESPROC glad_glTexCoord2xOES; -PFNGLTEXCOORD2XVOESPROC glad_glTexCoord2xvOES; -PFNGLTEXCOORD3XOESPROC glad_glTexCoord3xOES; -PFNGLTEXCOORD3XVOESPROC glad_glTexCoord3xvOES; -PFNGLTEXCOORD4XOESPROC glad_glTexCoord4xOES; -PFNGLTEXCOORD4XVOESPROC glad_glTexCoord4xvOES; -PFNGLTEXGENXOESPROC glad_glTexGenxOES; -PFNGLTEXGENXVOESPROC glad_glTexGenxvOES; -PFNGLVERTEX2XOESPROC glad_glVertex2xOES; -PFNGLVERTEX2XVOESPROC glad_glVertex2xvOES; -PFNGLVERTEX3XOESPROC glad_glVertex3xOES; -PFNGLVERTEX3XVOESPROC glad_glVertex3xvOES; -PFNGLVERTEX4XOESPROC glad_glVertex4xOES; -PFNGLVERTEX4XVOESPROC glad_glVertex4xvOES; -PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT; -PFNGLTEXIMAGE4DSGISPROC glad_glTexImage4DSGIS; -PFNGLTEXSUBIMAGE4DSGISPROC glad_glTexSubImage4DSGIS; -PFNGLTEXIMAGE3DEXTPROC glad_glTexImage3DEXT; -PFNGLTEXSUBIMAGE3DEXTPROC glad_glTexSubImage3DEXT; -PFNGLSAMPLEMASKEXTPROC glad_glSampleMaskEXT; -PFNGLSAMPLEPATTERNEXTPROC glad_glSamplePatternEXT; -PFNGLSECONDARYCOLOR3BEXTPROC glad_glSecondaryColor3bEXT; -PFNGLSECONDARYCOLOR3BVEXTPROC glad_glSecondaryColor3bvEXT; -PFNGLSECONDARYCOLOR3DEXTPROC glad_glSecondaryColor3dEXT; -PFNGLSECONDARYCOLOR3DVEXTPROC glad_glSecondaryColor3dvEXT; -PFNGLSECONDARYCOLOR3FEXTPROC glad_glSecondaryColor3fEXT; -PFNGLSECONDARYCOLOR3FVEXTPROC glad_glSecondaryColor3fvEXT; -PFNGLSECONDARYCOLOR3IEXTPROC glad_glSecondaryColor3iEXT; -PFNGLSECONDARYCOLOR3IVEXTPROC glad_glSecondaryColor3ivEXT; -PFNGLSECONDARYCOLOR3SEXTPROC glad_glSecondaryColor3sEXT; -PFNGLSECONDARYCOLOR3SVEXTPROC glad_glSecondaryColor3svEXT; -PFNGLSECONDARYCOLOR3UBEXTPROC glad_glSecondaryColor3ubEXT; -PFNGLSECONDARYCOLOR3UBVEXTPROC glad_glSecondaryColor3ubvEXT; -PFNGLSECONDARYCOLOR3UIEXTPROC glad_glSecondaryColor3uiEXT; -PFNGLSECONDARYCOLOR3UIVEXTPROC glad_glSecondaryColor3uivEXT; -PFNGLSECONDARYCOLOR3USEXTPROC glad_glSecondaryColor3usEXT; -PFNGLSECONDARYCOLOR3USVEXTPROC glad_glSecondaryColor3usvEXT; -PFNGLSECONDARYCOLORPOINTEREXTPROC glad_glSecondaryColorPointerEXT; -PFNGLNEWOBJECTBUFFERATIPROC glad_glNewObjectBufferATI; -PFNGLISOBJECTBUFFERATIPROC glad_glIsObjectBufferATI; -PFNGLUPDATEOBJECTBUFFERATIPROC glad_glUpdateObjectBufferATI; -PFNGLGETOBJECTBUFFERFVATIPROC glad_glGetObjectBufferfvATI; -PFNGLGETOBJECTBUFFERIVATIPROC glad_glGetObjectBufferivATI; -PFNGLFREEOBJECTBUFFERATIPROC glad_glFreeObjectBufferATI; -PFNGLARRAYOBJECTATIPROC glad_glArrayObjectATI; -PFNGLGETARRAYOBJECTFVATIPROC glad_glGetArrayObjectfvATI; -PFNGLGETARRAYOBJECTIVATIPROC glad_glGetArrayObjectivATI; -PFNGLVARIANTARRAYOBJECTATIPROC glad_glVariantArrayObjectATI; -PFNGLGETVARIANTARRAYOBJECTFVATIPROC glad_glGetVariantArrayObjectfvATI; -PFNGLGETVARIANTARRAYOBJECTIVATIPROC glad_glGetVariantArrayObjectivATI; -PFNGLMAXSHADERCOMPILERTHREADSARBPROC glad_glMaxShaderCompilerThreadsARB; -PFNGLTEXPAGECOMMITMENTARBPROC glad_glTexPageCommitmentARB; -PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glFramebufferSampleLocationsfvARB; -PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glNamedFramebufferSampleLocationsfvARB; -PFNGLEVALUATEDEPTHVALUESARBPROC glad_glEvaluateDepthValuesARB; -PFNGLBUFFERPAGECOMMITMENTARBPROC glad_glBufferPageCommitmentARB; -PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC glad_glNamedBufferPageCommitmentEXT; -PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC glad_glNamedBufferPageCommitmentARB; -PFNGLDRAWRANGEELEMENTSEXTPROC glad_glDrawRangeElementsEXT; -static void load_GL_VERSION_1_0(GLADloadproc load) { - if(!GLAD_GL_VERSION_1_0) return; - glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace"); - glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace"); - glad_glHint = (PFNGLHINTPROC)load("glHint"); - glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth"); - glad_glPointSize = (PFNGLPOINTSIZEPROC)load("glPointSize"); - glad_glPolygonMode = (PFNGLPOLYGONMODEPROC)load("glPolygonMode"); - glad_glScissor = (PFNGLSCISSORPROC)load("glScissor"); - glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf"); - glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv"); - glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri"); - glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv"); - glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC)load("glTexImage1D"); - glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D"); - glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC)load("glDrawBuffer"); - glad_glClear = (PFNGLCLEARPROC)load("glClear"); - glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor"); - glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil"); - glad_glClearDepth = (PFNGLCLEARDEPTHPROC)load("glClearDepth"); - glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask"); - glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask"); - glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask"); - glad_glDisable = (PFNGLDISABLEPROC)load("glDisable"); - glad_glEnable = (PFNGLENABLEPROC)load("glEnable"); - glad_glFinish = (PFNGLFINISHPROC)load("glFinish"); - glad_glFlush = (PFNGLFLUSHPROC)load("glFlush"); - glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc"); - glad_glLogicOp = (PFNGLLOGICOPPROC)load("glLogicOp"); - glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc"); - glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp"); - glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc"); - glad_glPixelStoref = (PFNGLPIXELSTOREFPROC)load("glPixelStoref"); - glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei"); - glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer"); - glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels"); - glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv"); - glad_glGetDoublev = (PFNGLGETDOUBLEVPROC)load("glGetDoublev"); - glad_glGetError = (PFNGLGETERRORPROC)load("glGetError"); - glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv"); - glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv"); - glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); - glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC)load("glGetTexImage"); - glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv"); - glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv"); - glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load("glGetTexLevelParameterfv"); - glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load("glGetTexLevelParameteriv"); - glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled"); - glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange"); - glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport"); -} -static void load_GL_VERSION_1_1(GLADloadproc load) { - if(!GLAD_GL_VERSION_1_1) return; - glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays"); - glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements"); - glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset"); - glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D"); - glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D"); - glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)load("glCopyTexSubImage1D"); - glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D"); - glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)load("glTexSubImage1D"); - glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D"); - glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture"); - glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures"); - glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures"); - glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture"); -} -static void load_GL_VERSION_1_2(GLADloadproc load) { - if(!GLAD_GL_VERSION_1_2) return; - glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements"); - glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D"); - glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D"); - glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D"); -} -static void load_GL_VERSION_1_3(GLADloadproc load) { - if(!GLAD_GL_VERSION_1_3) return; - glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture"); - glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage"); - glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D"); - glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D"); - glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)load("glCompressedTexImage1D"); - glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D"); - glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D"); - glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D"); - glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage"); -} -static void load_GL_VERSION_1_4(GLADloadproc load) { - if(!GLAD_GL_VERSION_1_4) return; - glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate"); - glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)load("glMultiDrawArrays"); - glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)load("glMultiDrawElements"); - glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load("glPointParameterf"); - glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv"); - glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri"); - glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv"); - glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor"); - glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation"); -} -static void load_GL_VERSION_1_5(GLADloadproc load) { - if(!GLAD_GL_VERSION_1_5) return; - glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries"); - glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries"); - glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery"); - glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery"); - glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery"); - glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv"); - glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)load("glGetQueryObjectiv"); - glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv"); - glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer"); - glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers"); - glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers"); - glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer"); - glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData"); - glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData"); - glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)load("glGetBufferSubData"); - glad_glMapBuffer = (PFNGLMAPBUFFERPROC)load("glMapBuffer"); - glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer"); - glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv"); - glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv"); -} -static void load_GL_VERSION_2_0(GLADloadproc load) { - if(!GLAD_GL_VERSION_2_0) return; - glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate"); - glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers"); - glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate"); - glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate"); - glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate"); - glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader"); - glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load("glBindAttribLocation"); - glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load("glCompileShader"); - glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load("glCreateProgram"); - glad_glCreateShader = (PFNGLCREATESHADERPROC)load("glCreateShader"); - glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load("glDeleteProgram"); - glad_glDeleteShader = (PFNGLDELETESHADERPROC)load("glDeleteShader"); - glad_glDetachShader = (PFNGLDETACHSHADERPROC)load("glDetachShader"); - glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load("glDisableVertexAttribArray"); - glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load("glEnableVertexAttribArray"); - glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load("glGetActiveAttrib"); - glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load("glGetActiveUniform"); - glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load("glGetAttachedShaders"); - glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load("glGetAttribLocation"); - glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load("glGetProgramiv"); - glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load("glGetProgramInfoLog"); - glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load("glGetShaderiv"); - glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load("glGetShaderInfoLog"); - glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load("glGetShaderSource"); - glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load("glGetUniformLocation"); - glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load("glGetUniformfv"); - glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load("glGetUniformiv"); - glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)load("glGetVertexAttribdv"); - glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load("glGetVertexAttribfv"); - glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load("glGetVertexAttribiv"); - glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load("glGetVertexAttribPointerv"); - glad_glIsProgram = (PFNGLISPROGRAMPROC)load("glIsProgram"); - glad_glIsShader = (PFNGLISSHADERPROC)load("glIsShader"); - glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load("glLinkProgram"); - glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load("glShaderSource"); - glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load("glUseProgram"); - glad_glUniform1f = (PFNGLUNIFORM1FPROC)load("glUniform1f"); - glad_glUniform2f = (PFNGLUNIFORM2FPROC)load("glUniform2f"); - glad_glUniform3f = (PFNGLUNIFORM3FPROC)load("glUniform3f"); - glad_glUniform4f = (PFNGLUNIFORM4FPROC)load("glUniform4f"); - glad_glUniform1i = (PFNGLUNIFORM1IPROC)load("glUniform1i"); - glad_glUniform2i = (PFNGLUNIFORM2IPROC)load("glUniform2i"); - glad_glUniform3i = (PFNGLUNIFORM3IPROC)load("glUniform3i"); - glad_glUniform4i = (PFNGLUNIFORM4IPROC)load("glUniform4i"); - glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load("glUniform1fv"); - glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load("glUniform2fv"); - glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load("glUniform3fv"); - glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load("glUniform4fv"); - glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load("glUniform1iv"); - glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load("glUniform2iv"); - glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load("glUniform3iv"); - glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load("glUniform4iv"); - glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load("glUniformMatrix2fv"); - glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load("glUniformMatrix3fv"); - glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load("glUniformMatrix4fv"); - glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load("glValidateProgram"); - glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)load("glVertexAttrib1d"); - glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)load("glVertexAttrib1dv"); - glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load("glVertexAttrib1f"); - glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load("glVertexAttrib1fv"); - glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)load("glVertexAttrib1s"); - glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)load("glVertexAttrib1sv"); - glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)load("glVertexAttrib2d"); - glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)load("glVertexAttrib2dv"); - glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load("glVertexAttrib2f"); - glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load("glVertexAttrib2fv"); - glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)load("glVertexAttrib2s"); - glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)load("glVertexAttrib2sv"); - glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)load("glVertexAttrib3d"); - glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)load("glVertexAttrib3dv"); - glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load("glVertexAttrib3f"); - glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load("glVertexAttrib3fv"); - glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)load("glVertexAttrib3s"); - glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)load("glVertexAttrib3sv"); - glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)load("glVertexAttrib4Nbv"); - glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)load("glVertexAttrib4Niv"); - glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)load("glVertexAttrib4Nsv"); - glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)load("glVertexAttrib4Nub"); - glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)load("glVertexAttrib4Nubv"); - glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)load("glVertexAttrib4Nuiv"); - glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)load("glVertexAttrib4Nusv"); - glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)load("glVertexAttrib4bv"); - glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)load("glVertexAttrib4d"); - glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)load("glVertexAttrib4dv"); - glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load("glVertexAttrib4f"); - glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load("glVertexAttrib4fv"); - glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)load("glVertexAttrib4iv"); - glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)load("glVertexAttrib4s"); - glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)load("glVertexAttrib4sv"); - glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)load("glVertexAttrib4ubv"); - glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)load("glVertexAttrib4uiv"); - glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)load("glVertexAttrib4usv"); - glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load("glVertexAttribPointer"); -} -static void load_GL_VERSION_2_1(GLADloadproc load) { - if(!GLAD_GL_VERSION_2_1) return; - glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load("glUniformMatrix2x3fv"); - glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load("glUniformMatrix3x2fv"); - glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load("glUniformMatrix2x4fv"); - glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load("glUniformMatrix4x2fv"); - glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load("glUniformMatrix3x4fv"); - glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load("glUniformMatrix4x3fv"); -} -static void load_GL_VERSION_3_0(GLADloadproc load) { - if(!GLAD_GL_VERSION_3_0) return; - glad_glColorMaski = (PFNGLCOLORMASKIPROC)load("glColorMaski"); - glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load("glGetBooleani_v"); - glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); - glad_glEnablei = (PFNGLENABLEIPROC)load("glEnablei"); - glad_glDisablei = (PFNGLDISABLEIPROC)load("glDisablei"); - glad_glIsEnabledi = (PFNGLISENABLEDIPROC)load("glIsEnabledi"); - glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load("glBeginTransformFeedback"); - glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load("glEndTransformFeedback"); - glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); - glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); - glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load("glTransformFeedbackVaryings"); - glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load("glGetTransformFeedbackVarying"); - glad_glClampColor = (PFNGLCLAMPCOLORPROC)load("glClampColor"); - glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)load("glBeginConditionalRender"); - glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)load("glEndConditionalRender"); - glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load("glVertexAttribIPointer"); - glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load("glGetVertexAttribIiv"); - glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load("glGetVertexAttribIuiv"); - glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)load("glVertexAttribI1i"); - glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)load("glVertexAttribI2i"); - glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)load("glVertexAttribI3i"); - glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load("glVertexAttribI4i"); - glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)load("glVertexAttribI1ui"); - glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)load("glVertexAttribI2ui"); - glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)load("glVertexAttribI3ui"); - glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load("glVertexAttribI4ui"); - glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)load("glVertexAttribI1iv"); - glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)load("glVertexAttribI2iv"); - glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)load("glVertexAttribI3iv"); - glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load("glVertexAttribI4iv"); - glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)load("glVertexAttribI1uiv"); - glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)load("glVertexAttribI2uiv"); - glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)load("glVertexAttribI3uiv"); - glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load("glVertexAttribI4uiv"); - glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)load("glVertexAttribI4bv"); - glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)load("glVertexAttribI4sv"); - glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)load("glVertexAttribI4ubv"); - glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)load("glVertexAttribI4usv"); - glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load("glGetUniformuiv"); - glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)load("glBindFragDataLocation"); - glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load("glGetFragDataLocation"); - glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load("glUniform1ui"); - glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load("glUniform2ui"); - glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load("glUniform3ui"); - glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load("glUniform4ui"); - glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load("glUniform1uiv"); - glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load("glUniform2uiv"); - glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load("glUniform3uiv"); - glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load("glUniform4uiv"); - glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)load("glTexParameterIiv"); - glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)load("glTexParameterIuiv"); - glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)load("glGetTexParameterIiv"); - glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)load("glGetTexParameterIuiv"); - glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load("glClearBufferiv"); - glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load("glClearBufferuiv"); - glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load("glClearBufferfv"); - glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load("glClearBufferfi"); - glad_glGetStringi = (PFNGLGETSTRINGIPROC)load("glGetStringi"); - glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer"); - glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer"); - glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers"); - glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers"); - glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage"); - glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv"); - glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer"); - glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer"); - glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers"); - glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers"); - glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus"); - glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D"); - glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D"); - glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D"); - glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer"); - glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv"); - glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap"); - glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer"); - glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample"); - glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer"); - glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange"); - glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange"); - glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray"); - glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays"); - glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays"); - glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray"); -} -static void load_GL_VERSION_3_1(GLADloadproc load) { - if(!GLAD_GL_VERSION_3_1) return; - glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load("glDrawArraysInstanced"); - glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load("glDrawElementsInstanced"); - glad_glTexBuffer = (PFNGLTEXBUFFERPROC)load("glTexBuffer"); - glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)load("glPrimitiveRestartIndex"); - glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData"); - glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices"); - glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv"); - glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName"); - glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex"); - glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv"); - glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName"); - glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding"); - glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); - glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); - glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); -} -static void load_GL_VERSION_3_2(GLADloadproc load) { - if(!GLAD_GL_VERSION_3_2) return; - glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load("glDrawElementsBaseVertex"); - glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load("glDrawRangeElementsBaseVertex"); - glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load("glDrawElementsInstancedBaseVertex"); - glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load("glMultiDrawElementsBaseVertex"); - glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load("glProvokingVertex"); - glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync"); - glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync"); - glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync"); - glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync"); - glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync"); - glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v"); - glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv"); - glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load("glGetInteger64i_v"); - glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load("glGetBufferParameteri64v"); - glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)load("glFramebufferTexture"); - glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample"); - glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample"); - glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv"); - glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski"); -} -static void load_GL_VERSION_3_3(GLADloadproc load) { - if(!GLAD_GL_VERSION_3_3) return; - glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load("glBindFragDataLocationIndexed"); - glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load("glGetFragDataIndex"); - glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers"); - glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers"); - glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler"); - glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler"); - glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri"); - glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv"); - glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf"); - glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv"); - glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load("glSamplerParameterIiv"); - glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load("glSamplerParameterIuiv"); - glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv"); - glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load("glGetSamplerParameterIiv"); - glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv"); - glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load("glGetSamplerParameterIuiv"); - glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load("glQueryCounter"); - glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load("glGetQueryObjecti64v"); - glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load("glGetQueryObjectui64v"); - glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load("glVertexAttribDivisor"); - glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load("glVertexAttribP1ui"); - glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load("glVertexAttribP1uiv"); - glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load("glVertexAttribP2ui"); - glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load("glVertexAttribP2uiv"); - glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load("glVertexAttribP3ui"); - glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load("glVertexAttribP3uiv"); - glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load("glVertexAttribP4ui"); - glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load("glVertexAttribP4uiv"); - glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load("glVertexP2ui"); - glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load("glVertexP2uiv"); - glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load("glVertexP3ui"); - glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load("glVertexP3uiv"); - glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load("glVertexP4ui"); - glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load("glVertexP4uiv"); - glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load("glTexCoordP1ui"); - glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load("glTexCoordP1uiv"); - glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load("glTexCoordP2ui"); - glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load("glTexCoordP2uiv"); - glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load("glTexCoordP3ui"); - glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load("glTexCoordP3uiv"); - glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load("glTexCoordP4ui"); - glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load("glTexCoordP4uiv"); - glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load("glMultiTexCoordP1ui"); - glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load("glMultiTexCoordP1uiv"); - glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load("glMultiTexCoordP2ui"); - glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load("glMultiTexCoordP2uiv"); - glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load("glMultiTexCoordP3ui"); - glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load("glMultiTexCoordP3uiv"); - glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load("glMultiTexCoordP4ui"); - glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load("glMultiTexCoordP4uiv"); - glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load("glNormalP3ui"); - glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load("glNormalP3uiv"); - glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load("glColorP3ui"); - glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load("glColorP3uiv"); - glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load("glColorP4ui"); - glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load("glColorP4uiv"); - glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load("glSecondaryColorP3ui"); - glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load("glSecondaryColorP3uiv"); -} -static void load_GL_APPLE_element_array(GLADloadproc load) { - if(!GLAD_GL_APPLE_element_array) return; - glad_glElementPointerAPPLE = (PFNGLELEMENTPOINTERAPPLEPROC)load("glElementPointerAPPLE"); - glad_glDrawElementArrayAPPLE = (PFNGLDRAWELEMENTARRAYAPPLEPROC)load("glDrawElementArrayAPPLE"); - glad_glDrawRangeElementArrayAPPLE = (PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC)load("glDrawRangeElementArrayAPPLE"); - glad_glMultiDrawElementArrayAPPLE = (PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC)load("glMultiDrawElementArrayAPPLE"); - glad_glMultiDrawRangeElementArrayAPPLE = (PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC)load("glMultiDrawRangeElementArrayAPPLE"); -} -static void load_GL_AMD_multi_draw_indirect(GLADloadproc load) { - if(!GLAD_GL_AMD_multi_draw_indirect) return; - glad_glMultiDrawArraysIndirectAMD = (PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC)load("glMultiDrawArraysIndirectAMD"); - glad_glMultiDrawElementsIndirectAMD = (PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC)load("glMultiDrawElementsIndirectAMD"); -} -static void load_GL_SGIX_tag_sample_buffer(GLADloadproc load) { - if(!GLAD_GL_SGIX_tag_sample_buffer) return; - glad_glTagSampleBufferSGIX = (PFNGLTAGSAMPLEBUFFERSGIXPROC)load("glTagSampleBufferSGIX"); -} -static void load_GL_NV_point_sprite(GLADloadproc load) { - if(!GLAD_GL_NV_point_sprite) return; - glad_glPointParameteriNV = (PFNGLPOINTPARAMETERINVPROC)load("glPointParameteriNV"); - glad_glPointParameterivNV = (PFNGLPOINTPARAMETERIVNVPROC)load("glPointParameterivNV"); -} -static void load_GL_ATI_separate_stencil(GLADloadproc load) { - if(!GLAD_GL_ATI_separate_stencil) return; - glad_glStencilOpSeparateATI = (PFNGLSTENCILOPSEPARATEATIPROC)load("glStencilOpSeparateATI"); - glad_glStencilFuncSeparateATI = (PFNGLSTENCILFUNCSEPARATEATIPROC)load("glStencilFuncSeparateATI"); -} -static void load_GL_EXT_texture_buffer_object(GLADloadproc load) { - if(!GLAD_GL_EXT_texture_buffer_object) return; - glad_glTexBufferEXT = (PFNGLTEXBUFFEREXTPROC)load("glTexBufferEXT"); -} -static void load_GL_ARB_vertex_blend(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_blend) return; - glad_glWeightbvARB = (PFNGLWEIGHTBVARBPROC)load("glWeightbvARB"); - glad_glWeightsvARB = (PFNGLWEIGHTSVARBPROC)load("glWeightsvARB"); - glad_glWeightivARB = (PFNGLWEIGHTIVARBPROC)load("glWeightivARB"); - glad_glWeightfvARB = (PFNGLWEIGHTFVARBPROC)load("glWeightfvARB"); - glad_glWeightdvARB = (PFNGLWEIGHTDVARBPROC)load("glWeightdvARB"); - glad_glWeightubvARB = (PFNGLWEIGHTUBVARBPROC)load("glWeightubvARB"); - glad_glWeightusvARB = (PFNGLWEIGHTUSVARBPROC)load("glWeightusvARB"); - glad_glWeightuivARB = (PFNGLWEIGHTUIVARBPROC)load("glWeightuivARB"); - glad_glWeightPointerARB = (PFNGLWEIGHTPOINTERARBPROC)load("glWeightPointerARB"); - glad_glVertexBlendARB = (PFNGLVERTEXBLENDARBPROC)load("glVertexBlendARB"); -} -static void load_GL_OVR_multiview(GLADloadproc load) { - if(!GLAD_GL_OVR_multiview) return; - glad_glFramebufferTextureMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)load("glFramebufferTextureMultiviewOVR"); -} -static void load_GL_ARB_program_interface_query(GLADloadproc load) { - if(!GLAD_GL_ARB_program_interface_query) return; - glad_glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC)load("glGetProgramInterfaceiv"); - glad_glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC)load("glGetProgramResourceIndex"); - glad_glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC)load("glGetProgramResourceName"); - glad_glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC)load("glGetProgramResourceiv"); - glad_glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC)load("glGetProgramResourceLocation"); - glad_glGetProgramResourceLocationIndex = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)load("glGetProgramResourceLocationIndex"); -} -static void load_GL_EXT_index_func(GLADloadproc load) { - if(!GLAD_GL_EXT_index_func) return; - glad_glIndexFuncEXT = (PFNGLINDEXFUNCEXTPROC)load("glIndexFuncEXT"); -} -static void load_GL_NV_shader_buffer_load(GLADloadproc load) { - if(!GLAD_GL_NV_shader_buffer_load) return; - glad_glMakeBufferResidentNV = (PFNGLMAKEBUFFERRESIDENTNVPROC)load("glMakeBufferResidentNV"); - glad_glMakeBufferNonResidentNV = (PFNGLMAKEBUFFERNONRESIDENTNVPROC)load("glMakeBufferNonResidentNV"); - glad_glIsBufferResidentNV = (PFNGLISBUFFERRESIDENTNVPROC)load("glIsBufferResidentNV"); - glad_glMakeNamedBufferResidentNV = (PFNGLMAKENAMEDBUFFERRESIDENTNVPROC)load("glMakeNamedBufferResidentNV"); - glad_glMakeNamedBufferNonResidentNV = (PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC)load("glMakeNamedBufferNonResidentNV"); - glad_glIsNamedBufferResidentNV = (PFNGLISNAMEDBUFFERRESIDENTNVPROC)load("glIsNamedBufferResidentNV"); - glad_glGetBufferParameterui64vNV = (PFNGLGETBUFFERPARAMETERUI64VNVPROC)load("glGetBufferParameterui64vNV"); - glad_glGetNamedBufferParameterui64vNV = (PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC)load("glGetNamedBufferParameterui64vNV"); - glad_glGetIntegerui64vNV = (PFNGLGETINTEGERUI64VNVPROC)load("glGetIntegerui64vNV"); - glad_glUniformui64NV = (PFNGLUNIFORMUI64NVPROC)load("glUniformui64NV"); - glad_glUniformui64vNV = (PFNGLUNIFORMUI64VNVPROC)load("glUniformui64vNV"); - glad_glGetUniformui64vNV = (PFNGLGETUNIFORMUI64VNVPROC)load("glGetUniformui64vNV"); - glad_glProgramUniformui64NV = (PFNGLPROGRAMUNIFORMUI64NVPROC)load("glProgramUniformui64NV"); - glad_glProgramUniformui64vNV = (PFNGLPROGRAMUNIFORMUI64VNVPROC)load("glProgramUniformui64vNV"); -} -static void load_GL_EXT_color_subtable(GLADloadproc load) { - if(!GLAD_GL_EXT_color_subtable) return; - glad_glColorSubTableEXT = (PFNGLCOLORSUBTABLEEXTPROC)load("glColorSubTableEXT"); - glad_glCopyColorSubTableEXT = (PFNGLCOPYCOLORSUBTABLEEXTPROC)load("glCopyColorSubTableEXT"); -} -static void load_GL_SUNX_constant_data(GLADloadproc load) { - if(!GLAD_GL_SUNX_constant_data) return; - glad_glFinishTextureSUNX = (PFNGLFINISHTEXTURESUNXPROC)load("glFinishTextureSUNX"); -} -static void load_GL_EXT_multi_draw_arrays(GLADloadproc load) { - if(!GLAD_GL_EXT_multi_draw_arrays) return; - glad_glMultiDrawArraysEXT = (PFNGLMULTIDRAWARRAYSEXTPROC)load("glMultiDrawArraysEXT"); - glad_glMultiDrawElementsEXT = (PFNGLMULTIDRAWELEMENTSEXTPROC)load("glMultiDrawElementsEXT"); -} -static void load_GL_ARB_shader_atomic_counters(GLADloadproc load) { - if(!GLAD_GL_ARB_shader_atomic_counters) return; - glad_glGetActiveAtomicCounterBufferiv = (PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)load("glGetActiveAtomicCounterBufferiv"); -} -static void load_GL_NV_conditional_render(GLADloadproc load) { - if(!GLAD_GL_NV_conditional_render) return; - glad_glBeginConditionalRenderNV = (PFNGLBEGINCONDITIONALRENDERNVPROC)load("glBeginConditionalRenderNV"); - glad_glEndConditionalRenderNV = (PFNGLENDCONDITIONALRENDERNVPROC)load("glEndConditionalRenderNV"); -} -static void load_GL_MESA_resize_buffers(GLADloadproc load) { - if(!GLAD_GL_MESA_resize_buffers) return; - glad_glResizeBuffersMESA = (PFNGLRESIZEBUFFERSMESAPROC)load("glResizeBuffersMESA"); -} -static void load_GL_ARB_texture_view(GLADloadproc load) { - if(!GLAD_GL_ARB_texture_view) return; - glad_glTextureView = (PFNGLTEXTUREVIEWPROC)load("glTextureView"); -} -static void load_GL_ARB_map_buffer_range(GLADloadproc load) { - if(!GLAD_GL_ARB_map_buffer_range) return; - glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange"); - glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange"); -} -static void load_GL_EXT_convolution(GLADloadproc load) { - if(!GLAD_GL_EXT_convolution) return; - glad_glConvolutionFilter1DEXT = (PFNGLCONVOLUTIONFILTER1DEXTPROC)load("glConvolutionFilter1DEXT"); - glad_glConvolutionFilter2DEXT = (PFNGLCONVOLUTIONFILTER2DEXTPROC)load("glConvolutionFilter2DEXT"); - glad_glConvolutionParameterfEXT = (PFNGLCONVOLUTIONPARAMETERFEXTPROC)load("glConvolutionParameterfEXT"); - glad_glConvolutionParameterfvEXT = (PFNGLCONVOLUTIONPARAMETERFVEXTPROC)load("glConvolutionParameterfvEXT"); - glad_glConvolutionParameteriEXT = (PFNGLCONVOLUTIONPARAMETERIEXTPROC)load("glConvolutionParameteriEXT"); - glad_glConvolutionParameterivEXT = (PFNGLCONVOLUTIONPARAMETERIVEXTPROC)load("glConvolutionParameterivEXT"); - glad_glCopyConvolutionFilter1DEXT = (PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC)load("glCopyConvolutionFilter1DEXT"); - glad_glCopyConvolutionFilter2DEXT = (PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC)load("glCopyConvolutionFilter2DEXT"); - glad_glGetConvolutionFilterEXT = (PFNGLGETCONVOLUTIONFILTEREXTPROC)load("glGetConvolutionFilterEXT"); - glad_glGetConvolutionParameterfvEXT = (PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC)load("glGetConvolutionParameterfvEXT"); - glad_glGetConvolutionParameterivEXT = (PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC)load("glGetConvolutionParameterivEXT"); - glad_glGetSeparableFilterEXT = (PFNGLGETSEPARABLEFILTEREXTPROC)load("glGetSeparableFilterEXT"); - glad_glSeparableFilter2DEXT = (PFNGLSEPARABLEFILTER2DEXTPROC)load("glSeparableFilter2DEXT"); -} -static void load_GL_NV_vertex_attrib_integer_64bit(GLADloadproc load) { - if(!GLAD_GL_NV_vertex_attrib_integer_64bit) return; - glad_glVertexAttribL1i64NV = (PFNGLVERTEXATTRIBL1I64NVPROC)load("glVertexAttribL1i64NV"); - glad_glVertexAttribL2i64NV = (PFNGLVERTEXATTRIBL2I64NVPROC)load("glVertexAttribL2i64NV"); - glad_glVertexAttribL3i64NV = (PFNGLVERTEXATTRIBL3I64NVPROC)load("glVertexAttribL3i64NV"); - glad_glVertexAttribL4i64NV = (PFNGLVERTEXATTRIBL4I64NVPROC)load("glVertexAttribL4i64NV"); - glad_glVertexAttribL1i64vNV = (PFNGLVERTEXATTRIBL1I64VNVPROC)load("glVertexAttribL1i64vNV"); - glad_glVertexAttribL2i64vNV = (PFNGLVERTEXATTRIBL2I64VNVPROC)load("glVertexAttribL2i64vNV"); - glad_glVertexAttribL3i64vNV = (PFNGLVERTEXATTRIBL3I64VNVPROC)load("glVertexAttribL3i64vNV"); - glad_glVertexAttribL4i64vNV = (PFNGLVERTEXATTRIBL4I64VNVPROC)load("glVertexAttribL4i64vNV"); - glad_glVertexAttribL1ui64NV = (PFNGLVERTEXATTRIBL1UI64NVPROC)load("glVertexAttribL1ui64NV"); - glad_glVertexAttribL2ui64NV = (PFNGLVERTEXATTRIBL2UI64NVPROC)load("glVertexAttribL2ui64NV"); - glad_glVertexAttribL3ui64NV = (PFNGLVERTEXATTRIBL3UI64NVPROC)load("glVertexAttribL3ui64NV"); - glad_glVertexAttribL4ui64NV = (PFNGLVERTEXATTRIBL4UI64NVPROC)load("glVertexAttribL4ui64NV"); - glad_glVertexAttribL1ui64vNV = (PFNGLVERTEXATTRIBL1UI64VNVPROC)load("glVertexAttribL1ui64vNV"); - glad_glVertexAttribL2ui64vNV = (PFNGLVERTEXATTRIBL2UI64VNVPROC)load("glVertexAttribL2ui64vNV"); - glad_glVertexAttribL3ui64vNV = (PFNGLVERTEXATTRIBL3UI64VNVPROC)load("glVertexAttribL3ui64vNV"); - glad_glVertexAttribL4ui64vNV = (PFNGLVERTEXATTRIBL4UI64VNVPROC)load("glVertexAttribL4ui64vNV"); - glad_glGetVertexAttribLi64vNV = (PFNGLGETVERTEXATTRIBLI64VNVPROC)load("glGetVertexAttribLi64vNV"); - glad_glGetVertexAttribLui64vNV = (PFNGLGETVERTEXATTRIBLUI64VNVPROC)load("glGetVertexAttribLui64vNV"); - glad_glVertexAttribLFormatNV = (PFNGLVERTEXATTRIBLFORMATNVPROC)load("glVertexAttribLFormatNV"); -} -static void load_GL_EXT_paletted_texture(GLADloadproc load) { - if(!GLAD_GL_EXT_paletted_texture) return; - glad_glColorTableEXT = (PFNGLCOLORTABLEEXTPROC)load("glColorTableEXT"); - glad_glGetColorTableEXT = (PFNGLGETCOLORTABLEEXTPROC)load("glGetColorTableEXT"); - glad_glGetColorTableParameterivEXT = (PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)load("glGetColorTableParameterivEXT"); - glad_glGetColorTableParameterfvEXT = (PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)load("glGetColorTableParameterfvEXT"); -} -static void load_GL_ARB_texture_buffer_object(GLADloadproc load) { - if(!GLAD_GL_ARB_texture_buffer_object) return; - glad_glTexBufferARB = (PFNGLTEXBUFFERARBPROC)load("glTexBufferARB"); -} -static void load_GL_ATI_pn_triangles(GLADloadproc load) { - if(!GLAD_GL_ATI_pn_triangles) return; - glad_glPNTrianglesiATI = (PFNGLPNTRIANGLESIATIPROC)load("glPNTrianglesiATI"); - glad_glPNTrianglesfATI = (PFNGLPNTRIANGLESFATIPROC)load("glPNTrianglesfATI"); -} -static void load_GL_SGIX_flush_raster(GLADloadproc load) { - if(!GLAD_GL_SGIX_flush_raster) return; - glad_glFlushRasterSGIX = (PFNGLFLUSHRASTERSGIXPROC)load("glFlushRasterSGIX"); -} -static void load_GL_EXT_light_texture(GLADloadproc load) { - if(!GLAD_GL_EXT_light_texture) return; - glad_glApplyTextureEXT = (PFNGLAPPLYTEXTUREEXTPROC)load("glApplyTextureEXT"); - glad_glTextureLightEXT = (PFNGLTEXTURELIGHTEXTPROC)load("glTextureLightEXT"); - glad_glTextureMaterialEXT = (PFNGLTEXTUREMATERIALEXTPROC)load("glTextureMaterialEXT"); -} -static void load_GL_HP_image_transform(GLADloadproc load) { - if(!GLAD_GL_HP_image_transform) return; - glad_glImageTransformParameteriHP = (PFNGLIMAGETRANSFORMPARAMETERIHPPROC)load("glImageTransformParameteriHP"); - glad_glImageTransformParameterfHP = (PFNGLIMAGETRANSFORMPARAMETERFHPPROC)load("glImageTransformParameterfHP"); - glad_glImageTransformParameterivHP = (PFNGLIMAGETRANSFORMPARAMETERIVHPPROC)load("glImageTransformParameterivHP"); - glad_glImageTransformParameterfvHP = (PFNGLIMAGETRANSFORMPARAMETERFVHPPROC)load("glImageTransformParameterfvHP"); - glad_glGetImageTransformParameterivHP = (PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC)load("glGetImageTransformParameterivHP"); - glad_glGetImageTransformParameterfvHP = (PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC)load("glGetImageTransformParameterfvHP"); -} -static void load_GL_AMD_draw_buffers_blend(GLADloadproc load) { - if(!GLAD_GL_AMD_draw_buffers_blend) return; - glad_glBlendFuncIndexedAMD = (PFNGLBLENDFUNCINDEXEDAMDPROC)load("glBlendFuncIndexedAMD"); - glad_glBlendFuncSeparateIndexedAMD = (PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC)load("glBlendFuncSeparateIndexedAMD"); - glad_glBlendEquationIndexedAMD = (PFNGLBLENDEQUATIONINDEXEDAMDPROC)load("glBlendEquationIndexedAMD"); - glad_glBlendEquationSeparateIndexedAMD = (PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC)load("glBlendEquationSeparateIndexedAMD"); -} -static void load_GL_APPLE_texture_range(GLADloadproc load) { - if(!GLAD_GL_APPLE_texture_range) return; - glad_glTextureRangeAPPLE = (PFNGLTEXTURERANGEAPPLEPROC)load("glTextureRangeAPPLE"); - glad_glGetTexParameterPointervAPPLE = (PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC)load("glGetTexParameterPointervAPPLE"); -} -static void load_GL_EXT_texture_array(GLADloadproc load) { - if(!GLAD_GL_EXT_texture_array) return; - glad_glFramebufferTextureLayerEXT = (PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)load("glFramebufferTextureLayerEXT"); -} -static void load_GL_NV_texture_barrier(GLADloadproc load) { - if(!GLAD_GL_NV_texture_barrier) return; - glad_glTextureBarrierNV = (PFNGLTEXTUREBARRIERNVPROC)load("glTextureBarrierNV"); -} -static void load_GL_ARB_vertex_type_2_10_10_10_rev(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_type_2_10_10_10_rev) return; - glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load("glVertexAttribP1ui"); - glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load("glVertexAttribP1uiv"); - glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load("glVertexAttribP2ui"); - glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load("glVertexAttribP2uiv"); - glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load("glVertexAttribP3ui"); - glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load("glVertexAttribP3uiv"); - glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load("glVertexAttribP4ui"); - glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load("glVertexAttribP4uiv"); - glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load("glVertexP2ui"); - glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load("glVertexP2uiv"); - glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load("glVertexP3ui"); - glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load("glVertexP3uiv"); - glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load("glVertexP4ui"); - glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load("glVertexP4uiv"); - glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load("glTexCoordP1ui"); - glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load("glTexCoordP1uiv"); - glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load("glTexCoordP2ui"); - glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load("glTexCoordP2uiv"); - glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load("glTexCoordP3ui"); - glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load("glTexCoordP3uiv"); - glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load("glTexCoordP4ui"); - glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load("glTexCoordP4uiv"); - glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load("glMultiTexCoordP1ui"); - glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load("glMultiTexCoordP1uiv"); - glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load("glMultiTexCoordP2ui"); - glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load("glMultiTexCoordP2uiv"); - glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load("glMultiTexCoordP3ui"); - glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load("glMultiTexCoordP3uiv"); - glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load("glMultiTexCoordP4ui"); - glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load("glMultiTexCoordP4uiv"); - glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load("glNormalP3ui"); - glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load("glNormalP3uiv"); - glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load("glColorP3ui"); - glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load("glColorP3uiv"); - glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load("glColorP4ui"); - glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load("glColorP4uiv"); - glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load("glSecondaryColorP3ui"); - glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load("glSecondaryColorP3uiv"); -} -static void load_GL_3DFX_tbuffer(GLADloadproc load) { - if(!GLAD_GL_3DFX_tbuffer) return; - glad_glTbufferMask3DFX = (PFNGLTBUFFERMASK3DFXPROC)load("glTbufferMask3DFX"); -} -static void load_GL_GREMEDY_frame_terminator(GLADloadproc load) { - if(!GLAD_GL_GREMEDY_frame_terminator) return; - glad_glFrameTerminatorGREMEDY = (PFNGLFRAMETERMINATORGREMEDYPROC)load("glFrameTerminatorGREMEDY"); -} -static void load_GL_ARB_blend_func_extended(GLADloadproc load) { - if(!GLAD_GL_ARB_blend_func_extended) return; - glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load("glBindFragDataLocationIndexed"); - glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load("glGetFragDataIndex"); -} -static void load_GL_EXT_separate_shader_objects(GLADloadproc load) { - if(!GLAD_GL_EXT_separate_shader_objects) return; - glad_glUseShaderProgramEXT = (PFNGLUSESHADERPROGRAMEXTPROC)load("glUseShaderProgramEXT"); - glad_glActiveProgramEXT = (PFNGLACTIVEPROGRAMEXTPROC)load("glActiveProgramEXT"); - glad_glCreateShaderProgramEXT = (PFNGLCREATESHADERPROGRAMEXTPROC)load("glCreateShaderProgramEXT"); - glad_glActiveShaderProgramEXT = (PFNGLACTIVESHADERPROGRAMEXTPROC)load("glActiveShaderProgramEXT"); - glad_glBindProgramPipelineEXT = (PFNGLBINDPROGRAMPIPELINEEXTPROC)load("glBindProgramPipelineEXT"); - glad_glCreateShaderProgramvEXT = (PFNGLCREATESHADERPROGRAMVEXTPROC)load("glCreateShaderProgramvEXT"); - glad_glDeleteProgramPipelinesEXT = (PFNGLDELETEPROGRAMPIPELINESEXTPROC)load("glDeleteProgramPipelinesEXT"); - glad_glGenProgramPipelinesEXT = (PFNGLGENPROGRAMPIPELINESEXTPROC)load("glGenProgramPipelinesEXT"); - glad_glGetProgramPipelineInfoLogEXT = (PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC)load("glGetProgramPipelineInfoLogEXT"); - glad_glGetProgramPipelineivEXT = (PFNGLGETPROGRAMPIPELINEIVEXTPROC)load("glGetProgramPipelineivEXT"); - glad_glIsProgramPipelineEXT = (PFNGLISPROGRAMPIPELINEEXTPROC)load("glIsProgramPipelineEXT"); - glad_glProgramParameteriEXT = (PFNGLPROGRAMPARAMETERIEXTPROC)load("glProgramParameteriEXT"); - glad_glProgramUniform1fEXT = (PFNGLPROGRAMUNIFORM1FEXTPROC)load("glProgramUniform1fEXT"); - glad_glProgramUniform1fvEXT = (PFNGLPROGRAMUNIFORM1FVEXTPROC)load("glProgramUniform1fvEXT"); - glad_glProgramUniform1iEXT = (PFNGLPROGRAMUNIFORM1IEXTPROC)load("glProgramUniform1iEXT"); - glad_glProgramUniform1ivEXT = (PFNGLPROGRAMUNIFORM1IVEXTPROC)load("glProgramUniform1ivEXT"); - glad_glProgramUniform2fEXT = (PFNGLPROGRAMUNIFORM2FEXTPROC)load("glProgramUniform2fEXT"); - glad_glProgramUniform2fvEXT = (PFNGLPROGRAMUNIFORM2FVEXTPROC)load("glProgramUniform2fvEXT"); - glad_glProgramUniform2iEXT = (PFNGLPROGRAMUNIFORM2IEXTPROC)load("glProgramUniform2iEXT"); - glad_glProgramUniform2ivEXT = (PFNGLPROGRAMUNIFORM2IVEXTPROC)load("glProgramUniform2ivEXT"); - glad_glProgramUniform3fEXT = (PFNGLPROGRAMUNIFORM3FEXTPROC)load("glProgramUniform3fEXT"); - glad_glProgramUniform3fvEXT = (PFNGLPROGRAMUNIFORM3FVEXTPROC)load("glProgramUniform3fvEXT"); - glad_glProgramUniform3iEXT = (PFNGLPROGRAMUNIFORM3IEXTPROC)load("glProgramUniform3iEXT"); - glad_glProgramUniform3ivEXT = (PFNGLPROGRAMUNIFORM3IVEXTPROC)load("glProgramUniform3ivEXT"); - glad_glProgramUniform4fEXT = (PFNGLPROGRAMUNIFORM4FEXTPROC)load("glProgramUniform4fEXT"); - glad_glProgramUniform4fvEXT = (PFNGLPROGRAMUNIFORM4FVEXTPROC)load("glProgramUniform4fvEXT"); - glad_glProgramUniform4iEXT = (PFNGLPROGRAMUNIFORM4IEXTPROC)load("glProgramUniform4iEXT"); - glad_glProgramUniform4ivEXT = (PFNGLPROGRAMUNIFORM4IVEXTPROC)load("glProgramUniform4ivEXT"); - glad_glProgramUniformMatrix2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)load("glProgramUniformMatrix2fvEXT"); - glad_glProgramUniformMatrix3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)load("glProgramUniformMatrix3fvEXT"); - glad_glProgramUniformMatrix4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)load("glProgramUniformMatrix4fvEXT"); - glad_glUseProgramStagesEXT = (PFNGLUSEPROGRAMSTAGESEXTPROC)load("glUseProgramStagesEXT"); - glad_glValidateProgramPipelineEXT = (PFNGLVALIDATEPROGRAMPIPELINEEXTPROC)load("glValidateProgramPipelineEXT"); - glad_glProgramUniform1uiEXT = (PFNGLPROGRAMUNIFORM1UIEXTPROC)load("glProgramUniform1uiEXT"); - glad_glProgramUniform2uiEXT = (PFNGLPROGRAMUNIFORM2UIEXTPROC)load("glProgramUniform2uiEXT"); - glad_glProgramUniform3uiEXT = (PFNGLPROGRAMUNIFORM3UIEXTPROC)load("glProgramUniform3uiEXT"); - glad_glProgramUniform4uiEXT = (PFNGLPROGRAMUNIFORM4UIEXTPROC)load("glProgramUniform4uiEXT"); - glad_glProgramUniform1uivEXT = (PFNGLPROGRAMUNIFORM1UIVEXTPROC)load("glProgramUniform1uivEXT"); - glad_glProgramUniform2uivEXT = (PFNGLPROGRAMUNIFORM2UIVEXTPROC)load("glProgramUniform2uivEXT"); - glad_glProgramUniform3uivEXT = (PFNGLPROGRAMUNIFORM3UIVEXTPROC)load("glProgramUniform3uivEXT"); - glad_glProgramUniform4uivEXT = (PFNGLPROGRAMUNIFORM4UIVEXTPROC)load("glProgramUniform4uivEXT"); - glad_glProgramUniformMatrix4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)load("glProgramUniformMatrix4fvEXT"); - glad_glProgramUniformMatrix2x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)load("glProgramUniformMatrix2x3fvEXT"); - glad_glProgramUniformMatrix3x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)load("glProgramUniformMatrix3x2fvEXT"); - glad_glProgramUniformMatrix2x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)load("glProgramUniformMatrix2x4fvEXT"); - glad_glProgramUniformMatrix4x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)load("glProgramUniformMatrix4x2fvEXT"); - glad_glProgramUniformMatrix3x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)load("glProgramUniformMatrix3x4fvEXT"); - glad_glProgramUniformMatrix4x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)load("glProgramUniformMatrix4x3fvEXT"); -} -static void load_GL_NV_texture_multisample(GLADloadproc load) { - if(!GLAD_GL_NV_texture_multisample) return; - glad_glTexImage2DMultisampleCoverageNV = (PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC)load("glTexImage2DMultisampleCoverageNV"); - glad_glTexImage3DMultisampleCoverageNV = (PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC)load("glTexImage3DMultisampleCoverageNV"); - glad_glTextureImage2DMultisampleNV = (PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC)load("glTextureImage2DMultisampleNV"); - glad_glTextureImage3DMultisampleNV = (PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC)load("glTextureImage3DMultisampleNV"); - glad_glTextureImage2DMultisampleCoverageNV = (PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC)load("glTextureImage2DMultisampleCoverageNV"); - glad_glTextureImage3DMultisampleCoverageNV = (PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC)load("glTextureImage3DMultisampleCoverageNV"); -} -static void load_GL_ARB_shader_objects(GLADloadproc load) { - if(!GLAD_GL_ARB_shader_objects) return; - glad_glDeleteObjectARB = (PFNGLDELETEOBJECTARBPROC)load("glDeleteObjectARB"); - glad_glGetHandleARB = (PFNGLGETHANDLEARBPROC)load("glGetHandleARB"); - glad_glDetachObjectARB = (PFNGLDETACHOBJECTARBPROC)load("glDetachObjectARB"); - glad_glCreateShaderObjectARB = (PFNGLCREATESHADEROBJECTARBPROC)load("glCreateShaderObjectARB"); - glad_glShaderSourceARB = (PFNGLSHADERSOURCEARBPROC)load("glShaderSourceARB"); - glad_glCompileShaderARB = (PFNGLCOMPILESHADERARBPROC)load("glCompileShaderARB"); - glad_glCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC)load("glCreateProgramObjectARB"); - glad_glAttachObjectARB = (PFNGLATTACHOBJECTARBPROC)load("glAttachObjectARB"); - glad_glLinkProgramARB = (PFNGLLINKPROGRAMARBPROC)load("glLinkProgramARB"); - glad_glUseProgramObjectARB = (PFNGLUSEPROGRAMOBJECTARBPROC)load("glUseProgramObjectARB"); - glad_glValidateProgramARB = (PFNGLVALIDATEPROGRAMARBPROC)load("glValidateProgramARB"); - glad_glUniform1fARB = (PFNGLUNIFORM1FARBPROC)load("glUniform1fARB"); - glad_glUniform2fARB = (PFNGLUNIFORM2FARBPROC)load("glUniform2fARB"); - glad_glUniform3fARB = (PFNGLUNIFORM3FARBPROC)load("glUniform3fARB"); - glad_glUniform4fARB = (PFNGLUNIFORM4FARBPROC)load("glUniform4fARB"); - glad_glUniform1iARB = (PFNGLUNIFORM1IARBPROC)load("glUniform1iARB"); - glad_glUniform2iARB = (PFNGLUNIFORM2IARBPROC)load("glUniform2iARB"); - glad_glUniform3iARB = (PFNGLUNIFORM3IARBPROC)load("glUniform3iARB"); - glad_glUniform4iARB = (PFNGLUNIFORM4IARBPROC)load("glUniform4iARB"); - glad_glUniform1fvARB = (PFNGLUNIFORM1FVARBPROC)load("glUniform1fvARB"); - glad_glUniform2fvARB = (PFNGLUNIFORM2FVARBPROC)load("glUniform2fvARB"); - glad_glUniform3fvARB = (PFNGLUNIFORM3FVARBPROC)load("glUniform3fvARB"); - glad_glUniform4fvARB = (PFNGLUNIFORM4FVARBPROC)load("glUniform4fvARB"); - glad_glUniform1ivARB = (PFNGLUNIFORM1IVARBPROC)load("glUniform1ivARB"); - glad_glUniform2ivARB = (PFNGLUNIFORM2IVARBPROC)load("glUniform2ivARB"); - glad_glUniform3ivARB = (PFNGLUNIFORM3IVARBPROC)load("glUniform3ivARB"); - glad_glUniform4ivARB = (PFNGLUNIFORM4IVARBPROC)load("glUniform4ivARB"); - glad_glUniformMatrix2fvARB = (PFNGLUNIFORMMATRIX2FVARBPROC)load("glUniformMatrix2fvARB"); - glad_glUniformMatrix3fvARB = (PFNGLUNIFORMMATRIX3FVARBPROC)load("glUniformMatrix3fvARB"); - glad_glUniformMatrix4fvARB = (PFNGLUNIFORMMATRIX4FVARBPROC)load("glUniformMatrix4fvARB"); - glad_glGetObjectParameterfvARB = (PFNGLGETOBJECTPARAMETERFVARBPROC)load("glGetObjectParameterfvARB"); - glad_glGetObjectParameterivARB = (PFNGLGETOBJECTPARAMETERIVARBPROC)load("glGetObjectParameterivARB"); - glad_glGetInfoLogARB = (PFNGLGETINFOLOGARBPROC)load("glGetInfoLogARB"); - glad_glGetAttachedObjectsARB = (PFNGLGETATTACHEDOBJECTSARBPROC)load("glGetAttachedObjectsARB"); - glad_glGetUniformLocationARB = (PFNGLGETUNIFORMLOCATIONARBPROC)load("glGetUniformLocationARB"); - glad_glGetActiveUniformARB = (PFNGLGETACTIVEUNIFORMARBPROC)load("glGetActiveUniformARB"); - glad_glGetUniformfvARB = (PFNGLGETUNIFORMFVARBPROC)load("glGetUniformfvARB"); - glad_glGetUniformivARB = (PFNGLGETUNIFORMIVARBPROC)load("glGetUniformivARB"); - glad_glGetShaderSourceARB = (PFNGLGETSHADERSOURCEARBPROC)load("glGetShaderSourceARB"); -} -static void load_GL_ARB_framebuffer_object(GLADloadproc load) { - if(!GLAD_GL_ARB_framebuffer_object) return; - glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer"); - glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer"); - glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers"); - glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers"); - glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage"); - glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv"); - glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer"); - glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer"); - glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers"); - glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers"); - glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus"); - glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D"); - glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D"); - glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D"); - glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer"); - glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv"); - glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap"); - glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer"); - glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample"); - glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer"); -} -static void load_GL_ATI_envmap_bumpmap(GLADloadproc load) { - if(!GLAD_GL_ATI_envmap_bumpmap) return; - glad_glTexBumpParameterivATI = (PFNGLTEXBUMPPARAMETERIVATIPROC)load("glTexBumpParameterivATI"); - glad_glTexBumpParameterfvATI = (PFNGLTEXBUMPPARAMETERFVATIPROC)load("glTexBumpParameterfvATI"); - glad_glGetTexBumpParameterivATI = (PFNGLGETTEXBUMPPARAMETERIVATIPROC)load("glGetTexBumpParameterivATI"); - glad_glGetTexBumpParameterfvATI = (PFNGLGETTEXBUMPPARAMETERFVATIPROC)load("glGetTexBumpParameterfvATI"); -} -static void load_GL_ATI_map_object_buffer(GLADloadproc load) { - if(!GLAD_GL_ATI_map_object_buffer) return; - glad_glMapObjectBufferATI = (PFNGLMAPOBJECTBUFFERATIPROC)load("glMapObjectBufferATI"); - glad_glUnmapObjectBufferATI = (PFNGLUNMAPOBJECTBUFFERATIPROC)load("glUnmapObjectBufferATI"); -} -static void load_GL_ARB_robustness(GLADloadproc load) { - if(!GLAD_GL_ARB_robustness) return; - glad_glGetGraphicsResetStatusARB = (PFNGLGETGRAPHICSRESETSTATUSARBPROC)load("glGetGraphicsResetStatusARB"); - glad_glGetnTexImageARB = (PFNGLGETNTEXIMAGEARBPROC)load("glGetnTexImageARB"); - glad_glReadnPixelsARB = (PFNGLREADNPIXELSARBPROC)load("glReadnPixelsARB"); - glad_glGetnCompressedTexImageARB = (PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC)load("glGetnCompressedTexImageARB"); - glad_glGetnUniformfvARB = (PFNGLGETNUNIFORMFVARBPROC)load("glGetnUniformfvARB"); - glad_glGetnUniformivARB = (PFNGLGETNUNIFORMIVARBPROC)load("glGetnUniformivARB"); - glad_glGetnUniformuivARB = (PFNGLGETNUNIFORMUIVARBPROC)load("glGetnUniformuivARB"); - glad_glGetnUniformdvARB = (PFNGLGETNUNIFORMDVARBPROC)load("glGetnUniformdvARB"); - glad_glGetnMapdvARB = (PFNGLGETNMAPDVARBPROC)load("glGetnMapdvARB"); - glad_glGetnMapfvARB = (PFNGLGETNMAPFVARBPROC)load("glGetnMapfvARB"); - glad_glGetnMapivARB = (PFNGLGETNMAPIVARBPROC)load("glGetnMapivARB"); - glad_glGetnPixelMapfvARB = (PFNGLGETNPIXELMAPFVARBPROC)load("glGetnPixelMapfvARB"); - glad_glGetnPixelMapuivARB = (PFNGLGETNPIXELMAPUIVARBPROC)load("glGetnPixelMapuivARB"); - glad_glGetnPixelMapusvARB = (PFNGLGETNPIXELMAPUSVARBPROC)load("glGetnPixelMapusvARB"); - glad_glGetnPolygonStippleARB = (PFNGLGETNPOLYGONSTIPPLEARBPROC)load("glGetnPolygonStippleARB"); - glad_glGetnColorTableARB = (PFNGLGETNCOLORTABLEARBPROC)load("glGetnColorTableARB"); - glad_glGetnConvolutionFilterARB = (PFNGLGETNCONVOLUTIONFILTERARBPROC)load("glGetnConvolutionFilterARB"); - glad_glGetnSeparableFilterARB = (PFNGLGETNSEPARABLEFILTERARBPROC)load("glGetnSeparableFilterARB"); - glad_glGetnHistogramARB = (PFNGLGETNHISTOGRAMARBPROC)load("glGetnHistogramARB"); - glad_glGetnMinmaxARB = (PFNGLGETNMINMAXARBPROC)load("glGetnMinmaxARB"); -} -static void load_GL_NV_pixel_data_range(GLADloadproc load) { - if(!GLAD_GL_NV_pixel_data_range) return; - glad_glPixelDataRangeNV = (PFNGLPIXELDATARANGENVPROC)load("glPixelDataRangeNV"); - glad_glFlushPixelDataRangeNV = (PFNGLFLUSHPIXELDATARANGENVPROC)load("glFlushPixelDataRangeNV"); -} -static void load_GL_EXT_framebuffer_blit(GLADloadproc load) { - if(!GLAD_GL_EXT_framebuffer_blit) return; - glad_glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC)load("glBlitFramebufferEXT"); -} -static void load_GL_ARB_gpu_shader_fp64(GLADloadproc load) { - if(!GLAD_GL_ARB_gpu_shader_fp64) return; - glad_glUniform1d = (PFNGLUNIFORM1DPROC)load("glUniform1d"); - glad_glUniform2d = (PFNGLUNIFORM2DPROC)load("glUniform2d"); - glad_glUniform3d = (PFNGLUNIFORM3DPROC)load("glUniform3d"); - glad_glUniform4d = (PFNGLUNIFORM4DPROC)load("glUniform4d"); - glad_glUniform1dv = (PFNGLUNIFORM1DVPROC)load("glUniform1dv"); - glad_glUniform2dv = (PFNGLUNIFORM2DVPROC)load("glUniform2dv"); - glad_glUniform3dv = (PFNGLUNIFORM3DVPROC)load("glUniform3dv"); - glad_glUniform4dv = (PFNGLUNIFORM4DVPROC)load("glUniform4dv"); - glad_glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC)load("glUniformMatrix2dv"); - glad_glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC)load("glUniformMatrix3dv"); - glad_glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC)load("glUniformMatrix4dv"); - glad_glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC)load("glUniformMatrix2x3dv"); - glad_glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC)load("glUniformMatrix2x4dv"); - glad_glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC)load("glUniformMatrix3x2dv"); - glad_glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC)load("glUniformMatrix3x4dv"); - glad_glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC)load("glUniformMatrix4x2dv"); - glad_glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC)load("glUniformMatrix4x3dv"); - glad_glGetUniformdv = (PFNGLGETUNIFORMDVPROC)load("glGetUniformdv"); -} -static void load_GL_NV_command_list(GLADloadproc load) { - if(!GLAD_GL_NV_command_list) return; - glad_glCreateStatesNV = (PFNGLCREATESTATESNVPROC)load("glCreateStatesNV"); - glad_glDeleteStatesNV = (PFNGLDELETESTATESNVPROC)load("glDeleteStatesNV"); - glad_glIsStateNV = (PFNGLISSTATENVPROC)load("glIsStateNV"); - glad_glStateCaptureNV = (PFNGLSTATECAPTURENVPROC)load("glStateCaptureNV"); - glad_glGetCommandHeaderNV = (PFNGLGETCOMMANDHEADERNVPROC)load("glGetCommandHeaderNV"); - glad_glGetStageIndexNV = (PFNGLGETSTAGEINDEXNVPROC)load("glGetStageIndexNV"); - glad_glDrawCommandsNV = (PFNGLDRAWCOMMANDSNVPROC)load("glDrawCommandsNV"); - glad_glDrawCommandsAddressNV = (PFNGLDRAWCOMMANDSADDRESSNVPROC)load("glDrawCommandsAddressNV"); - glad_glDrawCommandsStatesNV = (PFNGLDRAWCOMMANDSSTATESNVPROC)load("glDrawCommandsStatesNV"); - glad_glDrawCommandsStatesAddressNV = (PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC)load("glDrawCommandsStatesAddressNV"); - glad_glCreateCommandListsNV = (PFNGLCREATECOMMANDLISTSNVPROC)load("glCreateCommandListsNV"); - glad_glDeleteCommandListsNV = (PFNGLDELETECOMMANDLISTSNVPROC)load("glDeleteCommandListsNV"); - glad_glIsCommandListNV = (PFNGLISCOMMANDLISTNVPROC)load("glIsCommandListNV"); - glad_glListDrawCommandsStatesClientNV = (PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC)load("glListDrawCommandsStatesClientNV"); - glad_glCommandListSegmentsNV = (PFNGLCOMMANDLISTSEGMENTSNVPROC)load("glCommandListSegmentsNV"); - glad_glCompileCommandListNV = (PFNGLCOMPILECOMMANDLISTNVPROC)load("glCompileCommandListNV"); - glad_glCallCommandListNV = (PFNGLCALLCOMMANDLISTNVPROC)load("glCallCommandListNV"); -} -static void load_GL_EXT_vertex_weighting(GLADloadproc load) { - if(!GLAD_GL_EXT_vertex_weighting) return; - glad_glVertexWeightfEXT = (PFNGLVERTEXWEIGHTFEXTPROC)load("glVertexWeightfEXT"); - glad_glVertexWeightfvEXT = (PFNGLVERTEXWEIGHTFVEXTPROC)load("glVertexWeightfvEXT"); - glad_glVertexWeightPointerEXT = (PFNGLVERTEXWEIGHTPOINTEREXTPROC)load("glVertexWeightPointerEXT"); -} -static void load_GL_GREMEDY_string_marker(GLADloadproc load) { - if(!GLAD_GL_GREMEDY_string_marker) return; - glad_glStringMarkerGREMEDY = (PFNGLSTRINGMARKERGREMEDYPROC)load("glStringMarkerGREMEDY"); -} -static void load_GL_EXT_subtexture(GLADloadproc load) { - if(!GLAD_GL_EXT_subtexture) return; - glad_glTexSubImage1DEXT = (PFNGLTEXSUBIMAGE1DEXTPROC)load("glTexSubImage1DEXT"); - glad_glTexSubImage2DEXT = (PFNGLTEXSUBIMAGE2DEXTPROC)load("glTexSubImage2DEXT"); -} -static void load_GL_EXT_gpu_program_parameters(GLADloadproc load) { - if(!GLAD_GL_EXT_gpu_program_parameters) return; - glad_glProgramEnvParameters4fvEXT = (PFNGLPROGRAMENVPARAMETERS4FVEXTPROC)load("glProgramEnvParameters4fvEXT"); - glad_glProgramLocalParameters4fvEXT = (PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC)load("glProgramLocalParameters4fvEXT"); -} -static void load_GL_NV_evaluators(GLADloadproc load) { - if(!GLAD_GL_NV_evaluators) return; - glad_glMapControlPointsNV = (PFNGLMAPCONTROLPOINTSNVPROC)load("glMapControlPointsNV"); - glad_glMapParameterivNV = (PFNGLMAPPARAMETERIVNVPROC)load("glMapParameterivNV"); - glad_glMapParameterfvNV = (PFNGLMAPPARAMETERFVNVPROC)load("glMapParameterfvNV"); - glad_glGetMapControlPointsNV = (PFNGLGETMAPCONTROLPOINTSNVPROC)load("glGetMapControlPointsNV"); - glad_glGetMapParameterivNV = (PFNGLGETMAPPARAMETERIVNVPROC)load("glGetMapParameterivNV"); - glad_glGetMapParameterfvNV = (PFNGLGETMAPPARAMETERFVNVPROC)load("glGetMapParameterfvNV"); - glad_glGetMapAttribParameterivNV = (PFNGLGETMAPATTRIBPARAMETERIVNVPROC)load("glGetMapAttribParameterivNV"); - glad_glGetMapAttribParameterfvNV = (PFNGLGETMAPATTRIBPARAMETERFVNVPROC)load("glGetMapAttribParameterfvNV"); - glad_glEvalMapsNV = (PFNGLEVALMAPSNVPROC)load("glEvalMapsNV"); -} -static void load_GL_SGIS_texture_filter4(GLADloadproc load) { - if(!GLAD_GL_SGIS_texture_filter4) return; - glad_glGetTexFilterFuncSGIS = (PFNGLGETTEXFILTERFUNCSGISPROC)load("glGetTexFilterFuncSGIS"); - glad_glTexFilterFuncSGIS = (PFNGLTEXFILTERFUNCSGISPROC)load("glTexFilterFuncSGIS"); -} -static void load_GL_AMD_performance_monitor(GLADloadproc load) { - if(!GLAD_GL_AMD_performance_monitor) return; - glad_glGetPerfMonitorGroupsAMD = (PFNGLGETPERFMONITORGROUPSAMDPROC)load("glGetPerfMonitorGroupsAMD"); - glad_glGetPerfMonitorCountersAMD = (PFNGLGETPERFMONITORCOUNTERSAMDPROC)load("glGetPerfMonitorCountersAMD"); - glad_glGetPerfMonitorGroupStringAMD = (PFNGLGETPERFMONITORGROUPSTRINGAMDPROC)load("glGetPerfMonitorGroupStringAMD"); - glad_glGetPerfMonitorCounterStringAMD = (PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC)load("glGetPerfMonitorCounterStringAMD"); - glad_glGetPerfMonitorCounterInfoAMD = (PFNGLGETPERFMONITORCOUNTERINFOAMDPROC)load("glGetPerfMonitorCounterInfoAMD"); - glad_glGenPerfMonitorsAMD = (PFNGLGENPERFMONITORSAMDPROC)load("glGenPerfMonitorsAMD"); - glad_glDeletePerfMonitorsAMD = (PFNGLDELETEPERFMONITORSAMDPROC)load("glDeletePerfMonitorsAMD"); - glad_glSelectPerfMonitorCountersAMD = (PFNGLSELECTPERFMONITORCOUNTERSAMDPROC)load("glSelectPerfMonitorCountersAMD"); - glad_glBeginPerfMonitorAMD = (PFNGLBEGINPERFMONITORAMDPROC)load("glBeginPerfMonitorAMD"); - glad_glEndPerfMonitorAMD = (PFNGLENDPERFMONITORAMDPROC)load("glEndPerfMonitorAMD"); - glad_glGetPerfMonitorCounterDataAMD = (PFNGLGETPERFMONITORCOUNTERDATAAMDPROC)load("glGetPerfMonitorCounterDataAMD"); -} -static void load_GL_EXT_stencil_clear_tag(GLADloadproc load) { - if(!GLAD_GL_EXT_stencil_clear_tag) return; - glad_glStencilClearTagEXT = (PFNGLSTENCILCLEARTAGEXTPROC)load("glStencilClearTagEXT"); -} -static void load_GL_NV_present_video(GLADloadproc load) { - if(!GLAD_GL_NV_present_video) return; - glad_glPresentFrameKeyedNV = (PFNGLPRESENTFRAMEKEYEDNVPROC)load("glPresentFrameKeyedNV"); - glad_glPresentFrameDualFillNV = (PFNGLPRESENTFRAMEDUALFILLNVPROC)load("glPresentFrameDualFillNV"); - glad_glGetVideoivNV = (PFNGLGETVIDEOIVNVPROC)load("glGetVideoivNV"); - glad_glGetVideouivNV = (PFNGLGETVIDEOUIVNVPROC)load("glGetVideouivNV"); - glad_glGetVideoi64vNV = (PFNGLGETVIDEOI64VNVPROC)load("glGetVideoi64vNV"); - glad_glGetVideoui64vNV = (PFNGLGETVIDEOUI64VNVPROC)load("glGetVideoui64vNV"); -} -static void load_GL_SGIX_framezoom(GLADloadproc load) { - if(!GLAD_GL_SGIX_framezoom) return; - glad_glFrameZoomSGIX = (PFNGLFRAMEZOOMSGIXPROC)load("glFrameZoomSGIX"); -} -static void load_GL_ARB_draw_elements_base_vertex(GLADloadproc load) { - if(!GLAD_GL_ARB_draw_elements_base_vertex) return; - glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load("glDrawElementsBaseVertex"); - glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load("glDrawRangeElementsBaseVertex"); - glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load("glDrawElementsInstancedBaseVertex"); - glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load("glMultiDrawElementsBaseVertex"); -} -static void load_GL_NV_transform_feedback(GLADloadproc load) { - if(!GLAD_GL_NV_transform_feedback) return; - glad_glBeginTransformFeedbackNV = (PFNGLBEGINTRANSFORMFEEDBACKNVPROC)load("glBeginTransformFeedbackNV"); - glad_glEndTransformFeedbackNV = (PFNGLENDTRANSFORMFEEDBACKNVPROC)load("glEndTransformFeedbackNV"); - glad_glTransformFeedbackAttribsNV = (PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC)load("glTransformFeedbackAttribsNV"); - glad_glBindBufferRangeNV = (PFNGLBINDBUFFERRANGENVPROC)load("glBindBufferRangeNV"); - glad_glBindBufferOffsetNV = (PFNGLBINDBUFFEROFFSETNVPROC)load("glBindBufferOffsetNV"); - glad_glBindBufferBaseNV = (PFNGLBINDBUFFERBASENVPROC)load("glBindBufferBaseNV"); - glad_glTransformFeedbackVaryingsNV = (PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC)load("glTransformFeedbackVaryingsNV"); - glad_glActiveVaryingNV = (PFNGLACTIVEVARYINGNVPROC)load("glActiveVaryingNV"); - glad_glGetVaryingLocationNV = (PFNGLGETVARYINGLOCATIONNVPROC)load("glGetVaryingLocationNV"); - glad_glGetActiveVaryingNV = (PFNGLGETACTIVEVARYINGNVPROC)load("glGetActiveVaryingNV"); - glad_glGetTransformFeedbackVaryingNV = (PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC)load("glGetTransformFeedbackVaryingNV"); - glad_glTransformFeedbackStreamAttribsNV = (PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC)load("glTransformFeedbackStreamAttribsNV"); -} -static void load_GL_NV_fragment_program(GLADloadproc load) { - if(!GLAD_GL_NV_fragment_program) return; - glad_glProgramNamedParameter4fNV = (PFNGLPROGRAMNAMEDPARAMETER4FNVPROC)load("glProgramNamedParameter4fNV"); - glad_glProgramNamedParameter4fvNV = (PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC)load("glProgramNamedParameter4fvNV"); - glad_glProgramNamedParameter4dNV = (PFNGLPROGRAMNAMEDPARAMETER4DNVPROC)load("glProgramNamedParameter4dNV"); - glad_glProgramNamedParameter4dvNV = (PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC)load("glProgramNamedParameter4dvNV"); - glad_glGetProgramNamedParameterfvNV = (PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC)load("glGetProgramNamedParameterfvNV"); - glad_glGetProgramNamedParameterdvNV = (PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC)load("glGetProgramNamedParameterdvNV"); -} -static void load_GL_AMD_stencil_operation_extended(GLADloadproc load) { - if(!GLAD_GL_AMD_stencil_operation_extended) return; - glad_glStencilOpValueAMD = (PFNGLSTENCILOPVALUEAMDPROC)load("glStencilOpValueAMD"); -} -static void load_GL_ARB_instanced_arrays(GLADloadproc load) { - if(!GLAD_GL_ARB_instanced_arrays) return; - glad_glVertexAttribDivisorARB = (PFNGLVERTEXATTRIBDIVISORARBPROC)load("glVertexAttribDivisorARB"); -} -static void load_GL_EXT_polygon_offset(GLADloadproc load) { - if(!GLAD_GL_EXT_polygon_offset) return; - glad_glPolygonOffsetEXT = (PFNGLPOLYGONOFFSETEXTPROC)load("glPolygonOffsetEXT"); -} -static void load_GL_KHR_robustness(GLADloadproc load) { - if(!GLAD_GL_KHR_robustness) return; - glad_glGetGraphicsResetStatus = (PFNGLGETGRAPHICSRESETSTATUSPROC)load("glGetGraphicsResetStatus"); - glad_glReadnPixels = (PFNGLREADNPIXELSPROC)load("glReadnPixels"); - glad_glGetnUniformfv = (PFNGLGETNUNIFORMFVPROC)load("glGetnUniformfv"); - glad_glGetnUniformiv = (PFNGLGETNUNIFORMIVPROC)load("glGetnUniformiv"); - glad_glGetnUniformuiv = (PFNGLGETNUNIFORMUIVPROC)load("glGetnUniformuiv"); - glad_glGetGraphicsResetStatusKHR = (PFNGLGETGRAPHICSRESETSTATUSKHRPROC)load("glGetGraphicsResetStatusKHR"); - glad_glReadnPixelsKHR = (PFNGLREADNPIXELSKHRPROC)load("glReadnPixelsKHR"); - glad_glGetnUniformfvKHR = (PFNGLGETNUNIFORMFVKHRPROC)load("glGetnUniformfvKHR"); - glad_glGetnUniformivKHR = (PFNGLGETNUNIFORMIVKHRPROC)load("glGetnUniformivKHR"); - glad_glGetnUniformuivKHR = (PFNGLGETNUNIFORMUIVKHRPROC)load("glGetnUniformuivKHR"); -} -static void load_GL_AMD_sparse_texture(GLADloadproc load) { - if(!GLAD_GL_AMD_sparse_texture) return; - glad_glTexStorageSparseAMD = (PFNGLTEXSTORAGESPARSEAMDPROC)load("glTexStorageSparseAMD"); - glad_glTextureStorageSparseAMD = (PFNGLTEXTURESTORAGESPARSEAMDPROC)load("glTextureStorageSparseAMD"); -} -static void load_GL_ARB_clip_control(GLADloadproc load) { - if(!GLAD_GL_ARB_clip_control) return; - glad_glClipControl = (PFNGLCLIPCONTROLPROC)load("glClipControl"); -} -static void load_GL_NV_fragment_coverage_to_color(GLADloadproc load) { - if(!GLAD_GL_NV_fragment_coverage_to_color) return; - glad_glFragmentCoverageColorNV = (PFNGLFRAGMENTCOVERAGECOLORNVPROC)load("glFragmentCoverageColorNV"); -} -static void load_GL_NV_fence(GLADloadproc load) { - if(!GLAD_GL_NV_fence) return; - glad_glDeleteFencesNV = (PFNGLDELETEFENCESNVPROC)load("glDeleteFencesNV"); - glad_glGenFencesNV = (PFNGLGENFENCESNVPROC)load("glGenFencesNV"); - glad_glIsFenceNV = (PFNGLISFENCENVPROC)load("glIsFenceNV"); - glad_glTestFenceNV = (PFNGLTESTFENCENVPROC)load("glTestFenceNV"); - glad_glGetFenceivNV = (PFNGLGETFENCEIVNVPROC)load("glGetFenceivNV"); - glad_glFinishFenceNV = (PFNGLFINISHFENCENVPROC)load("glFinishFenceNV"); - glad_glSetFenceNV = (PFNGLSETFENCENVPROC)load("glSetFenceNV"); -} -static void load_GL_ARB_texture_buffer_range(GLADloadproc load) { - if(!GLAD_GL_ARB_texture_buffer_range) return; - glad_glTexBufferRange = (PFNGLTEXBUFFERRANGEPROC)load("glTexBufferRange"); -} -static void load_GL_SUN_mesh_array(GLADloadproc load) { - if(!GLAD_GL_SUN_mesh_array) return; - glad_glDrawMeshArraysSUN = (PFNGLDRAWMESHARRAYSSUNPROC)load("glDrawMeshArraysSUN"); -} -static void load_GL_ARB_vertex_attrib_binding(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_attrib_binding) return; - glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC)load("glBindVertexBuffer"); - glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC)load("glVertexAttribFormat"); - glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC)load("glVertexAttribIFormat"); - glad_glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC)load("glVertexAttribLFormat"); - glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC)load("glVertexAttribBinding"); - glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC)load("glVertexBindingDivisor"); -} -static void load_GL_ARB_framebuffer_no_attachments(GLADloadproc load) { - if(!GLAD_GL_ARB_framebuffer_no_attachments) return; - glad_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC)load("glFramebufferParameteri"); - glad_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC)load("glGetFramebufferParameteriv"); -} -static void load_GL_ARB_cl_event(GLADloadproc load) { - if(!GLAD_GL_ARB_cl_event) return; - glad_glCreateSyncFromCLeventARB = (PFNGLCREATESYNCFROMCLEVENTARBPROC)load("glCreateSyncFromCLeventARB"); -} -static void load_GL_OES_single_precision(GLADloadproc load) { - if(!GLAD_GL_OES_single_precision) return; - glad_glClearDepthfOES = (PFNGLCLEARDEPTHFOESPROC)load("glClearDepthfOES"); - glad_glClipPlanefOES = (PFNGLCLIPPLANEFOESPROC)load("glClipPlanefOES"); - glad_glDepthRangefOES = (PFNGLDEPTHRANGEFOESPROC)load("glDepthRangefOES"); - glad_glFrustumfOES = (PFNGLFRUSTUMFOESPROC)load("glFrustumfOES"); - glad_glGetClipPlanefOES = (PFNGLGETCLIPPLANEFOESPROC)load("glGetClipPlanefOES"); - glad_glOrthofOES = (PFNGLORTHOFOESPROC)load("glOrthofOES"); -} -static void load_GL_NV_primitive_restart(GLADloadproc load) { - if(!GLAD_GL_NV_primitive_restart) return; - glad_glPrimitiveRestartNV = (PFNGLPRIMITIVERESTARTNVPROC)load("glPrimitiveRestartNV"); - glad_glPrimitiveRestartIndexNV = (PFNGLPRIMITIVERESTARTINDEXNVPROC)load("glPrimitiveRestartIndexNV"); -} -static void load_GL_SUN_global_alpha(GLADloadproc load) { - if(!GLAD_GL_SUN_global_alpha) return; - glad_glGlobalAlphaFactorbSUN = (PFNGLGLOBALALPHAFACTORBSUNPROC)load("glGlobalAlphaFactorbSUN"); - glad_glGlobalAlphaFactorsSUN = (PFNGLGLOBALALPHAFACTORSSUNPROC)load("glGlobalAlphaFactorsSUN"); - glad_glGlobalAlphaFactoriSUN = (PFNGLGLOBALALPHAFACTORISUNPROC)load("glGlobalAlphaFactoriSUN"); - glad_glGlobalAlphaFactorfSUN = (PFNGLGLOBALALPHAFACTORFSUNPROC)load("glGlobalAlphaFactorfSUN"); - glad_glGlobalAlphaFactordSUN = (PFNGLGLOBALALPHAFACTORDSUNPROC)load("glGlobalAlphaFactordSUN"); - glad_glGlobalAlphaFactorubSUN = (PFNGLGLOBALALPHAFACTORUBSUNPROC)load("glGlobalAlphaFactorubSUN"); - glad_glGlobalAlphaFactorusSUN = (PFNGLGLOBALALPHAFACTORUSSUNPROC)load("glGlobalAlphaFactorusSUN"); - glad_glGlobalAlphaFactoruiSUN = (PFNGLGLOBALALPHAFACTORUISUNPROC)load("glGlobalAlphaFactoruiSUN"); -} -static void load_GL_EXT_texture_object(GLADloadproc load) { - if(!GLAD_GL_EXT_texture_object) return; - glad_glAreTexturesResidentEXT = (PFNGLARETEXTURESRESIDENTEXTPROC)load("glAreTexturesResidentEXT"); - glad_glBindTextureEXT = (PFNGLBINDTEXTUREEXTPROC)load("glBindTextureEXT"); - glad_glDeleteTexturesEXT = (PFNGLDELETETEXTURESEXTPROC)load("glDeleteTexturesEXT"); - glad_glGenTexturesEXT = (PFNGLGENTEXTURESEXTPROC)load("glGenTexturesEXT"); - glad_glIsTextureEXT = (PFNGLISTEXTUREEXTPROC)load("glIsTextureEXT"); - glad_glPrioritizeTexturesEXT = (PFNGLPRIORITIZETEXTURESEXTPROC)load("glPrioritizeTexturesEXT"); -} -static void load_GL_AMD_name_gen_delete(GLADloadproc load) { - if(!GLAD_GL_AMD_name_gen_delete) return; - glad_glGenNamesAMD = (PFNGLGENNAMESAMDPROC)load("glGenNamesAMD"); - glad_glDeleteNamesAMD = (PFNGLDELETENAMESAMDPROC)load("glDeleteNamesAMD"); - glad_glIsNameAMD = (PFNGLISNAMEAMDPROC)load("glIsNameAMD"); -} -static void load_GL_ARB_buffer_storage(GLADloadproc load) { - if(!GLAD_GL_ARB_buffer_storage) return; - glad_glBufferStorage = (PFNGLBUFFERSTORAGEPROC)load("glBufferStorage"); -} -static void load_GL_APPLE_vertex_program_evaluators(GLADloadproc load) { - if(!GLAD_GL_APPLE_vertex_program_evaluators) return; - glad_glEnableVertexAttribAPPLE = (PFNGLENABLEVERTEXATTRIBAPPLEPROC)load("glEnableVertexAttribAPPLE"); - glad_glDisableVertexAttribAPPLE = (PFNGLDISABLEVERTEXATTRIBAPPLEPROC)load("glDisableVertexAttribAPPLE"); - glad_glIsVertexAttribEnabledAPPLE = (PFNGLISVERTEXATTRIBENABLEDAPPLEPROC)load("glIsVertexAttribEnabledAPPLE"); - glad_glMapVertexAttrib1dAPPLE = (PFNGLMAPVERTEXATTRIB1DAPPLEPROC)load("glMapVertexAttrib1dAPPLE"); - glad_glMapVertexAttrib1fAPPLE = (PFNGLMAPVERTEXATTRIB1FAPPLEPROC)load("glMapVertexAttrib1fAPPLE"); - glad_glMapVertexAttrib2dAPPLE = (PFNGLMAPVERTEXATTRIB2DAPPLEPROC)load("glMapVertexAttrib2dAPPLE"); - glad_glMapVertexAttrib2fAPPLE = (PFNGLMAPVERTEXATTRIB2FAPPLEPROC)load("glMapVertexAttrib2fAPPLE"); -} -static void load_GL_ARB_multi_bind(GLADloadproc load) { - if(!GLAD_GL_ARB_multi_bind) return; - glad_glBindBuffersBase = (PFNGLBINDBUFFERSBASEPROC)load("glBindBuffersBase"); - glad_glBindBuffersRange = (PFNGLBINDBUFFERSRANGEPROC)load("glBindBuffersRange"); - glad_glBindTextures = (PFNGLBINDTEXTURESPROC)load("glBindTextures"); - glad_glBindSamplers = (PFNGLBINDSAMPLERSPROC)load("glBindSamplers"); - glad_glBindImageTextures = (PFNGLBINDIMAGETEXTURESPROC)load("glBindImageTextures"); - glad_glBindVertexBuffers = (PFNGLBINDVERTEXBUFFERSPROC)load("glBindVertexBuffers"); -} -static void load_GL_SGIX_list_priority(GLADloadproc load) { - if(!GLAD_GL_SGIX_list_priority) return; - glad_glGetListParameterfvSGIX = (PFNGLGETLISTPARAMETERFVSGIXPROC)load("glGetListParameterfvSGIX"); - glad_glGetListParameterivSGIX = (PFNGLGETLISTPARAMETERIVSGIXPROC)load("glGetListParameterivSGIX"); - glad_glListParameterfSGIX = (PFNGLLISTPARAMETERFSGIXPROC)load("glListParameterfSGIX"); - glad_glListParameterfvSGIX = (PFNGLLISTPARAMETERFVSGIXPROC)load("glListParameterfvSGIX"); - glad_glListParameteriSGIX = (PFNGLLISTPARAMETERISGIXPROC)load("glListParameteriSGIX"); - glad_glListParameterivSGIX = (PFNGLLISTPARAMETERIVSGIXPROC)load("glListParameterivSGIX"); -} -static void load_GL_NV_vertex_buffer_unified_memory(GLADloadproc load) { - if(!GLAD_GL_NV_vertex_buffer_unified_memory) return; - glad_glBufferAddressRangeNV = (PFNGLBUFFERADDRESSRANGENVPROC)load("glBufferAddressRangeNV"); - glad_glVertexFormatNV = (PFNGLVERTEXFORMATNVPROC)load("glVertexFormatNV"); - glad_glNormalFormatNV = (PFNGLNORMALFORMATNVPROC)load("glNormalFormatNV"); - glad_glColorFormatNV = (PFNGLCOLORFORMATNVPROC)load("glColorFormatNV"); - glad_glIndexFormatNV = (PFNGLINDEXFORMATNVPROC)load("glIndexFormatNV"); - glad_glTexCoordFormatNV = (PFNGLTEXCOORDFORMATNVPROC)load("glTexCoordFormatNV"); - glad_glEdgeFlagFormatNV = (PFNGLEDGEFLAGFORMATNVPROC)load("glEdgeFlagFormatNV"); - glad_glSecondaryColorFormatNV = (PFNGLSECONDARYCOLORFORMATNVPROC)load("glSecondaryColorFormatNV"); - glad_glFogCoordFormatNV = (PFNGLFOGCOORDFORMATNVPROC)load("glFogCoordFormatNV"); - glad_glVertexAttribFormatNV = (PFNGLVERTEXATTRIBFORMATNVPROC)load("glVertexAttribFormatNV"); - glad_glVertexAttribIFormatNV = (PFNGLVERTEXATTRIBIFORMATNVPROC)load("glVertexAttribIFormatNV"); - glad_glGetIntegerui64i_vNV = (PFNGLGETINTEGERUI64I_VNVPROC)load("glGetIntegerui64i_vNV"); -} -static void load_GL_NV_blend_equation_advanced(GLADloadproc load) { - if(!GLAD_GL_NV_blend_equation_advanced) return; - glad_glBlendParameteriNV = (PFNGLBLENDPARAMETERINVPROC)load("glBlendParameteriNV"); - glad_glBlendBarrierNV = (PFNGLBLENDBARRIERNVPROC)load("glBlendBarrierNV"); -} -static void load_GL_SGIS_sharpen_texture(GLADloadproc load) { - if(!GLAD_GL_SGIS_sharpen_texture) return; - glad_glSharpenTexFuncSGIS = (PFNGLSHARPENTEXFUNCSGISPROC)load("glSharpenTexFuncSGIS"); - glad_glGetSharpenTexFuncSGIS = (PFNGLGETSHARPENTEXFUNCSGISPROC)load("glGetSharpenTexFuncSGIS"); -} -static void load_GL_ARB_vertex_program(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_program) return; - glad_glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC)load("glVertexAttrib1dARB"); - glad_glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC)load("glVertexAttrib1dvARB"); - glad_glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC)load("glVertexAttrib1fARB"); - glad_glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC)load("glVertexAttrib1fvARB"); - glad_glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC)load("glVertexAttrib1sARB"); - glad_glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC)load("glVertexAttrib1svARB"); - glad_glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC)load("glVertexAttrib2dARB"); - glad_glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC)load("glVertexAttrib2dvARB"); - glad_glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC)load("glVertexAttrib2fARB"); - glad_glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC)load("glVertexAttrib2fvARB"); - glad_glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC)load("glVertexAttrib2sARB"); - glad_glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC)load("glVertexAttrib2svARB"); - glad_glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC)load("glVertexAttrib3dARB"); - glad_glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC)load("glVertexAttrib3dvARB"); - glad_glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC)load("glVertexAttrib3fARB"); - glad_glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC)load("glVertexAttrib3fvARB"); - glad_glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC)load("glVertexAttrib3sARB"); - glad_glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC)load("glVertexAttrib3svARB"); - glad_glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC)load("glVertexAttrib4NbvARB"); - glad_glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC)load("glVertexAttrib4NivARB"); - glad_glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC)load("glVertexAttrib4NsvARB"); - glad_glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC)load("glVertexAttrib4NubARB"); - glad_glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC)load("glVertexAttrib4NubvARB"); - glad_glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC)load("glVertexAttrib4NuivARB"); - glad_glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC)load("glVertexAttrib4NusvARB"); - glad_glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC)load("glVertexAttrib4bvARB"); - glad_glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC)load("glVertexAttrib4dARB"); - glad_glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC)load("glVertexAttrib4dvARB"); - glad_glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC)load("glVertexAttrib4fARB"); - glad_glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC)load("glVertexAttrib4fvARB"); - glad_glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC)load("glVertexAttrib4ivARB"); - glad_glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC)load("glVertexAttrib4sARB"); - glad_glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC)load("glVertexAttrib4svARB"); - glad_glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC)load("glVertexAttrib4ubvARB"); - glad_glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC)load("glVertexAttrib4uivARB"); - glad_glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC)load("glVertexAttrib4usvARB"); - glad_glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC)load("glVertexAttribPointerARB"); - glad_glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC)load("glEnableVertexAttribArrayARB"); - glad_glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)load("glDisableVertexAttribArrayARB"); - glad_glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC)load("glProgramStringARB"); - glad_glBindProgramARB = (PFNGLBINDPROGRAMARBPROC)load("glBindProgramARB"); - glad_glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC)load("glDeleteProgramsARB"); - glad_glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC)load("glGenProgramsARB"); - glad_glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC)load("glProgramEnvParameter4dARB"); - glad_glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC)load("glProgramEnvParameter4dvARB"); - glad_glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC)load("glProgramEnvParameter4fARB"); - glad_glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC)load("glProgramEnvParameter4fvARB"); - glad_glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC)load("glProgramLocalParameter4dARB"); - glad_glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)load("glProgramLocalParameter4dvARB"); - glad_glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC)load("glProgramLocalParameter4fARB"); - glad_glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)load("glProgramLocalParameter4fvARB"); - glad_glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC)load("glGetProgramEnvParameterdvARB"); - glad_glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC)load("glGetProgramEnvParameterfvARB"); - glad_glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)load("glGetProgramLocalParameterdvARB"); - glad_glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)load("glGetProgramLocalParameterfvARB"); - glad_glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC)load("glGetProgramivARB"); - glad_glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC)load("glGetProgramStringARB"); - glad_glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC)load("glGetVertexAttribdvARB"); - glad_glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC)load("glGetVertexAttribfvARB"); - glad_glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC)load("glGetVertexAttribivARB"); - glad_glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC)load("glGetVertexAttribPointervARB"); - glad_glIsProgramARB = (PFNGLISPROGRAMARBPROC)load("glIsProgramARB"); -} -static void load_GL_ARB_vertex_buffer_object(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_buffer_object) return; - glad_glBindBufferARB = (PFNGLBINDBUFFERARBPROC)load("glBindBufferARB"); - glad_glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC)load("glDeleteBuffersARB"); - glad_glGenBuffersARB = (PFNGLGENBUFFERSARBPROC)load("glGenBuffersARB"); - glad_glIsBufferARB = (PFNGLISBUFFERARBPROC)load("glIsBufferARB"); - glad_glBufferDataARB = (PFNGLBUFFERDATAARBPROC)load("glBufferDataARB"); - glad_glBufferSubDataARB = (PFNGLBUFFERSUBDATAARBPROC)load("glBufferSubDataARB"); - glad_glGetBufferSubDataARB = (PFNGLGETBUFFERSUBDATAARBPROC)load("glGetBufferSubDataARB"); - glad_glMapBufferARB = (PFNGLMAPBUFFERARBPROC)load("glMapBufferARB"); - glad_glUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC)load("glUnmapBufferARB"); - glad_glGetBufferParameterivARB = (PFNGLGETBUFFERPARAMETERIVARBPROC)load("glGetBufferParameterivARB"); - glad_glGetBufferPointervARB = (PFNGLGETBUFFERPOINTERVARBPROC)load("glGetBufferPointervARB"); -} -static void load_GL_NV_vertex_array_range(GLADloadproc load) { - if(!GLAD_GL_NV_vertex_array_range) return; - glad_glFlushVertexArrayRangeNV = (PFNGLFLUSHVERTEXARRAYRANGENVPROC)load("glFlushVertexArrayRangeNV"); - glad_glVertexArrayRangeNV = (PFNGLVERTEXARRAYRANGENVPROC)load("glVertexArrayRangeNV"); -} -static void load_GL_SGIX_fragment_lighting(GLADloadproc load) { - if(!GLAD_GL_SGIX_fragment_lighting) return; - glad_glFragmentColorMaterialSGIX = (PFNGLFRAGMENTCOLORMATERIALSGIXPROC)load("glFragmentColorMaterialSGIX"); - glad_glFragmentLightfSGIX = (PFNGLFRAGMENTLIGHTFSGIXPROC)load("glFragmentLightfSGIX"); - glad_glFragmentLightfvSGIX = (PFNGLFRAGMENTLIGHTFVSGIXPROC)load("glFragmentLightfvSGIX"); - glad_glFragmentLightiSGIX = (PFNGLFRAGMENTLIGHTISGIXPROC)load("glFragmentLightiSGIX"); - glad_glFragmentLightivSGIX = (PFNGLFRAGMENTLIGHTIVSGIXPROC)load("glFragmentLightivSGIX"); - glad_glFragmentLightModelfSGIX = (PFNGLFRAGMENTLIGHTMODELFSGIXPROC)load("glFragmentLightModelfSGIX"); - glad_glFragmentLightModelfvSGIX = (PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)load("glFragmentLightModelfvSGIX"); - glad_glFragmentLightModeliSGIX = (PFNGLFRAGMENTLIGHTMODELISGIXPROC)load("glFragmentLightModeliSGIX"); - glad_glFragmentLightModelivSGIX = (PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)load("glFragmentLightModelivSGIX"); - glad_glFragmentMaterialfSGIX = (PFNGLFRAGMENTMATERIALFSGIXPROC)load("glFragmentMaterialfSGIX"); - glad_glFragmentMaterialfvSGIX = (PFNGLFRAGMENTMATERIALFVSGIXPROC)load("glFragmentMaterialfvSGIX"); - glad_glFragmentMaterialiSGIX = (PFNGLFRAGMENTMATERIALISGIXPROC)load("glFragmentMaterialiSGIX"); - glad_glFragmentMaterialivSGIX = (PFNGLFRAGMENTMATERIALIVSGIXPROC)load("glFragmentMaterialivSGIX"); - glad_glGetFragmentLightfvSGIX = (PFNGLGETFRAGMENTLIGHTFVSGIXPROC)load("glGetFragmentLightfvSGIX"); - glad_glGetFragmentLightivSGIX = (PFNGLGETFRAGMENTLIGHTIVSGIXPROC)load("glGetFragmentLightivSGIX"); - glad_glGetFragmentMaterialfvSGIX = (PFNGLGETFRAGMENTMATERIALFVSGIXPROC)load("glGetFragmentMaterialfvSGIX"); - glad_glGetFragmentMaterialivSGIX = (PFNGLGETFRAGMENTMATERIALIVSGIXPROC)load("glGetFragmentMaterialivSGIX"); - glad_glLightEnviSGIX = (PFNGLLIGHTENVISGIXPROC)load("glLightEnviSGIX"); -} -static void load_GL_NV_framebuffer_multisample_coverage(GLADloadproc load) { - if(!GLAD_GL_NV_framebuffer_multisample_coverage) return; - glad_glRenderbufferStorageMultisampleCoverageNV = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC)load("glRenderbufferStorageMultisampleCoverageNV"); -} -static void load_GL_EXT_timer_query(GLADloadproc load) { - if(!GLAD_GL_EXT_timer_query) return; - glad_glGetQueryObjecti64vEXT = (PFNGLGETQUERYOBJECTI64VEXTPROC)load("glGetQueryObjecti64vEXT"); - glad_glGetQueryObjectui64vEXT = (PFNGLGETQUERYOBJECTUI64VEXTPROC)load("glGetQueryObjectui64vEXT"); -} -static void load_GL_NV_bindless_texture(GLADloadproc load) { - if(!GLAD_GL_NV_bindless_texture) return; - glad_glGetTextureHandleNV = (PFNGLGETTEXTUREHANDLENVPROC)load("glGetTextureHandleNV"); - glad_glGetTextureSamplerHandleNV = (PFNGLGETTEXTURESAMPLERHANDLENVPROC)load("glGetTextureSamplerHandleNV"); - glad_glMakeTextureHandleResidentNV = (PFNGLMAKETEXTUREHANDLERESIDENTNVPROC)load("glMakeTextureHandleResidentNV"); - glad_glMakeTextureHandleNonResidentNV = (PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC)load("glMakeTextureHandleNonResidentNV"); - glad_glGetImageHandleNV = (PFNGLGETIMAGEHANDLENVPROC)load("glGetImageHandleNV"); - glad_glMakeImageHandleResidentNV = (PFNGLMAKEIMAGEHANDLERESIDENTNVPROC)load("glMakeImageHandleResidentNV"); - glad_glMakeImageHandleNonResidentNV = (PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC)load("glMakeImageHandleNonResidentNV"); - glad_glUniformHandleui64NV = (PFNGLUNIFORMHANDLEUI64NVPROC)load("glUniformHandleui64NV"); - glad_glUniformHandleui64vNV = (PFNGLUNIFORMHANDLEUI64VNVPROC)load("glUniformHandleui64vNV"); - glad_glProgramUniformHandleui64NV = (PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC)load("glProgramUniformHandleui64NV"); - glad_glProgramUniformHandleui64vNV = (PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC)load("glProgramUniformHandleui64vNV"); - glad_glIsTextureHandleResidentNV = (PFNGLISTEXTUREHANDLERESIDENTNVPROC)load("glIsTextureHandleResidentNV"); - glad_glIsImageHandleResidentNV = (PFNGLISIMAGEHANDLERESIDENTNVPROC)load("glIsImageHandleResidentNV"); -} -static void load_GL_KHR_debug(GLADloadproc load) { - if(!GLAD_GL_KHR_debug) return; - glad_glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC)load("glDebugMessageControl"); - glad_glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC)load("glDebugMessageInsert"); - glad_glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC)load("glDebugMessageCallback"); - glad_glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC)load("glGetDebugMessageLog"); - glad_glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC)load("glPushDebugGroup"); - glad_glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC)load("glPopDebugGroup"); - glad_glObjectLabel = (PFNGLOBJECTLABELPROC)load("glObjectLabel"); - glad_glGetObjectLabel = (PFNGLGETOBJECTLABELPROC)load("glGetObjectLabel"); - glad_glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC)load("glObjectPtrLabel"); - glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC)load("glGetObjectPtrLabel"); - glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv"); - glad_glDebugMessageControlKHR = (PFNGLDEBUGMESSAGECONTROLKHRPROC)load("glDebugMessageControlKHR"); - glad_glDebugMessageInsertKHR = (PFNGLDEBUGMESSAGEINSERTKHRPROC)load("glDebugMessageInsertKHR"); - glad_glDebugMessageCallbackKHR = (PFNGLDEBUGMESSAGECALLBACKKHRPROC)load("glDebugMessageCallbackKHR"); - glad_glGetDebugMessageLogKHR = (PFNGLGETDEBUGMESSAGELOGKHRPROC)load("glGetDebugMessageLogKHR"); - glad_glPushDebugGroupKHR = (PFNGLPUSHDEBUGGROUPKHRPROC)load("glPushDebugGroupKHR"); - glad_glPopDebugGroupKHR = (PFNGLPOPDEBUGGROUPKHRPROC)load("glPopDebugGroupKHR"); - glad_glObjectLabelKHR = (PFNGLOBJECTLABELKHRPROC)load("glObjectLabelKHR"); - glad_glGetObjectLabelKHR = (PFNGLGETOBJECTLABELKHRPROC)load("glGetObjectLabelKHR"); - glad_glObjectPtrLabelKHR = (PFNGLOBJECTPTRLABELKHRPROC)load("glObjectPtrLabelKHR"); - glad_glGetObjectPtrLabelKHR = (PFNGLGETOBJECTPTRLABELKHRPROC)load("glGetObjectPtrLabelKHR"); - glad_glGetPointervKHR = (PFNGLGETPOINTERVKHRPROC)load("glGetPointervKHR"); -} -static void load_GL_ATI_vertex_attrib_array_object(GLADloadproc load) { - if(!GLAD_GL_ATI_vertex_attrib_array_object) return; - glad_glVertexAttribArrayObjectATI = (PFNGLVERTEXATTRIBARRAYOBJECTATIPROC)load("glVertexAttribArrayObjectATI"); - glad_glGetVertexAttribArrayObjectfvATI = (PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC)load("glGetVertexAttribArrayObjectfvATI"); - glad_glGetVertexAttribArrayObjectivATI = (PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC)load("glGetVertexAttribArrayObjectivATI"); -} -static void load_GL_EXT_geometry_shader4(GLADloadproc load) { - if(!GLAD_GL_EXT_geometry_shader4) return; - glad_glProgramParameteriEXT = (PFNGLPROGRAMPARAMETERIEXTPROC)load("glProgramParameteriEXT"); -} -static void load_GL_EXT_bindable_uniform(GLADloadproc load) { - if(!GLAD_GL_EXT_bindable_uniform) return; - glad_glUniformBufferEXT = (PFNGLUNIFORMBUFFEREXTPROC)load("glUniformBufferEXT"); - glad_glGetUniformBufferSizeEXT = (PFNGLGETUNIFORMBUFFERSIZEEXTPROC)load("glGetUniformBufferSizeEXT"); - glad_glGetUniformOffsetEXT = (PFNGLGETUNIFORMOFFSETEXTPROC)load("glGetUniformOffsetEXT"); -} -static void load_GL_KHR_blend_equation_advanced(GLADloadproc load) { - if(!GLAD_GL_KHR_blend_equation_advanced) return; - glad_glBlendBarrierKHR = (PFNGLBLENDBARRIERKHRPROC)load("glBlendBarrierKHR"); -} -static void load_GL_ATI_element_array(GLADloadproc load) { - if(!GLAD_GL_ATI_element_array) return; - glad_glElementPointerATI = (PFNGLELEMENTPOINTERATIPROC)load("glElementPointerATI"); - glad_glDrawElementArrayATI = (PFNGLDRAWELEMENTARRAYATIPROC)load("glDrawElementArrayATI"); - glad_glDrawRangeElementArrayATI = (PFNGLDRAWRANGEELEMENTARRAYATIPROC)load("glDrawRangeElementArrayATI"); -} -static void load_GL_SGIX_reference_plane(GLADloadproc load) { - if(!GLAD_GL_SGIX_reference_plane) return; - glad_glReferencePlaneSGIX = (PFNGLREFERENCEPLANESGIXPROC)load("glReferencePlaneSGIX"); -} -static void load_GL_EXT_stencil_two_side(GLADloadproc load) { - if(!GLAD_GL_EXT_stencil_two_side) return; - glad_glActiveStencilFaceEXT = (PFNGLACTIVESTENCILFACEEXTPROC)load("glActiveStencilFaceEXT"); -} -static void load_GL_NV_explicit_multisample(GLADloadproc load) { - if(!GLAD_GL_NV_explicit_multisample) return; - glad_glGetMultisamplefvNV = (PFNGLGETMULTISAMPLEFVNVPROC)load("glGetMultisamplefvNV"); - glad_glSampleMaskIndexedNV = (PFNGLSAMPLEMASKINDEXEDNVPROC)load("glSampleMaskIndexedNV"); - glad_glTexRenderbufferNV = (PFNGLTEXRENDERBUFFERNVPROC)load("glTexRenderbufferNV"); -} -static void load_GL_IBM_static_data(GLADloadproc load) { - if(!GLAD_GL_IBM_static_data) return; - glad_glFlushStaticDataIBM = (PFNGLFLUSHSTATICDATAIBMPROC)load("glFlushStaticDataIBM"); -} -static void load_GL_EXT_texture_perturb_normal(GLADloadproc load) { - if(!GLAD_GL_EXT_texture_perturb_normal) return; - glad_glTextureNormalEXT = (PFNGLTEXTURENORMALEXTPROC)load("glTextureNormalEXT"); -} -static void load_GL_EXT_point_parameters(GLADloadproc load) { - if(!GLAD_GL_EXT_point_parameters) return; - glad_glPointParameterfEXT = (PFNGLPOINTPARAMETERFEXTPROC)load("glPointParameterfEXT"); - glad_glPointParameterfvEXT = (PFNGLPOINTPARAMETERFVEXTPROC)load("glPointParameterfvEXT"); -} -static void load_GL_PGI_misc_hints(GLADloadproc load) { - if(!GLAD_GL_PGI_misc_hints) return; - glad_glHintPGI = (PFNGLHINTPGIPROC)load("glHintPGI"); -} -static void load_GL_ARB_vertex_shader(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_shader) return; - glad_glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC)load("glVertexAttrib1fARB"); - glad_glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC)load("glVertexAttrib1sARB"); - glad_glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC)load("glVertexAttrib1dARB"); - glad_glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC)load("glVertexAttrib2fARB"); - glad_glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC)load("glVertexAttrib2sARB"); - glad_glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC)load("glVertexAttrib2dARB"); - glad_glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC)load("glVertexAttrib3fARB"); - glad_glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC)load("glVertexAttrib3sARB"); - glad_glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC)load("glVertexAttrib3dARB"); - glad_glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC)load("glVertexAttrib4fARB"); - glad_glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC)load("glVertexAttrib4sARB"); - glad_glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC)load("glVertexAttrib4dARB"); - glad_glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC)load("glVertexAttrib4NubARB"); - glad_glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC)load("glVertexAttrib1fvARB"); - glad_glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC)load("glVertexAttrib1svARB"); - glad_glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC)load("glVertexAttrib1dvARB"); - glad_glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC)load("glVertexAttrib2fvARB"); - glad_glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC)load("glVertexAttrib2svARB"); - glad_glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC)load("glVertexAttrib2dvARB"); - glad_glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC)load("glVertexAttrib3fvARB"); - glad_glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC)load("glVertexAttrib3svARB"); - glad_glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC)load("glVertexAttrib3dvARB"); - glad_glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC)load("glVertexAttrib4fvARB"); - glad_glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC)load("glVertexAttrib4svARB"); - glad_glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC)load("glVertexAttrib4dvARB"); - glad_glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC)load("glVertexAttrib4ivARB"); - glad_glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC)load("glVertexAttrib4bvARB"); - glad_glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC)load("glVertexAttrib4ubvARB"); - glad_glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC)load("glVertexAttrib4usvARB"); - glad_glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC)load("glVertexAttrib4uivARB"); - glad_glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC)load("glVertexAttrib4NbvARB"); - glad_glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC)load("glVertexAttrib4NsvARB"); - glad_glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC)load("glVertexAttrib4NivARB"); - glad_glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC)load("glVertexAttrib4NubvARB"); - glad_glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC)load("glVertexAttrib4NusvARB"); - glad_glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC)load("glVertexAttrib4NuivARB"); - glad_glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC)load("glVertexAttribPointerARB"); - glad_glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC)load("glEnableVertexAttribArrayARB"); - glad_glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)load("glDisableVertexAttribArrayARB"); - glad_glBindAttribLocationARB = (PFNGLBINDATTRIBLOCATIONARBPROC)load("glBindAttribLocationARB"); - glad_glGetActiveAttribARB = (PFNGLGETACTIVEATTRIBARBPROC)load("glGetActiveAttribARB"); - glad_glGetAttribLocationARB = (PFNGLGETATTRIBLOCATIONARBPROC)load("glGetAttribLocationARB"); - glad_glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC)load("glGetVertexAttribdvARB"); - glad_glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC)load("glGetVertexAttribfvARB"); - glad_glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC)load("glGetVertexAttribivARB"); - glad_glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC)load("glGetVertexAttribPointervARB"); -} -static void load_GL_ARB_tessellation_shader(GLADloadproc load) { - if(!GLAD_GL_ARB_tessellation_shader) return; - glad_glPatchParameteri = (PFNGLPATCHPARAMETERIPROC)load("glPatchParameteri"); - glad_glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC)load("glPatchParameterfv"); -} -static void load_GL_EXT_draw_buffers2(GLADloadproc load) { - if(!GLAD_GL_EXT_draw_buffers2) return; - glad_glColorMaskIndexedEXT = (PFNGLCOLORMASKINDEXEDEXTPROC)load("glColorMaskIndexedEXT"); - glad_glGetBooleanIndexedvEXT = (PFNGLGETBOOLEANINDEXEDVEXTPROC)load("glGetBooleanIndexedvEXT"); - glad_glGetIntegerIndexedvEXT = (PFNGLGETINTEGERINDEXEDVEXTPROC)load("glGetIntegerIndexedvEXT"); - glad_glEnableIndexedEXT = (PFNGLENABLEINDEXEDEXTPROC)load("glEnableIndexedEXT"); - glad_glDisableIndexedEXT = (PFNGLDISABLEINDEXEDEXTPROC)load("glDisableIndexedEXT"); - glad_glIsEnabledIndexedEXT = (PFNGLISENABLEDINDEXEDEXTPROC)load("glIsEnabledIndexedEXT"); -} -static void load_GL_ARB_vertex_attrib_64bit(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_attrib_64bit) return; - glad_glVertexAttribL1d = (PFNGLVERTEXATTRIBL1DPROC)load("glVertexAttribL1d"); - glad_glVertexAttribL2d = (PFNGLVERTEXATTRIBL2DPROC)load("glVertexAttribL2d"); - glad_glVertexAttribL3d = (PFNGLVERTEXATTRIBL3DPROC)load("glVertexAttribL3d"); - glad_glVertexAttribL4d = (PFNGLVERTEXATTRIBL4DPROC)load("glVertexAttribL4d"); - glad_glVertexAttribL1dv = (PFNGLVERTEXATTRIBL1DVPROC)load("glVertexAttribL1dv"); - glad_glVertexAttribL2dv = (PFNGLVERTEXATTRIBL2DVPROC)load("glVertexAttribL2dv"); - glad_glVertexAttribL3dv = (PFNGLVERTEXATTRIBL3DVPROC)load("glVertexAttribL3dv"); - glad_glVertexAttribL4dv = (PFNGLVERTEXATTRIBL4DVPROC)load("glVertexAttribL4dv"); - glad_glVertexAttribLPointer = (PFNGLVERTEXATTRIBLPOINTERPROC)load("glVertexAttribLPointer"); - glad_glGetVertexAttribLdv = (PFNGLGETVERTEXATTRIBLDVPROC)load("glGetVertexAttribLdv"); -} -static void load_GL_EXT_texture_filter_minmax(GLADloadproc load) { - if(!GLAD_GL_EXT_texture_filter_minmax) return; - glad_glRasterSamplesEXT = (PFNGLRASTERSAMPLESEXTPROC)load("glRasterSamplesEXT"); -} -static void load_GL_AMD_interleaved_elements(GLADloadproc load) { - if(!GLAD_GL_AMD_interleaved_elements) return; - glad_glVertexAttribParameteriAMD = (PFNGLVERTEXATTRIBPARAMETERIAMDPROC)load("glVertexAttribParameteriAMD"); -} -static void load_GL_ARB_fragment_program(GLADloadproc load) { - if(!GLAD_GL_ARB_fragment_program) return; - glad_glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC)load("glProgramStringARB"); - glad_glBindProgramARB = (PFNGLBINDPROGRAMARBPROC)load("glBindProgramARB"); - glad_glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC)load("glDeleteProgramsARB"); - glad_glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC)load("glGenProgramsARB"); - glad_glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC)load("glProgramEnvParameter4dARB"); - glad_glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC)load("glProgramEnvParameter4dvARB"); - glad_glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC)load("glProgramEnvParameter4fARB"); - glad_glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC)load("glProgramEnvParameter4fvARB"); - glad_glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC)load("glProgramLocalParameter4dARB"); - glad_glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)load("glProgramLocalParameter4dvARB"); - glad_glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC)load("glProgramLocalParameter4fARB"); - glad_glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)load("glProgramLocalParameter4fvARB"); - glad_glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC)load("glGetProgramEnvParameterdvARB"); - glad_glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC)load("glGetProgramEnvParameterfvARB"); - glad_glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)load("glGetProgramLocalParameterdvARB"); - glad_glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)load("glGetProgramLocalParameterfvARB"); - glad_glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC)load("glGetProgramivARB"); - glad_glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC)load("glGetProgramStringARB"); - glad_glIsProgramARB = (PFNGLISPROGRAMARBPROC)load("glIsProgramARB"); -} -static void load_GL_ARB_texture_storage(GLADloadproc load) { - if(!GLAD_GL_ARB_texture_storage) return; - glad_glTexStorage1D = (PFNGLTEXSTORAGE1DPROC)load("glTexStorage1D"); - glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)load("glTexStorage2D"); - glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)load("glTexStorage3D"); -} -static void load_GL_ARB_copy_image(GLADloadproc load) { - if(!GLAD_GL_ARB_copy_image) return; - glad_glCopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC)load("glCopyImageSubData"); -} -static void load_GL_SGIS_pixel_texture(GLADloadproc load) { - if(!GLAD_GL_SGIS_pixel_texture) return; - glad_glPixelTexGenParameteriSGIS = (PFNGLPIXELTEXGENPARAMETERISGISPROC)load("glPixelTexGenParameteriSGIS"); - glad_glPixelTexGenParameterivSGIS = (PFNGLPIXELTEXGENPARAMETERIVSGISPROC)load("glPixelTexGenParameterivSGIS"); - glad_glPixelTexGenParameterfSGIS = (PFNGLPIXELTEXGENPARAMETERFSGISPROC)load("glPixelTexGenParameterfSGIS"); - glad_glPixelTexGenParameterfvSGIS = (PFNGLPIXELTEXGENPARAMETERFVSGISPROC)load("glPixelTexGenParameterfvSGIS"); - glad_glGetPixelTexGenParameterivSGIS = (PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC)load("glGetPixelTexGenParameterivSGIS"); - glad_glGetPixelTexGenParameterfvSGIS = (PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC)load("glGetPixelTexGenParameterfvSGIS"); -} -static void load_GL_SGIX_instruments(GLADloadproc load) { - if(!GLAD_GL_SGIX_instruments) return; - glad_glGetInstrumentsSGIX = (PFNGLGETINSTRUMENTSSGIXPROC)load("glGetInstrumentsSGIX"); - glad_glInstrumentsBufferSGIX = (PFNGLINSTRUMENTSBUFFERSGIXPROC)load("glInstrumentsBufferSGIX"); - glad_glPollInstrumentsSGIX = (PFNGLPOLLINSTRUMENTSSGIXPROC)load("glPollInstrumentsSGIX"); - glad_glReadInstrumentsSGIX = (PFNGLREADINSTRUMENTSSGIXPROC)load("glReadInstrumentsSGIX"); - glad_glStartInstrumentsSGIX = (PFNGLSTARTINSTRUMENTSSGIXPROC)load("glStartInstrumentsSGIX"); - glad_glStopInstrumentsSGIX = (PFNGLSTOPINSTRUMENTSSGIXPROC)load("glStopInstrumentsSGIX"); -} -static void load_GL_ARB_shader_storage_buffer_object(GLADloadproc load) { - if(!GLAD_GL_ARB_shader_storage_buffer_object) return; - glad_glShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDINGPROC)load("glShaderStorageBlockBinding"); -} -static void load_GL_EXT_blend_minmax(GLADloadproc load) { - if(!GLAD_GL_EXT_blend_minmax) return; - glad_glBlendEquationEXT = (PFNGLBLENDEQUATIONEXTPROC)load("glBlendEquationEXT"); -} -static void load_GL_ARB_base_instance(GLADloadproc load) { - if(!GLAD_GL_ARB_base_instance) return; - glad_glDrawArraysInstancedBaseInstance = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)load("glDrawArraysInstancedBaseInstance"); - glad_glDrawElementsInstancedBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)load("glDrawElementsInstancedBaseInstance"); - glad_glDrawElementsInstancedBaseVertexBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)load("glDrawElementsInstancedBaseVertexBaseInstance"); -} -static void load_GL_ARB_ES3_1_compatibility(GLADloadproc load) { - if(!GLAD_GL_ARB_ES3_1_compatibility) return; - glad_glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC)load("glMemoryBarrierByRegion"); -} -static void load_GL_EXT_texture_integer(GLADloadproc load) { - if(!GLAD_GL_EXT_texture_integer) return; - glad_glTexParameterIivEXT = (PFNGLTEXPARAMETERIIVEXTPROC)load("glTexParameterIivEXT"); - glad_glTexParameterIuivEXT = (PFNGLTEXPARAMETERIUIVEXTPROC)load("glTexParameterIuivEXT"); - glad_glGetTexParameterIivEXT = (PFNGLGETTEXPARAMETERIIVEXTPROC)load("glGetTexParameterIivEXT"); - glad_glGetTexParameterIuivEXT = (PFNGLGETTEXPARAMETERIUIVEXTPROC)load("glGetTexParameterIuivEXT"); - glad_glClearColorIiEXT = (PFNGLCLEARCOLORIIEXTPROC)load("glClearColorIiEXT"); - glad_glClearColorIuiEXT = (PFNGLCLEARCOLORIUIEXTPROC)load("glClearColorIuiEXT"); -} -static void load_GL_ARB_texture_multisample(GLADloadproc load) { - if(!GLAD_GL_ARB_texture_multisample) return; - glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample"); - glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample"); - glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv"); - glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski"); -} -static void load_GL_AMD_gpu_shader_int64(GLADloadproc load) { - if(!GLAD_GL_AMD_gpu_shader_int64) return; - glad_glUniform1i64NV = (PFNGLUNIFORM1I64NVPROC)load("glUniform1i64NV"); - glad_glUniform2i64NV = (PFNGLUNIFORM2I64NVPROC)load("glUniform2i64NV"); - glad_glUniform3i64NV = (PFNGLUNIFORM3I64NVPROC)load("glUniform3i64NV"); - glad_glUniform4i64NV = (PFNGLUNIFORM4I64NVPROC)load("glUniform4i64NV"); - glad_glUniform1i64vNV = (PFNGLUNIFORM1I64VNVPROC)load("glUniform1i64vNV"); - glad_glUniform2i64vNV = (PFNGLUNIFORM2I64VNVPROC)load("glUniform2i64vNV"); - glad_glUniform3i64vNV = (PFNGLUNIFORM3I64VNVPROC)load("glUniform3i64vNV"); - glad_glUniform4i64vNV = (PFNGLUNIFORM4I64VNVPROC)load("glUniform4i64vNV"); - glad_glUniform1ui64NV = (PFNGLUNIFORM1UI64NVPROC)load("glUniform1ui64NV"); - glad_glUniform2ui64NV = (PFNGLUNIFORM2UI64NVPROC)load("glUniform2ui64NV"); - glad_glUniform3ui64NV = (PFNGLUNIFORM3UI64NVPROC)load("glUniform3ui64NV"); - glad_glUniform4ui64NV = (PFNGLUNIFORM4UI64NVPROC)load("glUniform4ui64NV"); - glad_glUniform1ui64vNV = (PFNGLUNIFORM1UI64VNVPROC)load("glUniform1ui64vNV"); - glad_glUniform2ui64vNV = (PFNGLUNIFORM2UI64VNVPROC)load("glUniform2ui64vNV"); - glad_glUniform3ui64vNV = (PFNGLUNIFORM3UI64VNVPROC)load("glUniform3ui64vNV"); - glad_glUniform4ui64vNV = (PFNGLUNIFORM4UI64VNVPROC)load("glUniform4ui64vNV"); - glad_glGetUniformi64vNV = (PFNGLGETUNIFORMI64VNVPROC)load("glGetUniformi64vNV"); - glad_glGetUniformui64vNV = (PFNGLGETUNIFORMUI64VNVPROC)load("glGetUniformui64vNV"); - glad_glProgramUniform1i64NV = (PFNGLPROGRAMUNIFORM1I64NVPROC)load("glProgramUniform1i64NV"); - glad_glProgramUniform2i64NV = (PFNGLPROGRAMUNIFORM2I64NVPROC)load("glProgramUniform2i64NV"); - glad_glProgramUniform3i64NV = (PFNGLPROGRAMUNIFORM3I64NVPROC)load("glProgramUniform3i64NV"); - glad_glProgramUniform4i64NV = (PFNGLPROGRAMUNIFORM4I64NVPROC)load("glProgramUniform4i64NV"); - glad_glProgramUniform1i64vNV = (PFNGLPROGRAMUNIFORM1I64VNVPROC)load("glProgramUniform1i64vNV"); - glad_glProgramUniform2i64vNV = (PFNGLPROGRAMUNIFORM2I64VNVPROC)load("glProgramUniform2i64vNV"); - glad_glProgramUniform3i64vNV = (PFNGLPROGRAMUNIFORM3I64VNVPROC)load("glProgramUniform3i64vNV"); - glad_glProgramUniform4i64vNV = (PFNGLPROGRAMUNIFORM4I64VNVPROC)load("glProgramUniform4i64vNV"); - glad_glProgramUniform1ui64NV = (PFNGLPROGRAMUNIFORM1UI64NVPROC)load("glProgramUniform1ui64NV"); - glad_glProgramUniform2ui64NV = (PFNGLPROGRAMUNIFORM2UI64NVPROC)load("glProgramUniform2ui64NV"); - glad_glProgramUniform3ui64NV = (PFNGLPROGRAMUNIFORM3UI64NVPROC)load("glProgramUniform3ui64NV"); - glad_glProgramUniform4ui64NV = (PFNGLPROGRAMUNIFORM4UI64NVPROC)load("glProgramUniform4ui64NV"); - glad_glProgramUniform1ui64vNV = (PFNGLPROGRAMUNIFORM1UI64VNVPROC)load("glProgramUniform1ui64vNV"); - glad_glProgramUniform2ui64vNV = (PFNGLPROGRAMUNIFORM2UI64VNVPROC)load("glProgramUniform2ui64vNV"); - glad_glProgramUniform3ui64vNV = (PFNGLPROGRAMUNIFORM3UI64VNVPROC)load("glProgramUniform3ui64vNV"); - glad_glProgramUniform4ui64vNV = (PFNGLPROGRAMUNIFORM4UI64VNVPROC)load("glProgramUniform4ui64vNV"); -} -static void load_GL_AMD_vertex_shader_tessellator(GLADloadproc load) { - if(!GLAD_GL_AMD_vertex_shader_tessellator) return; - glad_glTessellationFactorAMD = (PFNGLTESSELLATIONFACTORAMDPROC)load("glTessellationFactorAMD"); - glad_glTessellationModeAMD = (PFNGLTESSELLATIONMODEAMDPROC)load("glTessellationModeAMD"); -} -static void load_GL_ARB_invalidate_subdata(GLADloadproc load) { - if(!GLAD_GL_ARB_invalidate_subdata) return; - glad_glInvalidateTexSubImage = (PFNGLINVALIDATETEXSUBIMAGEPROC)load("glInvalidateTexSubImage"); - glad_glInvalidateTexImage = (PFNGLINVALIDATETEXIMAGEPROC)load("glInvalidateTexImage"); - glad_glInvalidateBufferSubData = (PFNGLINVALIDATEBUFFERSUBDATAPROC)load("glInvalidateBufferSubData"); - glad_glInvalidateBufferData = (PFNGLINVALIDATEBUFFERDATAPROC)load("glInvalidateBufferData"); - glad_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC)load("glInvalidateFramebuffer"); - glad_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC)load("glInvalidateSubFramebuffer"); -} -static void load_GL_EXT_index_material(GLADloadproc load) { - if(!GLAD_GL_EXT_index_material) return; - glad_glIndexMaterialEXT = (PFNGLINDEXMATERIALEXTPROC)load("glIndexMaterialEXT"); -} -static void load_GL_INTEL_parallel_arrays(GLADloadproc load) { - if(!GLAD_GL_INTEL_parallel_arrays) return; - glad_glVertexPointervINTEL = (PFNGLVERTEXPOINTERVINTELPROC)load("glVertexPointervINTEL"); - glad_glNormalPointervINTEL = (PFNGLNORMALPOINTERVINTELPROC)load("glNormalPointervINTEL"); - glad_glColorPointervINTEL = (PFNGLCOLORPOINTERVINTELPROC)load("glColorPointervINTEL"); - glad_glTexCoordPointervINTEL = (PFNGLTEXCOORDPOINTERVINTELPROC)load("glTexCoordPointervINTEL"); -} -static void load_GL_ATI_draw_buffers(GLADloadproc load) { - if(!GLAD_GL_ATI_draw_buffers) return; - glad_glDrawBuffersATI = (PFNGLDRAWBUFFERSATIPROC)load("glDrawBuffersATI"); -} -static void load_GL_SGIX_pixel_texture(GLADloadproc load) { - if(!GLAD_GL_SGIX_pixel_texture) return; - glad_glPixelTexGenSGIX = (PFNGLPIXELTEXGENSGIXPROC)load("glPixelTexGenSGIX"); -} -static void load_GL_ARB_timer_query(GLADloadproc load) { - if(!GLAD_GL_ARB_timer_query) return; - glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load("glQueryCounter"); - glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load("glGetQueryObjecti64v"); - glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load("glGetQueryObjectui64v"); -} -static void load_GL_NV_parameter_buffer_object(GLADloadproc load) { - if(!GLAD_GL_NV_parameter_buffer_object) return; - glad_glProgramBufferParametersfvNV = (PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC)load("glProgramBufferParametersfvNV"); - glad_glProgramBufferParametersIivNV = (PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC)load("glProgramBufferParametersIivNV"); - glad_glProgramBufferParametersIuivNV = (PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC)load("glProgramBufferParametersIuivNV"); -} -static void load_GL_ARB_direct_state_access(GLADloadproc load) { - if(!GLAD_GL_ARB_direct_state_access) return; - glad_glCreateTransformFeedbacks = (PFNGLCREATETRANSFORMFEEDBACKSPROC)load("glCreateTransformFeedbacks"); - glad_glTransformFeedbackBufferBase = (PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)load("glTransformFeedbackBufferBase"); - glad_glTransformFeedbackBufferRange = (PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)load("glTransformFeedbackBufferRange"); - glad_glGetTransformFeedbackiv = (PFNGLGETTRANSFORMFEEDBACKIVPROC)load("glGetTransformFeedbackiv"); - glad_glGetTransformFeedbacki_v = (PFNGLGETTRANSFORMFEEDBACKI_VPROC)load("glGetTransformFeedbacki_v"); - glad_glGetTransformFeedbacki64_v = (PFNGLGETTRANSFORMFEEDBACKI64_VPROC)load("glGetTransformFeedbacki64_v"); - glad_glCreateBuffers = (PFNGLCREATEBUFFERSPROC)load("glCreateBuffers"); - glad_glNamedBufferStorage = (PFNGLNAMEDBUFFERSTORAGEPROC)load("glNamedBufferStorage"); - glad_glNamedBufferData = (PFNGLNAMEDBUFFERDATAPROC)load("glNamedBufferData"); - glad_glNamedBufferSubData = (PFNGLNAMEDBUFFERSUBDATAPROC)load("glNamedBufferSubData"); - glad_glCopyNamedBufferSubData = (PFNGLCOPYNAMEDBUFFERSUBDATAPROC)load("glCopyNamedBufferSubData"); - glad_glClearNamedBufferData = (PFNGLCLEARNAMEDBUFFERDATAPROC)load("glClearNamedBufferData"); - glad_glClearNamedBufferSubData = (PFNGLCLEARNAMEDBUFFERSUBDATAPROC)load("glClearNamedBufferSubData"); - glad_glMapNamedBuffer = (PFNGLMAPNAMEDBUFFERPROC)load("glMapNamedBuffer"); - glad_glMapNamedBufferRange = (PFNGLMAPNAMEDBUFFERRANGEPROC)load("glMapNamedBufferRange"); - glad_glUnmapNamedBuffer = (PFNGLUNMAPNAMEDBUFFERPROC)load("glUnmapNamedBuffer"); - glad_glFlushMappedNamedBufferRange = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)load("glFlushMappedNamedBufferRange"); - glad_glGetNamedBufferParameteriv = (PFNGLGETNAMEDBUFFERPARAMETERIVPROC)load("glGetNamedBufferParameteriv"); - glad_glGetNamedBufferParameteri64v = (PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)load("glGetNamedBufferParameteri64v"); - glad_glGetNamedBufferPointerv = (PFNGLGETNAMEDBUFFERPOINTERVPROC)load("glGetNamedBufferPointerv"); - glad_glGetNamedBufferSubData = (PFNGLGETNAMEDBUFFERSUBDATAPROC)load("glGetNamedBufferSubData"); - glad_glCreateFramebuffers = (PFNGLCREATEFRAMEBUFFERSPROC)load("glCreateFramebuffers"); - glad_glNamedFramebufferRenderbuffer = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)load("glNamedFramebufferRenderbuffer"); - glad_glNamedFramebufferParameteri = (PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)load("glNamedFramebufferParameteri"); - glad_glNamedFramebufferTexture = (PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)load("glNamedFramebufferTexture"); - glad_glNamedFramebufferTextureLayer = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)load("glNamedFramebufferTextureLayer"); - glad_glNamedFramebufferDrawBuffer = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)load("glNamedFramebufferDrawBuffer"); - glad_glNamedFramebufferDrawBuffers = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)load("glNamedFramebufferDrawBuffers"); - glad_glNamedFramebufferReadBuffer = (PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)load("glNamedFramebufferReadBuffer"); - glad_glInvalidateNamedFramebufferData = (PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)load("glInvalidateNamedFramebufferData"); - glad_glInvalidateNamedFramebufferSubData = (PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)load("glInvalidateNamedFramebufferSubData"); - glad_glClearNamedFramebufferiv = (PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)load("glClearNamedFramebufferiv"); - glad_glClearNamedFramebufferuiv = (PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)load("glClearNamedFramebufferuiv"); - glad_glClearNamedFramebufferfv = (PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)load("glClearNamedFramebufferfv"); - glad_glClearNamedFramebufferfi = (PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)load("glClearNamedFramebufferfi"); - glad_glBlitNamedFramebuffer = (PFNGLBLITNAMEDFRAMEBUFFERPROC)load("glBlitNamedFramebuffer"); - glad_glCheckNamedFramebufferStatus = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)load("glCheckNamedFramebufferStatus"); - glad_glGetNamedFramebufferParameteriv = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)load("glGetNamedFramebufferParameteriv"); - glad_glGetNamedFramebufferAttachmentParameteriv = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetNamedFramebufferAttachmentParameteriv"); - glad_glCreateRenderbuffers = (PFNGLCREATERENDERBUFFERSPROC)load("glCreateRenderbuffers"); - glad_glNamedRenderbufferStorage = (PFNGLNAMEDRENDERBUFFERSTORAGEPROC)load("glNamedRenderbufferStorage"); - glad_glNamedRenderbufferStorageMultisample = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glNamedRenderbufferStorageMultisample"); - glad_glGetNamedRenderbufferParameteriv = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)load("glGetNamedRenderbufferParameteriv"); - glad_glCreateTextures = (PFNGLCREATETEXTURESPROC)load("glCreateTextures"); - glad_glTextureBuffer = (PFNGLTEXTUREBUFFERPROC)load("glTextureBuffer"); - glad_glTextureBufferRange = (PFNGLTEXTUREBUFFERRANGEPROC)load("glTextureBufferRange"); - glad_glTextureStorage1D = (PFNGLTEXTURESTORAGE1DPROC)load("glTextureStorage1D"); - glad_glTextureStorage2D = (PFNGLTEXTURESTORAGE2DPROC)load("glTextureStorage2D"); - glad_glTextureStorage3D = (PFNGLTEXTURESTORAGE3DPROC)load("glTextureStorage3D"); - glad_glTextureStorage2DMultisample = (PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)load("glTextureStorage2DMultisample"); - glad_glTextureStorage3DMultisample = (PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)load("glTextureStorage3DMultisample"); - glad_glTextureSubImage1D = (PFNGLTEXTURESUBIMAGE1DPROC)load("glTextureSubImage1D"); - glad_glTextureSubImage2D = (PFNGLTEXTURESUBIMAGE2DPROC)load("glTextureSubImage2D"); - glad_glTextureSubImage3D = (PFNGLTEXTURESUBIMAGE3DPROC)load("glTextureSubImage3D"); - glad_glCompressedTextureSubImage1D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)load("glCompressedTextureSubImage1D"); - glad_glCompressedTextureSubImage2D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)load("glCompressedTextureSubImage2D"); - glad_glCompressedTextureSubImage3D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)load("glCompressedTextureSubImage3D"); - glad_glCopyTextureSubImage1D = (PFNGLCOPYTEXTURESUBIMAGE1DPROC)load("glCopyTextureSubImage1D"); - glad_glCopyTextureSubImage2D = (PFNGLCOPYTEXTURESUBIMAGE2DPROC)load("glCopyTextureSubImage2D"); - glad_glCopyTextureSubImage3D = (PFNGLCOPYTEXTURESUBIMAGE3DPROC)load("glCopyTextureSubImage3D"); - glad_glTextureParameterf = (PFNGLTEXTUREPARAMETERFPROC)load("glTextureParameterf"); - glad_glTextureParameterfv = (PFNGLTEXTUREPARAMETERFVPROC)load("glTextureParameterfv"); - glad_glTextureParameteri = (PFNGLTEXTUREPARAMETERIPROC)load("glTextureParameteri"); - glad_glTextureParameterIiv = (PFNGLTEXTUREPARAMETERIIVPROC)load("glTextureParameterIiv"); - glad_glTextureParameterIuiv = (PFNGLTEXTUREPARAMETERIUIVPROC)load("glTextureParameterIuiv"); - glad_glTextureParameteriv = (PFNGLTEXTUREPARAMETERIVPROC)load("glTextureParameteriv"); - glad_glGenerateTextureMipmap = (PFNGLGENERATETEXTUREMIPMAPPROC)load("glGenerateTextureMipmap"); - glad_glBindTextureUnit = (PFNGLBINDTEXTUREUNITPROC)load("glBindTextureUnit"); - glad_glGetTextureImage = (PFNGLGETTEXTUREIMAGEPROC)load("glGetTextureImage"); - glad_glGetCompressedTextureImage = (PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)load("glGetCompressedTextureImage"); - glad_glGetTextureLevelParameterfv = (PFNGLGETTEXTURELEVELPARAMETERFVPROC)load("glGetTextureLevelParameterfv"); - glad_glGetTextureLevelParameteriv = (PFNGLGETTEXTURELEVELPARAMETERIVPROC)load("glGetTextureLevelParameteriv"); - glad_glGetTextureParameterfv = (PFNGLGETTEXTUREPARAMETERFVPROC)load("glGetTextureParameterfv"); - glad_glGetTextureParameterIiv = (PFNGLGETTEXTUREPARAMETERIIVPROC)load("glGetTextureParameterIiv"); - glad_glGetTextureParameterIuiv = (PFNGLGETTEXTUREPARAMETERIUIVPROC)load("glGetTextureParameterIuiv"); - glad_glGetTextureParameteriv = (PFNGLGETTEXTUREPARAMETERIVPROC)load("glGetTextureParameteriv"); - glad_glCreateVertexArrays = (PFNGLCREATEVERTEXARRAYSPROC)load("glCreateVertexArrays"); - glad_glDisableVertexArrayAttrib = (PFNGLDISABLEVERTEXARRAYATTRIBPROC)load("glDisableVertexArrayAttrib"); - glad_glEnableVertexArrayAttrib = (PFNGLENABLEVERTEXARRAYATTRIBPROC)load("glEnableVertexArrayAttrib"); - glad_glVertexArrayElementBuffer = (PFNGLVERTEXARRAYELEMENTBUFFERPROC)load("glVertexArrayElementBuffer"); - glad_glVertexArrayVertexBuffer = (PFNGLVERTEXARRAYVERTEXBUFFERPROC)load("glVertexArrayVertexBuffer"); - glad_glVertexArrayVertexBuffers = (PFNGLVERTEXARRAYVERTEXBUFFERSPROC)load("glVertexArrayVertexBuffers"); - glad_glVertexArrayAttribBinding = (PFNGLVERTEXARRAYATTRIBBINDINGPROC)load("glVertexArrayAttribBinding"); - glad_glVertexArrayAttribFormat = (PFNGLVERTEXARRAYATTRIBFORMATPROC)load("glVertexArrayAttribFormat"); - glad_glVertexArrayAttribIFormat = (PFNGLVERTEXARRAYATTRIBIFORMATPROC)load("glVertexArrayAttribIFormat"); - glad_glVertexArrayAttribLFormat = (PFNGLVERTEXARRAYATTRIBLFORMATPROC)load("glVertexArrayAttribLFormat"); - glad_glVertexArrayBindingDivisor = (PFNGLVERTEXARRAYBINDINGDIVISORPROC)load("glVertexArrayBindingDivisor"); - glad_glGetVertexArrayiv = (PFNGLGETVERTEXARRAYIVPROC)load("glGetVertexArrayiv"); - glad_glGetVertexArrayIndexediv = (PFNGLGETVERTEXARRAYINDEXEDIVPROC)load("glGetVertexArrayIndexediv"); - glad_glGetVertexArrayIndexed64iv = (PFNGLGETVERTEXARRAYINDEXED64IVPROC)load("glGetVertexArrayIndexed64iv"); - glad_glCreateSamplers = (PFNGLCREATESAMPLERSPROC)load("glCreateSamplers"); - glad_glCreateProgramPipelines = (PFNGLCREATEPROGRAMPIPELINESPROC)load("glCreateProgramPipelines"); - glad_glCreateQueries = (PFNGLCREATEQUERIESPROC)load("glCreateQueries"); - glad_glGetQueryBufferObjecti64v = (PFNGLGETQUERYBUFFEROBJECTI64VPROC)load("glGetQueryBufferObjecti64v"); - glad_glGetQueryBufferObjectiv = (PFNGLGETQUERYBUFFEROBJECTIVPROC)load("glGetQueryBufferObjectiv"); - glad_glGetQueryBufferObjectui64v = (PFNGLGETQUERYBUFFEROBJECTUI64VPROC)load("glGetQueryBufferObjectui64v"); - glad_glGetQueryBufferObjectuiv = (PFNGLGETQUERYBUFFEROBJECTUIVPROC)load("glGetQueryBufferObjectuiv"); -} -static void load_GL_ARB_uniform_buffer_object(GLADloadproc load) { - if(!GLAD_GL_ARB_uniform_buffer_object) return; - glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices"); - glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv"); - glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName"); - glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex"); - glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv"); - glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName"); - glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding"); - glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); - glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); - glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); -} -static void load_GL_NV_transform_feedback2(GLADloadproc load) { - if(!GLAD_GL_NV_transform_feedback2) return; - glad_glBindTransformFeedbackNV = (PFNGLBINDTRANSFORMFEEDBACKNVPROC)load("glBindTransformFeedbackNV"); - glad_glDeleteTransformFeedbacksNV = (PFNGLDELETETRANSFORMFEEDBACKSNVPROC)load("glDeleteTransformFeedbacksNV"); - glad_glGenTransformFeedbacksNV = (PFNGLGENTRANSFORMFEEDBACKSNVPROC)load("glGenTransformFeedbacksNV"); - glad_glIsTransformFeedbackNV = (PFNGLISTRANSFORMFEEDBACKNVPROC)load("glIsTransformFeedbackNV"); - glad_glPauseTransformFeedbackNV = (PFNGLPAUSETRANSFORMFEEDBACKNVPROC)load("glPauseTransformFeedbackNV"); - glad_glResumeTransformFeedbackNV = (PFNGLRESUMETRANSFORMFEEDBACKNVPROC)load("glResumeTransformFeedbackNV"); - glad_glDrawTransformFeedbackNV = (PFNGLDRAWTRANSFORMFEEDBACKNVPROC)load("glDrawTransformFeedbackNV"); -} -static void load_GL_EXT_blend_color(GLADloadproc load) { - if(!GLAD_GL_EXT_blend_color) return; - glad_glBlendColorEXT = (PFNGLBLENDCOLOREXTPROC)load("glBlendColorEXT"); -} -static void load_GL_EXT_histogram(GLADloadproc load) { - if(!GLAD_GL_EXT_histogram) return; - glad_glGetHistogramEXT = (PFNGLGETHISTOGRAMEXTPROC)load("glGetHistogramEXT"); - glad_glGetHistogramParameterfvEXT = (PFNGLGETHISTOGRAMPARAMETERFVEXTPROC)load("glGetHistogramParameterfvEXT"); - glad_glGetHistogramParameterivEXT = (PFNGLGETHISTOGRAMPARAMETERIVEXTPROC)load("glGetHistogramParameterivEXT"); - glad_glGetMinmaxEXT = (PFNGLGETMINMAXEXTPROC)load("glGetMinmaxEXT"); - glad_glGetMinmaxParameterfvEXT = (PFNGLGETMINMAXPARAMETERFVEXTPROC)load("glGetMinmaxParameterfvEXT"); - glad_glGetMinmaxParameterivEXT = (PFNGLGETMINMAXPARAMETERIVEXTPROC)load("glGetMinmaxParameterivEXT"); - glad_glHistogramEXT = (PFNGLHISTOGRAMEXTPROC)load("glHistogramEXT"); - glad_glMinmaxEXT = (PFNGLMINMAXEXTPROC)load("glMinmaxEXT"); - glad_glResetHistogramEXT = (PFNGLRESETHISTOGRAMEXTPROC)load("glResetHistogramEXT"); - glad_glResetMinmaxEXT = (PFNGLRESETMINMAXEXTPROC)load("glResetMinmaxEXT"); -} -static void load_GL_ARB_get_texture_sub_image(GLADloadproc load) { - if(!GLAD_GL_ARB_get_texture_sub_image) return; - glad_glGetTextureSubImage = (PFNGLGETTEXTURESUBIMAGEPROC)load("glGetTextureSubImage"); - glad_glGetCompressedTextureSubImage = (PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)load("glGetCompressedTextureSubImage"); -} -static void load_GL_SGIS_point_parameters(GLADloadproc load) { - if(!GLAD_GL_SGIS_point_parameters) return; - glad_glPointParameterfSGIS = (PFNGLPOINTPARAMETERFSGISPROC)load("glPointParameterfSGIS"); - glad_glPointParameterfvSGIS = (PFNGLPOINTPARAMETERFVSGISPROC)load("glPointParameterfvSGIS"); -} -static void load_GL_EXT_direct_state_access(GLADloadproc load) { - if(!GLAD_GL_EXT_direct_state_access) return; - glad_glMatrixLoadfEXT = (PFNGLMATRIXLOADFEXTPROC)load("glMatrixLoadfEXT"); - glad_glMatrixLoaddEXT = (PFNGLMATRIXLOADDEXTPROC)load("glMatrixLoaddEXT"); - glad_glMatrixMultfEXT = (PFNGLMATRIXMULTFEXTPROC)load("glMatrixMultfEXT"); - glad_glMatrixMultdEXT = (PFNGLMATRIXMULTDEXTPROC)load("glMatrixMultdEXT"); - glad_glMatrixLoadIdentityEXT = (PFNGLMATRIXLOADIDENTITYEXTPROC)load("glMatrixLoadIdentityEXT"); - glad_glMatrixRotatefEXT = (PFNGLMATRIXROTATEFEXTPROC)load("glMatrixRotatefEXT"); - glad_glMatrixRotatedEXT = (PFNGLMATRIXROTATEDEXTPROC)load("glMatrixRotatedEXT"); - glad_glMatrixScalefEXT = (PFNGLMATRIXSCALEFEXTPROC)load("glMatrixScalefEXT"); - glad_glMatrixScaledEXT = (PFNGLMATRIXSCALEDEXTPROC)load("glMatrixScaledEXT"); - glad_glMatrixTranslatefEXT = (PFNGLMATRIXTRANSLATEFEXTPROC)load("glMatrixTranslatefEXT"); - glad_glMatrixTranslatedEXT = (PFNGLMATRIXTRANSLATEDEXTPROC)load("glMatrixTranslatedEXT"); - glad_glMatrixFrustumEXT = (PFNGLMATRIXFRUSTUMEXTPROC)load("glMatrixFrustumEXT"); - glad_glMatrixOrthoEXT = (PFNGLMATRIXORTHOEXTPROC)load("glMatrixOrthoEXT"); - glad_glMatrixPopEXT = (PFNGLMATRIXPOPEXTPROC)load("glMatrixPopEXT"); - glad_glMatrixPushEXT = (PFNGLMATRIXPUSHEXTPROC)load("glMatrixPushEXT"); - glad_glClientAttribDefaultEXT = (PFNGLCLIENTATTRIBDEFAULTEXTPROC)load("glClientAttribDefaultEXT"); - glad_glPushClientAttribDefaultEXT = (PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC)load("glPushClientAttribDefaultEXT"); - glad_glTextureParameterfEXT = (PFNGLTEXTUREPARAMETERFEXTPROC)load("glTextureParameterfEXT"); - glad_glTextureParameterfvEXT = (PFNGLTEXTUREPARAMETERFVEXTPROC)load("glTextureParameterfvEXT"); - glad_glTextureParameteriEXT = (PFNGLTEXTUREPARAMETERIEXTPROC)load("glTextureParameteriEXT"); - glad_glTextureParameterivEXT = (PFNGLTEXTUREPARAMETERIVEXTPROC)load("glTextureParameterivEXT"); - glad_glTextureImage1DEXT = (PFNGLTEXTUREIMAGE1DEXTPROC)load("glTextureImage1DEXT"); - glad_glTextureImage2DEXT = (PFNGLTEXTUREIMAGE2DEXTPROC)load("glTextureImage2DEXT"); - glad_glTextureSubImage1DEXT = (PFNGLTEXTURESUBIMAGE1DEXTPROC)load("glTextureSubImage1DEXT"); - glad_glTextureSubImage2DEXT = (PFNGLTEXTURESUBIMAGE2DEXTPROC)load("glTextureSubImage2DEXT"); - glad_glCopyTextureImage1DEXT = (PFNGLCOPYTEXTUREIMAGE1DEXTPROC)load("glCopyTextureImage1DEXT"); - glad_glCopyTextureImage2DEXT = (PFNGLCOPYTEXTUREIMAGE2DEXTPROC)load("glCopyTextureImage2DEXT"); - glad_glCopyTextureSubImage1DEXT = (PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC)load("glCopyTextureSubImage1DEXT"); - glad_glCopyTextureSubImage2DEXT = (PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC)load("glCopyTextureSubImage2DEXT"); - glad_glGetTextureImageEXT = (PFNGLGETTEXTUREIMAGEEXTPROC)load("glGetTextureImageEXT"); - glad_glGetTextureParameterfvEXT = (PFNGLGETTEXTUREPARAMETERFVEXTPROC)load("glGetTextureParameterfvEXT"); - glad_glGetTextureParameterivEXT = (PFNGLGETTEXTUREPARAMETERIVEXTPROC)load("glGetTextureParameterivEXT"); - glad_glGetTextureLevelParameterfvEXT = (PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC)load("glGetTextureLevelParameterfvEXT"); - glad_glGetTextureLevelParameterivEXT = (PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC)load("glGetTextureLevelParameterivEXT"); - glad_glTextureImage3DEXT = (PFNGLTEXTUREIMAGE3DEXTPROC)load("glTextureImage3DEXT"); - glad_glTextureSubImage3DEXT = (PFNGLTEXTURESUBIMAGE3DEXTPROC)load("glTextureSubImage3DEXT"); - glad_glCopyTextureSubImage3DEXT = (PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC)load("glCopyTextureSubImage3DEXT"); - glad_glBindMultiTextureEXT = (PFNGLBINDMULTITEXTUREEXTPROC)load("glBindMultiTextureEXT"); - glad_glMultiTexCoordPointerEXT = (PFNGLMULTITEXCOORDPOINTEREXTPROC)load("glMultiTexCoordPointerEXT"); - glad_glMultiTexEnvfEXT = (PFNGLMULTITEXENVFEXTPROC)load("glMultiTexEnvfEXT"); - glad_glMultiTexEnvfvEXT = (PFNGLMULTITEXENVFVEXTPROC)load("glMultiTexEnvfvEXT"); - glad_glMultiTexEnviEXT = (PFNGLMULTITEXENVIEXTPROC)load("glMultiTexEnviEXT"); - glad_glMultiTexEnvivEXT = (PFNGLMULTITEXENVIVEXTPROC)load("glMultiTexEnvivEXT"); - glad_glMultiTexGendEXT = (PFNGLMULTITEXGENDEXTPROC)load("glMultiTexGendEXT"); - glad_glMultiTexGendvEXT = (PFNGLMULTITEXGENDVEXTPROC)load("glMultiTexGendvEXT"); - glad_glMultiTexGenfEXT = (PFNGLMULTITEXGENFEXTPROC)load("glMultiTexGenfEXT"); - glad_glMultiTexGenfvEXT = (PFNGLMULTITEXGENFVEXTPROC)load("glMultiTexGenfvEXT"); - glad_glMultiTexGeniEXT = (PFNGLMULTITEXGENIEXTPROC)load("glMultiTexGeniEXT"); - glad_glMultiTexGenivEXT = (PFNGLMULTITEXGENIVEXTPROC)load("glMultiTexGenivEXT"); - glad_glGetMultiTexEnvfvEXT = (PFNGLGETMULTITEXENVFVEXTPROC)load("glGetMultiTexEnvfvEXT"); - glad_glGetMultiTexEnvivEXT = (PFNGLGETMULTITEXENVIVEXTPROC)load("glGetMultiTexEnvivEXT"); - glad_glGetMultiTexGendvEXT = (PFNGLGETMULTITEXGENDVEXTPROC)load("glGetMultiTexGendvEXT"); - glad_glGetMultiTexGenfvEXT = (PFNGLGETMULTITEXGENFVEXTPROC)load("glGetMultiTexGenfvEXT"); - glad_glGetMultiTexGenivEXT = (PFNGLGETMULTITEXGENIVEXTPROC)load("glGetMultiTexGenivEXT"); - glad_glMultiTexParameteriEXT = (PFNGLMULTITEXPARAMETERIEXTPROC)load("glMultiTexParameteriEXT"); - glad_glMultiTexParameterivEXT = (PFNGLMULTITEXPARAMETERIVEXTPROC)load("glMultiTexParameterivEXT"); - glad_glMultiTexParameterfEXT = (PFNGLMULTITEXPARAMETERFEXTPROC)load("glMultiTexParameterfEXT"); - glad_glMultiTexParameterfvEXT = (PFNGLMULTITEXPARAMETERFVEXTPROC)load("glMultiTexParameterfvEXT"); - glad_glMultiTexImage1DEXT = (PFNGLMULTITEXIMAGE1DEXTPROC)load("glMultiTexImage1DEXT"); - glad_glMultiTexImage2DEXT = (PFNGLMULTITEXIMAGE2DEXTPROC)load("glMultiTexImage2DEXT"); - glad_glMultiTexSubImage1DEXT = (PFNGLMULTITEXSUBIMAGE1DEXTPROC)load("glMultiTexSubImage1DEXT"); - glad_glMultiTexSubImage2DEXT = (PFNGLMULTITEXSUBIMAGE2DEXTPROC)load("glMultiTexSubImage2DEXT"); - glad_glCopyMultiTexImage1DEXT = (PFNGLCOPYMULTITEXIMAGE1DEXTPROC)load("glCopyMultiTexImage1DEXT"); - glad_glCopyMultiTexImage2DEXT = (PFNGLCOPYMULTITEXIMAGE2DEXTPROC)load("glCopyMultiTexImage2DEXT"); - glad_glCopyMultiTexSubImage1DEXT = (PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC)load("glCopyMultiTexSubImage1DEXT"); - glad_glCopyMultiTexSubImage2DEXT = (PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC)load("glCopyMultiTexSubImage2DEXT"); - glad_glGetMultiTexImageEXT = (PFNGLGETMULTITEXIMAGEEXTPROC)load("glGetMultiTexImageEXT"); - glad_glGetMultiTexParameterfvEXT = (PFNGLGETMULTITEXPARAMETERFVEXTPROC)load("glGetMultiTexParameterfvEXT"); - glad_glGetMultiTexParameterivEXT = (PFNGLGETMULTITEXPARAMETERIVEXTPROC)load("glGetMultiTexParameterivEXT"); - glad_glGetMultiTexLevelParameterfvEXT = (PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC)load("glGetMultiTexLevelParameterfvEXT"); - glad_glGetMultiTexLevelParameterivEXT = (PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC)load("glGetMultiTexLevelParameterivEXT"); - glad_glMultiTexImage3DEXT = (PFNGLMULTITEXIMAGE3DEXTPROC)load("glMultiTexImage3DEXT"); - glad_glMultiTexSubImage3DEXT = (PFNGLMULTITEXSUBIMAGE3DEXTPROC)load("glMultiTexSubImage3DEXT"); - glad_glCopyMultiTexSubImage3DEXT = (PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC)load("glCopyMultiTexSubImage3DEXT"); - glad_glEnableClientStateIndexedEXT = (PFNGLENABLECLIENTSTATEINDEXEDEXTPROC)load("glEnableClientStateIndexedEXT"); - glad_glDisableClientStateIndexedEXT = (PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC)load("glDisableClientStateIndexedEXT"); - glad_glGetFloatIndexedvEXT = (PFNGLGETFLOATINDEXEDVEXTPROC)load("glGetFloatIndexedvEXT"); - glad_glGetDoubleIndexedvEXT = (PFNGLGETDOUBLEINDEXEDVEXTPROC)load("glGetDoubleIndexedvEXT"); - glad_glGetPointerIndexedvEXT = (PFNGLGETPOINTERINDEXEDVEXTPROC)load("glGetPointerIndexedvEXT"); - glad_glEnableIndexedEXT = (PFNGLENABLEINDEXEDEXTPROC)load("glEnableIndexedEXT"); - glad_glDisableIndexedEXT = (PFNGLDISABLEINDEXEDEXTPROC)load("glDisableIndexedEXT"); - glad_glIsEnabledIndexedEXT = (PFNGLISENABLEDINDEXEDEXTPROC)load("glIsEnabledIndexedEXT"); - glad_glGetIntegerIndexedvEXT = (PFNGLGETINTEGERINDEXEDVEXTPROC)load("glGetIntegerIndexedvEXT"); - glad_glGetBooleanIndexedvEXT = (PFNGLGETBOOLEANINDEXEDVEXTPROC)load("glGetBooleanIndexedvEXT"); - glad_glCompressedTextureImage3DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC)load("glCompressedTextureImage3DEXT"); - glad_glCompressedTextureImage2DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC)load("glCompressedTextureImage2DEXT"); - glad_glCompressedTextureImage1DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC)load("glCompressedTextureImage1DEXT"); - glad_glCompressedTextureSubImage3DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC)load("glCompressedTextureSubImage3DEXT"); - glad_glCompressedTextureSubImage2DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC)load("glCompressedTextureSubImage2DEXT"); - glad_glCompressedTextureSubImage1DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC)load("glCompressedTextureSubImage1DEXT"); - glad_glGetCompressedTextureImageEXT = (PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC)load("glGetCompressedTextureImageEXT"); - glad_glCompressedMultiTexImage3DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC)load("glCompressedMultiTexImage3DEXT"); - glad_glCompressedMultiTexImage2DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC)load("glCompressedMultiTexImage2DEXT"); - glad_glCompressedMultiTexImage1DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC)load("glCompressedMultiTexImage1DEXT"); - glad_glCompressedMultiTexSubImage3DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC)load("glCompressedMultiTexSubImage3DEXT"); - glad_glCompressedMultiTexSubImage2DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC)load("glCompressedMultiTexSubImage2DEXT"); - glad_glCompressedMultiTexSubImage1DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC)load("glCompressedMultiTexSubImage1DEXT"); - glad_glGetCompressedMultiTexImageEXT = (PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC)load("glGetCompressedMultiTexImageEXT"); - glad_glMatrixLoadTransposefEXT = (PFNGLMATRIXLOADTRANSPOSEFEXTPROC)load("glMatrixLoadTransposefEXT"); - glad_glMatrixLoadTransposedEXT = (PFNGLMATRIXLOADTRANSPOSEDEXTPROC)load("glMatrixLoadTransposedEXT"); - glad_glMatrixMultTransposefEXT = (PFNGLMATRIXMULTTRANSPOSEFEXTPROC)load("glMatrixMultTransposefEXT"); - glad_glMatrixMultTransposedEXT = (PFNGLMATRIXMULTTRANSPOSEDEXTPROC)load("glMatrixMultTransposedEXT"); - glad_glNamedBufferDataEXT = (PFNGLNAMEDBUFFERDATAEXTPROC)load("glNamedBufferDataEXT"); - glad_glNamedBufferSubDataEXT = (PFNGLNAMEDBUFFERSUBDATAEXTPROC)load("glNamedBufferSubDataEXT"); - glad_glMapNamedBufferEXT = (PFNGLMAPNAMEDBUFFEREXTPROC)load("glMapNamedBufferEXT"); - glad_glUnmapNamedBufferEXT = (PFNGLUNMAPNAMEDBUFFEREXTPROC)load("glUnmapNamedBufferEXT"); - glad_glGetNamedBufferParameterivEXT = (PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC)load("glGetNamedBufferParameterivEXT"); - glad_glGetNamedBufferPointervEXT = (PFNGLGETNAMEDBUFFERPOINTERVEXTPROC)load("glGetNamedBufferPointervEXT"); - glad_glGetNamedBufferSubDataEXT = (PFNGLGETNAMEDBUFFERSUBDATAEXTPROC)load("glGetNamedBufferSubDataEXT"); - glad_glProgramUniform1fEXT = (PFNGLPROGRAMUNIFORM1FEXTPROC)load("glProgramUniform1fEXT"); - glad_glProgramUniform2fEXT = (PFNGLPROGRAMUNIFORM2FEXTPROC)load("glProgramUniform2fEXT"); - glad_glProgramUniform3fEXT = (PFNGLPROGRAMUNIFORM3FEXTPROC)load("glProgramUniform3fEXT"); - glad_glProgramUniform4fEXT = (PFNGLPROGRAMUNIFORM4FEXTPROC)load("glProgramUniform4fEXT"); - glad_glProgramUniform1iEXT = (PFNGLPROGRAMUNIFORM1IEXTPROC)load("glProgramUniform1iEXT"); - glad_glProgramUniform2iEXT = (PFNGLPROGRAMUNIFORM2IEXTPROC)load("glProgramUniform2iEXT"); - glad_glProgramUniform3iEXT = (PFNGLPROGRAMUNIFORM3IEXTPROC)load("glProgramUniform3iEXT"); - glad_glProgramUniform4iEXT = (PFNGLPROGRAMUNIFORM4IEXTPROC)load("glProgramUniform4iEXT"); - glad_glProgramUniform1fvEXT = (PFNGLPROGRAMUNIFORM1FVEXTPROC)load("glProgramUniform1fvEXT"); - glad_glProgramUniform2fvEXT = (PFNGLPROGRAMUNIFORM2FVEXTPROC)load("glProgramUniform2fvEXT"); - glad_glProgramUniform3fvEXT = (PFNGLPROGRAMUNIFORM3FVEXTPROC)load("glProgramUniform3fvEXT"); - glad_glProgramUniform4fvEXT = (PFNGLPROGRAMUNIFORM4FVEXTPROC)load("glProgramUniform4fvEXT"); - glad_glProgramUniform1ivEXT = (PFNGLPROGRAMUNIFORM1IVEXTPROC)load("glProgramUniform1ivEXT"); - glad_glProgramUniform2ivEXT = (PFNGLPROGRAMUNIFORM2IVEXTPROC)load("glProgramUniform2ivEXT"); - glad_glProgramUniform3ivEXT = (PFNGLPROGRAMUNIFORM3IVEXTPROC)load("glProgramUniform3ivEXT"); - glad_glProgramUniform4ivEXT = (PFNGLPROGRAMUNIFORM4IVEXTPROC)load("glProgramUniform4ivEXT"); - glad_glProgramUniformMatrix2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)load("glProgramUniformMatrix2fvEXT"); - glad_glProgramUniformMatrix3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)load("glProgramUniformMatrix3fvEXT"); - glad_glProgramUniformMatrix4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)load("glProgramUniformMatrix4fvEXT"); - glad_glProgramUniformMatrix2x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)load("glProgramUniformMatrix2x3fvEXT"); - glad_glProgramUniformMatrix3x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)load("glProgramUniformMatrix3x2fvEXT"); - glad_glProgramUniformMatrix2x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)load("glProgramUniformMatrix2x4fvEXT"); - glad_glProgramUniformMatrix4x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)load("glProgramUniformMatrix4x2fvEXT"); - glad_glProgramUniformMatrix3x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)load("glProgramUniformMatrix3x4fvEXT"); - glad_glProgramUniformMatrix4x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)load("glProgramUniformMatrix4x3fvEXT"); - glad_glTextureBufferEXT = (PFNGLTEXTUREBUFFEREXTPROC)load("glTextureBufferEXT"); - glad_glMultiTexBufferEXT = (PFNGLMULTITEXBUFFEREXTPROC)load("glMultiTexBufferEXT"); - glad_glTextureParameterIivEXT = (PFNGLTEXTUREPARAMETERIIVEXTPROC)load("glTextureParameterIivEXT"); - glad_glTextureParameterIuivEXT = (PFNGLTEXTUREPARAMETERIUIVEXTPROC)load("glTextureParameterIuivEXT"); - glad_glGetTextureParameterIivEXT = (PFNGLGETTEXTUREPARAMETERIIVEXTPROC)load("glGetTextureParameterIivEXT"); - glad_glGetTextureParameterIuivEXT = (PFNGLGETTEXTUREPARAMETERIUIVEXTPROC)load("glGetTextureParameterIuivEXT"); - glad_glMultiTexParameterIivEXT = (PFNGLMULTITEXPARAMETERIIVEXTPROC)load("glMultiTexParameterIivEXT"); - glad_glMultiTexParameterIuivEXT = (PFNGLMULTITEXPARAMETERIUIVEXTPROC)load("glMultiTexParameterIuivEXT"); - glad_glGetMultiTexParameterIivEXT = (PFNGLGETMULTITEXPARAMETERIIVEXTPROC)load("glGetMultiTexParameterIivEXT"); - glad_glGetMultiTexParameterIuivEXT = (PFNGLGETMULTITEXPARAMETERIUIVEXTPROC)load("glGetMultiTexParameterIuivEXT"); - glad_glProgramUniform1uiEXT = (PFNGLPROGRAMUNIFORM1UIEXTPROC)load("glProgramUniform1uiEXT"); - glad_glProgramUniform2uiEXT = (PFNGLPROGRAMUNIFORM2UIEXTPROC)load("glProgramUniform2uiEXT"); - glad_glProgramUniform3uiEXT = (PFNGLPROGRAMUNIFORM3UIEXTPROC)load("glProgramUniform3uiEXT"); - glad_glProgramUniform4uiEXT = (PFNGLPROGRAMUNIFORM4UIEXTPROC)load("glProgramUniform4uiEXT"); - glad_glProgramUniform1uivEXT = (PFNGLPROGRAMUNIFORM1UIVEXTPROC)load("glProgramUniform1uivEXT"); - glad_glProgramUniform2uivEXT = (PFNGLPROGRAMUNIFORM2UIVEXTPROC)load("glProgramUniform2uivEXT"); - glad_glProgramUniform3uivEXT = (PFNGLPROGRAMUNIFORM3UIVEXTPROC)load("glProgramUniform3uivEXT"); - glad_glProgramUniform4uivEXT = (PFNGLPROGRAMUNIFORM4UIVEXTPROC)load("glProgramUniform4uivEXT"); - glad_glNamedProgramLocalParameters4fvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC)load("glNamedProgramLocalParameters4fvEXT"); - glad_glNamedProgramLocalParameterI4iEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC)load("glNamedProgramLocalParameterI4iEXT"); - glad_glNamedProgramLocalParameterI4ivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC)load("glNamedProgramLocalParameterI4ivEXT"); - glad_glNamedProgramLocalParametersI4ivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC)load("glNamedProgramLocalParametersI4ivEXT"); - glad_glNamedProgramLocalParameterI4uiEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC)load("glNamedProgramLocalParameterI4uiEXT"); - glad_glNamedProgramLocalParameterI4uivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC)load("glNamedProgramLocalParameterI4uivEXT"); - glad_glNamedProgramLocalParametersI4uivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC)load("glNamedProgramLocalParametersI4uivEXT"); - glad_glGetNamedProgramLocalParameterIivEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC)load("glGetNamedProgramLocalParameterIivEXT"); - glad_glGetNamedProgramLocalParameterIuivEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC)load("glGetNamedProgramLocalParameterIuivEXT"); - glad_glEnableClientStateiEXT = (PFNGLENABLECLIENTSTATEIEXTPROC)load("glEnableClientStateiEXT"); - glad_glDisableClientStateiEXT = (PFNGLDISABLECLIENTSTATEIEXTPROC)load("glDisableClientStateiEXT"); - glad_glGetFloati_vEXT = (PFNGLGETFLOATI_VEXTPROC)load("glGetFloati_vEXT"); - glad_glGetDoublei_vEXT = (PFNGLGETDOUBLEI_VEXTPROC)load("glGetDoublei_vEXT"); - glad_glGetPointeri_vEXT = (PFNGLGETPOINTERI_VEXTPROC)load("glGetPointeri_vEXT"); - glad_glNamedProgramStringEXT = (PFNGLNAMEDPROGRAMSTRINGEXTPROC)load("glNamedProgramStringEXT"); - glad_glNamedProgramLocalParameter4dEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC)load("glNamedProgramLocalParameter4dEXT"); - glad_glNamedProgramLocalParameter4dvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC)load("glNamedProgramLocalParameter4dvEXT"); - glad_glNamedProgramLocalParameter4fEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC)load("glNamedProgramLocalParameter4fEXT"); - glad_glNamedProgramLocalParameter4fvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC)load("glNamedProgramLocalParameter4fvEXT"); - glad_glGetNamedProgramLocalParameterdvEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC)load("glGetNamedProgramLocalParameterdvEXT"); - glad_glGetNamedProgramLocalParameterfvEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC)load("glGetNamedProgramLocalParameterfvEXT"); - glad_glGetNamedProgramivEXT = (PFNGLGETNAMEDPROGRAMIVEXTPROC)load("glGetNamedProgramivEXT"); - glad_glGetNamedProgramStringEXT = (PFNGLGETNAMEDPROGRAMSTRINGEXTPROC)load("glGetNamedProgramStringEXT"); - glad_glNamedRenderbufferStorageEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC)load("glNamedRenderbufferStorageEXT"); - glad_glGetNamedRenderbufferParameterivEXT = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC)load("glGetNamedRenderbufferParameterivEXT"); - glad_glNamedRenderbufferStorageMultisampleEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)load("glNamedRenderbufferStorageMultisampleEXT"); - glad_glNamedRenderbufferStorageMultisampleCoverageEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC)load("glNamedRenderbufferStorageMultisampleCoverageEXT"); - glad_glCheckNamedFramebufferStatusEXT = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC)load("glCheckNamedFramebufferStatusEXT"); - glad_glNamedFramebufferTexture1DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC)load("glNamedFramebufferTexture1DEXT"); - glad_glNamedFramebufferTexture2DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC)load("glNamedFramebufferTexture2DEXT"); - glad_glNamedFramebufferTexture3DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC)load("glNamedFramebufferTexture3DEXT"); - glad_glNamedFramebufferRenderbufferEXT = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC)load("glNamedFramebufferRenderbufferEXT"); - glad_glGetNamedFramebufferAttachmentParameterivEXT = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)load("glGetNamedFramebufferAttachmentParameterivEXT"); - glad_glGenerateTextureMipmapEXT = (PFNGLGENERATETEXTUREMIPMAPEXTPROC)load("glGenerateTextureMipmapEXT"); - glad_glGenerateMultiTexMipmapEXT = (PFNGLGENERATEMULTITEXMIPMAPEXTPROC)load("glGenerateMultiTexMipmapEXT"); - glad_glFramebufferDrawBufferEXT = (PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC)load("glFramebufferDrawBufferEXT"); - glad_glFramebufferDrawBuffersEXT = (PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC)load("glFramebufferDrawBuffersEXT"); - glad_glFramebufferReadBufferEXT = (PFNGLFRAMEBUFFERREADBUFFEREXTPROC)load("glFramebufferReadBufferEXT"); - glad_glGetFramebufferParameterivEXT = (PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC)load("glGetFramebufferParameterivEXT"); - glad_glNamedCopyBufferSubDataEXT = (PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC)load("glNamedCopyBufferSubDataEXT"); - glad_glNamedFramebufferTextureEXT = (PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC)load("glNamedFramebufferTextureEXT"); - glad_glNamedFramebufferTextureLayerEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC)load("glNamedFramebufferTextureLayerEXT"); - glad_glNamedFramebufferTextureFaceEXT = (PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC)load("glNamedFramebufferTextureFaceEXT"); - glad_glTextureRenderbufferEXT = (PFNGLTEXTURERENDERBUFFEREXTPROC)load("glTextureRenderbufferEXT"); - glad_glMultiTexRenderbufferEXT = (PFNGLMULTITEXRENDERBUFFEREXTPROC)load("glMultiTexRenderbufferEXT"); - glad_glVertexArrayVertexOffsetEXT = (PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC)load("glVertexArrayVertexOffsetEXT"); - glad_glVertexArrayColorOffsetEXT = (PFNGLVERTEXARRAYCOLOROFFSETEXTPROC)load("glVertexArrayColorOffsetEXT"); - glad_glVertexArrayEdgeFlagOffsetEXT = (PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC)load("glVertexArrayEdgeFlagOffsetEXT"); - glad_glVertexArrayIndexOffsetEXT = (PFNGLVERTEXARRAYINDEXOFFSETEXTPROC)load("glVertexArrayIndexOffsetEXT"); - glad_glVertexArrayNormalOffsetEXT = (PFNGLVERTEXARRAYNORMALOFFSETEXTPROC)load("glVertexArrayNormalOffsetEXT"); - glad_glVertexArrayTexCoordOffsetEXT = (PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC)load("glVertexArrayTexCoordOffsetEXT"); - glad_glVertexArrayMultiTexCoordOffsetEXT = (PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC)load("glVertexArrayMultiTexCoordOffsetEXT"); - glad_glVertexArrayFogCoordOffsetEXT = (PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC)load("glVertexArrayFogCoordOffsetEXT"); - glad_glVertexArraySecondaryColorOffsetEXT = (PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC)load("glVertexArraySecondaryColorOffsetEXT"); - glad_glVertexArrayVertexAttribOffsetEXT = (PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC)load("glVertexArrayVertexAttribOffsetEXT"); - glad_glVertexArrayVertexAttribIOffsetEXT = (PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC)load("glVertexArrayVertexAttribIOffsetEXT"); - glad_glEnableVertexArrayEXT = (PFNGLENABLEVERTEXARRAYEXTPROC)load("glEnableVertexArrayEXT"); - glad_glDisableVertexArrayEXT = (PFNGLDISABLEVERTEXARRAYEXTPROC)load("glDisableVertexArrayEXT"); - glad_glEnableVertexArrayAttribEXT = (PFNGLENABLEVERTEXARRAYATTRIBEXTPROC)load("glEnableVertexArrayAttribEXT"); - glad_glDisableVertexArrayAttribEXT = (PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC)load("glDisableVertexArrayAttribEXT"); - glad_glGetVertexArrayIntegervEXT = (PFNGLGETVERTEXARRAYINTEGERVEXTPROC)load("glGetVertexArrayIntegervEXT"); - glad_glGetVertexArrayPointervEXT = (PFNGLGETVERTEXARRAYPOINTERVEXTPROC)load("glGetVertexArrayPointervEXT"); - glad_glGetVertexArrayIntegeri_vEXT = (PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC)load("glGetVertexArrayIntegeri_vEXT"); - glad_glGetVertexArrayPointeri_vEXT = (PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC)load("glGetVertexArrayPointeri_vEXT"); - glad_glMapNamedBufferRangeEXT = (PFNGLMAPNAMEDBUFFERRANGEEXTPROC)load("glMapNamedBufferRangeEXT"); - glad_glFlushMappedNamedBufferRangeEXT = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC)load("glFlushMappedNamedBufferRangeEXT"); - glad_glNamedBufferStorageEXT = (PFNGLNAMEDBUFFERSTORAGEEXTPROC)load("glNamedBufferStorageEXT"); - glad_glClearNamedBufferDataEXT = (PFNGLCLEARNAMEDBUFFERDATAEXTPROC)load("glClearNamedBufferDataEXT"); - glad_glClearNamedBufferSubDataEXT = (PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC)load("glClearNamedBufferSubDataEXT"); - glad_glNamedFramebufferParameteriEXT = (PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC)load("glNamedFramebufferParameteriEXT"); - glad_glGetNamedFramebufferParameterivEXT = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC)load("glGetNamedFramebufferParameterivEXT"); - glad_glProgramUniform1dEXT = (PFNGLPROGRAMUNIFORM1DEXTPROC)load("glProgramUniform1dEXT"); - glad_glProgramUniform2dEXT = (PFNGLPROGRAMUNIFORM2DEXTPROC)load("glProgramUniform2dEXT"); - glad_glProgramUniform3dEXT = (PFNGLPROGRAMUNIFORM3DEXTPROC)load("glProgramUniform3dEXT"); - glad_glProgramUniform4dEXT = (PFNGLPROGRAMUNIFORM4DEXTPROC)load("glProgramUniform4dEXT"); - glad_glProgramUniform1dvEXT = (PFNGLPROGRAMUNIFORM1DVEXTPROC)load("glProgramUniform1dvEXT"); - glad_glProgramUniform2dvEXT = (PFNGLPROGRAMUNIFORM2DVEXTPROC)load("glProgramUniform2dvEXT"); - glad_glProgramUniform3dvEXT = (PFNGLPROGRAMUNIFORM3DVEXTPROC)load("glProgramUniform3dvEXT"); - glad_glProgramUniform4dvEXT = (PFNGLPROGRAMUNIFORM4DVEXTPROC)load("glProgramUniform4dvEXT"); - glad_glProgramUniformMatrix2dvEXT = (PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC)load("glProgramUniformMatrix2dvEXT"); - glad_glProgramUniformMatrix3dvEXT = (PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC)load("glProgramUniformMatrix3dvEXT"); - glad_glProgramUniformMatrix4dvEXT = (PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC)load("glProgramUniformMatrix4dvEXT"); - glad_glProgramUniformMatrix2x3dvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC)load("glProgramUniformMatrix2x3dvEXT"); - glad_glProgramUniformMatrix2x4dvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC)load("glProgramUniformMatrix2x4dvEXT"); - glad_glProgramUniformMatrix3x2dvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC)load("glProgramUniformMatrix3x2dvEXT"); - glad_glProgramUniformMatrix3x4dvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC)load("glProgramUniformMatrix3x4dvEXT"); - glad_glProgramUniformMatrix4x2dvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC)load("glProgramUniformMatrix4x2dvEXT"); - glad_glProgramUniformMatrix4x3dvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC)load("glProgramUniformMatrix4x3dvEXT"); - glad_glTextureBufferRangeEXT = (PFNGLTEXTUREBUFFERRANGEEXTPROC)load("glTextureBufferRangeEXT"); - glad_glTextureStorage1DEXT = (PFNGLTEXTURESTORAGE1DEXTPROC)load("glTextureStorage1DEXT"); - glad_glTextureStorage2DEXT = (PFNGLTEXTURESTORAGE2DEXTPROC)load("glTextureStorage2DEXT"); - glad_glTextureStorage3DEXT = (PFNGLTEXTURESTORAGE3DEXTPROC)load("glTextureStorage3DEXT"); - glad_glTextureStorage2DMultisampleEXT = (PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC)load("glTextureStorage2DMultisampleEXT"); - glad_glTextureStorage3DMultisampleEXT = (PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC)load("glTextureStorage3DMultisampleEXT"); - glad_glVertexArrayBindVertexBufferEXT = (PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC)load("glVertexArrayBindVertexBufferEXT"); - glad_glVertexArrayVertexAttribFormatEXT = (PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC)load("glVertexArrayVertexAttribFormatEXT"); - glad_glVertexArrayVertexAttribIFormatEXT = (PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC)load("glVertexArrayVertexAttribIFormatEXT"); - glad_glVertexArrayVertexAttribLFormatEXT = (PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC)load("glVertexArrayVertexAttribLFormatEXT"); - glad_glVertexArrayVertexAttribBindingEXT = (PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC)load("glVertexArrayVertexAttribBindingEXT"); - glad_glVertexArrayVertexBindingDivisorEXT = (PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC)load("glVertexArrayVertexBindingDivisorEXT"); - glad_glVertexArrayVertexAttribLOffsetEXT = (PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC)load("glVertexArrayVertexAttribLOffsetEXT"); - glad_glTexturePageCommitmentEXT = (PFNGLTEXTUREPAGECOMMITMENTEXTPROC)load("glTexturePageCommitmentEXT"); - glad_glVertexArrayVertexAttribDivisorEXT = (PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC)load("glVertexArrayVertexAttribDivisorEXT"); -} -static void load_GL_AMD_sample_positions(GLADloadproc load) { - if(!GLAD_GL_AMD_sample_positions) return; - glad_glSetMultisamplefvAMD = (PFNGLSETMULTISAMPLEFVAMDPROC)load("glSetMultisamplefvAMD"); -} -static void load_GL_NV_vertex_program(GLADloadproc load) { - if(!GLAD_GL_NV_vertex_program) return; - glad_glAreProgramsResidentNV = (PFNGLAREPROGRAMSRESIDENTNVPROC)load("glAreProgramsResidentNV"); - glad_glBindProgramNV = (PFNGLBINDPROGRAMNVPROC)load("glBindProgramNV"); - glad_glDeleteProgramsNV = (PFNGLDELETEPROGRAMSNVPROC)load("glDeleteProgramsNV"); - glad_glExecuteProgramNV = (PFNGLEXECUTEPROGRAMNVPROC)load("glExecuteProgramNV"); - glad_glGenProgramsNV = (PFNGLGENPROGRAMSNVPROC)load("glGenProgramsNV"); - glad_glGetProgramParameterdvNV = (PFNGLGETPROGRAMPARAMETERDVNVPROC)load("glGetProgramParameterdvNV"); - glad_glGetProgramParameterfvNV = (PFNGLGETPROGRAMPARAMETERFVNVPROC)load("glGetProgramParameterfvNV"); - glad_glGetProgramivNV = (PFNGLGETPROGRAMIVNVPROC)load("glGetProgramivNV"); - glad_glGetProgramStringNV = (PFNGLGETPROGRAMSTRINGNVPROC)load("glGetProgramStringNV"); - glad_glGetTrackMatrixivNV = (PFNGLGETTRACKMATRIXIVNVPROC)load("glGetTrackMatrixivNV"); - glad_glGetVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC)load("glGetVertexAttribdvNV"); - glad_glGetVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC)load("glGetVertexAttribfvNV"); - glad_glGetVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC)load("glGetVertexAttribivNV"); - glad_glGetVertexAttribPointervNV = (PFNGLGETVERTEXATTRIBPOINTERVNVPROC)load("glGetVertexAttribPointervNV"); - glad_glIsProgramNV = (PFNGLISPROGRAMNVPROC)load("glIsProgramNV"); - glad_glLoadProgramNV = (PFNGLLOADPROGRAMNVPROC)load("glLoadProgramNV"); - glad_glProgramParameter4dNV = (PFNGLPROGRAMPARAMETER4DNVPROC)load("glProgramParameter4dNV"); - glad_glProgramParameter4dvNV = (PFNGLPROGRAMPARAMETER4DVNVPROC)load("glProgramParameter4dvNV"); - glad_glProgramParameter4fNV = (PFNGLPROGRAMPARAMETER4FNVPROC)load("glProgramParameter4fNV"); - glad_glProgramParameter4fvNV = (PFNGLPROGRAMPARAMETER4FVNVPROC)load("glProgramParameter4fvNV"); - glad_glProgramParameters4dvNV = (PFNGLPROGRAMPARAMETERS4DVNVPROC)load("glProgramParameters4dvNV"); - glad_glProgramParameters4fvNV = (PFNGLPROGRAMPARAMETERS4FVNVPROC)load("glProgramParameters4fvNV"); - glad_glRequestResidentProgramsNV = (PFNGLREQUESTRESIDENTPROGRAMSNVPROC)load("glRequestResidentProgramsNV"); - glad_glTrackMatrixNV = (PFNGLTRACKMATRIXNVPROC)load("glTrackMatrixNV"); - glad_glVertexAttribPointerNV = (PFNGLVERTEXATTRIBPOINTERNVPROC)load("glVertexAttribPointerNV"); - glad_glVertexAttrib1dNV = (PFNGLVERTEXATTRIB1DNVPROC)load("glVertexAttrib1dNV"); - glad_glVertexAttrib1dvNV = (PFNGLVERTEXATTRIB1DVNVPROC)load("glVertexAttrib1dvNV"); - glad_glVertexAttrib1fNV = (PFNGLVERTEXATTRIB1FNVPROC)load("glVertexAttrib1fNV"); - glad_glVertexAttrib1fvNV = (PFNGLVERTEXATTRIB1FVNVPROC)load("glVertexAttrib1fvNV"); - glad_glVertexAttrib1sNV = (PFNGLVERTEXATTRIB1SNVPROC)load("glVertexAttrib1sNV"); - glad_glVertexAttrib1svNV = (PFNGLVERTEXATTRIB1SVNVPROC)load("glVertexAttrib1svNV"); - glad_glVertexAttrib2dNV = (PFNGLVERTEXATTRIB2DNVPROC)load("glVertexAttrib2dNV"); - glad_glVertexAttrib2dvNV = (PFNGLVERTEXATTRIB2DVNVPROC)load("glVertexAttrib2dvNV"); - glad_glVertexAttrib2fNV = (PFNGLVERTEXATTRIB2FNVPROC)load("glVertexAttrib2fNV"); - glad_glVertexAttrib2fvNV = (PFNGLVERTEXATTRIB2FVNVPROC)load("glVertexAttrib2fvNV"); - glad_glVertexAttrib2sNV = (PFNGLVERTEXATTRIB2SNVPROC)load("glVertexAttrib2sNV"); - glad_glVertexAttrib2svNV = (PFNGLVERTEXATTRIB2SVNVPROC)load("glVertexAttrib2svNV"); - glad_glVertexAttrib3dNV = (PFNGLVERTEXATTRIB3DNVPROC)load("glVertexAttrib3dNV"); - glad_glVertexAttrib3dvNV = (PFNGLVERTEXATTRIB3DVNVPROC)load("glVertexAttrib3dvNV"); - glad_glVertexAttrib3fNV = (PFNGLVERTEXATTRIB3FNVPROC)load("glVertexAttrib3fNV"); - glad_glVertexAttrib3fvNV = (PFNGLVERTEXATTRIB3FVNVPROC)load("glVertexAttrib3fvNV"); - glad_glVertexAttrib3sNV = (PFNGLVERTEXATTRIB3SNVPROC)load("glVertexAttrib3sNV"); - glad_glVertexAttrib3svNV = (PFNGLVERTEXATTRIB3SVNVPROC)load("glVertexAttrib3svNV"); - glad_glVertexAttrib4dNV = (PFNGLVERTEXATTRIB4DNVPROC)load("glVertexAttrib4dNV"); - glad_glVertexAttrib4dvNV = (PFNGLVERTEXATTRIB4DVNVPROC)load("glVertexAttrib4dvNV"); - glad_glVertexAttrib4fNV = (PFNGLVERTEXATTRIB4FNVPROC)load("glVertexAttrib4fNV"); - glad_glVertexAttrib4fvNV = (PFNGLVERTEXATTRIB4FVNVPROC)load("glVertexAttrib4fvNV"); - glad_glVertexAttrib4sNV = (PFNGLVERTEXATTRIB4SNVPROC)load("glVertexAttrib4sNV"); - glad_glVertexAttrib4svNV = (PFNGLVERTEXATTRIB4SVNVPROC)load("glVertexAttrib4svNV"); - glad_glVertexAttrib4ubNV = (PFNGLVERTEXATTRIB4UBNVPROC)load("glVertexAttrib4ubNV"); - glad_glVertexAttrib4ubvNV = (PFNGLVERTEXATTRIB4UBVNVPROC)load("glVertexAttrib4ubvNV"); - glad_glVertexAttribs1dvNV = (PFNGLVERTEXATTRIBS1DVNVPROC)load("glVertexAttribs1dvNV"); - glad_glVertexAttribs1fvNV = (PFNGLVERTEXATTRIBS1FVNVPROC)load("glVertexAttribs1fvNV"); - glad_glVertexAttribs1svNV = (PFNGLVERTEXATTRIBS1SVNVPROC)load("glVertexAttribs1svNV"); - glad_glVertexAttribs2dvNV = (PFNGLVERTEXATTRIBS2DVNVPROC)load("glVertexAttribs2dvNV"); - glad_glVertexAttribs2fvNV = (PFNGLVERTEXATTRIBS2FVNVPROC)load("glVertexAttribs2fvNV"); - glad_glVertexAttribs2svNV = (PFNGLVERTEXATTRIBS2SVNVPROC)load("glVertexAttribs2svNV"); - glad_glVertexAttribs3dvNV = (PFNGLVERTEXATTRIBS3DVNVPROC)load("glVertexAttribs3dvNV"); - glad_glVertexAttribs3fvNV = (PFNGLVERTEXATTRIBS3FVNVPROC)load("glVertexAttribs3fvNV"); - glad_glVertexAttribs3svNV = (PFNGLVERTEXATTRIBS3SVNVPROC)load("glVertexAttribs3svNV"); - glad_glVertexAttribs4dvNV = (PFNGLVERTEXATTRIBS4DVNVPROC)load("glVertexAttribs4dvNV"); - glad_glVertexAttribs4fvNV = (PFNGLVERTEXATTRIBS4FVNVPROC)load("glVertexAttribs4fvNV"); - glad_glVertexAttribs4svNV = (PFNGLVERTEXATTRIBS4SVNVPROC)load("glVertexAttribs4svNV"); - glad_glVertexAttribs4ubvNV = (PFNGLVERTEXATTRIBS4UBVNVPROC)load("glVertexAttribs4ubvNV"); -} -static void load_GL_EXT_vertex_shader(GLADloadproc load) { - if(!GLAD_GL_EXT_vertex_shader) return; - glad_glBeginVertexShaderEXT = (PFNGLBEGINVERTEXSHADEREXTPROC)load("glBeginVertexShaderEXT"); - glad_glEndVertexShaderEXT = (PFNGLENDVERTEXSHADEREXTPROC)load("glEndVertexShaderEXT"); - glad_glBindVertexShaderEXT = (PFNGLBINDVERTEXSHADEREXTPROC)load("glBindVertexShaderEXT"); - glad_glGenVertexShadersEXT = (PFNGLGENVERTEXSHADERSEXTPROC)load("glGenVertexShadersEXT"); - glad_glDeleteVertexShaderEXT = (PFNGLDELETEVERTEXSHADEREXTPROC)load("glDeleteVertexShaderEXT"); - glad_glShaderOp1EXT = (PFNGLSHADEROP1EXTPROC)load("glShaderOp1EXT"); - glad_glShaderOp2EXT = (PFNGLSHADEROP2EXTPROC)load("glShaderOp2EXT"); - glad_glShaderOp3EXT = (PFNGLSHADEROP3EXTPROC)load("glShaderOp3EXT"); - glad_glSwizzleEXT = (PFNGLSWIZZLEEXTPROC)load("glSwizzleEXT"); - glad_glWriteMaskEXT = (PFNGLWRITEMASKEXTPROC)load("glWriteMaskEXT"); - glad_glInsertComponentEXT = (PFNGLINSERTCOMPONENTEXTPROC)load("glInsertComponentEXT"); - glad_glExtractComponentEXT = (PFNGLEXTRACTCOMPONENTEXTPROC)load("glExtractComponentEXT"); - glad_glGenSymbolsEXT = (PFNGLGENSYMBOLSEXTPROC)load("glGenSymbolsEXT"); - glad_glSetInvariantEXT = (PFNGLSETINVARIANTEXTPROC)load("glSetInvariantEXT"); - glad_glSetLocalConstantEXT = (PFNGLSETLOCALCONSTANTEXTPROC)load("glSetLocalConstantEXT"); - glad_glVariantbvEXT = (PFNGLVARIANTBVEXTPROC)load("glVariantbvEXT"); - glad_glVariantsvEXT = (PFNGLVARIANTSVEXTPROC)load("glVariantsvEXT"); - glad_glVariantivEXT = (PFNGLVARIANTIVEXTPROC)load("glVariantivEXT"); - glad_glVariantfvEXT = (PFNGLVARIANTFVEXTPROC)load("glVariantfvEXT"); - glad_glVariantdvEXT = (PFNGLVARIANTDVEXTPROC)load("glVariantdvEXT"); - glad_glVariantubvEXT = (PFNGLVARIANTUBVEXTPROC)load("glVariantubvEXT"); - glad_glVariantusvEXT = (PFNGLVARIANTUSVEXTPROC)load("glVariantusvEXT"); - glad_glVariantuivEXT = (PFNGLVARIANTUIVEXTPROC)load("glVariantuivEXT"); - glad_glVariantPointerEXT = (PFNGLVARIANTPOINTEREXTPROC)load("glVariantPointerEXT"); - glad_glEnableVariantClientStateEXT = (PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)load("glEnableVariantClientStateEXT"); - glad_glDisableVariantClientStateEXT = (PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)load("glDisableVariantClientStateEXT"); - glad_glBindLightParameterEXT = (PFNGLBINDLIGHTPARAMETEREXTPROC)load("glBindLightParameterEXT"); - glad_glBindMaterialParameterEXT = (PFNGLBINDMATERIALPARAMETEREXTPROC)load("glBindMaterialParameterEXT"); - glad_glBindTexGenParameterEXT = (PFNGLBINDTEXGENPARAMETEREXTPROC)load("glBindTexGenParameterEXT"); - glad_glBindTextureUnitParameterEXT = (PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)load("glBindTextureUnitParameterEXT"); - glad_glBindParameterEXT = (PFNGLBINDPARAMETEREXTPROC)load("glBindParameterEXT"); - glad_glIsVariantEnabledEXT = (PFNGLISVARIANTENABLEDEXTPROC)load("glIsVariantEnabledEXT"); - glad_glGetVariantBooleanvEXT = (PFNGLGETVARIANTBOOLEANVEXTPROC)load("glGetVariantBooleanvEXT"); - glad_glGetVariantIntegervEXT = (PFNGLGETVARIANTINTEGERVEXTPROC)load("glGetVariantIntegervEXT"); - glad_glGetVariantFloatvEXT = (PFNGLGETVARIANTFLOATVEXTPROC)load("glGetVariantFloatvEXT"); - glad_glGetVariantPointervEXT = (PFNGLGETVARIANTPOINTERVEXTPROC)load("glGetVariantPointervEXT"); - glad_glGetInvariantBooleanvEXT = (PFNGLGETINVARIANTBOOLEANVEXTPROC)load("glGetInvariantBooleanvEXT"); - glad_glGetInvariantIntegervEXT = (PFNGLGETINVARIANTINTEGERVEXTPROC)load("glGetInvariantIntegervEXT"); - glad_glGetInvariantFloatvEXT = (PFNGLGETINVARIANTFLOATVEXTPROC)load("glGetInvariantFloatvEXT"); - glad_glGetLocalConstantBooleanvEXT = (PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)load("glGetLocalConstantBooleanvEXT"); - glad_glGetLocalConstantIntegervEXT = (PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)load("glGetLocalConstantIntegervEXT"); - glad_glGetLocalConstantFloatvEXT = (PFNGLGETLOCALCONSTANTFLOATVEXTPROC)load("glGetLocalConstantFloatvEXT"); -} -static void load_GL_EXT_blend_func_separate(GLADloadproc load) { - if(!GLAD_GL_EXT_blend_func_separate) return; - glad_glBlendFuncSeparateEXT = (PFNGLBLENDFUNCSEPARATEEXTPROC)load("glBlendFuncSeparateEXT"); -} -static void load_GL_APPLE_fence(GLADloadproc load) { - if(!GLAD_GL_APPLE_fence) return; - glad_glGenFencesAPPLE = (PFNGLGENFENCESAPPLEPROC)load("glGenFencesAPPLE"); - glad_glDeleteFencesAPPLE = (PFNGLDELETEFENCESAPPLEPROC)load("glDeleteFencesAPPLE"); - glad_glSetFenceAPPLE = (PFNGLSETFENCEAPPLEPROC)load("glSetFenceAPPLE"); - glad_glIsFenceAPPLE = (PFNGLISFENCEAPPLEPROC)load("glIsFenceAPPLE"); - glad_glTestFenceAPPLE = (PFNGLTESTFENCEAPPLEPROC)load("glTestFenceAPPLE"); - glad_glFinishFenceAPPLE = (PFNGLFINISHFENCEAPPLEPROC)load("glFinishFenceAPPLE"); - glad_glTestObjectAPPLE = (PFNGLTESTOBJECTAPPLEPROC)load("glTestObjectAPPLE"); - glad_glFinishObjectAPPLE = (PFNGLFINISHOBJECTAPPLEPROC)load("glFinishObjectAPPLE"); -} -static void load_GL_OES_byte_coordinates(GLADloadproc load) { - if(!GLAD_GL_OES_byte_coordinates) return; - glad_glMultiTexCoord1bOES = (PFNGLMULTITEXCOORD1BOESPROC)load("glMultiTexCoord1bOES"); - glad_glMultiTexCoord1bvOES = (PFNGLMULTITEXCOORD1BVOESPROC)load("glMultiTexCoord1bvOES"); - glad_glMultiTexCoord2bOES = (PFNGLMULTITEXCOORD2BOESPROC)load("glMultiTexCoord2bOES"); - glad_glMultiTexCoord2bvOES = (PFNGLMULTITEXCOORD2BVOESPROC)load("glMultiTexCoord2bvOES"); - glad_glMultiTexCoord3bOES = (PFNGLMULTITEXCOORD3BOESPROC)load("glMultiTexCoord3bOES"); - glad_glMultiTexCoord3bvOES = (PFNGLMULTITEXCOORD3BVOESPROC)load("glMultiTexCoord3bvOES"); - glad_glMultiTexCoord4bOES = (PFNGLMULTITEXCOORD4BOESPROC)load("glMultiTexCoord4bOES"); - glad_glMultiTexCoord4bvOES = (PFNGLMULTITEXCOORD4BVOESPROC)load("glMultiTexCoord4bvOES"); - glad_glTexCoord1bOES = (PFNGLTEXCOORD1BOESPROC)load("glTexCoord1bOES"); - glad_glTexCoord1bvOES = (PFNGLTEXCOORD1BVOESPROC)load("glTexCoord1bvOES"); - glad_glTexCoord2bOES = (PFNGLTEXCOORD2BOESPROC)load("glTexCoord2bOES"); - glad_glTexCoord2bvOES = (PFNGLTEXCOORD2BVOESPROC)load("glTexCoord2bvOES"); - glad_glTexCoord3bOES = (PFNGLTEXCOORD3BOESPROC)load("glTexCoord3bOES"); - glad_glTexCoord3bvOES = (PFNGLTEXCOORD3BVOESPROC)load("glTexCoord3bvOES"); - glad_glTexCoord4bOES = (PFNGLTEXCOORD4BOESPROC)load("glTexCoord4bOES"); - glad_glTexCoord4bvOES = (PFNGLTEXCOORD4BVOESPROC)load("glTexCoord4bvOES"); - glad_glVertex2bOES = (PFNGLVERTEX2BOESPROC)load("glVertex2bOES"); - glad_glVertex2bvOES = (PFNGLVERTEX2BVOESPROC)load("glVertex2bvOES"); - glad_glVertex3bOES = (PFNGLVERTEX3BOESPROC)load("glVertex3bOES"); - glad_glVertex3bvOES = (PFNGLVERTEX3BVOESPROC)load("glVertex3bvOES"); - glad_glVertex4bOES = (PFNGLVERTEX4BOESPROC)load("glVertex4bOES"); - glad_glVertex4bvOES = (PFNGLVERTEX4BVOESPROC)load("glVertex4bvOES"); -} -static void load_GL_ARB_transpose_matrix(GLADloadproc load) { - if(!GLAD_GL_ARB_transpose_matrix) return; - glad_glLoadTransposeMatrixfARB = (PFNGLLOADTRANSPOSEMATRIXFARBPROC)load("glLoadTransposeMatrixfARB"); - glad_glLoadTransposeMatrixdARB = (PFNGLLOADTRANSPOSEMATRIXDARBPROC)load("glLoadTransposeMatrixdARB"); - glad_glMultTransposeMatrixfARB = (PFNGLMULTTRANSPOSEMATRIXFARBPROC)load("glMultTransposeMatrixfARB"); - glad_glMultTransposeMatrixdARB = (PFNGLMULTTRANSPOSEMATRIXDARBPROC)load("glMultTransposeMatrixdARB"); -} -static void load_GL_ARB_provoking_vertex(GLADloadproc load) { - if(!GLAD_GL_ARB_provoking_vertex) return; - glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load("glProvokingVertex"); -} -static void load_GL_EXT_fog_coord(GLADloadproc load) { - if(!GLAD_GL_EXT_fog_coord) return; - glad_glFogCoordfEXT = (PFNGLFOGCOORDFEXTPROC)load("glFogCoordfEXT"); - glad_glFogCoordfvEXT = (PFNGLFOGCOORDFVEXTPROC)load("glFogCoordfvEXT"); - glad_glFogCoorddEXT = (PFNGLFOGCOORDDEXTPROC)load("glFogCoorddEXT"); - glad_glFogCoorddvEXT = (PFNGLFOGCOORDDVEXTPROC)load("glFogCoorddvEXT"); - glad_glFogCoordPointerEXT = (PFNGLFOGCOORDPOINTEREXTPROC)load("glFogCoordPointerEXT"); -} -static void load_GL_EXT_vertex_array(GLADloadproc load) { - if(!GLAD_GL_EXT_vertex_array) return; - glad_glArrayElementEXT = (PFNGLARRAYELEMENTEXTPROC)load("glArrayElementEXT"); - glad_glColorPointerEXT = (PFNGLCOLORPOINTEREXTPROC)load("glColorPointerEXT"); - glad_glDrawArraysEXT = (PFNGLDRAWARRAYSEXTPROC)load("glDrawArraysEXT"); - glad_glEdgeFlagPointerEXT = (PFNGLEDGEFLAGPOINTEREXTPROC)load("glEdgeFlagPointerEXT"); - glad_glGetPointervEXT = (PFNGLGETPOINTERVEXTPROC)load("glGetPointervEXT"); - glad_glIndexPointerEXT = (PFNGLINDEXPOINTEREXTPROC)load("glIndexPointerEXT"); - glad_glNormalPointerEXT = (PFNGLNORMALPOINTEREXTPROC)load("glNormalPointerEXT"); - glad_glTexCoordPointerEXT = (PFNGLTEXCOORDPOINTEREXTPROC)load("glTexCoordPointerEXT"); - glad_glVertexPointerEXT = (PFNGLVERTEXPOINTEREXTPROC)load("glVertexPointerEXT"); -} -static void load_GL_EXT_blend_equation_separate(GLADloadproc load) { - if(!GLAD_GL_EXT_blend_equation_separate) return; - glad_glBlendEquationSeparateEXT = (PFNGLBLENDEQUATIONSEPARATEEXTPROC)load("glBlendEquationSeparateEXT"); -} -static void load_GL_NV_framebuffer_mixed_samples(GLADloadproc load) { - if(!GLAD_GL_NV_framebuffer_mixed_samples) return; - glad_glRasterSamplesEXT = (PFNGLRASTERSAMPLESEXTPROC)load("glRasterSamplesEXT"); - glad_glCoverageModulationTableNV = (PFNGLCOVERAGEMODULATIONTABLENVPROC)load("glCoverageModulationTableNV"); - glad_glGetCoverageModulationTableNV = (PFNGLGETCOVERAGEMODULATIONTABLENVPROC)load("glGetCoverageModulationTableNV"); - glad_glCoverageModulationNV = (PFNGLCOVERAGEMODULATIONNVPROC)load("glCoverageModulationNV"); -} -static void load_GL_NVX_conditional_render(GLADloadproc load) { - if(!GLAD_GL_NVX_conditional_render) return; - glad_glBeginConditionalRenderNVX = (PFNGLBEGINCONDITIONALRENDERNVXPROC)load("glBeginConditionalRenderNVX"); - glad_glEndConditionalRenderNVX = (PFNGLENDCONDITIONALRENDERNVXPROC)load("glEndConditionalRenderNVX"); -} -static void load_GL_ARB_multi_draw_indirect(GLADloadproc load) { - if(!GLAD_GL_ARB_multi_draw_indirect) return; - glad_glMultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECTPROC)load("glMultiDrawArraysIndirect"); - glad_glMultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECTPROC)load("glMultiDrawElementsIndirect"); -} -static void load_GL_EXT_raster_multisample(GLADloadproc load) { - if(!GLAD_GL_EXT_raster_multisample) return; - glad_glRasterSamplesEXT = (PFNGLRASTERSAMPLESEXTPROC)load("glRasterSamplesEXT"); -} -static void load_GL_NV_copy_image(GLADloadproc load) { - if(!GLAD_GL_NV_copy_image) return; - glad_glCopyImageSubDataNV = (PFNGLCOPYIMAGESUBDATANVPROC)load("glCopyImageSubDataNV"); -} -static void load_GL_INTEL_framebuffer_CMAA(GLADloadproc load) { - if(!GLAD_GL_INTEL_framebuffer_CMAA) return; - glad_glApplyFramebufferAttachmentCMAAINTEL = (PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC)load("glApplyFramebufferAttachmentCMAAINTEL"); -} -static void load_GL_ARB_transform_feedback2(GLADloadproc load) { - if(!GLAD_GL_ARB_transform_feedback2) return; - glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)load("glBindTransformFeedback"); - glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)load("glDeleteTransformFeedbacks"); - glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)load("glGenTransformFeedbacks"); - glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)load("glIsTransformFeedback"); - glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)load("glPauseTransformFeedback"); - glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)load("glResumeTransformFeedback"); - glad_glDrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACKPROC)load("glDrawTransformFeedback"); -} -static void load_GL_ARB_transform_feedback3(GLADloadproc load) { - if(!GLAD_GL_ARB_transform_feedback3) return; - glad_glDrawTransformFeedbackStream = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)load("glDrawTransformFeedbackStream"); - glad_glBeginQueryIndexed = (PFNGLBEGINQUERYINDEXEDPROC)load("glBeginQueryIndexed"); - glad_glEndQueryIndexed = (PFNGLENDQUERYINDEXEDPROC)load("glEndQueryIndexed"); - glad_glGetQueryIndexediv = (PFNGLGETQUERYINDEXEDIVPROC)load("glGetQueryIndexediv"); -} -static void load_GL_EXT_debug_marker(GLADloadproc load) { - if(!GLAD_GL_EXT_debug_marker) return; - glad_glInsertEventMarkerEXT = (PFNGLINSERTEVENTMARKEREXTPROC)load("glInsertEventMarkerEXT"); - glad_glPushGroupMarkerEXT = (PFNGLPUSHGROUPMARKEREXTPROC)load("glPushGroupMarkerEXT"); - glad_glPopGroupMarkerEXT = (PFNGLPOPGROUPMARKEREXTPROC)load("glPopGroupMarkerEXT"); -} -static void load_GL_EXT_pixel_transform(GLADloadproc load) { - if(!GLAD_GL_EXT_pixel_transform) return; - glad_glPixelTransformParameteriEXT = (PFNGLPIXELTRANSFORMPARAMETERIEXTPROC)load("glPixelTransformParameteriEXT"); - glad_glPixelTransformParameterfEXT = (PFNGLPIXELTRANSFORMPARAMETERFEXTPROC)load("glPixelTransformParameterfEXT"); - glad_glPixelTransformParameterivEXT = (PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC)load("glPixelTransformParameterivEXT"); - glad_glPixelTransformParameterfvEXT = (PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC)load("glPixelTransformParameterfvEXT"); - glad_glGetPixelTransformParameterivEXT = (PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC)load("glGetPixelTransformParameterivEXT"); - glad_glGetPixelTransformParameterfvEXT = (PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC)load("glGetPixelTransformParameterfvEXT"); -} -static void load_GL_ATI_fragment_shader(GLADloadproc load) { - if(!GLAD_GL_ATI_fragment_shader) return; - glad_glGenFragmentShadersATI = (PFNGLGENFRAGMENTSHADERSATIPROC)load("glGenFragmentShadersATI"); - glad_glBindFragmentShaderATI = (PFNGLBINDFRAGMENTSHADERATIPROC)load("glBindFragmentShaderATI"); - glad_glDeleteFragmentShaderATI = (PFNGLDELETEFRAGMENTSHADERATIPROC)load("glDeleteFragmentShaderATI"); - glad_glBeginFragmentShaderATI = (PFNGLBEGINFRAGMENTSHADERATIPROC)load("glBeginFragmentShaderATI"); - glad_glEndFragmentShaderATI = (PFNGLENDFRAGMENTSHADERATIPROC)load("glEndFragmentShaderATI"); - glad_glPassTexCoordATI = (PFNGLPASSTEXCOORDATIPROC)load("glPassTexCoordATI"); - glad_glSampleMapATI = (PFNGLSAMPLEMAPATIPROC)load("glSampleMapATI"); - glad_glColorFragmentOp1ATI = (PFNGLCOLORFRAGMENTOP1ATIPROC)load("glColorFragmentOp1ATI"); - glad_glColorFragmentOp2ATI = (PFNGLCOLORFRAGMENTOP2ATIPROC)load("glColorFragmentOp2ATI"); - glad_glColorFragmentOp3ATI = (PFNGLCOLORFRAGMENTOP3ATIPROC)load("glColorFragmentOp3ATI"); - glad_glAlphaFragmentOp1ATI = (PFNGLALPHAFRAGMENTOP1ATIPROC)load("glAlphaFragmentOp1ATI"); - glad_glAlphaFragmentOp2ATI = (PFNGLALPHAFRAGMENTOP2ATIPROC)load("glAlphaFragmentOp2ATI"); - glad_glAlphaFragmentOp3ATI = (PFNGLALPHAFRAGMENTOP3ATIPROC)load("glAlphaFragmentOp3ATI"); - glad_glSetFragmentShaderConstantATI = (PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)load("glSetFragmentShaderConstantATI"); -} -static void load_GL_ARB_vertex_array_object(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_array_object) return; - glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray"); - glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays"); - glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays"); - glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray"); -} -static void load_GL_SUN_triangle_list(GLADloadproc load) { - if(!GLAD_GL_SUN_triangle_list) return; - glad_glReplacementCodeuiSUN = (PFNGLREPLACEMENTCODEUISUNPROC)load("glReplacementCodeuiSUN"); - glad_glReplacementCodeusSUN = (PFNGLREPLACEMENTCODEUSSUNPROC)load("glReplacementCodeusSUN"); - glad_glReplacementCodeubSUN = (PFNGLREPLACEMENTCODEUBSUNPROC)load("glReplacementCodeubSUN"); - glad_glReplacementCodeuivSUN = (PFNGLREPLACEMENTCODEUIVSUNPROC)load("glReplacementCodeuivSUN"); - glad_glReplacementCodeusvSUN = (PFNGLREPLACEMENTCODEUSVSUNPROC)load("glReplacementCodeusvSUN"); - glad_glReplacementCodeubvSUN = (PFNGLREPLACEMENTCODEUBVSUNPROC)load("glReplacementCodeubvSUN"); - glad_glReplacementCodePointerSUN = (PFNGLREPLACEMENTCODEPOINTERSUNPROC)load("glReplacementCodePointerSUN"); -} -static void load_GL_ARB_transform_feedback_instanced(GLADloadproc load) { - if(!GLAD_GL_ARB_transform_feedback_instanced) return; - glad_glDrawTransformFeedbackInstanced = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)load("glDrawTransformFeedbackInstanced"); - glad_glDrawTransformFeedbackStreamInstanced = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)load("glDrawTransformFeedbackStreamInstanced"); -} -static void load_GL_SGIX_async(GLADloadproc load) { - if(!GLAD_GL_SGIX_async) return; - glad_glAsyncMarkerSGIX = (PFNGLASYNCMARKERSGIXPROC)load("glAsyncMarkerSGIX"); - glad_glFinishAsyncSGIX = (PFNGLFINISHASYNCSGIXPROC)load("glFinishAsyncSGIX"); - glad_glPollAsyncSGIX = (PFNGLPOLLASYNCSGIXPROC)load("glPollAsyncSGIX"); - glad_glGenAsyncMarkersSGIX = (PFNGLGENASYNCMARKERSSGIXPROC)load("glGenAsyncMarkersSGIX"); - glad_glDeleteAsyncMarkersSGIX = (PFNGLDELETEASYNCMARKERSSGIXPROC)load("glDeleteAsyncMarkersSGIX"); - glad_glIsAsyncMarkerSGIX = (PFNGLISASYNCMARKERSGIXPROC)load("glIsAsyncMarkerSGIX"); -} -static void load_GL_INTEL_performance_query(GLADloadproc load) { - if(!GLAD_GL_INTEL_performance_query) return; - glad_glBeginPerfQueryINTEL = (PFNGLBEGINPERFQUERYINTELPROC)load("glBeginPerfQueryINTEL"); - glad_glCreatePerfQueryINTEL = (PFNGLCREATEPERFQUERYINTELPROC)load("glCreatePerfQueryINTEL"); - glad_glDeletePerfQueryINTEL = (PFNGLDELETEPERFQUERYINTELPROC)load("glDeletePerfQueryINTEL"); - glad_glEndPerfQueryINTEL = (PFNGLENDPERFQUERYINTELPROC)load("glEndPerfQueryINTEL"); - glad_glGetFirstPerfQueryIdINTEL = (PFNGLGETFIRSTPERFQUERYIDINTELPROC)load("glGetFirstPerfQueryIdINTEL"); - glad_glGetNextPerfQueryIdINTEL = (PFNGLGETNEXTPERFQUERYIDINTELPROC)load("glGetNextPerfQueryIdINTEL"); - glad_glGetPerfCounterInfoINTEL = (PFNGLGETPERFCOUNTERINFOINTELPROC)load("glGetPerfCounterInfoINTEL"); - glad_glGetPerfQueryDataINTEL = (PFNGLGETPERFQUERYDATAINTELPROC)load("glGetPerfQueryDataINTEL"); - glad_glGetPerfQueryIdByNameINTEL = (PFNGLGETPERFQUERYIDBYNAMEINTELPROC)load("glGetPerfQueryIdByNameINTEL"); - glad_glGetPerfQueryInfoINTEL = (PFNGLGETPERFQUERYINFOINTELPROC)load("glGetPerfQueryInfoINTEL"); -} -static void load_GL_NV_gpu_shader5(GLADloadproc load) { - if(!GLAD_GL_NV_gpu_shader5) return; - glad_glUniform1i64NV = (PFNGLUNIFORM1I64NVPROC)load("glUniform1i64NV"); - glad_glUniform2i64NV = (PFNGLUNIFORM2I64NVPROC)load("glUniform2i64NV"); - glad_glUniform3i64NV = (PFNGLUNIFORM3I64NVPROC)load("glUniform3i64NV"); - glad_glUniform4i64NV = (PFNGLUNIFORM4I64NVPROC)load("glUniform4i64NV"); - glad_glUniform1i64vNV = (PFNGLUNIFORM1I64VNVPROC)load("glUniform1i64vNV"); - glad_glUniform2i64vNV = (PFNGLUNIFORM2I64VNVPROC)load("glUniform2i64vNV"); - glad_glUniform3i64vNV = (PFNGLUNIFORM3I64VNVPROC)load("glUniform3i64vNV"); - glad_glUniform4i64vNV = (PFNGLUNIFORM4I64VNVPROC)load("glUniform4i64vNV"); - glad_glUniform1ui64NV = (PFNGLUNIFORM1UI64NVPROC)load("glUniform1ui64NV"); - glad_glUniform2ui64NV = (PFNGLUNIFORM2UI64NVPROC)load("glUniform2ui64NV"); - glad_glUniform3ui64NV = (PFNGLUNIFORM3UI64NVPROC)load("glUniform3ui64NV"); - glad_glUniform4ui64NV = (PFNGLUNIFORM4UI64NVPROC)load("glUniform4ui64NV"); - glad_glUniform1ui64vNV = (PFNGLUNIFORM1UI64VNVPROC)load("glUniform1ui64vNV"); - glad_glUniform2ui64vNV = (PFNGLUNIFORM2UI64VNVPROC)load("glUniform2ui64vNV"); - glad_glUniform3ui64vNV = (PFNGLUNIFORM3UI64VNVPROC)load("glUniform3ui64vNV"); - glad_glUniform4ui64vNV = (PFNGLUNIFORM4UI64VNVPROC)load("glUniform4ui64vNV"); - glad_glGetUniformi64vNV = (PFNGLGETUNIFORMI64VNVPROC)load("glGetUniformi64vNV"); - glad_glProgramUniform1i64NV = (PFNGLPROGRAMUNIFORM1I64NVPROC)load("glProgramUniform1i64NV"); - glad_glProgramUniform2i64NV = (PFNGLPROGRAMUNIFORM2I64NVPROC)load("glProgramUniform2i64NV"); - glad_glProgramUniform3i64NV = (PFNGLPROGRAMUNIFORM3I64NVPROC)load("glProgramUniform3i64NV"); - glad_glProgramUniform4i64NV = (PFNGLPROGRAMUNIFORM4I64NVPROC)load("glProgramUniform4i64NV"); - glad_glProgramUniform1i64vNV = (PFNGLPROGRAMUNIFORM1I64VNVPROC)load("glProgramUniform1i64vNV"); - glad_glProgramUniform2i64vNV = (PFNGLPROGRAMUNIFORM2I64VNVPROC)load("glProgramUniform2i64vNV"); - glad_glProgramUniform3i64vNV = (PFNGLPROGRAMUNIFORM3I64VNVPROC)load("glProgramUniform3i64vNV"); - glad_glProgramUniform4i64vNV = (PFNGLPROGRAMUNIFORM4I64VNVPROC)load("glProgramUniform4i64vNV"); - glad_glProgramUniform1ui64NV = (PFNGLPROGRAMUNIFORM1UI64NVPROC)load("glProgramUniform1ui64NV"); - glad_glProgramUniform2ui64NV = (PFNGLPROGRAMUNIFORM2UI64NVPROC)load("glProgramUniform2ui64NV"); - glad_glProgramUniform3ui64NV = (PFNGLPROGRAMUNIFORM3UI64NVPROC)load("glProgramUniform3ui64NV"); - glad_glProgramUniform4ui64NV = (PFNGLPROGRAMUNIFORM4UI64NVPROC)load("glProgramUniform4ui64NV"); - glad_glProgramUniform1ui64vNV = (PFNGLPROGRAMUNIFORM1UI64VNVPROC)load("glProgramUniform1ui64vNV"); - glad_glProgramUniform2ui64vNV = (PFNGLPROGRAMUNIFORM2UI64VNVPROC)load("glProgramUniform2ui64vNV"); - glad_glProgramUniform3ui64vNV = (PFNGLPROGRAMUNIFORM3UI64VNVPROC)load("glProgramUniform3ui64vNV"); - glad_glProgramUniform4ui64vNV = (PFNGLPROGRAMUNIFORM4UI64VNVPROC)load("glProgramUniform4ui64vNV"); -} -static void load_GL_NV_bindless_multi_draw_indirect_count(GLADloadproc load) { - if(!GLAD_GL_NV_bindless_multi_draw_indirect_count) return; - glad_glMultiDrawArraysIndirectBindlessCountNV = (PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC)load("glMultiDrawArraysIndirectBindlessCountNV"); - glad_glMultiDrawElementsIndirectBindlessCountNV = (PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC)load("glMultiDrawElementsIndirectBindlessCountNV"); -} -static void load_GL_ARB_ES2_compatibility(GLADloadproc load) { - if(!GLAD_GL_ARB_ES2_compatibility) return; - glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)load("glReleaseShaderCompiler"); - glad_glShaderBinary = (PFNGLSHADERBINARYPROC)load("glShaderBinary"); - glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)load("glGetShaderPrecisionFormat"); - glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC)load("glDepthRangef"); - glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC)load("glClearDepthf"); -} -static void load_GL_ARB_indirect_parameters(GLADloadproc load) { - if(!GLAD_GL_ARB_indirect_parameters) return; - glad_glMultiDrawArraysIndirectCountARB = (PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC)load("glMultiDrawArraysIndirectCountARB"); - glad_glMultiDrawElementsIndirectCountARB = (PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC)load("glMultiDrawElementsIndirectCountARB"); -} -static void load_GL_NV_half_float(GLADloadproc load) { - if(!GLAD_GL_NV_half_float) return; - glad_glVertex2hNV = (PFNGLVERTEX2HNVPROC)load("glVertex2hNV"); - glad_glVertex2hvNV = (PFNGLVERTEX2HVNVPROC)load("glVertex2hvNV"); - glad_glVertex3hNV = (PFNGLVERTEX3HNVPROC)load("glVertex3hNV"); - glad_glVertex3hvNV = (PFNGLVERTEX3HVNVPROC)load("glVertex3hvNV"); - glad_glVertex4hNV = (PFNGLVERTEX4HNVPROC)load("glVertex4hNV"); - glad_glVertex4hvNV = (PFNGLVERTEX4HVNVPROC)load("glVertex4hvNV"); - glad_glNormal3hNV = (PFNGLNORMAL3HNVPROC)load("glNormal3hNV"); - glad_glNormal3hvNV = (PFNGLNORMAL3HVNVPROC)load("glNormal3hvNV"); - glad_glColor3hNV = (PFNGLCOLOR3HNVPROC)load("glColor3hNV"); - glad_glColor3hvNV = (PFNGLCOLOR3HVNVPROC)load("glColor3hvNV"); - glad_glColor4hNV = (PFNGLCOLOR4HNVPROC)load("glColor4hNV"); - glad_glColor4hvNV = (PFNGLCOLOR4HVNVPROC)load("glColor4hvNV"); - glad_glTexCoord1hNV = (PFNGLTEXCOORD1HNVPROC)load("glTexCoord1hNV"); - glad_glTexCoord1hvNV = (PFNGLTEXCOORD1HVNVPROC)load("glTexCoord1hvNV"); - glad_glTexCoord2hNV = (PFNGLTEXCOORD2HNVPROC)load("glTexCoord2hNV"); - glad_glTexCoord2hvNV = (PFNGLTEXCOORD2HVNVPROC)load("glTexCoord2hvNV"); - glad_glTexCoord3hNV = (PFNGLTEXCOORD3HNVPROC)load("glTexCoord3hNV"); - glad_glTexCoord3hvNV = (PFNGLTEXCOORD3HVNVPROC)load("glTexCoord3hvNV"); - glad_glTexCoord4hNV = (PFNGLTEXCOORD4HNVPROC)load("glTexCoord4hNV"); - glad_glTexCoord4hvNV = (PFNGLTEXCOORD4HVNVPROC)load("glTexCoord4hvNV"); - glad_glMultiTexCoord1hNV = (PFNGLMULTITEXCOORD1HNVPROC)load("glMultiTexCoord1hNV"); - glad_glMultiTexCoord1hvNV = (PFNGLMULTITEXCOORD1HVNVPROC)load("glMultiTexCoord1hvNV"); - glad_glMultiTexCoord2hNV = (PFNGLMULTITEXCOORD2HNVPROC)load("glMultiTexCoord2hNV"); - glad_glMultiTexCoord2hvNV = (PFNGLMULTITEXCOORD2HVNVPROC)load("glMultiTexCoord2hvNV"); - glad_glMultiTexCoord3hNV = (PFNGLMULTITEXCOORD3HNVPROC)load("glMultiTexCoord3hNV"); - glad_glMultiTexCoord3hvNV = (PFNGLMULTITEXCOORD3HVNVPROC)load("glMultiTexCoord3hvNV"); - glad_glMultiTexCoord4hNV = (PFNGLMULTITEXCOORD4HNVPROC)load("glMultiTexCoord4hNV"); - glad_glMultiTexCoord4hvNV = (PFNGLMULTITEXCOORD4HVNVPROC)load("glMultiTexCoord4hvNV"); - glad_glFogCoordhNV = (PFNGLFOGCOORDHNVPROC)load("glFogCoordhNV"); - glad_glFogCoordhvNV = (PFNGLFOGCOORDHVNVPROC)load("glFogCoordhvNV"); - glad_glSecondaryColor3hNV = (PFNGLSECONDARYCOLOR3HNVPROC)load("glSecondaryColor3hNV"); - glad_glSecondaryColor3hvNV = (PFNGLSECONDARYCOLOR3HVNVPROC)load("glSecondaryColor3hvNV"); - glad_glVertexWeighthNV = (PFNGLVERTEXWEIGHTHNVPROC)load("glVertexWeighthNV"); - glad_glVertexWeighthvNV = (PFNGLVERTEXWEIGHTHVNVPROC)load("glVertexWeighthvNV"); - glad_glVertexAttrib1hNV = (PFNGLVERTEXATTRIB1HNVPROC)load("glVertexAttrib1hNV"); - glad_glVertexAttrib1hvNV = (PFNGLVERTEXATTRIB1HVNVPROC)load("glVertexAttrib1hvNV"); - glad_glVertexAttrib2hNV = (PFNGLVERTEXATTRIB2HNVPROC)load("glVertexAttrib2hNV"); - glad_glVertexAttrib2hvNV = (PFNGLVERTEXATTRIB2HVNVPROC)load("glVertexAttrib2hvNV"); - glad_glVertexAttrib3hNV = (PFNGLVERTEXATTRIB3HNVPROC)load("glVertexAttrib3hNV"); - glad_glVertexAttrib3hvNV = (PFNGLVERTEXATTRIB3HVNVPROC)load("glVertexAttrib3hvNV"); - glad_glVertexAttrib4hNV = (PFNGLVERTEXATTRIB4HNVPROC)load("glVertexAttrib4hNV"); - glad_glVertexAttrib4hvNV = (PFNGLVERTEXATTRIB4HVNVPROC)load("glVertexAttrib4hvNV"); - glad_glVertexAttribs1hvNV = (PFNGLVERTEXATTRIBS1HVNVPROC)load("glVertexAttribs1hvNV"); - glad_glVertexAttribs2hvNV = (PFNGLVERTEXATTRIBS2HVNVPROC)load("glVertexAttribs2hvNV"); - glad_glVertexAttribs3hvNV = (PFNGLVERTEXATTRIBS3HVNVPROC)load("glVertexAttribs3hvNV"); - glad_glVertexAttribs4hvNV = (PFNGLVERTEXATTRIBS4HVNVPROC)load("glVertexAttribs4hvNV"); -} -static void load_GL_ARB_ES3_2_compatibility(GLADloadproc load) { - if(!GLAD_GL_ARB_ES3_2_compatibility) return; - glad_glPrimitiveBoundingBoxARB = (PFNGLPRIMITIVEBOUNDINGBOXARBPROC)load("glPrimitiveBoundingBoxARB"); -} -static void load_GL_EXT_polygon_offset_clamp(GLADloadproc load) { - if(!GLAD_GL_EXT_polygon_offset_clamp) return; - glad_glPolygonOffsetClampEXT = (PFNGLPOLYGONOFFSETCLAMPEXTPROC)load("glPolygonOffsetClampEXT"); -} -static void load_GL_EXT_compiled_vertex_array(GLADloadproc load) { - if(!GLAD_GL_EXT_compiled_vertex_array) return; - glad_glLockArraysEXT = (PFNGLLOCKARRAYSEXTPROC)load("glLockArraysEXT"); - glad_glUnlockArraysEXT = (PFNGLUNLOCKARRAYSEXTPROC)load("glUnlockArraysEXT"); -} -static void load_GL_NV_depth_buffer_float(GLADloadproc load) { - if(!GLAD_GL_NV_depth_buffer_float) return; - glad_glDepthRangedNV = (PFNGLDEPTHRANGEDNVPROC)load("glDepthRangedNV"); - glad_glClearDepthdNV = (PFNGLCLEARDEPTHDNVPROC)load("glClearDepthdNV"); - glad_glDepthBoundsdNV = (PFNGLDEPTHBOUNDSDNVPROC)load("glDepthBoundsdNV"); -} -static void load_GL_NV_occlusion_query(GLADloadproc load) { - if(!GLAD_GL_NV_occlusion_query) return; - glad_glGenOcclusionQueriesNV = (PFNGLGENOCCLUSIONQUERIESNVPROC)load("glGenOcclusionQueriesNV"); - glad_glDeleteOcclusionQueriesNV = (PFNGLDELETEOCCLUSIONQUERIESNVPROC)load("glDeleteOcclusionQueriesNV"); - glad_glIsOcclusionQueryNV = (PFNGLISOCCLUSIONQUERYNVPROC)load("glIsOcclusionQueryNV"); - glad_glBeginOcclusionQueryNV = (PFNGLBEGINOCCLUSIONQUERYNVPROC)load("glBeginOcclusionQueryNV"); - glad_glEndOcclusionQueryNV = (PFNGLENDOCCLUSIONQUERYNVPROC)load("glEndOcclusionQueryNV"); - glad_glGetOcclusionQueryivNV = (PFNGLGETOCCLUSIONQUERYIVNVPROC)load("glGetOcclusionQueryivNV"); - glad_glGetOcclusionQueryuivNV = (PFNGLGETOCCLUSIONQUERYUIVNVPROC)load("glGetOcclusionQueryuivNV"); -} -static void load_GL_APPLE_flush_buffer_range(GLADloadproc load) { - if(!GLAD_GL_APPLE_flush_buffer_range) return; - glad_glBufferParameteriAPPLE = (PFNGLBUFFERPARAMETERIAPPLEPROC)load("glBufferParameteriAPPLE"); - glad_glFlushMappedBufferRangeAPPLE = (PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC)load("glFlushMappedBufferRangeAPPLE"); -} -static void load_GL_ARB_imaging(GLADloadproc load) { - if(!GLAD_GL_ARB_imaging) return; - glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor"); - glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation"); - glad_glColorTable = (PFNGLCOLORTABLEPROC)load("glColorTable"); - glad_glColorTableParameterfv = (PFNGLCOLORTABLEPARAMETERFVPROC)load("glColorTableParameterfv"); - glad_glColorTableParameteriv = (PFNGLCOLORTABLEPARAMETERIVPROC)load("glColorTableParameteriv"); - glad_glCopyColorTable = (PFNGLCOPYCOLORTABLEPROC)load("glCopyColorTable"); - glad_glGetColorTable = (PFNGLGETCOLORTABLEPROC)load("glGetColorTable"); - glad_glGetColorTableParameterfv = (PFNGLGETCOLORTABLEPARAMETERFVPROC)load("glGetColorTableParameterfv"); - glad_glGetColorTableParameteriv = (PFNGLGETCOLORTABLEPARAMETERIVPROC)load("glGetColorTableParameteriv"); - glad_glColorSubTable = (PFNGLCOLORSUBTABLEPROC)load("glColorSubTable"); - glad_glCopyColorSubTable = (PFNGLCOPYCOLORSUBTABLEPROC)load("glCopyColorSubTable"); - glad_glConvolutionFilter1D = (PFNGLCONVOLUTIONFILTER1DPROC)load("glConvolutionFilter1D"); - glad_glConvolutionFilter2D = (PFNGLCONVOLUTIONFILTER2DPROC)load("glConvolutionFilter2D"); - glad_glConvolutionParameterf = (PFNGLCONVOLUTIONPARAMETERFPROC)load("glConvolutionParameterf"); - glad_glConvolutionParameterfv = (PFNGLCONVOLUTIONPARAMETERFVPROC)load("glConvolutionParameterfv"); - glad_glConvolutionParameteri = (PFNGLCONVOLUTIONPARAMETERIPROC)load("glConvolutionParameteri"); - glad_glConvolutionParameteriv = (PFNGLCONVOLUTIONPARAMETERIVPROC)load("glConvolutionParameteriv"); - glad_glCopyConvolutionFilter1D = (PFNGLCOPYCONVOLUTIONFILTER1DPROC)load("glCopyConvolutionFilter1D"); - glad_glCopyConvolutionFilter2D = (PFNGLCOPYCONVOLUTIONFILTER2DPROC)load("glCopyConvolutionFilter2D"); - glad_glGetConvolutionFilter = (PFNGLGETCONVOLUTIONFILTERPROC)load("glGetConvolutionFilter"); - glad_glGetConvolutionParameterfv = (PFNGLGETCONVOLUTIONPARAMETERFVPROC)load("glGetConvolutionParameterfv"); - glad_glGetConvolutionParameteriv = (PFNGLGETCONVOLUTIONPARAMETERIVPROC)load("glGetConvolutionParameteriv"); - glad_glGetSeparableFilter = (PFNGLGETSEPARABLEFILTERPROC)load("glGetSeparableFilter"); - glad_glSeparableFilter2D = (PFNGLSEPARABLEFILTER2DPROC)load("glSeparableFilter2D"); - glad_glGetHistogram = (PFNGLGETHISTOGRAMPROC)load("glGetHistogram"); - glad_glGetHistogramParameterfv = (PFNGLGETHISTOGRAMPARAMETERFVPROC)load("glGetHistogramParameterfv"); - glad_glGetHistogramParameteriv = (PFNGLGETHISTOGRAMPARAMETERIVPROC)load("glGetHistogramParameteriv"); - glad_glGetMinmax = (PFNGLGETMINMAXPROC)load("glGetMinmax"); - glad_glGetMinmaxParameterfv = (PFNGLGETMINMAXPARAMETERFVPROC)load("glGetMinmaxParameterfv"); - glad_glGetMinmaxParameteriv = (PFNGLGETMINMAXPARAMETERIVPROC)load("glGetMinmaxParameteriv"); - glad_glHistogram = (PFNGLHISTOGRAMPROC)load("glHistogram"); - glad_glMinmax = (PFNGLMINMAXPROC)load("glMinmax"); - glad_glResetHistogram = (PFNGLRESETHISTOGRAMPROC)load("glResetHistogram"); - glad_glResetMinmax = (PFNGLRESETMINMAXPROC)load("glResetMinmax"); -} -static void load_GL_ARB_draw_buffers_blend(GLADloadproc load) { - if(!GLAD_GL_ARB_draw_buffers_blend) return; - glad_glBlendEquationiARB = (PFNGLBLENDEQUATIONIARBPROC)load("glBlendEquationiARB"); - glad_glBlendEquationSeparateiARB = (PFNGLBLENDEQUATIONSEPARATEIARBPROC)load("glBlendEquationSeparateiARB"); - glad_glBlendFunciARB = (PFNGLBLENDFUNCIARBPROC)load("glBlendFunciARB"); - glad_glBlendFuncSeparateiARB = (PFNGLBLENDFUNCSEPARATEIARBPROC)load("glBlendFuncSeparateiARB"); -} -static void load_GL_ARB_clear_buffer_object(GLADloadproc load) { - if(!GLAD_GL_ARB_clear_buffer_object) return; - glad_glClearBufferData = (PFNGLCLEARBUFFERDATAPROC)load("glClearBufferData"); - glad_glClearBufferSubData = (PFNGLCLEARBUFFERSUBDATAPROC)load("glClearBufferSubData"); -} -static void load_GL_ARB_multisample(GLADloadproc load) { - if(!GLAD_GL_ARB_multisample) return; - glad_glSampleCoverageARB = (PFNGLSAMPLECOVERAGEARBPROC)load("glSampleCoverageARB"); -} -static void load_GL_EXT_debug_label(GLADloadproc load) { - if(!GLAD_GL_EXT_debug_label) return; - glad_glLabelObjectEXT = (PFNGLLABELOBJECTEXTPROC)load("glLabelObjectEXT"); - glad_glGetObjectLabelEXT = (PFNGLGETOBJECTLABELEXTPROC)load("glGetObjectLabelEXT"); -} -static void load_GL_ARB_sample_shading(GLADloadproc load) { - if(!GLAD_GL_ARB_sample_shading) return; - glad_glMinSampleShadingARB = (PFNGLMINSAMPLESHADINGARBPROC)load("glMinSampleShadingARB"); -} -static void load_GL_NV_internalformat_sample_query(GLADloadproc load) { - if(!GLAD_GL_NV_internalformat_sample_query) return; - glad_glGetInternalformatSampleivNV = (PFNGLGETINTERNALFORMATSAMPLEIVNVPROC)load("glGetInternalformatSampleivNV"); -} -static void load_GL_INTEL_map_texture(GLADloadproc load) { - if(!GLAD_GL_INTEL_map_texture) return; - glad_glSyncTextureINTEL = (PFNGLSYNCTEXTUREINTELPROC)load("glSyncTextureINTEL"); - glad_glUnmapTexture2DINTEL = (PFNGLUNMAPTEXTURE2DINTELPROC)load("glUnmapTexture2DINTEL"); - glad_glMapTexture2DINTEL = (PFNGLMAPTEXTURE2DINTELPROC)load("glMapTexture2DINTEL"); -} -static void load_GL_ARB_compute_shader(GLADloadproc load) { - if(!GLAD_GL_ARB_compute_shader) return; - glad_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC)load("glDispatchCompute"); - glad_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC)load("glDispatchComputeIndirect"); -} -static void load_GL_IBM_vertex_array_lists(GLADloadproc load) { - if(!GLAD_GL_IBM_vertex_array_lists) return; - glad_glColorPointerListIBM = (PFNGLCOLORPOINTERLISTIBMPROC)load("glColorPointerListIBM"); - glad_glSecondaryColorPointerListIBM = (PFNGLSECONDARYCOLORPOINTERLISTIBMPROC)load("glSecondaryColorPointerListIBM"); - glad_glEdgeFlagPointerListIBM = (PFNGLEDGEFLAGPOINTERLISTIBMPROC)load("glEdgeFlagPointerListIBM"); - glad_glFogCoordPointerListIBM = (PFNGLFOGCOORDPOINTERLISTIBMPROC)load("glFogCoordPointerListIBM"); - glad_glIndexPointerListIBM = (PFNGLINDEXPOINTERLISTIBMPROC)load("glIndexPointerListIBM"); - glad_glNormalPointerListIBM = (PFNGLNORMALPOINTERLISTIBMPROC)load("glNormalPointerListIBM"); - glad_glTexCoordPointerListIBM = (PFNGLTEXCOORDPOINTERLISTIBMPROC)load("glTexCoordPointerListIBM"); - glad_glVertexPointerListIBM = (PFNGLVERTEXPOINTERLISTIBMPROC)load("glVertexPointerListIBM"); -} -static void load_GL_ARB_color_buffer_float(GLADloadproc load) { - if(!GLAD_GL_ARB_color_buffer_float) return; - glad_glClampColorARB = (PFNGLCLAMPCOLORARBPROC)load("glClampColorARB"); -} -static void load_GL_ARB_bindless_texture(GLADloadproc load) { - if(!GLAD_GL_ARB_bindless_texture) return; - glad_glGetTextureHandleARB = (PFNGLGETTEXTUREHANDLEARBPROC)load("glGetTextureHandleARB"); - glad_glGetTextureSamplerHandleARB = (PFNGLGETTEXTURESAMPLERHANDLEARBPROC)load("glGetTextureSamplerHandleARB"); - glad_glMakeTextureHandleResidentARB = (PFNGLMAKETEXTUREHANDLERESIDENTARBPROC)load("glMakeTextureHandleResidentARB"); - glad_glMakeTextureHandleNonResidentARB = (PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC)load("glMakeTextureHandleNonResidentARB"); - glad_glGetImageHandleARB = (PFNGLGETIMAGEHANDLEARBPROC)load("glGetImageHandleARB"); - glad_glMakeImageHandleResidentARB = (PFNGLMAKEIMAGEHANDLERESIDENTARBPROC)load("glMakeImageHandleResidentARB"); - glad_glMakeImageHandleNonResidentARB = (PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC)load("glMakeImageHandleNonResidentARB"); - glad_glUniformHandleui64ARB = (PFNGLUNIFORMHANDLEUI64ARBPROC)load("glUniformHandleui64ARB"); - glad_glUniformHandleui64vARB = (PFNGLUNIFORMHANDLEUI64VARBPROC)load("glUniformHandleui64vARB"); - glad_glProgramUniformHandleui64ARB = (PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC)load("glProgramUniformHandleui64ARB"); - glad_glProgramUniformHandleui64vARB = (PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC)load("glProgramUniformHandleui64vARB"); - glad_glIsTextureHandleResidentARB = (PFNGLISTEXTUREHANDLERESIDENTARBPROC)load("glIsTextureHandleResidentARB"); - glad_glIsImageHandleResidentARB = (PFNGLISIMAGEHANDLERESIDENTARBPROC)load("glIsImageHandleResidentARB"); - glad_glVertexAttribL1ui64ARB = (PFNGLVERTEXATTRIBL1UI64ARBPROC)load("glVertexAttribL1ui64ARB"); - glad_glVertexAttribL1ui64vARB = (PFNGLVERTEXATTRIBL1UI64VARBPROC)load("glVertexAttribL1ui64vARB"); - glad_glGetVertexAttribLui64vARB = (PFNGLGETVERTEXATTRIBLUI64VARBPROC)load("glGetVertexAttribLui64vARB"); -} -static void load_GL_ARB_window_pos(GLADloadproc load) { - if(!GLAD_GL_ARB_window_pos) return; - glad_glWindowPos2dARB = (PFNGLWINDOWPOS2DARBPROC)load("glWindowPos2dARB"); - glad_glWindowPos2dvARB = (PFNGLWINDOWPOS2DVARBPROC)load("glWindowPos2dvARB"); - glad_glWindowPos2fARB = (PFNGLWINDOWPOS2FARBPROC)load("glWindowPos2fARB"); - glad_glWindowPos2fvARB = (PFNGLWINDOWPOS2FVARBPROC)load("glWindowPos2fvARB"); - glad_glWindowPos2iARB = (PFNGLWINDOWPOS2IARBPROC)load("glWindowPos2iARB"); - glad_glWindowPos2ivARB = (PFNGLWINDOWPOS2IVARBPROC)load("glWindowPos2ivARB"); - glad_glWindowPos2sARB = (PFNGLWINDOWPOS2SARBPROC)load("glWindowPos2sARB"); - glad_glWindowPos2svARB = (PFNGLWINDOWPOS2SVARBPROC)load("glWindowPos2svARB"); - glad_glWindowPos3dARB = (PFNGLWINDOWPOS3DARBPROC)load("glWindowPos3dARB"); - glad_glWindowPos3dvARB = (PFNGLWINDOWPOS3DVARBPROC)load("glWindowPos3dvARB"); - glad_glWindowPos3fARB = (PFNGLWINDOWPOS3FARBPROC)load("glWindowPos3fARB"); - glad_glWindowPos3fvARB = (PFNGLWINDOWPOS3FVARBPROC)load("glWindowPos3fvARB"); - glad_glWindowPos3iARB = (PFNGLWINDOWPOS3IARBPROC)load("glWindowPos3iARB"); - glad_glWindowPos3ivARB = (PFNGLWINDOWPOS3IVARBPROC)load("glWindowPos3ivARB"); - glad_glWindowPos3sARB = (PFNGLWINDOWPOS3SARBPROC)load("glWindowPos3sARB"); - glad_glWindowPos3svARB = (PFNGLWINDOWPOS3SVARBPROC)load("glWindowPos3svARB"); -} -static void load_GL_ARB_internalformat_query(GLADloadproc load) { - if(!GLAD_GL_ARB_internalformat_query) return; - glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)load("glGetInternalformativ"); -} -static void load_GL_EXT_shader_image_load_store(GLADloadproc load) { - if(!GLAD_GL_EXT_shader_image_load_store) return; - glad_glBindImageTextureEXT = (PFNGLBINDIMAGETEXTUREEXTPROC)load("glBindImageTextureEXT"); - glad_glMemoryBarrierEXT = (PFNGLMEMORYBARRIEREXTPROC)load("glMemoryBarrierEXT"); -} -static void load_GL_EXT_copy_texture(GLADloadproc load) { - if(!GLAD_GL_EXT_copy_texture) return; - glad_glCopyTexImage1DEXT = (PFNGLCOPYTEXIMAGE1DEXTPROC)load("glCopyTexImage1DEXT"); - glad_glCopyTexImage2DEXT = (PFNGLCOPYTEXIMAGE2DEXTPROC)load("glCopyTexImage2DEXT"); - glad_glCopyTexSubImage1DEXT = (PFNGLCOPYTEXSUBIMAGE1DEXTPROC)load("glCopyTexSubImage1DEXT"); - glad_glCopyTexSubImage2DEXT = (PFNGLCOPYTEXSUBIMAGE2DEXTPROC)load("glCopyTexSubImage2DEXT"); - glad_glCopyTexSubImage3DEXT = (PFNGLCOPYTEXSUBIMAGE3DEXTPROC)load("glCopyTexSubImage3DEXT"); -} -static void load_GL_NV_register_combiners2(GLADloadproc load) { - if(!GLAD_GL_NV_register_combiners2) return; - glad_glCombinerStageParameterfvNV = (PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)load("glCombinerStageParameterfvNV"); - glad_glGetCombinerStageParameterfvNV = (PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)load("glGetCombinerStageParameterfvNV"); -} -static void load_GL_NV_draw_texture(GLADloadproc load) { - if(!GLAD_GL_NV_draw_texture) return; - glad_glDrawTextureNV = (PFNGLDRAWTEXTURENVPROC)load("glDrawTextureNV"); -} -static void load_GL_EXT_draw_instanced(GLADloadproc load) { - if(!GLAD_GL_EXT_draw_instanced) return; - glad_glDrawArraysInstancedEXT = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)load("glDrawArraysInstancedEXT"); - glad_glDrawElementsInstancedEXT = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)load("glDrawElementsInstancedEXT"); -} -static void load_GL_ARB_viewport_array(GLADloadproc load) { - if(!GLAD_GL_ARB_viewport_array) return; - glad_glViewportArrayv = (PFNGLVIEWPORTARRAYVPROC)load("glViewportArrayv"); - glad_glViewportIndexedf = (PFNGLVIEWPORTINDEXEDFPROC)load("glViewportIndexedf"); - glad_glViewportIndexedfv = (PFNGLVIEWPORTINDEXEDFVPROC)load("glViewportIndexedfv"); - glad_glScissorArrayv = (PFNGLSCISSORARRAYVPROC)load("glScissorArrayv"); - glad_glScissorIndexed = (PFNGLSCISSORINDEXEDPROC)load("glScissorIndexed"); - glad_glScissorIndexedv = (PFNGLSCISSORINDEXEDVPROC)load("glScissorIndexedv"); - glad_glDepthRangeArrayv = (PFNGLDEPTHRANGEARRAYVPROC)load("glDepthRangeArrayv"); - glad_glDepthRangeIndexed = (PFNGLDEPTHRANGEINDEXEDPROC)load("glDepthRangeIndexed"); - glad_glGetFloati_v = (PFNGLGETFLOATI_VPROC)load("glGetFloati_v"); - glad_glGetDoublei_v = (PFNGLGETDOUBLEI_VPROC)load("glGetDoublei_v"); -} -static void load_GL_ARB_separate_shader_objects(GLADloadproc load) { - if(!GLAD_GL_ARB_separate_shader_objects) return; - glad_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC)load("glUseProgramStages"); - glad_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC)load("glActiveShaderProgram"); - glad_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC)load("glCreateShaderProgramv"); - glad_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC)load("glBindProgramPipeline"); - glad_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC)load("glDeleteProgramPipelines"); - glad_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC)load("glGenProgramPipelines"); - glad_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC)load("glIsProgramPipeline"); - glad_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC)load("glGetProgramPipelineiv"); - glad_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC)load("glProgramUniform1i"); - glad_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC)load("glProgramUniform1iv"); - glad_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC)load("glProgramUniform1f"); - glad_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC)load("glProgramUniform1fv"); - glad_glProgramUniform1d = (PFNGLPROGRAMUNIFORM1DPROC)load("glProgramUniform1d"); - glad_glProgramUniform1dv = (PFNGLPROGRAMUNIFORM1DVPROC)load("glProgramUniform1dv"); - glad_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC)load("glProgramUniform1ui"); - glad_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC)load("glProgramUniform1uiv"); - glad_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC)load("glProgramUniform2i"); - glad_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC)load("glProgramUniform2iv"); - glad_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC)load("glProgramUniform2f"); - glad_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC)load("glProgramUniform2fv"); - glad_glProgramUniform2d = (PFNGLPROGRAMUNIFORM2DPROC)load("glProgramUniform2d"); - glad_glProgramUniform2dv = (PFNGLPROGRAMUNIFORM2DVPROC)load("glProgramUniform2dv"); - glad_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC)load("glProgramUniform2ui"); - glad_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC)load("glProgramUniform2uiv"); - glad_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC)load("glProgramUniform3i"); - glad_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC)load("glProgramUniform3iv"); - glad_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC)load("glProgramUniform3f"); - glad_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC)load("glProgramUniform3fv"); - glad_glProgramUniform3d = (PFNGLPROGRAMUNIFORM3DPROC)load("glProgramUniform3d"); - glad_glProgramUniform3dv = (PFNGLPROGRAMUNIFORM3DVPROC)load("glProgramUniform3dv"); - glad_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC)load("glProgramUniform3ui"); - glad_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC)load("glProgramUniform3uiv"); - glad_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC)load("glProgramUniform4i"); - glad_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC)load("glProgramUniform4iv"); - glad_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC)load("glProgramUniform4f"); - glad_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC)load("glProgramUniform4fv"); - glad_glProgramUniform4d = (PFNGLPROGRAMUNIFORM4DPROC)load("glProgramUniform4d"); - glad_glProgramUniform4dv = (PFNGLPROGRAMUNIFORM4DVPROC)load("glProgramUniform4dv"); - glad_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC)load("glProgramUniform4ui"); - glad_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC)load("glProgramUniform4uiv"); - glad_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC)load("glProgramUniformMatrix2fv"); - glad_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC)load("glProgramUniformMatrix3fv"); - glad_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC)load("glProgramUniformMatrix4fv"); - glad_glProgramUniformMatrix2dv = (PFNGLPROGRAMUNIFORMMATRIX2DVPROC)load("glProgramUniformMatrix2dv"); - glad_glProgramUniformMatrix3dv = (PFNGLPROGRAMUNIFORMMATRIX3DVPROC)load("glProgramUniformMatrix3dv"); - glad_glProgramUniformMatrix4dv = (PFNGLPROGRAMUNIFORMMATRIX4DVPROC)load("glProgramUniformMatrix4dv"); - glad_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)load("glProgramUniformMatrix2x3fv"); - glad_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)load("glProgramUniformMatrix3x2fv"); - glad_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)load("glProgramUniformMatrix2x4fv"); - glad_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)load("glProgramUniformMatrix4x2fv"); - glad_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)load("glProgramUniformMatrix3x4fv"); - glad_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)load("glProgramUniformMatrix4x3fv"); - glad_glProgramUniformMatrix2x3dv = (PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)load("glProgramUniformMatrix2x3dv"); - glad_glProgramUniformMatrix3x2dv = (PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)load("glProgramUniformMatrix3x2dv"); - glad_glProgramUniformMatrix2x4dv = (PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)load("glProgramUniformMatrix2x4dv"); - glad_glProgramUniformMatrix4x2dv = (PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)load("glProgramUniformMatrix4x2dv"); - glad_glProgramUniformMatrix3x4dv = (PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)load("glProgramUniformMatrix3x4dv"); - glad_glProgramUniformMatrix4x3dv = (PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)load("glProgramUniformMatrix4x3dv"); - glad_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC)load("glValidateProgramPipeline"); - glad_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC)load("glGetProgramPipelineInfoLog"); -} -static void load_GL_EXT_depth_bounds_test(GLADloadproc load) { - if(!GLAD_GL_EXT_depth_bounds_test) return; - glad_glDepthBoundsEXT = (PFNGLDEPTHBOUNDSEXTPROC)load("glDepthBoundsEXT"); -} -static void load_GL_NV_video_capture(GLADloadproc load) { - if(!GLAD_GL_NV_video_capture) return; - glad_glBeginVideoCaptureNV = (PFNGLBEGINVIDEOCAPTURENVPROC)load("glBeginVideoCaptureNV"); - glad_glBindVideoCaptureStreamBufferNV = (PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC)load("glBindVideoCaptureStreamBufferNV"); - glad_glBindVideoCaptureStreamTextureNV = (PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC)load("glBindVideoCaptureStreamTextureNV"); - glad_glEndVideoCaptureNV = (PFNGLENDVIDEOCAPTURENVPROC)load("glEndVideoCaptureNV"); - glad_glGetVideoCaptureivNV = (PFNGLGETVIDEOCAPTUREIVNVPROC)load("glGetVideoCaptureivNV"); - glad_glGetVideoCaptureStreamivNV = (PFNGLGETVIDEOCAPTURESTREAMIVNVPROC)load("glGetVideoCaptureStreamivNV"); - glad_glGetVideoCaptureStreamfvNV = (PFNGLGETVIDEOCAPTURESTREAMFVNVPROC)load("glGetVideoCaptureStreamfvNV"); - glad_glGetVideoCaptureStreamdvNV = (PFNGLGETVIDEOCAPTURESTREAMDVNVPROC)load("glGetVideoCaptureStreamdvNV"); - glad_glVideoCaptureNV = (PFNGLVIDEOCAPTURENVPROC)load("glVideoCaptureNV"); - glad_glVideoCaptureStreamParameterivNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC)load("glVideoCaptureStreamParameterivNV"); - glad_glVideoCaptureStreamParameterfvNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC)load("glVideoCaptureStreamParameterfvNV"); - glad_glVideoCaptureStreamParameterdvNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC)load("glVideoCaptureStreamParameterdvNV"); -} -static void load_GL_ARB_sampler_objects(GLADloadproc load) { - if(!GLAD_GL_ARB_sampler_objects) return; - glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers"); - glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers"); - glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler"); - glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler"); - glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri"); - glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv"); - glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf"); - glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv"); - glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load("glSamplerParameterIiv"); - glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load("glSamplerParameterIuiv"); - glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv"); - glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load("glGetSamplerParameterIiv"); - glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv"); - glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load("glGetSamplerParameterIuiv"); -} -static void load_GL_ARB_matrix_palette(GLADloadproc load) { - if(!GLAD_GL_ARB_matrix_palette) return; - glad_glCurrentPaletteMatrixARB = (PFNGLCURRENTPALETTEMATRIXARBPROC)load("glCurrentPaletteMatrixARB"); - glad_glMatrixIndexubvARB = (PFNGLMATRIXINDEXUBVARBPROC)load("glMatrixIndexubvARB"); - glad_glMatrixIndexusvARB = (PFNGLMATRIXINDEXUSVARBPROC)load("glMatrixIndexusvARB"); - glad_glMatrixIndexuivARB = (PFNGLMATRIXINDEXUIVARBPROC)load("glMatrixIndexuivARB"); - glad_glMatrixIndexPointerARB = (PFNGLMATRIXINDEXPOINTERARBPROC)load("glMatrixIndexPointerARB"); -} -static void load_GL_SGIS_texture_color_mask(GLADloadproc load) { - if(!GLAD_GL_SGIS_texture_color_mask) return; - glad_glTextureColorMaskSGIS = (PFNGLTEXTURECOLORMASKSGISPROC)load("glTextureColorMaskSGIS"); -} -static void load_GL_EXT_coordinate_frame(GLADloadproc load) { - if(!GLAD_GL_EXT_coordinate_frame) return; - glad_glTangent3bEXT = (PFNGLTANGENT3BEXTPROC)load("glTangent3bEXT"); - glad_glTangent3bvEXT = (PFNGLTANGENT3BVEXTPROC)load("glTangent3bvEXT"); - glad_glTangent3dEXT = (PFNGLTANGENT3DEXTPROC)load("glTangent3dEXT"); - glad_glTangent3dvEXT = (PFNGLTANGENT3DVEXTPROC)load("glTangent3dvEXT"); - glad_glTangent3fEXT = (PFNGLTANGENT3FEXTPROC)load("glTangent3fEXT"); - glad_glTangent3fvEXT = (PFNGLTANGENT3FVEXTPROC)load("glTangent3fvEXT"); - glad_glTangent3iEXT = (PFNGLTANGENT3IEXTPROC)load("glTangent3iEXT"); - glad_glTangent3ivEXT = (PFNGLTANGENT3IVEXTPROC)load("glTangent3ivEXT"); - glad_glTangent3sEXT = (PFNGLTANGENT3SEXTPROC)load("glTangent3sEXT"); - glad_glTangent3svEXT = (PFNGLTANGENT3SVEXTPROC)load("glTangent3svEXT"); - glad_glBinormal3bEXT = (PFNGLBINORMAL3BEXTPROC)load("glBinormal3bEXT"); - glad_glBinormal3bvEXT = (PFNGLBINORMAL3BVEXTPROC)load("glBinormal3bvEXT"); - glad_glBinormal3dEXT = (PFNGLBINORMAL3DEXTPROC)load("glBinormal3dEXT"); - glad_glBinormal3dvEXT = (PFNGLBINORMAL3DVEXTPROC)load("glBinormal3dvEXT"); - glad_glBinormal3fEXT = (PFNGLBINORMAL3FEXTPROC)load("glBinormal3fEXT"); - glad_glBinormal3fvEXT = (PFNGLBINORMAL3FVEXTPROC)load("glBinormal3fvEXT"); - glad_glBinormal3iEXT = (PFNGLBINORMAL3IEXTPROC)load("glBinormal3iEXT"); - glad_glBinormal3ivEXT = (PFNGLBINORMAL3IVEXTPROC)load("glBinormal3ivEXT"); - glad_glBinormal3sEXT = (PFNGLBINORMAL3SEXTPROC)load("glBinormal3sEXT"); - glad_glBinormal3svEXT = (PFNGLBINORMAL3SVEXTPROC)load("glBinormal3svEXT"); - glad_glTangentPointerEXT = (PFNGLTANGENTPOINTEREXTPROC)load("glTangentPointerEXT"); - glad_glBinormalPointerEXT = (PFNGLBINORMALPOINTEREXTPROC)load("glBinormalPointerEXT"); -} -static void load_GL_ARB_texture_compression(GLADloadproc load) { - if(!GLAD_GL_ARB_texture_compression) return; - glad_glCompressedTexImage3DARB = (PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)load("glCompressedTexImage3DARB"); - glad_glCompressedTexImage2DARB = (PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)load("glCompressedTexImage2DARB"); - glad_glCompressedTexImage1DARB = (PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)load("glCompressedTexImage1DARB"); - glad_glCompressedTexSubImage3DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)load("glCompressedTexSubImage3DARB"); - glad_glCompressedTexSubImage2DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)load("glCompressedTexSubImage2DARB"); - glad_glCompressedTexSubImage1DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)load("glCompressedTexSubImage1DARB"); - glad_glGetCompressedTexImageARB = (PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)load("glGetCompressedTexImageARB"); -} -static void load_GL_ARB_shader_subroutine(GLADloadproc load) { - if(!GLAD_GL_ARB_shader_subroutine) return; - glad_glGetSubroutineUniformLocation = (PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)load("glGetSubroutineUniformLocation"); - glad_glGetSubroutineIndex = (PFNGLGETSUBROUTINEINDEXPROC)load("glGetSubroutineIndex"); - glad_glGetActiveSubroutineUniformiv = (PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)load("glGetActiveSubroutineUniformiv"); - glad_glGetActiveSubroutineUniformName = (PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)load("glGetActiveSubroutineUniformName"); - glad_glGetActiveSubroutineName = (PFNGLGETACTIVESUBROUTINENAMEPROC)load("glGetActiveSubroutineName"); - glad_glUniformSubroutinesuiv = (PFNGLUNIFORMSUBROUTINESUIVPROC)load("glUniformSubroutinesuiv"); - glad_glGetUniformSubroutineuiv = (PFNGLGETUNIFORMSUBROUTINEUIVPROC)load("glGetUniformSubroutineuiv"); - glad_glGetProgramStageiv = (PFNGLGETPROGRAMSTAGEIVPROC)load("glGetProgramStageiv"); -} -static void load_GL_ARB_texture_storage_multisample(GLADloadproc load) { - if(!GLAD_GL_ARB_texture_storage_multisample) return; - glad_glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC)load("glTexStorage2DMultisample"); - glad_glTexStorage3DMultisample = (PFNGLTEXSTORAGE3DMULTISAMPLEPROC)load("glTexStorage3DMultisample"); -} -static void load_GL_EXT_vertex_attrib_64bit(GLADloadproc load) { - if(!GLAD_GL_EXT_vertex_attrib_64bit) return; - glad_glVertexAttribL1dEXT = (PFNGLVERTEXATTRIBL1DEXTPROC)load("glVertexAttribL1dEXT"); - glad_glVertexAttribL2dEXT = (PFNGLVERTEXATTRIBL2DEXTPROC)load("glVertexAttribL2dEXT"); - glad_glVertexAttribL3dEXT = (PFNGLVERTEXATTRIBL3DEXTPROC)load("glVertexAttribL3dEXT"); - glad_glVertexAttribL4dEXT = (PFNGLVERTEXATTRIBL4DEXTPROC)load("glVertexAttribL4dEXT"); - glad_glVertexAttribL1dvEXT = (PFNGLVERTEXATTRIBL1DVEXTPROC)load("glVertexAttribL1dvEXT"); - glad_glVertexAttribL2dvEXT = (PFNGLVERTEXATTRIBL2DVEXTPROC)load("glVertexAttribL2dvEXT"); - glad_glVertexAttribL3dvEXT = (PFNGLVERTEXATTRIBL3DVEXTPROC)load("glVertexAttribL3dvEXT"); - glad_glVertexAttribL4dvEXT = (PFNGLVERTEXATTRIBL4DVEXTPROC)load("glVertexAttribL4dvEXT"); - glad_glVertexAttribLPointerEXT = (PFNGLVERTEXATTRIBLPOINTEREXTPROC)load("glVertexAttribLPointerEXT"); - glad_glGetVertexAttribLdvEXT = (PFNGLGETVERTEXATTRIBLDVEXTPROC)load("glGetVertexAttribLdvEXT"); -} -static void load_GL_OES_query_matrix(GLADloadproc load) { - if(!GLAD_GL_OES_query_matrix) return; - glad_glQueryMatrixxOES = (PFNGLQUERYMATRIXXOESPROC)load("glQueryMatrixxOES"); -} -static void load_GL_MESA_window_pos(GLADloadproc load) { - if(!GLAD_GL_MESA_window_pos) return; - glad_glWindowPos2dMESA = (PFNGLWINDOWPOS2DMESAPROC)load("glWindowPos2dMESA"); - glad_glWindowPos2dvMESA = (PFNGLWINDOWPOS2DVMESAPROC)load("glWindowPos2dvMESA"); - glad_glWindowPos2fMESA = (PFNGLWINDOWPOS2FMESAPROC)load("glWindowPos2fMESA"); - glad_glWindowPos2fvMESA = (PFNGLWINDOWPOS2FVMESAPROC)load("glWindowPos2fvMESA"); - glad_glWindowPos2iMESA = (PFNGLWINDOWPOS2IMESAPROC)load("glWindowPos2iMESA"); - glad_glWindowPos2ivMESA = (PFNGLWINDOWPOS2IVMESAPROC)load("glWindowPos2ivMESA"); - glad_glWindowPos2sMESA = (PFNGLWINDOWPOS2SMESAPROC)load("glWindowPos2sMESA"); - glad_glWindowPos2svMESA = (PFNGLWINDOWPOS2SVMESAPROC)load("glWindowPos2svMESA"); - glad_glWindowPos3dMESA = (PFNGLWINDOWPOS3DMESAPROC)load("glWindowPos3dMESA"); - glad_glWindowPos3dvMESA = (PFNGLWINDOWPOS3DVMESAPROC)load("glWindowPos3dvMESA"); - glad_glWindowPos3fMESA = (PFNGLWINDOWPOS3FMESAPROC)load("glWindowPos3fMESA"); - glad_glWindowPos3fvMESA = (PFNGLWINDOWPOS3FVMESAPROC)load("glWindowPos3fvMESA"); - glad_glWindowPos3iMESA = (PFNGLWINDOWPOS3IMESAPROC)load("glWindowPos3iMESA"); - glad_glWindowPos3ivMESA = (PFNGLWINDOWPOS3IVMESAPROC)load("glWindowPos3ivMESA"); - glad_glWindowPos3sMESA = (PFNGLWINDOWPOS3SMESAPROC)load("glWindowPos3sMESA"); - glad_glWindowPos3svMESA = (PFNGLWINDOWPOS3SVMESAPROC)load("glWindowPos3svMESA"); - glad_glWindowPos4dMESA = (PFNGLWINDOWPOS4DMESAPROC)load("glWindowPos4dMESA"); - glad_glWindowPos4dvMESA = (PFNGLWINDOWPOS4DVMESAPROC)load("glWindowPos4dvMESA"); - glad_glWindowPos4fMESA = (PFNGLWINDOWPOS4FMESAPROC)load("glWindowPos4fMESA"); - glad_glWindowPos4fvMESA = (PFNGLWINDOWPOS4FVMESAPROC)load("glWindowPos4fvMESA"); - glad_glWindowPos4iMESA = (PFNGLWINDOWPOS4IMESAPROC)load("glWindowPos4iMESA"); - glad_glWindowPos4ivMESA = (PFNGLWINDOWPOS4IVMESAPROC)load("glWindowPos4ivMESA"); - glad_glWindowPos4sMESA = (PFNGLWINDOWPOS4SMESAPROC)load("glWindowPos4sMESA"); - glad_glWindowPos4svMESA = (PFNGLWINDOWPOS4SVMESAPROC)load("glWindowPos4svMESA"); -} -static void load_GL_ARB_copy_buffer(GLADloadproc load) { - if(!GLAD_GL_ARB_copy_buffer) return; - glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData"); -} -static void load_GL_APPLE_object_purgeable(GLADloadproc load) { - if(!GLAD_GL_APPLE_object_purgeable) return; - glad_glObjectPurgeableAPPLE = (PFNGLOBJECTPURGEABLEAPPLEPROC)load("glObjectPurgeableAPPLE"); - glad_glObjectUnpurgeableAPPLE = (PFNGLOBJECTUNPURGEABLEAPPLEPROC)load("glObjectUnpurgeableAPPLE"); - glad_glGetObjectParameterivAPPLE = (PFNGLGETOBJECTPARAMETERIVAPPLEPROC)load("glGetObjectParameterivAPPLE"); -} -static void load_GL_ARB_occlusion_query(GLADloadproc load) { - if(!GLAD_GL_ARB_occlusion_query) return; - glad_glGenQueriesARB = (PFNGLGENQUERIESARBPROC)load("glGenQueriesARB"); - glad_glDeleteQueriesARB = (PFNGLDELETEQUERIESARBPROC)load("glDeleteQueriesARB"); - glad_glIsQueryARB = (PFNGLISQUERYARBPROC)load("glIsQueryARB"); - glad_glBeginQueryARB = (PFNGLBEGINQUERYARBPROC)load("glBeginQueryARB"); - glad_glEndQueryARB = (PFNGLENDQUERYARBPROC)load("glEndQueryARB"); - glad_glGetQueryivARB = (PFNGLGETQUERYIVARBPROC)load("glGetQueryivARB"); - glad_glGetQueryObjectivARB = (PFNGLGETQUERYOBJECTIVARBPROC)load("glGetQueryObjectivARB"); - glad_glGetQueryObjectuivARB = (PFNGLGETQUERYOBJECTUIVARBPROC)load("glGetQueryObjectuivARB"); -} -static void load_GL_SGI_color_table(GLADloadproc load) { - if(!GLAD_GL_SGI_color_table) return; - glad_glColorTableSGI = (PFNGLCOLORTABLESGIPROC)load("glColorTableSGI"); - glad_glColorTableParameterfvSGI = (PFNGLCOLORTABLEPARAMETERFVSGIPROC)load("glColorTableParameterfvSGI"); - glad_glColorTableParameterivSGI = (PFNGLCOLORTABLEPARAMETERIVSGIPROC)load("glColorTableParameterivSGI"); - glad_glCopyColorTableSGI = (PFNGLCOPYCOLORTABLESGIPROC)load("glCopyColorTableSGI"); - glad_glGetColorTableSGI = (PFNGLGETCOLORTABLESGIPROC)load("glGetColorTableSGI"); - glad_glGetColorTableParameterfvSGI = (PFNGLGETCOLORTABLEPARAMETERFVSGIPROC)load("glGetColorTableParameterfvSGI"); - glad_glGetColorTableParameterivSGI = (PFNGLGETCOLORTABLEPARAMETERIVSGIPROC)load("glGetColorTableParameterivSGI"); -} -static void load_GL_EXT_gpu_shader4(GLADloadproc load) { - if(!GLAD_GL_EXT_gpu_shader4) return; - glad_glGetUniformuivEXT = (PFNGLGETUNIFORMUIVEXTPROC)load("glGetUniformuivEXT"); - glad_glBindFragDataLocationEXT = (PFNGLBINDFRAGDATALOCATIONEXTPROC)load("glBindFragDataLocationEXT"); - glad_glGetFragDataLocationEXT = (PFNGLGETFRAGDATALOCATIONEXTPROC)load("glGetFragDataLocationEXT"); - glad_glUniform1uiEXT = (PFNGLUNIFORM1UIEXTPROC)load("glUniform1uiEXT"); - glad_glUniform2uiEXT = (PFNGLUNIFORM2UIEXTPROC)load("glUniform2uiEXT"); - glad_glUniform3uiEXT = (PFNGLUNIFORM3UIEXTPROC)load("glUniform3uiEXT"); - glad_glUniform4uiEXT = (PFNGLUNIFORM4UIEXTPROC)load("glUniform4uiEXT"); - glad_glUniform1uivEXT = (PFNGLUNIFORM1UIVEXTPROC)load("glUniform1uivEXT"); - glad_glUniform2uivEXT = (PFNGLUNIFORM2UIVEXTPROC)load("glUniform2uivEXT"); - glad_glUniform3uivEXT = (PFNGLUNIFORM3UIVEXTPROC)load("glUniform3uivEXT"); - glad_glUniform4uivEXT = (PFNGLUNIFORM4UIVEXTPROC)load("glUniform4uivEXT"); -} -static void load_GL_NV_geometry_program4(GLADloadproc load) { - if(!GLAD_GL_NV_geometry_program4) return; - glad_glProgramVertexLimitNV = (PFNGLPROGRAMVERTEXLIMITNVPROC)load("glProgramVertexLimitNV"); - glad_glFramebufferTextureEXT = (PFNGLFRAMEBUFFERTEXTUREEXTPROC)load("glFramebufferTextureEXT"); - glad_glFramebufferTextureLayerEXT = (PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)load("glFramebufferTextureLayerEXT"); - glad_glFramebufferTextureFaceEXT = (PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC)load("glFramebufferTextureFaceEXT"); -} -static void load_GL_AMD_debug_output(GLADloadproc load) { - if(!GLAD_GL_AMD_debug_output) return; - glad_glDebugMessageEnableAMD = (PFNGLDEBUGMESSAGEENABLEAMDPROC)load("glDebugMessageEnableAMD"); - glad_glDebugMessageInsertAMD = (PFNGLDEBUGMESSAGEINSERTAMDPROC)load("glDebugMessageInsertAMD"); - glad_glDebugMessageCallbackAMD = (PFNGLDEBUGMESSAGECALLBACKAMDPROC)load("glDebugMessageCallbackAMD"); - glad_glGetDebugMessageLogAMD = (PFNGLGETDEBUGMESSAGELOGAMDPROC)load("glGetDebugMessageLogAMD"); -} -static void load_GL_ARB_multitexture(GLADloadproc load) { - if(!GLAD_GL_ARB_multitexture) return; - glad_glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC)load("glActiveTextureARB"); - glad_glClientActiveTextureARB = (PFNGLCLIENTACTIVETEXTUREARBPROC)load("glClientActiveTextureARB"); - glad_glMultiTexCoord1dARB = (PFNGLMULTITEXCOORD1DARBPROC)load("glMultiTexCoord1dARB"); - glad_glMultiTexCoord1dvARB = (PFNGLMULTITEXCOORD1DVARBPROC)load("glMultiTexCoord1dvARB"); - glad_glMultiTexCoord1fARB = (PFNGLMULTITEXCOORD1FARBPROC)load("glMultiTexCoord1fARB"); - glad_glMultiTexCoord1fvARB = (PFNGLMULTITEXCOORD1FVARBPROC)load("glMultiTexCoord1fvARB"); - glad_glMultiTexCoord1iARB = (PFNGLMULTITEXCOORD1IARBPROC)load("glMultiTexCoord1iARB"); - glad_glMultiTexCoord1ivARB = (PFNGLMULTITEXCOORD1IVARBPROC)load("glMultiTexCoord1ivARB"); - glad_glMultiTexCoord1sARB = (PFNGLMULTITEXCOORD1SARBPROC)load("glMultiTexCoord1sARB"); - glad_glMultiTexCoord1svARB = (PFNGLMULTITEXCOORD1SVARBPROC)load("glMultiTexCoord1svARB"); - glad_glMultiTexCoord2dARB = (PFNGLMULTITEXCOORD2DARBPROC)load("glMultiTexCoord2dARB"); - glad_glMultiTexCoord2dvARB = (PFNGLMULTITEXCOORD2DVARBPROC)load("glMultiTexCoord2dvARB"); - glad_glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC)load("glMultiTexCoord2fARB"); - glad_glMultiTexCoord2fvARB = (PFNGLMULTITEXCOORD2FVARBPROC)load("glMultiTexCoord2fvARB"); - glad_glMultiTexCoord2iARB = (PFNGLMULTITEXCOORD2IARBPROC)load("glMultiTexCoord2iARB"); - glad_glMultiTexCoord2ivARB = (PFNGLMULTITEXCOORD2IVARBPROC)load("glMultiTexCoord2ivARB"); - glad_glMultiTexCoord2sARB = (PFNGLMULTITEXCOORD2SARBPROC)load("glMultiTexCoord2sARB"); - glad_glMultiTexCoord2svARB = (PFNGLMULTITEXCOORD2SVARBPROC)load("glMultiTexCoord2svARB"); - glad_glMultiTexCoord3dARB = (PFNGLMULTITEXCOORD3DARBPROC)load("glMultiTexCoord3dARB"); - glad_glMultiTexCoord3dvARB = (PFNGLMULTITEXCOORD3DVARBPROC)load("glMultiTexCoord3dvARB"); - glad_glMultiTexCoord3fARB = (PFNGLMULTITEXCOORD3FARBPROC)load("glMultiTexCoord3fARB"); - glad_glMultiTexCoord3fvARB = (PFNGLMULTITEXCOORD3FVARBPROC)load("glMultiTexCoord3fvARB"); - glad_glMultiTexCoord3iARB = (PFNGLMULTITEXCOORD3IARBPROC)load("glMultiTexCoord3iARB"); - glad_glMultiTexCoord3ivARB = (PFNGLMULTITEXCOORD3IVARBPROC)load("glMultiTexCoord3ivARB"); - glad_glMultiTexCoord3sARB = (PFNGLMULTITEXCOORD3SARBPROC)load("glMultiTexCoord3sARB"); - glad_glMultiTexCoord3svARB = (PFNGLMULTITEXCOORD3SVARBPROC)load("glMultiTexCoord3svARB"); - glad_glMultiTexCoord4dARB = (PFNGLMULTITEXCOORD4DARBPROC)load("glMultiTexCoord4dARB"); - glad_glMultiTexCoord4dvARB = (PFNGLMULTITEXCOORD4DVARBPROC)load("glMultiTexCoord4dvARB"); - glad_glMultiTexCoord4fARB = (PFNGLMULTITEXCOORD4FARBPROC)load("glMultiTexCoord4fARB"); - glad_glMultiTexCoord4fvARB = (PFNGLMULTITEXCOORD4FVARBPROC)load("glMultiTexCoord4fvARB"); - glad_glMultiTexCoord4iARB = (PFNGLMULTITEXCOORD4IARBPROC)load("glMultiTexCoord4iARB"); - glad_glMultiTexCoord4ivARB = (PFNGLMULTITEXCOORD4IVARBPROC)load("glMultiTexCoord4ivARB"); - glad_glMultiTexCoord4sARB = (PFNGLMULTITEXCOORD4SARBPROC)load("glMultiTexCoord4sARB"); - glad_glMultiTexCoord4svARB = (PFNGLMULTITEXCOORD4SVARBPROC)load("glMultiTexCoord4svARB"); -} -static void load_GL_SGIX_polynomial_ffd(GLADloadproc load) { - if(!GLAD_GL_SGIX_polynomial_ffd) return; - glad_glDeformationMap3dSGIX = (PFNGLDEFORMATIONMAP3DSGIXPROC)load("glDeformationMap3dSGIX"); - glad_glDeformationMap3fSGIX = (PFNGLDEFORMATIONMAP3FSGIXPROC)load("glDeformationMap3fSGIX"); - glad_glDeformSGIX = (PFNGLDEFORMSGIXPROC)load("glDeformSGIX"); - glad_glLoadIdentityDeformationMapSGIX = (PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC)load("glLoadIdentityDeformationMapSGIX"); -} -static void load_GL_EXT_provoking_vertex(GLADloadproc load) { - if(!GLAD_GL_EXT_provoking_vertex) return; - glad_glProvokingVertexEXT = (PFNGLPROVOKINGVERTEXEXTPROC)load("glProvokingVertexEXT"); -} -static void load_GL_ARB_point_parameters(GLADloadproc load) { - if(!GLAD_GL_ARB_point_parameters) return; - glad_glPointParameterfARB = (PFNGLPOINTPARAMETERFARBPROC)load("glPointParameterfARB"); - glad_glPointParameterfvARB = (PFNGLPOINTPARAMETERFVARBPROC)load("glPointParameterfvARB"); -} -static void load_GL_ARB_shader_image_load_store(GLADloadproc load) { - if(!GLAD_GL_ARB_shader_image_load_store) return; - glad_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC)load("glBindImageTexture"); - glad_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC)load("glMemoryBarrier"); -} -static void load_GL_ARB_texture_barrier(GLADloadproc load) { - if(!GLAD_GL_ARB_texture_barrier) return; - glad_glTextureBarrier = (PFNGLTEXTUREBARRIERPROC)load("glTextureBarrier"); -} -static void load_GL_NV_bindless_multi_draw_indirect(GLADloadproc load) { - if(!GLAD_GL_NV_bindless_multi_draw_indirect) return; - glad_glMultiDrawArraysIndirectBindlessNV = (PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC)load("glMultiDrawArraysIndirectBindlessNV"); - glad_glMultiDrawElementsIndirectBindlessNV = (PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC)load("glMultiDrawElementsIndirectBindlessNV"); -} -static void load_GL_EXT_transform_feedback(GLADloadproc load) { - if(!GLAD_GL_EXT_transform_feedback) return; - glad_glBeginTransformFeedbackEXT = (PFNGLBEGINTRANSFORMFEEDBACKEXTPROC)load("glBeginTransformFeedbackEXT"); - glad_glEndTransformFeedbackEXT = (PFNGLENDTRANSFORMFEEDBACKEXTPROC)load("glEndTransformFeedbackEXT"); - glad_glBindBufferRangeEXT = (PFNGLBINDBUFFERRANGEEXTPROC)load("glBindBufferRangeEXT"); - glad_glBindBufferOffsetEXT = (PFNGLBINDBUFFEROFFSETEXTPROC)load("glBindBufferOffsetEXT"); - glad_glBindBufferBaseEXT = (PFNGLBINDBUFFERBASEEXTPROC)load("glBindBufferBaseEXT"); - glad_glTransformFeedbackVaryingsEXT = (PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC)load("glTransformFeedbackVaryingsEXT"); - glad_glGetTransformFeedbackVaryingEXT = (PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC)load("glGetTransformFeedbackVaryingEXT"); -} -static void load_GL_NV_gpu_program4(GLADloadproc load) { - if(!GLAD_GL_NV_gpu_program4) return; - glad_glProgramLocalParameterI4iNV = (PFNGLPROGRAMLOCALPARAMETERI4INVPROC)load("glProgramLocalParameterI4iNV"); - glad_glProgramLocalParameterI4ivNV = (PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC)load("glProgramLocalParameterI4ivNV"); - glad_glProgramLocalParametersI4ivNV = (PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC)load("glProgramLocalParametersI4ivNV"); - glad_glProgramLocalParameterI4uiNV = (PFNGLPROGRAMLOCALPARAMETERI4UINVPROC)load("glProgramLocalParameterI4uiNV"); - glad_glProgramLocalParameterI4uivNV = (PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC)load("glProgramLocalParameterI4uivNV"); - glad_glProgramLocalParametersI4uivNV = (PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC)load("glProgramLocalParametersI4uivNV"); - glad_glProgramEnvParameterI4iNV = (PFNGLPROGRAMENVPARAMETERI4INVPROC)load("glProgramEnvParameterI4iNV"); - glad_glProgramEnvParameterI4ivNV = (PFNGLPROGRAMENVPARAMETERI4IVNVPROC)load("glProgramEnvParameterI4ivNV"); - glad_glProgramEnvParametersI4ivNV = (PFNGLPROGRAMENVPARAMETERSI4IVNVPROC)load("glProgramEnvParametersI4ivNV"); - glad_glProgramEnvParameterI4uiNV = (PFNGLPROGRAMENVPARAMETERI4UINVPROC)load("glProgramEnvParameterI4uiNV"); - glad_glProgramEnvParameterI4uivNV = (PFNGLPROGRAMENVPARAMETERI4UIVNVPROC)load("glProgramEnvParameterI4uivNV"); - glad_glProgramEnvParametersI4uivNV = (PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC)load("glProgramEnvParametersI4uivNV"); - glad_glGetProgramLocalParameterIivNV = (PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC)load("glGetProgramLocalParameterIivNV"); - glad_glGetProgramLocalParameterIuivNV = (PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC)load("glGetProgramLocalParameterIuivNV"); - glad_glGetProgramEnvParameterIivNV = (PFNGLGETPROGRAMENVPARAMETERIIVNVPROC)load("glGetProgramEnvParameterIivNV"); - glad_glGetProgramEnvParameterIuivNV = (PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC)load("glGetProgramEnvParameterIuivNV"); -} -static void load_GL_NV_gpu_program5(GLADloadproc load) { - if(!GLAD_GL_NV_gpu_program5) return; - glad_glProgramSubroutineParametersuivNV = (PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC)load("glProgramSubroutineParametersuivNV"); - glad_glGetProgramSubroutineParameteruivNV = (PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC)load("glGetProgramSubroutineParameteruivNV"); -} -static void load_GL_ARB_geometry_shader4(GLADloadproc load) { - if(!GLAD_GL_ARB_geometry_shader4) return; - glad_glProgramParameteriARB = (PFNGLPROGRAMPARAMETERIARBPROC)load("glProgramParameteriARB"); - glad_glFramebufferTextureARB = (PFNGLFRAMEBUFFERTEXTUREARBPROC)load("glFramebufferTextureARB"); - glad_glFramebufferTextureLayerARB = (PFNGLFRAMEBUFFERTEXTURELAYERARBPROC)load("glFramebufferTextureLayerARB"); - glad_glFramebufferTextureFaceARB = (PFNGLFRAMEBUFFERTEXTUREFACEARBPROC)load("glFramebufferTextureFaceARB"); -} -static void load_GL_NV_conservative_raster(GLADloadproc load) { - if(!GLAD_GL_NV_conservative_raster) return; - glad_glSubpixelPrecisionBiasNV = (PFNGLSUBPIXELPRECISIONBIASNVPROC)load("glSubpixelPrecisionBiasNV"); -} -static void load_GL_SGIX_sprite(GLADloadproc load) { - if(!GLAD_GL_SGIX_sprite) return; - glad_glSpriteParameterfSGIX = (PFNGLSPRITEPARAMETERFSGIXPROC)load("glSpriteParameterfSGIX"); - glad_glSpriteParameterfvSGIX = (PFNGLSPRITEPARAMETERFVSGIXPROC)load("glSpriteParameterfvSGIX"); - glad_glSpriteParameteriSGIX = (PFNGLSPRITEPARAMETERISGIXPROC)load("glSpriteParameteriSGIX"); - glad_glSpriteParameterivSGIX = (PFNGLSPRITEPARAMETERIVSGIXPROC)load("glSpriteParameterivSGIX"); -} -static void load_GL_ARB_get_program_binary(GLADloadproc load) { - if(!GLAD_GL_ARB_get_program_binary) return; - glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)load("glGetProgramBinary"); - glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC)load("glProgramBinary"); - glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load("glProgramParameteri"); -} -static void load_GL_AMD_occlusion_query_event(GLADloadproc load) { - if(!GLAD_GL_AMD_occlusion_query_event) return; - glad_glQueryObjectParameteruiAMD = (PFNGLQUERYOBJECTPARAMETERUIAMDPROC)load("glQueryObjectParameteruiAMD"); -} -static void load_GL_SGIS_multisample(GLADloadproc load) { - if(!GLAD_GL_SGIS_multisample) return; - glad_glSampleMaskSGIS = (PFNGLSAMPLEMASKSGISPROC)load("glSampleMaskSGIS"); - glad_glSamplePatternSGIS = (PFNGLSAMPLEPATTERNSGISPROC)load("glSamplePatternSGIS"); -} -static void load_GL_EXT_framebuffer_object(GLADloadproc load) { - if(!GLAD_GL_EXT_framebuffer_object) return; - glad_glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC)load("glIsRenderbufferEXT"); - glad_glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC)load("glBindRenderbufferEXT"); - glad_glDeleteRenderbuffersEXT = (PFNGLDELETERENDERBUFFERSEXTPROC)load("glDeleteRenderbuffersEXT"); - glad_glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC)load("glGenRenderbuffersEXT"); - glad_glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC)load("glRenderbufferStorageEXT"); - glad_glGetRenderbufferParameterivEXT = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)load("glGetRenderbufferParameterivEXT"); - glad_glIsFramebufferEXT = (PFNGLISFRAMEBUFFEREXTPROC)load("glIsFramebufferEXT"); - glad_glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC)load("glBindFramebufferEXT"); - glad_glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC)load("glDeleteFramebuffersEXT"); - glad_glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC)load("glGenFramebuffersEXT"); - glad_glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)load("glCheckFramebufferStatusEXT"); - glad_glFramebufferTexture1DEXT = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)load("glFramebufferTexture1DEXT"); - glad_glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)load("glFramebufferTexture2DEXT"); - glad_glFramebufferTexture3DEXT = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)load("glFramebufferTexture3DEXT"); - glad_glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)load("glFramebufferRenderbufferEXT"); - glad_glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)load("glGetFramebufferAttachmentParameterivEXT"); - glad_glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC)load("glGenerateMipmapEXT"); -} -static void load_GL_APPLE_vertex_array_range(GLADloadproc load) { - if(!GLAD_GL_APPLE_vertex_array_range) return; - glad_glVertexArrayRangeAPPLE = (PFNGLVERTEXARRAYRANGEAPPLEPROC)load("glVertexArrayRangeAPPLE"); - glad_glFlushVertexArrayRangeAPPLE = (PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC)load("glFlushVertexArrayRangeAPPLE"); - glad_glVertexArrayParameteriAPPLE = (PFNGLVERTEXARRAYPARAMETERIAPPLEPROC)load("glVertexArrayParameteriAPPLE"); -} -static void load_GL_NV_register_combiners(GLADloadproc load) { - if(!GLAD_GL_NV_register_combiners) return; - glad_glCombinerParameterfvNV = (PFNGLCOMBINERPARAMETERFVNVPROC)load("glCombinerParameterfvNV"); - glad_glCombinerParameterfNV = (PFNGLCOMBINERPARAMETERFNVPROC)load("glCombinerParameterfNV"); - glad_glCombinerParameterivNV = (PFNGLCOMBINERPARAMETERIVNVPROC)load("glCombinerParameterivNV"); - glad_glCombinerParameteriNV = (PFNGLCOMBINERPARAMETERINVPROC)load("glCombinerParameteriNV"); - glad_glCombinerInputNV = (PFNGLCOMBINERINPUTNVPROC)load("glCombinerInputNV"); - glad_glCombinerOutputNV = (PFNGLCOMBINEROUTPUTNVPROC)load("glCombinerOutputNV"); - glad_glFinalCombinerInputNV = (PFNGLFINALCOMBINERINPUTNVPROC)load("glFinalCombinerInputNV"); - glad_glGetCombinerInputParameterfvNV = (PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)load("glGetCombinerInputParameterfvNV"); - glad_glGetCombinerInputParameterivNV = (PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)load("glGetCombinerInputParameterivNV"); - glad_glGetCombinerOutputParameterfvNV = (PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)load("glGetCombinerOutputParameterfvNV"); - glad_glGetCombinerOutputParameterivNV = (PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)load("glGetCombinerOutputParameterivNV"); - glad_glGetFinalCombinerInputParameterfvNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)load("glGetFinalCombinerInputParameterfvNV"); - glad_glGetFinalCombinerInputParameterivNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)load("glGetFinalCombinerInputParameterivNV"); -} -static void load_GL_ARB_draw_buffers(GLADloadproc load) { - if(!GLAD_GL_ARB_draw_buffers) return; - glad_glDrawBuffersARB = (PFNGLDRAWBUFFERSARBPROC)load("glDrawBuffersARB"); -} -static void load_GL_ARB_clear_texture(GLADloadproc load) { - if(!GLAD_GL_ARB_clear_texture) return; - glad_glClearTexImage = (PFNGLCLEARTEXIMAGEPROC)load("glClearTexImage"); - glad_glClearTexSubImage = (PFNGLCLEARTEXSUBIMAGEPROC)load("glClearTexSubImage"); -} -static void load_GL_ARB_debug_output(GLADloadproc load) { - if(!GLAD_GL_ARB_debug_output) return; - glad_glDebugMessageControlARB = (PFNGLDEBUGMESSAGECONTROLARBPROC)load("glDebugMessageControlARB"); - glad_glDebugMessageInsertARB = (PFNGLDEBUGMESSAGEINSERTARBPROC)load("glDebugMessageInsertARB"); - glad_glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC)load("glDebugMessageCallbackARB"); - glad_glGetDebugMessageLogARB = (PFNGLGETDEBUGMESSAGELOGARBPROC)load("glGetDebugMessageLogARB"); -} -static void load_GL_EXT_cull_vertex(GLADloadproc load) { - if(!GLAD_GL_EXT_cull_vertex) return; - glad_glCullParameterdvEXT = (PFNGLCULLPARAMETERDVEXTPROC)load("glCullParameterdvEXT"); - glad_glCullParameterfvEXT = (PFNGLCULLPARAMETERFVEXTPROC)load("glCullParameterfvEXT"); -} -static void load_GL_IBM_multimode_draw_arrays(GLADloadproc load) { - if(!GLAD_GL_IBM_multimode_draw_arrays) return; - glad_glMultiModeDrawArraysIBM = (PFNGLMULTIMODEDRAWARRAYSIBMPROC)load("glMultiModeDrawArraysIBM"); - glad_glMultiModeDrawElementsIBM = (PFNGLMULTIMODEDRAWELEMENTSIBMPROC)load("glMultiModeDrawElementsIBM"); -} -static void load_GL_APPLE_vertex_array_object(GLADloadproc load) { - if(!GLAD_GL_APPLE_vertex_array_object) return; - glad_glBindVertexArrayAPPLE = (PFNGLBINDVERTEXARRAYAPPLEPROC)load("glBindVertexArrayAPPLE"); - glad_glDeleteVertexArraysAPPLE = (PFNGLDELETEVERTEXARRAYSAPPLEPROC)load("glDeleteVertexArraysAPPLE"); - glad_glGenVertexArraysAPPLE = (PFNGLGENVERTEXARRAYSAPPLEPROC)load("glGenVertexArraysAPPLE"); - glad_glIsVertexArrayAPPLE = (PFNGLISVERTEXARRAYAPPLEPROC)load("glIsVertexArrayAPPLE"); -} -static void load_GL_SGIS_detail_texture(GLADloadproc load) { - if(!GLAD_GL_SGIS_detail_texture) return; - glad_glDetailTexFuncSGIS = (PFNGLDETAILTEXFUNCSGISPROC)load("glDetailTexFuncSGIS"); - glad_glGetDetailTexFuncSGIS = (PFNGLGETDETAILTEXFUNCSGISPROC)load("glGetDetailTexFuncSGIS"); -} -static void load_GL_ARB_draw_instanced(GLADloadproc load) { - if(!GLAD_GL_ARB_draw_instanced) return; - glad_glDrawArraysInstancedARB = (PFNGLDRAWARRAYSINSTANCEDARBPROC)load("glDrawArraysInstancedARB"); - glad_glDrawElementsInstancedARB = (PFNGLDRAWELEMENTSINSTANCEDARBPROC)load("glDrawElementsInstancedARB"); -} -static void load_GL_ARB_shading_language_include(GLADloadproc load) { - if(!GLAD_GL_ARB_shading_language_include) return; - glad_glNamedStringARB = (PFNGLNAMEDSTRINGARBPROC)load("glNamedStringARB"); - glad_glDeleteNamedStringARB = (PFNGLDELETENAMEDSTRINGARBPROC)load("glDeleteNamedStringARB"); - glad_glCompileShaderIncludeARB = (PFNGLCOMPILESHADERINCLUDEARBPROC)load("glCompileShaderIncludeARB"); - glad_glIsNamedStringARB = (PFNGLISNAMEDSTRINGARBPROC)load("glIsNamedStringARB"); - glad_glGetNamedStringARB = (PFNGLGETNAMEDSTRINGARBPROC)load("glGetNamedStringARB"); - glad_glGetNamedStringivARB = (PFNGLGETNAMEDSTRINGIVARBPROC)load("glGetNamedStringivARB"); -} -static void load_GL_INGR_blend_func_separate(GLADloadproc load) { - if(!GLAD_GL_INGR_blend_func_separate) return; - glad_glBlendFuncSeparateINGR = (PFNGLBLENDFUNCSEPARATEINGRPROC)load("glBlendFuncSeparateINGR"); -} -static void load_GL_NV_path_rendering(GLADloadproc load) { - if(!GLAD_GL_NV_path_rendering) return; - glad_glGenPathsNV = (PFNGLGENPATHSNVPROC)load("glGenPathsNV"); - glad_glDeletePathsNV = (PFNGLDELETEPATHSNVPROC)load("glDeletePathsNV"); - glad_glIsPathNV = (PFNGLISPATHNVPROC)load("glIsPathNV"); - glad_glPathCommandsNV = (PFNGLPATHCOMMANDSNVPROC)load("glPathCommandsNV"); - glad_glPathCoordsNV = (PFNGLPATHCOORDSNVPROC)load("glPathCoordsNV"); - glad_glPathSubCommandsNV = (PFNGLPATHSUBCOMMANDSNVPROC)load("glPathSubCommandsNV"); - glad_glPathSubCoordsNV = (PFNGLPATHSUBCOORDSNVPROC)load("glPathSubCoordsNV"); - glad_glPathStringNV = (PFNGLPATHSTRINGNVPROC)load("glPathStringNV"); - glad_glPathGlyphsNV = (PFNGLPATHGLYPHSNVPROC)load("glPathGlyphsNV"); - glad_glPathGlyphRangeNV = (PFNGLPATHGLYPHRANGENVPROC)load("glPathGlyphRangeNV"); - glad_glWeightPathsNV = (PFNGLWEIGHTPATHSNVPROC)load("glWeightPathsNV"); - glad_glCopyPathNV = (PFNGLCOPYPATHNVPROC)load("glCopyPathNV"); - glad_glInterpolatePathsNV = (PFNGLINTERPOLATEPATHSNVPROC)load("glInterpolatePathsNV"); - glad_glTransformPathNV = (PFNGLTRANSFORMPATHNVPROC)load("glTransformPathNV"); - glad_glPathParameterivNV = (PFNGLPATHPARAMETERIVNVPROC)load("glPathParameterivNV"); - glad_glPathParameteriNV = (PFNGLPATHPARAMETERINVPROC)load("glPathParameteriNV"); - glad_glPathParameterfvNV = (PFNGLPATHPARAMETERFVNVPROC)load("glPathParameterfvNV"); - glad_glPathParameterfNV = (PFNGLPATHPARAMETERFNVPROC)load("glPathParameterfNV"); - glad_glPathDashArrayNV = (PFNGLPATHDASHARRAYNVPROC)load("glPathDashArrayNV"); - glad_glPathStencilFuncNV = (PFNGLPATHSTENCILFUNCNVPROC)load("glPathStencilFuncNV"); - glad_glPathStencilDepthOffsetNV = (PFNGLPATHSTENCILDEPTHOFFSETNVPROC)load("glPathStencilDepthOffsetNV"); - glad_glStencilFillPathNV = (PFNGLSTENCILFILLPATHNVPROC)load("glStencilFillPathNV"); - glad_glStencilStrokePathNV = (PFNGLSTENCILSTROKEPATHNVPROC)load("glStencilStrokePathNV"); - glad_glStencilFillPathInstancedNV = (PFNGLSTENCILFILLPATHINSTANCEDNVPROC)load("glStencilFillPathInstancedNV"); - glad_glStencilStrokePathInstancedNV = (PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC)load("glStencilStrokePathInstancedNV"); - glad_glPathCoverDepthFuncNV = (PFNGLPATHCOVERDEPTHFUNCNVPROC)load("glPathCoverDepthFuncNV"); - glad_glCoverFillPathNV = (PFNGLCOVERFILLPATHNVPROC)load("glCoverFillPathNV"); - glad_glCoverStrokePathNV = (PFNGLCOVERSTROKEPATHNVPROC)load("glCoverStrokePathNV"); - glad_glCoverFillPathInstancedNV = (PFNGLCOVERFILLPATHINSTANCEDNVPROC)load("glCoverFillPathInstancedNV"); - glad_glCoverStrokePathInstancedNV = (PFNGLCOVERSTROKEPATHINSTANCEDNVPROC)load("glCoverStrokePathInstancedNV"); - glad_glGetPathParameterivNV = (PFNGLGETPATHPARAMETERIVNVPROC)load("glGetPathParameterivNV"); - glad_glGetPathParameterfvNV = (PFNGLGETPATHPARAMETERFVNVPROC)load("glGetPathParameterfvNV"); - glad_glGetPathCommandsNV = (PFNGLGETPATHCOMMANDSNVPROC)load("glGetPathCommandsNV"); - glad_glGetPathCoordsNV = (PFNGLGETPATHCOORDSNVPROC)load("glGetPathCoordsNV"); - glad_glGetPathDashArrayNV = (PFNGLGETPATHDASHARRAYNVPROC)load("glGetPathDashArrayNV"); - glad_glGetPathMetricsNV = (PFNGLGETPATHMETRICSNVPROC)load("glGetPathMetricsNV"); - glad_glGetPathMetricRangeNV = (PFNGLGETPATHMETRICRANGENVPROC)load("glGetPathMetricRangeNV"); - glad_glGetPathSpacingNV = (PFNGLGETPATHSPACINGNVPROC)load("glGetPathSpacingNV"); - glad_glIsPointInFillPathNV = (PFNGLISPOINTINFILLPATHNVPROC)load("glIsPointInFillPathNV"); - glad_glIsPointInStrokePathNV = (PFNGLISPOINTINSTROKEPATHNVPROC)load("glIsPointInStrokePathNV"); - glad_glGetPathLengthNV = (PFNGLGETPATHLENGTHNVPROC)load("glGetPathLengthNV"); - glad_glPointAlongPathNV = (PFNGLPOINTALONGPATHNVPROC)load("glPointAlongPathNV"); - glad_glMatrixLoad3x2fNV = (PFNGLMATRIXLOAD3X2FNVPROC)load("glMatrixLoad3x2fNV"); - glad_glMatrixLoad3x3fNV = (PFNGLMATRIXLOAD3X3FNVPROC)load("glMatrixLoad3x3fNV"); - glad_glMatrixLoadTranspose3x3fNV = (PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC)load("glMatrixLoadTranspose3x3fNV"); - glad_glMatrixMult3x2fNV = (PFNGLMATRIXMULT3X2FNVPROC)load("glMatrixMult3x2fNV"); - glad_glMatrixMult3x3fNV = (PFNGLMATRIXMULT3X3FNVPROC)load("glMatrixMult3x3fNV"); - glad_glMatrixMultTranspose3x3fNV = (PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC)load("glMatrixMultTranspose3x3fNV"); - glad_glStencilThenCoverFillPathNV = (PFNGLSTENCILTHENCOVERFILLPATHNVPROC)load("glStencilThenCoverFillPathNV"); - glad_glStencilThenCoverStrokePathNV = (PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC)load("glStencilThenCoverStrokePathNV"); - glad_glStencilThenCoverFillPathInstancedNV = (PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC)load("glStencilThenCoverFillPathInstancedNV"); - glad_glStencilThenCoverStrokePathInstancedNV = (PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC)load("glStencilThenCoverStrokePathInstancedNV"); - glad_glPathGlyphIndexRangeNV = (PFNGLPATHGLYPHINDEXRANGENVPROC)load("glPathGlyphIndexRangeNV"); - glad_glPathGlyphIndexArrayNV = (PFNGLPATHGLYPHINDEXARRAYNVPROC)load("glPathGlyphIndexArrayNV"); - glad_glPathMemoryGlyphIndexArrayNV = (PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC)load("glPathMemoryGlyphIndexArrayNV"); - glad_glProgramPathFragmentInputGenNV = (PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC)load("glProgramPathFragmentInputGenNV"); - glad_glGetProgramResourcefvNV = (PFNGLGETPROGRAMRESOURCEFVNVPROC)load("glGetProgramResourcefvNV"); - glad_glPathColorGenNV = (PFNGLPATHCOLORGENNVPROC)load("glPathColorGenNV"); - glad_glPathTexGenNV = (PFNGLPATHTEXGENNVPROC)load("glPathTexGenNV"); - glad_glPathFogGenNV = (PFNGLPATHFOGGENNVPROC)load("glPathFogGenNV"); - glad_glGetPathColorGenivNV = (PFNGLGETPATHCOLORGENIVNVPROC)load("glGetPathColorGenivNV"); - glad_glGetPathColorGenfvNV = (PFNGLGETPATHCOLORGENFVNVPROC)load("glGetPathColorGenfvNV"); - glad_glGetPathTexGenivNV = (PFNGLGETPATHTEXGENIVNVPROC)load("glGetPathTexGenivNV"); - glad_glGetPathTexGenfvNV = (PFNGLGETPATHTEXGENFVNVPROC)load("glGetPathTexGenfvNV"); -} -static void load_GL_NV_conservative_raster_dilate(GLADloadproc load) { - if(!GLAD_GL_NV_conservative_raster_dilate) return; - glad_glConservativeRasterParameterfNV = (PFNGLCONSERVATIVERASTERPARAMETERFNVPROC)load("glConservativeRasterParameterfNV"); -} -static void load_GL_ATI_vertex_streams(GLADloadproc load) { - if(!GLAD_GL_ATI_vertex_streams) return; - glad_glVertexStream1sATI = (PFNGLVERTEXSTREAM1SATIPROC)load("glVertexStream1sATI"); - glad_glVertexStream1svATI = (PFNGLVERTEXSTREAM1SVATIPROC)load("glVertexStream1svATI"); - glad_glVertexStream1iATI = (PFNGLVERTEXSTREAM1IATIPROC)load("glVertexStream1iATI"); - glad_glVertexStream1ivATI = (PFNGLVERTEXSTREAM1IVATIPROC)load("glVertexStream1ivATI"); - glad_glVertexStream1fATI = (PFNGLVERTEXSTREAM1FATIPROC)load("glVertexStream1fATI"); - glad_glVertexStream1fvATI = (PFNGLVERTEXSTREAM1FVATIPROC)load("glVertexStream1fvATI"); - glad_glVertexStream1dATI = (PFNGLVERTEXSTREAM1DATIPROC)load("glVertexStream1dATI"); - glad_glVertexStream1dvATI = (PFNGLVERTEXSTREAM1DVATIPROC)load("glVertexStream1dvATI"); - glad_glVertexStream2sATI = (PFNGLVERTEXSTREAM2SATIPROC)load("glVertexStream2sATI"); - glad_glVertexStream2svATI = (PFNGLVERTEXSTREAM2SVATIPROC)load("glVertexStream2svATI"); - glad_glVertexStream2iATI = (PFNGLVERTEXSTREAM2IATIPROC)load("glVertexStream2iATI"); - glad_glVertexStream2ivATI = (PFNGLVERTEXSTREAM2IVATIPROC)load("glVertexStream2ivATI"); - glad_glVertexStream2fATI = (PFNGLVERTEXSTREAM2FATIPROC)load("glVertexStream2fATI"); - glad_glVertexStream2fvATI = (PFNGLVERTEXSTREAM2FVATIPROC)load("glVertexStream2fvATI"); - glad_glVertexStream2dATI = (PFNGLVERTEXSTREAM2DATIPROC)load("glVertexStream2dATI"); - glad_glVertexStream2dvATI = (PFNGLVERTEXSTREAM2DVATIPROC)load("glVertexStream2dvATI"); - glad_glVertexStream3sATI = (PFNGLVERTEXSTREAM3SATIPROC)load("glVertexStream3sATI"); - glad_glVertexStream3svATI = (PFNGLVERTEXSTREAM3SVATIPROC)load("glVertexStream3svATI"); - glad_glVertexStream3iATI = (PFNGLVERTEXSTREAM3IATIPROC)load("glVertexStream3iATI"); - glad_glVertexStream3ivATI = (PFNGLVERTEXSTREAM3IVATIPROC)load("glVertexStream3ivATI"); - glad_glVertexStream3fATI = (PFNGLVERTEXSTREAM3FATIPROC)load("glVertexStream3fATI"); - glad_glVertexStream3fvATI = (PFNGLVERTEXSTREAM3FVATIPROC)load("glVertexStream3fvATI"); - glad_glVertexStream3dATI = (PFNGLVERTEXSTREAM3DATIPROC)load("glVertexStream3dATI"); - glad_glVertexStream3dvATI = (PFNGLVERTEXSTREAM3DVATIPROC)load("glVertexStream3dvATI"); - glad_glVertexStream4sATI = (PFNGLVERTEXSTREAM4SATIPROC)load("glVertexStream4sATI"); - glad_glVertexStream4svATI = (PFNGLVERTEXSTREAM4SVATIPROC)load("glVertexStream4svATI"); - glad_glVertexStream4iATI = (PFNGLVERTEXSTREAM4IATIPROC)load("glVertexStream4iATI"); - glad_glVertexStream4ivATI = (PFNGLVERTEXSTREAM4IVATIPROC)load("glVertexStream4ivATI"); - glad_glVertexStream4fATI = (PFNGLVERTEXSTREAM4FATIPROC)load("glVertexStream4fATI"); - glad_glVertexStream4fvATI = (PFNGLVERTEXSTREAM4FVATIPROC)load("glVertexStream4fvATI"); - glad_glVertexStream4dATI = (PFNGLVERTEXSTREAM4DATIPROC)load("glVertexStream4dATI"); - glad_glVertexStream4dvATI = (PFNGLVERTEXSTREAM4DVATIPROC)load("glVertexStream4dvATI"); - glad_glNormalStream3bATI = (PFNGLNORMALSTREAM3BATIPROC)load("glNormalStream3bATI"); - glad_glNormalStream3bvATI = (PFNGLNORMALSTREAM3BVATIPROC)load("glNormalStream3bvATI"); - glad_glNormalStream3sATI = (PFNGLNORMALSTREAM3SATIPROC)load("glNormalStream3sATI"); - glad_glNormalStream3svATI = (PFNGLNORMALSTREAM3SVATIPROC)load("glNormalStream3svATI"); - glad_glNormalStream3iATI = (PFNGLNORMALSTREAM3IATIPROC)load("glNormalStream3iATI"); - glad_glNormalStream3ivATI = (PFNGLNORMALSTREAM3IVATIPROC)load("glNormalStream3ivATI"); - glad_glNormalStream3fATI = (PFNGLNORMALSTREAM3FATIPROC)load("glNormalStream3fATI"); - glad_glNormalStream3fvATI = (PFNGLNORMALSTREAM3FVATIPROC)load("glNormalStream3fvATI"); - glad_glNormalStream3dATI = (PFNGLNORMALSTREAM3DATIPROC)load("glNormalStream3dATI"); - glad_glNormalStream3dvATI = (PFNGLNORMALSTREAM3DVATIPROC)load("glNormalStream3dvATI"); - glad_glClientActiveVertexStreamATI = (PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC)load("glClientActiveVertexStreamATI"); - glad_glVertexBlendEnviATI = (PFNGLVERTEXBLENDENVIATIPROC)load("glVertexBlendEnviATI"); - glad_glVertexBlendEnvfATI = (PFNGLVERTEXBLENDENVFATIPROC)load("glVertexBlendEnvfATI"); -} -static void load_GL_ARB_gpu_shader_int64(GLADloadproc load) { - if(!GLAD_GL_ARB_gpu_shader_int64) return; - glad_glUniform1i64ARB = (PFNGLUNIFORM1I64ARBPROC)load("glUniform1i64ARB"); - glad_glUniform2i64ARB = (PFNGLUNIFORM2I64ARBPROC)load("glUniform2i64ARB"); - glad_glUniform3i64ARB = (PFNGLUNIFORM3I64ARBPROC)load("glUniform3i64ARB"); - glad_glUniform4i64ARB = (PFNGLUNIFORM4I64ARBPROC)load("glUniform4i64ARB"); - glad_glUniform1i64vARB = (PFNGLUNIFORM1I64VARBPROC)load("glUniform1i64vARB"); - glad_glUniform2i64vARB = (PFNGLUNIFORM2I64VARBPROC)load("glUniform2i64vARB"); - glad_glUniform3i64vARB = (PFNGLUNIFORM3I64VARBPROC)load("glUniform3i64vARB"); - glad_glUniform4i64vARB = (PFNGLUNIFORM4I64VARBPROC)load("glUniform4i64vARB"); - glad_glUniform1ui64ARB = (PFNGLUNIFORM1UI64ARBPROC)load("glUniform1ui64ARB"); - glad_glUniform2ui64ARB = (PFNGLUNIFORM2UI64ARBPROC)load("glUniform2ui64ARB"); - glad_glUniform3ui64ARB = (PFNGLUNIFORM3UI64ARBPROC)load("glUniform3ui64ARB"); - glad_glUniform4ui64ARB = (PFNGLUNIFORM4UI64ARBPROC)load("glUniform4ui64ARB"); - glad_glUniform1ui64vARB = (PFNGLUNIFORM1UI64VARBPROC)load("glUniform1ui64vARB"); - glad_glUniform2ui64vARB = (PFNGLUNIFORM2UI64VARBPROC)load("glUniform2ui64vARB"); - glad_glUniform3ui64vARB = (PFNGLUNIFORM3UI64VARBPROC)load("glUniform3ui64vARB"); - glad_glUniform4ui64vARB = (PFNGLUNIFORM4UI64VARBPROC)load("glUniform4ui64vARB"); - glad_glGetUniformi64vARB = (PFNGLGETUNIFORMI64VARBPROC)load("glGetUniformi64vARB"); - glad_glGetUniformui64vARB = (PFNGLGETUNIFORMUI64VARBPROC)load("glGetUniformui64vARB"); - glad_glGetnUniformi64vARB = (PFNGLGETNUNIFORMI64VARBPROC)load("glGetnUniformi64vARB"); - glad_glGetnUniformui64vARB = (PFNGLGETNUNIFORMUI64VARBPROC)load("glGetnUniformui64vARB"); - glad_glProgramUniform1i64ARB = (PFNGLPROGRAMUNIFORM1I64ARBPROC)load("glProgramUniform1i64ARB"); - glad_glProgramUniform2i64ARB = (PFNGLPROGRAMUNIFORM2I64ARBPROC)load("glProgramUniform2i64ARB"); - glad_glProgramUniform3i64ARB = (PFNGLPROGRAMUNIFORM3I64ARBPROC)load("glProgramUniform3i64ARB"); - glad_glProgramUniform4i64ARB = (PFNGLPROGRAMUNIFORM4I64ARBPROC)load("glProgramUniform4i64ARB"); - glad_glProgramUniform1i64vARB = (PFNGLPROGRAMUNIFORM1I64VARBPROC)load("glProgramUniform1i64vARB"); - glad_glProgramUniform2i64vARB = (PFNGLPROGRAMUNIFORM2I64VARBPROC)load("glProgramUniform2i64vARB"); - glad_glProgramUniform3i64vARB = (PFNGLPROGRAMUNIFORM3I64VARBPROC)load("glProgramUniform3i64vARB"); - glad_glProgramUniform4i64vARB = (PFNGLPROGRAMUNIFORM4I64VARBPROC)load("glProgramUniform4i64vARB"); - glad_glProgramUniform1ui64ARB = (PFNGLPROGRAMUNIFORM1UI64ARBPROC)load("glProgramUniform1ui64ARB"); - glad_glProgramUniform2ui64ARB = (PFNGLPROGRAMUNIFORM2UI64ARBPROC)load("glProgramUniform2ui64ARB"); - glad_glProgramUniform3ui64ARB = (PFNGLPROGRAMUNIFORM3UI64ARBPROC)load("glProgramUniform3ui64ARB"); - glad_glProgramUniform4ui64ARB = (PFNGLPROGRAMUNIFORM4UI64ARBPROC)load("glProgramUniform4ui64ARB"); - glad_glProgramUniform1ui64vARB = (PFNGLPROGRAMUNIFORM1UI64VARBPROC)load("glProgramUniform1ui64vARB"); - glad_glProgramUniform2ui64vARB = (PFNGLPROGRAMUNIFORM2UI64VARBPROC)load("glProgramUniform2ui64vARB"); - glad_glProgramUniform3ui64vARB = (PFNGLPROGRAMUNIFORM3UI64VARBPROC)load("glProgramUniform3ui64vARB"); - glad_glProgramUniform4ui64vARB = (PFNGLPROGRAMUNIFORM4UI64VARBPROC)load("glProgramUniform4ui64vARB"); -} -static void load_GL_NV_vdpau_interop(GLADloadproc load) { - if(!GLAD_GL_NV_vdpau_interop) return; - glad_glVDPAUInitNV = (PFNGLVDPAUINITNVPROC)load("glVDPAUInitNV"); - glad_glVDPAUFiniNV = (PFNGLVDPAUFININVPROC)load("glVDPAUFiniNV"); - glad_glVDPAURegisterVideoSurfaceNV = (PFNGLVDPAUREGISTERVIDEOSURFACENVPROC)load("glVDPAURegisterVideoSurfaceNV"); - glad_glVDPAURegisterOutputSurfaceNV = (PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC)load("glVDPAURegisterOutputSurfaceNV"); - glad_glVDPAUIsSurfaceNV = (PFNGLVDPAUISSURFACENVPROC)load("glVDPAUIsSurfaceNV"); - glad_glVDPAUUnregisterSurfaceNV = (PFNGLVDPAUUNREGISTERSURFACENVPROC)load("glVDPAUUnregisterSurfaceNV"); - glad_glVDPAUGetSurfaceivNV = (PFNGLVDPAUGETSURFACEIVNVPROC)load("glVDPAUGetSurfaceivNV"); - glad_glVDPAUSurfaceAccessNV = (PFNGLVDPAUSURFACEACCESSNVPROC)load("glVDPAUSurfaceAccessNV"); - glad_glVDPAUMapSurfacesNV = (PFNGLVDPAUMAPSURFACESNVPROC)load("glVDPAUMapSurfacesNV"); - glad_glVDPAUUnmapSurfacesNV = (PFNGLVDPAUUNMAPSURFACESNVPROC)load("glVDPAUUnmapSurfacesNV"); -} -static void load_GL_ARB_internalformat_query2(GLADloadproc load) { - if(!GLAD_GL_ARB_internalformat_query2) return; - glad_glGetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC)load("glGetInternalformati64v"); -} -static void load_GL_SUN_vertex(GLADloadproc load) { - if(!GLAD_GL_SUN_vertex) return; - glad_glColor4ubVertex2fSUN = (PFNGLCOLOR4UBVERTEX2FSUNPROC)load("glColor4ubVertex2fSUN"); - glad_glColor4ubVertex2fvSUN = (PFNGLCOLOR4UBVERTEX2FVSUNPROC)load("glColor4ubVertex2fvSUN"); - glad_glColor4ubVertex3fSUN = (PFNGLCOLOR4UBVERTEX3FSUNPROC)load("glColor4ubVertex3fSUN"); - glad_glColor4ubVertex3fvSUN = (PFNGLCOLOR4UBVERTEX3FVSUNPROC)load("glColor4ubVertex3fvSUN"); - glad_glColor3fVertex3fSUN = (PFNGLCOLOR3FVERTEX3FSUNPROC)load("glColor3fVertex3fSUN"); - glad_glColor3fVertex3fvSUN = (PFNGLCOLOR3FVERTEX3FVSUNPROC)load("glColor3fVertex3fvSUN"); - glad_glNormal3fVertex3fSUN = (PFNGLNORMAL3FVERTEX3FSUNPROC)load("glNormal3fVertex3fSUN"); - glad_glNormal3fVertex3fvSUN = (PFNGLNORMAL3FVERTEX3FVSUNPROC)load("glNormal3fVertex3fvSUN"); - glad_glColor4fNormal3fVertex3fSUN = (PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC)load("glColor4fNormal3fVertex3fSUN"); - glad_glColor4fNormal3fVertex3fvSUN = (PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC)load("glColor4fNormal3fVertex3fvSUN"); - glad_glTexCoord2fVertex3fSUN = (PFNGLTEXCOORD2FVERTEX3FSUNPROC)load("glTexCoord2fVertex3fSUN"); - glad_glTexCoord2fVertex3fvSUN = (PFNGLTEXCOORD2FVERTEX3FVSUNPROC)load("glTexCoord2fVertex3fvSUN"); - glad_glTexCoord4fVertex4fSUN = (PFNGLTEXCOORD4FVERTEX4FSUNPROC)load("glTexCoord4fVertex4fSUN"); - glad_glTexCoord4fVertex4fvSUN = (PFNGLTEXCOORD4FVERTEX4FVSUNPROC)load("glTexCoord4fVertex4fvSUN"); - glad_glTexCoord2fColor4ubVertex3fSUN = (PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC)load("glTexCoord2fColor4ubVertex3fSUN"); - glad_glTexCoord2fColor4ubVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC)load("glTexCoord2fColor4ubVertex3fvSUN"); - glad_glTexCoord2fColor3fVertex3fSUN = (PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC)load("glTexCoord2fColor3fVertex3fSUN"); - glad_glTexCoord2fColor3fVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC)load("glTexCoord2fColor3fVertex3fvSUN"); - glad_glTexCoord2fNormal3fVertex3fSUN = (PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC)load("glTexCoord2fNormal3fVertex3fSUN"); - glad_glTexCoord2fNormal3fVertex3fvSUN = (PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)load("glTexCoord2fNormal3fVertex3fvSUN"); - glad_glTexCoord2fColor4fNormal3fVertex3fSUN = (PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)load("glTexCoord2fColor4fNormal3fVertex3fSUN"); - glad_glTexCoord2fColor4fNormal3fVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)load("glTexCoord2fColor4fNormal3fVertex3fvSUN"); - glad_glTexCoord4fColor4fNormal3fVertex4fSUN = (PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC)load("glTexCoord4fColor4fNormal3fVertex4fSUN"); - glad_glTexCoord4fColor4fNormal3fVertex4fvSUN = (PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC)load("glTexCoord4fColor4fNormal3fVertex4fvSUN"); - glad_glReplacementCodeuiVertex3fSUN = (PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC)load("glReplacementCodeuiVertex3fSUN"); - glad_glReplacementCodeuiVertex3fvSUN = (PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC)load("glReplacementCodeuiVertex3fvSUN"); - glad_glReplacementCodeuiColor4ubVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC)load("glReplacementCodeuiColor4ubVertex3fSUN"); - glad_glReplacementCodeuiColor4ubVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC)load("glReplacementCodeuiColor4ubVertex3fvSUN"); - glad_glReplacementCodeuiColor3fVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC)load("glReplacementCodeuiColor3fVertex3fSUN"); - glad_glReplacementCodeuiColor3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC)load("glReplacementCodeuiColor3fVertex3fvSUN"); - glad_glReplacementCodeuiNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC)load("glReplacementCodeuiNormal3fVertex3fSUN"); - glad_glReplacementCodeuiNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC)load("glReplacementCodeuiNormal3fVertex3fvSUN"); - glad_glReplacementCodeuiColor4fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC)load("glReplacementCodeuiColor4fNormal3fVertex3fSUN"); - glad_glReplacementCodeuiColor4fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC)load("glReplacementCodeuiColor4fNormal3fVertex3fvSUN"); - glad_glReplacementCodeuiTexCoord2fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC)load("glReplacementCodeuiTexCoord2fVertex3fSUN"); - glad_glReplacementCodeuiTexCoord2fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC)load("glReplacementCodeuiTexCoord2fVertex3fvSUN"); - glad_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC)load("glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN"); - glad_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)load("glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN"); - glad_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)load("glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN"); - glad_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)load("glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN"); -} -static void load_GL_SGIX_igloo_interface(GLADloadproc load) { - if(!GLAD_GL_SGIX_igloo_interface) return; - glad_glIglooInterfaceSGIX = (PFNGLIGLOOINTERFACESGIXPROC)load("glIglooInterfaceSGIX"); -} -static void load_GL_ARB_draw_indirect(GLADloadproc load) { - if(!GLAD_GL_ARB_draw_indirect) return; - glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC)load("glDrawArraysIndirect"); - glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC)load("glDrawElementsIndirect"); -} -static void load_GL_NV_vertex_program4(GLADloadproc load) { - if(!GLAD_GL_NV_vertex_program4) return; - glad_glVertexAttribI1iEXT = (PFNGLVERTEXATTRIBI1IEXTPROC)load("glVertexAttribI1iEXT"); - glad_glVertexAttribI2iEXT = (PFNGLVERTEXATTRIBI2IEXTPROC)load("glVertexAttribI2iEXT"); - glad_glVertexAttribI3iEXT = (PFNGLVERTEXATTRIBI3IEXTPROC)load("glVertexAttribI3iEXT"); - glad_glVertexAttribI4iEXT = (PFNGLVERTEXATTRIBI4IEXTPROC)load("glVertexAttribI4iEXT"); - glad_glVertexAttribI1uiEXT = (PFNGLVERTEXATTRIBI1UIEXTPROC)load("glVertexAttribI1uiEXT"); - glad_glVertexAttribI2uiEXT = (PFNGLVERTEXATTRIBI2UIEXTPROC)load("glVertexAttribI2uiEXT"); - glad_glVertexAttribI3uiEXT = (PFNGLVERTEXATTRIBI3UIEXTPROC)load("glVertexAttribI3uiEXT"); - glad_glVertexAttribI4uiEXT = (PFNGLVERTEXATTRIBI4UIEXTPROC)load("glVertexAttribI4uiEXT"); - glad_glVertexAttribI1ivEXT = (PFNGLVERTEXATTRIBI1IVEXTPROC)load("glVertexAttribI1ivEXT"); - glad_glVertexAttribI2ivEXT = (PFNGLVERTEXATTRIBI2IVEXTPROC)load("glVertexAttribI2ivEXT"); - glad_glVertexAttribI3ivEXT = (PFNGLVERTEXATTRIBI3IVEXTPROC)load("glVertexAttribI3ivEXT"); - glad_glVertexAttribI4ivEXT = (PFNGLVERTEXATTRIBI4IVEXTPROC)load("glVertexAttribI4ivEXT"); - glad_glVertexAttribI1uivEXT = (PFNGLVERTEXATTRIBI1UIVEXTPROC)load("glVertexAttribI1uivEXT"); - glad_glVertexAttribI2uivEXT = (PFNGLVERTEXATTRIBI2UIVEXTPROC)load("glVertexAttribI2uivEXT"); - glad_glVertexAttribI3uivEXT = (PFNGLVERTEXATTRIBI3UIVEXTPROC)load("glVertexAttribI3uivEXT"); - glad_glVertexAttribI4uivEXT = (PFNGLVERTEXATTRIBI4UIVEXTPROC)load("glVertexAttribI4uivEXT"); - glad_glVertexAttribI4bvEXT = (PFNGLVERTEXATTRIBI4BVEXTPROC)load("glVertexAttribI4bvEXT"); - glad_glVertexAttribI4svEXT = (PFNGLVERTEXATTRIBI4SVEXTPROC)load("glVertexAttribI4svEXT"); - glad_glVertexAttribI4ubvEXT = (PFNGLVERTEXATTRIBI4UBVEXTPROC)load("glVertexAttribI4ubvEXT"); - glad_glVertexAttribI4usvEXT = (PFNGLVERTEXATTRIBI4USVEXTPROC)load("glVertexAttribI4usvEXT"); - glad_glVertexAttribIPointerEXT = (PFNGLVERTEXATTRIBIPOINTEREXTPROC)load("glVertexAttribIPointerEXT"); - glad_glGetVertexAttribIivEXT = (PFNGLGETVERTEXATTRIBIIVEXTPROC)load("glGetVertexAttribIivEXT"); - glad_glGetVertexAttribIuivEXT = (PFNGLGETVERTEXATTRIBIUIVEXTPROC)load("glGetVertexAttribIuivEXT"); -} -static void load_GL_SGIS_fog_function(GLADloadproc load) { - if(!GLAD_GL_SGIS_fog_function) return; - glad_glFogFuncSGIS = (PFNGLFOGFUNCSGISPROC)load("glFogFuncSGIS"); - glad_glGetFogFuncSGIS = (PFNGLGETFOGFUNCSGISPROC)load("glGetFogFuncSGIS"); -} -static void load_GL_EXT_x11_sync_object(GLADloadproc load) { - if(!GLAD_GL_EXT_x11_sync_object) return; - glad_glImportSyncEXT = (PFNGLIMPORTSYNCEXTPROC)load("glImportSyncEXT"); -} -static void load_GL_ARB_sync(GLADloadproc load) { - if(!GLAD_GL_ARB_sync) return; - glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync"); - glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync"); - glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync"); - glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync"); - glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync"); - glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v"); - glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv"); -} -static void load_GL_NV_sample_locations(GLADloadproc load) { - if(!GLAD_GL_NV_sample_locations) return; - glad_glFramebufferSampleLocationsfvNV = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)load("glFramebufferSampleLocationsfvNV"); - glad_glNamedFramebufferSampleLocationsfvNV = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)load("glNamedFramebufferSampleLocationsfvNV"); - glad_glResolveDepthValuesNV = (PFNGLRESOLVEDEPTHVALUESNVPROC)load("glResolveDepthValuesNV"); -} -static void load_GL_ARB_compute_variable_group_size(GLADloadproc load) { - if(!GLAD_GL_ARB_compute_variable_group_size) return; - glad_glDispatchComputeGroupSizeARB = (PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC)load("glDispatchComputeGroupSizeARB"); -} -static void load_GL_OES_fixed_point(GLADloadproc load) { - if(!GLAD_GL_OES_fixed_point) return; - glad_glAlphaFuncxOES = (PFNGLALPHAFUNCXOESPROC)load("glAlphaFuncxOES"); - glad_glClearColorxOES = (PFNGLCLEARCOLORXOESPROC)load("glClearColorxOES"); - glad_glClearDepthxOES = (PFNGLCLEARDEPTHXOESPROC)load("glClearDepthxOES"); - glad_glClipPlanexOES = (PFNGLCLIPPLANEXOESPROC)load("glClipPlanexOES"); - glad_glColor4xOES = (PFNGLCOLOR4XOESPROC)load("glColor4xOES"); - glad_glDepthRangexOES = (PFNGLDEPTHRANGEXOESPROC)load("glDepthRangexOES"); - glad_glFogxOES = (PFNGLFOGXOESPROC)load("glFogxOES"); - glad_glFogxvOES = (PFNGLFOGXVOESPROC)load("glFogxvOES"); - glad_glFrustumxOES = (PFNGLFRUSTUMXOESPROC)load("glFrustumxOES"); - glad_glGetClipPlanexOES = (PFNGLGETCLIPPLANEXOESPROC)load("glGetClipPlanexOES"); - glad_glGetFixedvOES = (PFNGLGETFIXEDVOESPROC)load("glGetFixedvOES"); - glad_glGetTexEnvxvOES = (PFNGLGETTEXENVXVOESPROC)load("glGetTexEnvxvOES"); - glad_glGetTexParameterxvOES = (PFNGLGETTEXPARAMETERXVOESPROC)load("glGetTexParameterxvOES"); - glad_glLightModelxOES = (PFNGLLIGHTMODELXOESPROC)load("glLightModelxOES"); - glad_glLightModelxvOES = (PFNGLLIGHTMODELXVOESPROC)load("glLightModelxvOES"); - glad_glLightxOES = (PFNGLLIGHTXOESPROC)load("glLightxOES"); - glad_glLightxvOES = (PFNGLLIGHTXVOESPROC)load("glLightxvOES"); - glad_glLineWidthxOES = (PFNGLLINEWIDTHXOESPROC)load("glLineWidthxOES"); - glad_glLoadMatrixxOES = (PFNGLLOADMATRIXXOESPROC)load("glLoadMatrixxOES"); - glad_glMaterialxOES = (PFNGLMATERIALXOESPROC)load("glMaterialxOES"); - glad_glMaterialxvOES = (PFNGLMATERIALXVOESPROC)load("glMaterialxvOES"); - glad_glMultMatrixxOES = (PFNGLMULTMATRIXXOESPROC)load("glMultMatrixxOES"); - glad_glMultiTexCoord4xOES = (PFNGLMULTITEXCOORD4XOESPROC)load("glMultiTexCoord4xOES"); - glad_glNormal3xOES = (PFNGLNORMAL3XOESPROC)load("glNormal3xOES"); - glad_glOrthoxOES = (PFNGLORTHOXOESPROC)load("glOrthoxOES"); - glad_glPointParameterxvOES = (PFNGLPOINTPARAMETERXVOESPROC)load("glPointParameterxvOES"); - glad_glPointSizexOES = (PFNGLPOINTSIZEXOESPROC)load("glPointSizexOES"); - glad_glPolygonOffsetxOES = (PFNGLPOLYGONOFFSETXOESPROC)load("glPolygonOffsetxOES"); - glad_glRotatexOES = (PFNGLROTATEXOESPROC)load("glRotatexOES"); - glad_glScalexOES = (PFNGLSCALEXOESPROC)load("glScalexOES"); - glad_glTexEnvxOES = (PFNGLTEXENVXOESPROC)load("glTexEnvxOES"); - glad_glTexEnvxvOES = (PFNGLTEXENVXVOESPROC)load("glTexEnvxvOES"); - glad_glTexParameterxOES = (PFNGLTEXPARAMETERXOESPROC)load("glTexParameterxOES"); - glad_glTexParameterxvOES = (PFNGLTEXPARAMETERXVOESPROC)load("glTexParameterxvOES"); - glad_glTranslatexOES = (PFNGLTRANSLATEXOESPROC)load("glTranslatexOES"); - glad_glGetLightxvOES = (PFNGLGETLIGHTXVOESPROC)load("glGetLightxvOES"); - glad_glGetMaterialxvOES = (PFNGLGETMATERIALXVOESPROC)load("glGetMaterialxvOES"); - glad_glPointParameterxOES = (PFNGLPOINTPARAMETERXOESPROC)load("glPointParameterxOES"); - glad_glSampleCoveragexOES = (PFNGLSAMPLECOVERAGEXOESPROC)load("glSampleCoveragexOES"); - glad_glAccumxOES = (PFNGLACCUMXOESPROC)load("glAccumxOES"); - glad_glBitmapxOES = (PFNGLBITMAPXOESPROC)load("glBitmapxOES"); - glad_glBlendColorxOES = (PFNGLBLENDCOLORXOESPROC)load("glBlendColorxOES"); - glad_glClearAccumxOES = (PFNGLCLEARACCUMXOESPROC)load("glClearAccumxOES"); - glad_glColor3xOES = (PFNGLCOLOR3XOESPROC)load("glColor3xOES"); - glad_glColor3xvOES = (PFNGLCOLOR3XVOESPROC)load("glColor3xvOES"); - glad_glColor4xvOES = (PFNGLCOLOR4XVOESPROC)load("glColor4xvOES"); - glad_glConvolutionParameterxOES = (PFNGLCONVOLUTIONPARAMETERXOESPROC)load("glConvolutionParameterxOES"); - glad_glConvolutionParameterxvOES = (PFNGLCONVOLUTIONPARAMETERXVOESPROC)load("glConvolutionParameterxvOES"); - glad_glEvalCoord1xOES = (PFNGLEVALCOORD1XOESPROC)load("glEvalCoord1xOES"); - glad_glEvalCoord1xvOES = (PFNGLEVALCOORD1XVOESPROC)load("glEvalCoord1xvOES"); - glad_glEvalCoord2xOES = (PFNGLEVALCOORD2XOESPROC)load("glEvalCoord2xOES"); - glad_glEvalCoord2xvOES = (PFNGLEVALCOORD2XVOESPROC)load("glEvalCoord2xvOES"); - glad_glFeedbackBufferxOES = (PFNGLFEEDBACKBUFFERXOESPROC)load("glFeedbackBufferxOES"); - glad_glGetConvolutionParameterxvOES = (PFNGLGETCONVOLUTIONPARAMETERXVOESPROC)load("glGetConvolutionParameterxvOES"); - glad_glGetHistogramParameterxvOES = (PFNGLGETHISTOGRAMPARAMETERXVOESPROC)load("glGetHistogramParameterxvOES"); - glad_glGetLightxOES = (PFNGLGETLIGHTXOESPROC)load("glGetLightxOES"); - glad_glGetMapxvOES = (PFNGLGETMAPXVOESPROC)load("glGetMapxvOES"); - glad_glGetMaterialxOES = (PFNGLGETMATERIALXOESPROC)load("glGetMaterialxOES"); - glad_glGetPixelMapxv = (PFNGLGETPIXELMAPXVPROC)load("glGetPixelMapxv"); - glad_glGetTexGenxvOES = (PFNGLGETTEXGENXVOESPROC)load("glGetTexGenxvOES"); - glad_glGetTexLevelParameterxvOES = (PFNGLGETTEXLEVELPARAMETERXVOESPROC)load("glGetTexLevelParameterxvOES"); - glad_glIndexxOES = (PFNGLINDEXXOESPROC)load("glIndexxOES"); - glad_glIndexxvOES = (PFNGLINDEXXVOESPROC)load("glIndexxvOES"); - glad_glLoadTransposeMatrixxOES = (PFNGLLOADTRANSPOSEMATRIXXOESPROC)load("glLoadTransposeMatrixxOES"); - glad_glMap1xOES = (PFNGLMAP1XOESPROC)load("glMap1xOES"); - glad_glMap2xOES = (PFNGLMAP2XOESPROC)load("glMap2xOES"); - glad_glMapGrid1xOES = (PFNGLMAPGRID1XOESPROC)load("glMapGrid1xOES"); - glad_glMapGrid2xOES = (PFNGLMAPGRID2XOESPROC)load("glMapGrid2xOES"); - glad_glMultTransposeMatrixxOES = (PFNGLMULTTRANSPOSEMATRIXXOESPROC)load("glMultTransposeMatrixxOES"); - glad_glMultiTexCoord1xOES = (PFNGLMULTITEXCOORD1XOESPROC)load("glMultiTexCoord1xOES"); - glad_glMultiTexCoord1xvOES = (PFNGLMULTITEXCOORD1XVOESPROC)load("glMultiTexCoord1xvOES"); - glad_glMultiTexCoord2xOES = (PFNGLMULTITEXCOORD2XOESPROC)load("glMultiTexCoord2xOES"); - glad_glMultiTexCoord2xvOES = (PFNGLMULTITEXCOORD2XVOESPROC)load("glMultiTexCoord2xvOES"); - glad_glMultiTexCoord3xOES = (PFNGLMULTITEXCOORD3XOESPROC)load("glMultiTexCoord3xOES"); - glad_glMultiTexCoord3xvOES = (PFNGLMULTITEXCOORD3XVOESPROC)load("glMultiTexCoord3xvOES"); - glad_glMultiTexCoord4xvOES = (PFNGLMULTITEXCOORD4XVOESPROC)load("glMultiTexCoord4xvOES"); - glad_glNormal3xvOES = (PFNGLNORMAL3XVOESPROC)load("glNormal3xvOES"); - glad_glPassThroughxOES = (PFNGLPASSTHROUGHXOESPROC)load("glPassThroughxOES"); - glad_glPixelMapx = (PFNGLPIXELMAPXPROC)load("glPixelMapx"); - glad_glPixelStorex = (PFNGLPIXELSTOREXPROC)load("glPixelStorex"); - glad_glPixelTransferxOES = (PFNGLPIXELTRANSFERXOESPROC)load("glPixelTransferxOES"); - glad_glPixelZoomxOES = (PFNGLPIXELZOOMXOESPROC)load("glPixelZoomxOES"); - glad_glPrioritizeTexturesxOES = (PFNGLPRIORITIZETEXTURESXOESPROC)load("glPrioritizeTexturesxOES"); - glad_glRasterPos2xOES = (PFNGLRASTERPOS2XOESPROC)load("glRasterPos2xOES"); - glad_glRasterPos2xvOES = (PFNGLRASTERPOS2XVOESPROC)load("glRasterPos2xvOES"); - glad_glRasterPos3xOES = (PFNGLRASTERPOS3XOESPROC)load("glRasterPos3xOES"); - glad_glRasterPos3xvOES = (PFNGLRASTERPOS3XVOESPROC)load("glRasterPos3xvOES"); - glad_glRasterPos4xOES = (PFNGLRASTERPOS4XOESPROC)load("glRasterPos4xOES"); - glad_glRasterPos4xvOES = (PFNGLRASTERPOS4XVOESPROC)load("glRasterPos4xvOES"); - glad_glRectxOES = (PFNGLRECTXOESPROC)load("glRectxOES"); - glad_glRectxvOES = (PFNGLRECTXVOESPROC)load("glRectxvOES"); - glad_glTexCoord1xOES = (PFNGLTEXCOORD1XOESPROC)load("glTexCoord1xOES"); - glad_glTexCoord1xvOES = (PFNGLTEXCOORD1XVOESPROC)load("glTexCoord1xvOES"); - glad_glTexCoord2xOES = (PFNGLTEXCOORD2XOESPROC)load("glTexCoord2xOES"); - glad_glTexCoord2xvOES = (PFNGLTEXCOORD2XVOESPROC)load("glTexCoord2xvOES"); - glad_glTexCoord3xOES = (PFNGLTEXCOORD3XOESPROC)load("glTexCoord3xOES"); - glad_glTexCoord3xvOES = (PFNGLTEXCOORD3XVOESPROC)load("glTexCoord3xvOES"); - glad_glTexCoord4xOES = (PFNGLTEXCOORD4XOESPROC)load("glTexCoord4xOES"); - glad_glTexCoord4xvOES = (PFNGLTEXCOORD4XVOESPROC)load("glTexCoord4xvOES"); - glad_glTexGenxOES = (PFNGLTEXGENXOESPROC)load("glTexGenxOES"); - glad_glTexGenxvOES = (PFNGLTEXGENXVOESPROC)load("glTexGenxvOES"); - glad_glVertex2xOES = (PFNGLVERTEX2XOESPROC)load("glVertex2xOES"); - glad_glVertex2xvOES = (PFNGLVERTEX2XVOESPROC)load("glVertex2xvOES"); - glad_glVertex3xOES = (PFNGLVERTEX3XOESPROC)load("glVertex3xOES"); - glad_glVertex3xvOES = (PFNGLVERTEX3XVOESPROC)load("glVertex3xvOES"); - glad_glVertex4xOES = (PFNGLVERTEX4XOESPROC)load("glVertex4xOES"); - glad_glVertex4xvOES = (PFNGLVERTEX4XVOESPROC)load("glVertex4xvOES"); -} -static void load_GL_EXT_framebuffer_multisample(GLADloadproc load) { - if(!GLAD_GL_EXT_framebuffer_multisample) return; - glad_glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)load("glRenderbufferStorageMultisampleEXT"); -} -static void load_GL_SGIS_texture4D(GLADloadproc load) { - if(!GLAD_GL_SGIS_texture4D) return; - glad_glTexImage4DSGIS = (PFNGLTEXIMAGE4DSGISPROC)load("glTexImage4DSGIS"); - glad_glTexSubImage4DSGIS = (PFNGLTEXSUBIMAGE4DSGISPROC)load("glTexSubImage4DSGIS"); -} -static void load_GL_EXT_texture3D(GLADloadproc load) { - if(!GLAD_GL_EXT_texture3D) return; - glad_glTexImage3DEXT = (PFNGLTEXIMAGE3DEXTPROC)load("glTexImage3DEXT"); - glad_glTexSubImage3DEXT = (PFNGLTEXSUBIMAGE3DEXTPROC)load("glTexSubImage3DEXT"); -} -static void load_GL_EXT_multisample(GLADloadproc load) { - if(!GLAD_GL_EXT_multisample) return; - glad_glSampleMaskEXT = (PFNGLSAMPLEMASKEXTPROC)load("glSampleMaskEXT"); - glad_glSamplePatternEXT = (PFNGLSAMPLEPATTERNEXTPROC)load("glSamplePatternEXT"); -} -static void load_GL_EXT_secondary_color(GLADloadproc load) { - if(!GLAD_GL_EXT_secondary_color) return; - glad_glSecondaryColor3bEXT = (PFNGLSECONDARYCOLOR3BEXTPROC)load("glSecondaryColor3bEXT"); - glad_glSecondaryColor3bvEXT = (PFNGLSECONDARYCOLOR3BVEXTPROC)load("glSecondaryColor3bvEXT"); - glad_glSecondaryColor3dEXT = (PFNGLSECONDARYCOLOR3DEXTPROC)load("glSecondaryColor3dEXT"); - glad_glSecondaryColor3dvEXT = (PFNGLSECONDARYCOLOR3DVEXTPROC)load("glSecondaryColor3dvEXT"); - glad_glSecondaryColor3fEXT = (PFNGLSECONDARYCOLOR3FEXTPROC)load("glSecondaryColor3fEXT"); - glad_glSecondaryColor3fvEXT = (PFNGLSECONDARYCOLOR3FVEXTPROC)load("glSecondaryColor3fvEXT"); - glad_glSecondaryColor3iEXT = (PFNGLSECONDARYCOLOR3IEXTPROC)load("glSecondaryColor3iEXT"); - glad_glSecondaryColor3ivEXT = (PFNGLSECONDARYCOLOR3IVEXTPROC)load("glSecondaryColor3ivEXT"); - glad_glSecondaryColor3sEXT = (PFNGLSECONDARYCOLOR3SEXTPROC)load("glSecondaryColor3sEXT"); - glad_glSecondaryColor3svEXT = (PFNGLSECONDARYCOLOR3SVEXTPROC)load("glSecondaryColor3svEXT"); - glad_glSecondaryColor3ubEXT = (PFNGLSECONDARYCOLOR3UBEXTPROC)load("glSecondaryColor3ubEXT"); - glad_glSecondaryColor3ubvEXT = (PFNGLSECONDARYCOLOR3UBVEXTPROC)load("glSecondaryColor3ubvEXT"); - glad_glSecondaryColor3uiEXT = (PFNGLSECONDARYCOLOR3UIEXTPROC)load("glSecondaryColor3uiEXT"); - glad_glSecondaryColor3uivEXT = (PFNGLSECONDARYCOLOR3UIVEXTPROC)load("glSecondaryColor3uivEXT"); - glad_glSecondaryColor3usEXT = (PFNGLSECONDARYCOLOR3USEXTPROC)load("glSecondaryColor3usEXT"); - glad_glSecondaryColor3usvEXT = (PFNGLSECONDARYCOLOR3USVEXTPROC)load("glSecondaryColor3usvEXT"); - glad_glSecondaryColorPointerEXT = (PFNGLSECONDARYCOLORPOINTEREXTPROC)load("glSecondaryColorPointerEXT"); -} -static void load_GL_ATI_vertex_array_object(GLADloadproc load) { - if(!GLAD_GL_ATI_vertex_array_object) return; - glad_glNewObjectBufferATI = (PFNGLNEWOBJECTBUFFERATIPROC)load("glNewObjectBufferATI"); - glad_glIsObjectBufferATI = (PFNGLISOBJECTBUFFERATIPROC)load("glIsObjectBufferATI"); - glad_glUpdateObjectBufferATI = (PFNGLUPDATEOBJECTBUFFERATIPROC)load("glUpdateObjectBufferATI"); - glad_glGetObjectBufferfvATI = (PFNGLGETOBJECTBUFFERFVATIPROC)load("glGetObjectBufferfvATI"); - glad_glGetObjectBufferivATI = (PFNGLGETOBJECTBUFFERIVATIPROC)load("glGetObjectBufferivATI"); - glad_glFreeObjectBufferATI = (PFNGLFREEOBJECTBUFFERATIPROC)load("glFreeObjectBufferATI"); - glad_glArrayObjectATI = (PFNGLARRAYOBJECTATIPROC)load("glArrayObjectATI"); - glad_glGetArrayObjectfvATI = (PFNGLGETARRAYOBJECTFVATIPROC)load("glGetArrayObjectfvATI"); - glad_glGetArrayObjectivATI = (PFNGLGETARRAYOBJECTIVATIPROC)load("glGetArrayObjectivATI"); - glad_glVariantArrayObjectATI = (PFNGLVARIANTARRAYOBJECTATIPROC)load("glVariantArrayObjectATI"); - glad_glGetVariantArrayObjectfvATI = (PFNGLGETVARIANTARRAYOBJECTFVATIPROC)load("glGetVariantArrayObjectfvATI"); - glad_glGetVariantArrayObjectivATI = (PFNGLGETVARIANTARRAYOBJECTIVATIPROC)load("glGetVariantArrayObjectivATI"); -} -static void load_GL_ARB_parallel_shader_compile(GLADloadproc load) { - if(!GLAD_GL_ARB_parallel_shader_compile) return; - glad_glMaxShaderCompilerThreadsARB = (PFNGLMAXSHADERCOMPILERTHREADSARBPROC)load("glMaxShaderCompilerThreadsARB"); -} -static void load_GL_ARB_sparse_texture(GLADloadproc load) { - if(!GLAD_GL_ARB_sparse_texture) return; - glad_glTexPageCommitmentARB = (PFNGLTEXPAGECOMMITMENTARBPROC)load("glTexPageCommitmentARB"); -} -static void load_GL_ARB_sample_locations(GLADloadproc load) { - if(!GLAD_GL_ARB_sample_locations) return; - glad_glFramebufferSampleLocationsfvARB = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)load("glFramebufferSampleLocationsfvARB"); - glad_glNamedFramebufferSampleLocationsfvARB = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)load("glNamedFramebufferSampleLocationsfvARB"); - glad_glEvaluateDepthValuesARB = (PFNGLEVALUATEDEPTHVALUESARBPROC)load("glEvaluateDepthValuesARB"); -} -static void load_GL_ARB_sparse_buffer(GLADloadproc load) { - if(!GLAD_GL_ARB_sparse_buffer) return; - glad_glBufferPageCommitmentARB = (PFNGLBUFFERPAGECOMMITMENTARBPROC)load("glBufferPageCommitmentARB"); - glad_glNamedBufferPageCommitmentEXT = (PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC)load("glNamedBufferPageCommitmentEXT"); - glad_glNamedBufferPageCommitmentARB = (PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC)load("glNamedBufferPageCommitmentARB"); -} -static void load_GL_EXT_draw_range_elements(GLADloadproc load) { - if(!GLAD_GL_EXT_draw_range_elements) return; - glad_glDrawRangeElementsEXT = (PFNGLDRAWRANGEELEMENTSEXTPROC)load("glDrawRangeElementsEXT"); -} -static int find_extensionsGL(void) { - if (!get_exts()) return 0; - GLAD_GL_SGIX_pixel_tiles = has_ext("GL_SGIX_pixel_tiles"); - GLAD_GL_EXT_post_depth_coverage = has_ext("GL_EXT_post_depth_coverage"); - GLAD_GL_APPLE_element_array = has_ext("GL_APPLE_element_array"); - GLAD_GL_AMD_multi_draw_indirect = has_ext("GL_AMD_multi_draw_indirect"); - GLAD_GL_EXT_blend_subtract = has_ext("GL_EXT_blend_subtract"); - GLAD_GL_SGIX_tag_sample_buffer = has_ext("GL_SGIX_tag_sample_buffer"); - GLAD_GL_NV_point_sprite = has_ext("GL_NV_point_sprite"); - GLAD_GL_IBM_texture_mirrored_repeat = has_ext("GL_IBM_texture_mirrored_repeat"); - GLAD_GL_APPLE_transform_hint = has_ext("GL_APPLE_transform_hint"); - GLAD_GL_ATI_separate_stencil = has_ext("GL_ATI_separate_stencil"); - GLAD_GL_NV_shader_atomic_int64 = has_ext("GL_NV_shader_atomic_int64"); - GLAD_GL_NV_vertex_program2_option = has_ext("GL_NV_vertex_program2_option"); - GLAD_GL_EXT_texture_buffer_object = has_ext("GL_EXT_texture_buffer_object"); - GLAD_GL_ARB_vertex_blend = has_ext("GL_ARB_vertex_blend"); - GLAD_GL_OVR_multiview = has_ext("GL_OVR_multiview"); - GLAD_GL_NV_vertex_program2 = has_ext("GL_NV_vertex_program2"); - GLAD_GL_ARB_program_interface_query = has_ext("GL_ARB_program_interface_query"); - GLAD_GL_EXT_misc_attribute = has_ext("GL_EXT_misc_attribute"); - GLAD_GL_NV_multisample_coverage = has_ext("GL_NV_multisample_coverage"); - GLAD_GL_ARB_shading_language_packing = has_ext("GL_ARB_shading_language_packing"); - GLAD_GL_EXT_texture_cube_map = has_ext("GL_EXT_texture_cube_map"); - GLAD_GL_NV_viewport_array2 = has_ext("GL_NV_viewport_array2"); - GLAD_GL_ARB_texture_stencil8 = has_ext("GL_ARB_texture_stencil8"); - GLAD_GL_EXT_index_func = has_ext("GL_EXT_index_func"); - GLAD_GL_OES_compressed_paletted_texture = has_ext("GL_OES_compressed_paletted_texture"); - GLAD_GL_NV_depth_clamp = has_ext("GL_NV_depth_clamp"); - GLAD_GL_NV_shader_buffer_load = has_ext("GL_NV_shader_buffer_load"); - GLAD_GL_EXT_color_subtable = has_ext("GL_EXT_color_subtable"); - GLAD_GL_SUNX_constant_data = has_ext("GL_SUNX_constant_data"); - GLAD_GL_EXT_texture_compression_s3tc = has_ext("GL_EXT_texture_compression_s3tc"); - GLAD_GL_EXT_multi_draw_arrays = has_ext("GL_EXT_multi_draw_arrays"); - GLAD_GL_ARB_shader_atomic_counters = has_ext("GL_ARB_shader_atomic_counters"); - GLAD_GL_ARB_arrays_of_arrays = has_ext("GL_ARB_arrays_of_arrays"); - GLAD_GL_NV_conditional_render = has_ext("GL_NV_conditional_render"); - GLAD_GL_EXT_texture_env_combine = has_ext("GL_EXT_texture_env_combine"); - GLAD_GL_NV_fog_distance = has_ext("GL_NV_fog_distance"); - GLAD_GL_SGIX_async_histogram = has_ext("GL_SGIX_async_histogram"); - GLAD_GL_MESA_resize_buffers = has_ext("GL_MESA_resize_buffers"); - GLAD_GL_NV_light_max_exponent = has_ext("GL_NV_light_max_exponent"); - GLAD_GL_NV_texture_env_combine4 = has_ext("GL_NV_texture_env_combine4"); - GLAD_GL_ARB_texture_view = has_ext("GL_ARB_texture_view"); - GLAD_GL_ARB_texture_env_combine = has_ext("GL_ARB_texture_env_combine"); - GLAD_GL_ARB_map_buffer_range = has_ext("GL_ARB_map_buffer_range"); - GLAD_GL_EXT_convolution = has_ext("GL_EXT_convolution"); - GLAD_GL_NV_compute_program5 = has_ext("GL_NV_compute_program5"); - GLAD_GL_NV_vertex_attrib_integer_64bit = has_ext("GL_NV_vertex_attrib_integer_64bit"); - GLAD_GL_EXT_paletted_texture = has_ext("GL_EXT_paletted_texture"); - GLAD_GL_ARB_texture_buffer_object = has_ext("GL_ARB_texture_buffer_object"); - GLAD_GL_ATI_pn_triangles = has_ext("GL_ATI_pn_triangles"); - GLAD_GL_SGIX_resample = has_ext("GL_SGIX_resample"); - GLAD_GL_SGIX_flush_raster = has_ext("GL_SGIX_flush_raster"); - GLAD_GL_EXT_light_texture = has_ext("GL_EXT_light_texture"); - GLAD_GL_ARB_point_sprite = has_ext("GL_ARB_point_sprite"); - GLAD_GL_SUN_convolution_border_modes = has_ext("GL_SUN_convolution_border_modes"); - GLAD_GL_NV_parameter_buffer_object2 = has_ext("GL_NV_parameter_buffer_object2"); - GLAD_GL_ARB_half_float_pixel = has_ext("GL_ARB_half_float_pixel"); - GLAD_GL_NV_tessellation_program5 = has_ext("GL_NV_tessellation_program5"); - GLAD_GL_REND_screen_coordinates = has_ext("GL_REND_screen_coordinates"); - GLAD_GL_HP_image_transform = has_ext("GL_HP_image_transform"); - GLAD_GL_EXT_packed_float = has_ext("GL_EXT_packed_float"); - GLAD_GL_OML_subsample = has_ext("GL_OML_subsample"); - GLAD_GL_SGIX_vertex_preclip = has_ext("GL_SGIX_vertex_preclip"); - GLAD_GL_SGIX_texture_scale_bias = has_ext("GL_SGIX_texture_scale_bias"); - GLAD_GL_AMD_draw_buffers_blend = has_ext("GL_AMD_draw_buffers_blend"); - GLAD_GL_APPLE_texture_range = has_ext("GL_APPLE_texture_range"); - GLAD_GL_EXT_texture_array = has_ext("GL_EXT_texture_array"); - GLAD_GL_NV_texture_barrier = has_ext("GL_NV_texture_barrier"); - GLAD_GL_ARB_texture_query_levels = has_ext("GL_ARB_texture_query_levels"); - GLAD_GL_NV_texgen_emboss = has_ext("GL_NV_texgen_emboss"); - GLAD_GL_EXT_texture_swizzle = has_ext("GL_EXT_texture_swizzle"); - GLAD_GL_ARB_texture_rg = has_ext("GL_ARB_texture_rg"); - GLAD_GL_ARB_vertex_type_2_10_10_10_rev = has_ext("GL_ARB_vertex_type_2_10_10_10_rev"); - GLAD_GL_ARB_fragment_shader = has_ext("GL_ARB_fragment_shader"); - GLAD_GL_3DFX_tbuffer = has_ext("GL_3DFX_tbuffer"); - GLAD_GL_GREMEDY_frame_terminator = has_ext("GL_GREMEDY_frame_terminator"); - GLAD_GL_ARB_blend_func_extended = has_ext("GL_ARB_blend_func_extended"); - GLAD_GL_EXT_separate_shader_objects = has_ext("GL_EXT_separate_shader_objects"); - GLAD_GL_NV_texture_multisample = has_ext("GL_NV_texture_multisample"); - GLAD_GL_ARB_shader_objects = has_ext("GL_ARB_shader_objects"); - GLAD_GL_ARB_framebuffer_object = has_ext("GL_ARB_framebuffer_object"); - GLAD_GL_ATI_envmap_bumpmap = has_ext("GL_ATI_envmap_bumpmap"); - GLAD_GL_ARB_robust_buffer_access_behavior = has_ext("GL_ARB_robust_buffer_access_behavior"); - GLAD_GL_ARB_shader_stencil_export = has_ext("GL_ARB_shader_stencil_export"); - GLAD_GL_NV_texture_rectangle = has_ext("GL_NV_texture_rectangle"); - GLAD_GL_ARB_enhanced_layouts = has_ext("GL_ARB_enhanced_layouts"); - GLAD_GL_ARB_texture_rectangle = has_ext("GL_ARB_texture_rectangle"); - GLAD_GL_SGI_texture_color_table = has_ext("GL_SGI_texture_color_table"); - GLAD_GL_ATI_map_object_buffer = has_ext("GL_ATI_map_object_buffer"); - GLAD_GL_ARB_robustness = has_ext("GL_ARB_robustness"); - GLAD_GL_NV_pixel_data_range = has_ext("GL_NV_pixel_data_range"); - GLAD_GL_EXT_framebuffer_blit = has_ext("GL_EXT_framebuffer_blit"); - GLAD_GL_ARB_gpu_shader_fp64 = has_ext("GL_ARB_gpu_shader_fp64"); - GLAD_GL_NV_command_list = has_ext("GL_NV_command_list"); - GLAD_GL_SGIX_depth_texture = has_ext("GL_SGIX_depth_texture"); - GLAD_GL_EXT_vertex_weighting = has_ext("GL_EXT_vertex_weighting"); - GLAD_GL_GREMEDY_string_marker = has_ext("GL_GREMEDY_string_marker"); - GLAD_GL_ARB_texture_compression_bptc = has_ext("GL_ARB_texture_compression_bptc"); - GLAD_GL_EXT_subtexture = has_ext("GL_EXT_subtexture"); - GLAD_GL_EXT_pixel_transform_color_table = has_ext("GL_EXT_pixel_transform_color_table"); - GLAD_GL_EXT_texture_compression_rgtc = has_ext("GL_EXT_texture_compression_rgtc"); - GLAD_GL_ARB_shader_atomic_counter_ops = has_ext("GL_ARB_shader_atomic_counter_ops"); - GLAD_GL_SGIX_depth_pass_instrument = has_ext("GL_SGIX_depth_pass_instrument"); - GLAD_GL_EXT_gpu_program_parameters = has_ext("GL_EXT_gpu_program_parameters"); - GLAD_GL_NV_evaluators = has_ext("GL_NV_evaluators"); - GLAD_GL_SGIS_texture_filter4 = has_ext("GL_SGIS_texture_filter4"); - GLAD_GL_AMD_performance_monitor = has_ext("GL_AMD_performance_monitor"); - GLAD_GL_NV_geometry_shader4 = has_ext("GL_NV_geometry_shader4"); - GLAD_GL_EXT_stencil_clear_tag = has_ext("GL_EXT_stencil_clear_tag"); - GLAD_GL_NV_vertex_program1_1 = has_ext("GL_NV_vertex_program1_1"); - GLAD_GL_NV_present_video = has_ext("GL_NV_present_video"); - GLAD_GL_ARB_texture_compression_rgtc = has_ext("GL_ARB_texture_compression_rgtc"); - GLAD_GL_HP_convolution_border_modes = has_ext("GL_HP_convolution_border_modes"); - GLAD_GL_EXT_shader_integer_mix = has_ext("GL_EXT_shader_integer_mix"); - GLAD_GL_SGIX_framezoom = has_ext("GL_SGIX_framezoom"); - GLAD_GL_ARB_stencil_texturing = has_ext("GL_ARB_stencil_texturing"); - GLAD_GL_ARB_shader_clock = has_ext("GL_ARB_shader_clock"); - GLAD_GL_NV_shader_atomic_fp16_vector = has_ext("GL_NV_shader_atomic_fp16_vector"); - GLAD_GL_SGIX_fog_offset = has_ext("GL_SGIX_fog_offset"); - GLAD_GL_ARB_draw_elements_base_vertex = has_ext("GL_ARB_draw_elements_base_vertex"); - GLAD_GL_INGR_interlace_read = has_ext("GL_INGR_interlace_read"); - GLAD_GL_NV_transform_feedback = has_ext("GL_NV_transform_feedback"); - GLAD_GL_NV_fragment_program = has_ext("GL_NV_fragment_program"); - GLAD_GL_AMD_stencil_operation_extended = has_ext("GL_AMD_stencil_operation_extended"); - GLAD_GL_ARB_seamless_cubemap_per_texture = has_ext("GL_ARB_seamless_cubemap_per_texture"); - GLAD_GL_ARB_instanced_arrays = has_ext("GL_ARB_instanced_arrays"); - GLAD_GL_EXT_polygon_offset = has_ext("GL_EXT_polygon_offset"); - GLAD_GL_NV_vertex_array_range2 = has_ext("GL_NV_vertex_array_range2"); - GLAD_GL_KHR_robustness = has_ext("GL_KHR_robustness"); - GLAD_GL_AMD_sparse_texture = has_ext("GL_AMD_sparse_texture"); - GLAD_GL_ARB_clip_control = has_ext("GL_ARB_clip_control"); - GLAD_GL_NV_fragment_coverage_to_color = has_ext("GL_NV_fragment_coverage_to_color"); - GLAD_GL_NV_fence = has_ext("GL_NV_fence"); - GLAD_GL_ARB_texture_buffer_range = has_ext("GL_ARB_texture_buffer_range"); - GLAD_GL_SUN_mesh_array = has_ext("GL_SUN_mesh_array"); - GLAD_GL_ARB_vertex_attrib_binding = has_ext("GL_ARB_vertex_attrib_binding"); - GLAD_GL_ARB_framebuffer_no_attachments = has_ext("GL_ARB_framebuffer_no_attachments"); - GLAD_GL_ARB_cl_event = has_ext("GL_ARB_cl_event"); - GLAD_GL_ARB_derivative_control = has_ext("GL_ARB_derivative_control"); - GLAD_GL_NV_packed_depth_stencil = has_ext("GL_NV_packed_depth_stencil"); - GLAD_GL_OES_single_precision = has_ext("GL_OES_single_precision"); - GLAD_GL_NV_primitive_restart = has_ext("GL_NV_primitive_restart"); - GLAD_GL_SUN_global_alpha = has_ext("GL_SUN_global_alpha"); - GLAD_GL_ARB_fragment_shader_interlock = has_ext("GL_ARB_fragment_shader_interlock"); - GLAD_GL_EXT_texture_object = has_ext("GL_EXT_texture_object"); - GLAD_GL_AMD_name_gen_delete = has_ext("GL_AMD_name_gen_delete"); - GLAD_GL_NV_texture_compression_vtc = has_ext("GL_NV_texture_compression_vtc"); - GLAD_GL_NV_sample_mask_override_coverage = has_ext("GL_NV_sample_mask_override_coverage"); - GLAD_GL_NV_texture_shader3 = has_ext("GL_NV_texture_shader3"); - GLAD_GL_NV_texture_shader2 = has_ext("GL_NV_texture_shader2"); - GLAD_GL_EXT_texture = has_ext("GL_EXT_texture"); - GLAD_GL_ARB_buffer_storage = has_ext("GL_ARB_buffer_storage"); - GLAD_GL_AMD_shader_atomic_counter_ops = has_ext("GL_AMD_shader_atomic_counter_ops"); - GLAD_GL_APPLE_vertex_program_evaluators = has_ext("GL_APPLE_vertex_program_evaluators"); - GLAD_GL_ARB_multi_bind = has_ext("GL_ARB_multi_bind"); - GLAD_GL_ARB_explicit_uniform_location = has_ext("GL_ARB_explicit_uniform_location"); - GLAD_GL_ARB_depth_buffer_float = has_ext("GL_ARB_depth_buffer_float"); - GLAD_GL_NV_path_rendering_shared_edge = has_ext("GL_NV_path_rendering_shared_edge"); - GLAD_GL_SGIX_shadow_ambient = has_ext("GL_SGIX_shadow_ambient"); - GLAD_GL_ARB_texture_cube_map = has_ext("GL_ARB_texture_cube_map"); - GLAD_GL_AMD_vertex_shader_viewport_index = has_ext("GL_AMD_vertex_shader_viewport_index"); - GLAD_GL_SGIX_list_priority = has_ext("GL_SGIX_list_priority"); - GLAD_GL_NV_vertex_buffer_unified_memory = has_ext("GL_NV_vertex_buffer_unified_memory"); - GLAD_GL_NV_uniform_buffer_unified_memory = has_ext("GL_NV_uniform_buffer_unified_memory"); - GLAD_GL_EXT_texture_env_dot3 = has_ext("GL_EXT_texture_env_dot3"); - GLAD_GL_ATI_texture_env_combine3 = has_ext("GL_ATI_texture_env_combine3"); - GLAD_GL_ARB_map_buffer_alignment = has_ext("GL_ARB_map_buffer_alignment"); - GLAD_GL_NV_blend_equation_advanced = has_ext("GL_NV_blend_equation_advanced"); - GLAD_GL_SGIS_sharpen_texture = has_ext("GL_SGIS_sharpen_texture"); - GLAD_GL_KHR_robust_buffer_access_behavior = has_ext("GL_KHR_robust_buffer_access_behavior"); - GLAD_GL_ARB_pipeline_statistics_query = has_ext("GL_ARB_pipeline_statistics_query"); - GLAD_GL_ARB_vertex_program = has_ext("GL_ARB_vertex_program"); - GLAD_GL_ARB_texture_rgb10_a2ui = has_ext("GL_ARB_texture_rgb10_a2ui"); - GLAD_GL_OML_interlace = has_ext("GL_OML_interlace"); - GLAD_GL_ATI_pixel_format_float = has_ext("GL_ATI_pixel_format_float"); - GLAD_GL_NV_geometry_shader_passthrough = has_ext("GL_NV_geometry_shader_passthrough"); - GLAD_GL_ARB_vertex_buffer_object = has_ext("GL_ARB_vertex_buffer_object"); - GLAD_GL_EXT_shadow_funcs = has_ext("GL_EXT_shadow_funcs"); - GLAD_GL_ATI_text_fragment_shader = has_ext("GL_ATI_text_fragment_shader"); - GLAD_GL_NV_vertex_array_range = has_ext("GL_NV_vertex_array_range"); - GLAD_GL_SGIX_fragment_lighting = has_ext("GL_SGIX_fragment_lighting"); - GLAD_GL_NV_texture_expand_normal = has_ext("GL_NV_texture_expand_normal"); - GLAD_GL_NV_framebuffer_multisample_coverage = has_ext("GL_NV_framebuffer_multisample_coverage"); - GLAD_GL_EXT_timer_query = has_ext("GL_EXT_timer_query"); - GLAD_GL_EXT_vertex_array_bgra = has_ext("GL_EXT_vertex_array_bgra"); - GLAD_GL_NV_bindless_texture = has_ext("GL_NV_bindless_texture"); - GLAD_GL_KHR_debug = has_ext("GL_KHR_debug"); - GLAD_GL_SGIS_texture_border_clamp = has_ext("GL_SGIS_texture_border_clamp"); - GLAD_GL_ATI_vertex_attrib_array_object = has_ext("GL_ATI_vertex_attrib_array_object"); - GLAD_GL_SGIX_clipmap = has_ext("GL_SGIX_clipmap"); - GLAD_GL_EXT_geometry_shader4 = has_ext("GL_EXT_geometry_shader4"); - GLAD_GL_ARB_shader_texture_image_samples = has_ext("GL_ARB_shader_texture_image_samples"); - GLAD_GL_MESA_ycbcr_texture = has_ext("GL_MESA_ycbcr_texture"); - GLAD_GL_MESAX_texture_stack = has_ext("GL_MESAX_texture_stack"); - GLAD_GL_AMD_seamless_cubemap_per_texture = has_ext("GL_AMD_seamless_cubemap_per_texture"); - GLAD_GL_EXT_bindable_uniform = has_ext("GL_EXT_bindable_uniform"); - GLAD_GL_KHR_texture_compression_astc_hdr = has_ext("GL_KHR_texture_compression_astc_hdr"); - GLAD_GL_ARB_shader_ballot = has_ext("GL_ARB_shader_ballot"); - GLAD_GL_KHR_blend_equation_advanced = has_ext("GL_KHR_blend_equation_advanced"); - GLAD_GL_ARB_fragment_program_shadow = has_ext("GL_ARB_fragment_program_shadow"); - GLAD_GL_ATI_element_array = has_ext("GL_ATI_element_array"); - GLAD_GL_AMD_texture_texture4 = has_ext("GL_AMD_texture_texture4"); - GLAD_GL_SGIX_reference_plane = has_ext("GL_SGIX_reference_plane"); - GLAD_GL_EXT_stencil_two_side = has_ext("GL_EXT_stencil_two_side"); - GLAD_GL_ARB_transform_feedback_overflow_query = has_ext("GL_ARB_transform_feedback_overflow_query"); - GLAD_GL_SGIX_texture_lod_bias = has_ext("GL_SGIX_texture_lod_bias"); - GLAD_GL_KHR_no_error = has_ext("GL_KHR_no_error"); - GLAD_GL_NV_explicit_multisample = has_ext("GL_NV_explicit_multisample"); - GLAD_GL_IBM_static_data = has_ext("GL_IBM_static_data"); - GLAD_GL_EXT_clip_volume_hint = has_ext("GL_EXT_clip_volume_hint"); - GLAD_GL_EXT_texture_perturb_normal = has_ext("GL_EXT_texture_perturb_normal"); - GLAD_GL_NV_fragment_program2 = has_ext("GL_NV_fragment_program2"); - GLAD_GL_NV_fragment_program4 = has_ext("GL_NV_fragment_program4"); - GLAD_GL_EXT_point_parameters = has_ext("GL_EXT_point_parameters"); - GLAD_GL_PGI_misc_hints = has_ext("GL_PGI_misc_hints"); - GLAD_GL_SGIX_subsample = has_ext("GL_SGIX_subsample"); - GLAD_GL_AMD_shader_stencil_export = has_ext("GL_AMD_shader_stencil_export"); - GLAD_GL_ARB_shader_texture_lod = has_ext("GL_ARB_shader_texture_lod"); - GLAD_GL_ARB_vertex_shader = has_ext("GL_ARB_vertex_shader"); - GLAD_GL_ARB_depth_clamp = has_ext("GL_ARB_depth_clamp"); - GLAD_GL_SGIS_texture_select = has_ext("GL_SGIS_texture_select"); - GLAD_GL_NV_texture_shader = has_ext("GL_NV_texture_shader"); - GLAD_GL_ARB_tessellation_shader = has_ext("GL_ARB_tessellation_shader"); - GLAD_GL_EXT_draw_buffers2 = has_ext("GL_EXT_draw_buffers2"); - GLAD_GL_ARB_vertex_attrib_64bit = has_ext("GL_ARB_vertex_attrib_64bit"); - GLAD_GL_EXT_texture_filter_minmax = has_ext("GL_EXT_texture_filter_minmax"); - GLAD_GL_WIN_specular_fog = has_ext("GL_WIN_specular_fog"); - GLAD_GL_AMD_interleaved_elements = has_ext("GL_AMD_interleaved_elements"); - GLAD_GL_ARB_fragment_program = has_ext("GL_ARB_fragment_program"); - GLAD_GL_OML_resample = has_ext("GL_OML_resample"); - GLAD_GL_APPLE_ycbcr_422 = has_ext("GL_APPLE_ycbcr_422"); - GLAD_GL_SGIX_texture_add_env = has_ext("GL_SGIX_texture_add_env"); - GLAD_GL_ARB_shadow_ambient = has_ext("GL_ARB_shadow_ambient"); - GLAD_GL_ARB_texture_storage = has_ext("GL_ARB_texture_storage"); - GLAD_GL_EXT_pixel_buffer_object = has_ext("GL_EXT_pixel_buffer_object"); - GLAD_GL_ARB_copy_image = has_ext("GL_ARB_copy_image"); - GLAD_GL_SGIS_pixel_texture = has_ext("GL_SGIS_pixel_texture"); - GLAD_GL_SGIS_generate_mipmap = has_ext("GL_SGIS_generate_mipmap"); - GLAD_GL_SGIX_instruments = has_ext("GL_SGIX_instruments"); - GLAD_GL_HP_texture_lighting = has_ext("GL_HP_texture_lighting"); - GLAD_GL_ARB_shader_storage_buffer_object = has_ext("GL_ARB_shader_storage_buffer_object"); - GLAD_GL_EXT_sparse_texture2 = has_ext("GL_EXT_sparse_texture2"); - GLAD_GL_EXT_blend_minmax = has_ext("GL_EXT_blend_minmax"); - GLAD_GL_MESA_pack_invert = has_ext("GL_MESA_pack_invert"); - GLAD_GL_ARB_base_instance = has_ext("GL_ARB_base_instance"); - GLAD_GL_SGIX_convolution_accuracy = has_ext("GL_SGIX_convolution_accuracy"); - GLAD_GL_PGI_vertex_hints = has_ext("GL_PGI_vertex_hints"); - GLAD_GL_AMD_transform_feedback4 = has_ext("GL_AMD_transform_feedback4"); - GLAD_GL_ARB_ES3_1_compatibility = has_ext("GL_ARB_ES3_1_compatibility"); - GLAD_GL_EXT_texture_integer = has_ext("GL_EXT_texture_integer"); - GLAD_GL_ARB_texture_multisample = has_ext("GL_ARB_texture_multisample"); - GLAD_GL_AMD_gpu_shader_int64 = has_ext("GL_AMD_gpu_shader_int64"); - GLAD_GL_S3_s3tc = has_ext("GL_S3_s3tc"); - GLAD_GL_ARB_query_buffer_object = has_ext("GL_ARB_query_buffer_object"); - GLAD_GL_AMD_vertex_shader_tessellator = has_ext("GL_AMD_vertex_shader_tessellator"); - GLAD_GL_ARB_invalidate_subdata = has_ext("GL_ARB_invalidate_subdata"); - GLAD_GL_EXT_index_material = has_ext("GL_EXT_index_material"); - GLAD_GL_NV_blend_equation_advanced_coherent = has_ext("GL_NV_blend_equation_advanced_coherent"); - GLAD_GL_KHR_texture_compression_astc_sliced_3d = has_ext("GL_KHR_texture_compression_astc_sliced_3d"); - GLAD_GL_INTEL_parallel_arrays = has_ext("GL_INTEL_parallel_arrays"); - GLAD_GL_ATI_draw_buffers = has_ext("GL_ATI_draw_buffers"); - GLAD_GL_EXT_cmyka = has_ext("GL_EXT_cmyka"); - GLAD_GL_SGIX_pixel_texture = has_ext("GL_SGIX_pixel_texture"); - GLAD_GL_APPLE_specular_vector = has_ext("GL_APPLE_specular_vector"); - GLAD_GL_ARB_compatibility = has_ext("GL_ARB_compatibility"); - GLAD_GL_ARB_timer_query = has_ext("GL_ARB_timer_query"); - GLAD_GL_SGIX_interlace = has_ext("GL_SGIX_interlace"); - GLAD_GL_NV_parameter_buffer_object = has_ext("GL_NV_parameter_buffer_object"); - GLAD_GL_AMD_shader_trinary_minmax = has_ext("GL_AMD_shader_trinary_minmax"); - GLAD_GL_ARB_direct_state_access = has_ext("GL_ARB_direct_state_access"); - GLAD_GL_EXT_rescale_normal = has_ext("GL_EXT_rescale_normal"); - GLAD_GL_ARB_pixel_buffer_object = has_ext("GL_ARB_pixel_buffer_object"); - GLAD_GL_ARB_uniform_buffer_object = has_ext("GL_ARB_uniform_buffer_object"); - GLAD_GL_ARB_vertex_type_10f_11f_11f_rev = has_ext("GL_ARB_vertex_type_10f_11f_11f_rev"); - GLAD_GL_ARB_texture_swizzle = has_ext("GL_ARB_texture_swizzle"); - GLAD_GL_NV_transform_feedback2 = has_ext("GL_NV_transform_feedback2"); - GLAD_GL_SGIX_async_pixel = has_ext("GL_SGIX_async_pixel"); - GLAD_GL_NV_fragment_program_option = has_ext("GL_NV_fragment_program_option"); - GLAD_GL_ARB_explicit_attrib_location = has_ext("GL_ARB_explicit_attrib_location"); - GLAD_GL_EXT_blend_color = has_ext("GL_EXT_blend_color"); - GLAD_GL_NV_shader_thread_group = has_ext("GL_NV_shader_thread_group"); - GLAD_GL_EXT_stencil_wrap = has_ext("GL_EXT_stencil_wrap"); - GLAD_GL_EXT_index_array_formats = has_ext("GL_EXT_index_array_formats"); - GLAD_GL_OVR_multiview2 = has_ext("GL_OVR_multiview2"); - GLAD_GL_EXT_histogram = has_ext("GL_EXT_histogram"); - GLAD_GL_ARB_get_texture_sub_image = has_ext("GL_ARB_get_texture_sub_image"); - GLAD_GL_SGIS_point_parameters = has_ext("GL_SGIS_point_parameters"); - GLAD_GL_SGIX_ycrcb = has_ext("GL_SGIX_ycrcb"); - GLAD_GL_EXT_direct_state_access = has_ext("GL_EXT_direct_state_access"); - GLAD_GL_ARB_cull_distance = has_ext("GL_ARB_cull_distance"); - GLAD_GL_AMD_sample_positions = has_ext("GL_AMD_sample_positions"); - GLAD_GL_NV_vertex_program = has_ext("GL_NV_vertex_program"); - GLAD_GL_NV_shader_thread_shuffle = has_ext("GL_NV_shader_thread_shuffle"); - GLAD_GL_ARB_shader_precision = has_ext("GL_ARB_shader_precision"); - GLAD_GL_EXT_vertex_shader = has_ext("GL_EXT_vertex_shader"); - GLAD_GL_EXT_blend_func_separate = has_ext("GL_EXT_blend_func_separate"); - GLAD_GL_APPLE_fence = has_ext("GL_APPLE_fence"); - GLAD_GL_OES_byte_coordinates = has_ext("GL_OES_byte_coordinates"); - GLAD_GL_ARB_transpose_matrix = has_ext("GL_ARB_transpose_matrix"); - GLAD_GL_ARB_provoking_vertex = has_ext("GL_ARB_provoking_vertex"); - GLAD_GL_EXT_fog_coord = has_ext("GL_EXT_fog_coord"); - GLAD_GL_EXT_vertex_array = has_ext("GL_EXT_vertex_array"); - GLAD_GL_ARB_half_float_vertex = has_ext("GL_ARB_half_float_vertex"); - GLAD_GL_EXT_blend_equation_separate = has_ext("GL_EXT_blend_equation_separate"); - GLAD_GL_NV_framebuffer_mixed_samples = has_ext("GL_NV_framebuffer_mixed_samples"); - GLAD_GL_NVX_conditional_render = has_ext("GL_NVX_conditional_render"); - GLAD_GL_ARB_multi_draw_indirect = has_ext("GL_ARB_multi_draw_indirect"); - GLAD_GL_EXT_raster_multisample = has_ext("GL_EXT_raster_multisample"); - GLAD_GL_NV_copy_image = has_ext("GL_NV_copy_image"); - GLAD_GL_ARB_fragment_layer_viewport = has_ext("GL_ARB_fragment_layer_viewport"); - GLAD_GL_INTEL_framebuffer_CMAA = has_ext("GL_INTEL_framebuffer_CMAA"); - GLAD_GL_ARB_transform_feedback2 = has_ext("GL_ARB_transform_feedback2"); - GLAD_GL_ARB_transform_feedback3 = has_ext("GL_ARB_transform_feedback3"); - GLAD_GL_SGIX_ycrcba = has_ext("GL_SGIX_ycrcba"); - GLAD_GL_EXT_debug_marker = has_ext("GL_EXT_debug_marker"); - GLAD_GL_EXT_bgra = has_ext("GL_EXT_bgra"); - GLAD_GL_ARB_sparse_texture_clamp = has_ext("GL_ARB_sparse_texture_clamp"); - GLAD_GL_EXT_pixel_transform = has_ext("GL_EXT_pixel_transform"); - GLAD_GL_ARB_conservative_depth = has_ext("GL_ARB_conservative_depth"); - GLAD_GL_ATI_fragment_shader = has_ext("GL_ATI_fragment_shader"); - GLAD_GL_ARB_vertex_array_object = has_ext("GL_ARB_vertex_array_object"); - GLAD_GL_SUN_triangle_list = has_ext("GL_SUN_triangle_list"); - GLAD_GL_EXT_texture_env_add = has_ext("GL_EXT_texture_env_add"); - GLAD_GL_EXT_packed_depth_stencil = has_ext("GL_EXT_packed_depth_stencil"); - GLAD_GL_EXT_texture_mirror_clamp = has_ext("GL_EXT_texture_mirror_clamp"); - GLAD_GL_NV_multisample_filter_hint = has_ext("GL_NV_multisample_filter_hint"); - GLAD_GL_APPLE_float_pixels = has_ext("GL_APPLE_float_pixels"); - GLAD_GL_ARB_transform_feedback_instanced = has_ext("GL_ARB_transform_feedback_instanced"); - GLAD_GL_SGIX_async = has_ext("GL_SGIX_async"); - GLAD_GL_EXT_texture_compression_latc = has_ext("GL_EXT_texture_compression_latc"); - GLAD_GL_NV_shader_atomic_float = has_ext("GL_NV_shader_atomic_float"); - GLAD_GL_ARB_shading_language_100 = has_ext("GL_ARB_shading_language_100"); - GLAD_GL_INTEL_performance_query = has_ext("GL_INTEL_performance_query"); - GLAD_GL_ARB_texture_mirror_clamp_to_edge = has_ext("GL_ARB_texture_mirror_clamp_to_edge"); - GLAD_GL_NV_gpu_shader5 = has_ext("GL_NV_gpu_shader5"); - GLAD_GL_NV_bindless_multi_draw_indirect_count = has_ext("GL_NV_bindless_multi_draw_indirect_count"); - GLAD_GL_ARB_ES2_compatibility = has_ext("GL_ARB_ES2_compatibility"); - GLAD_GL_ARB_indirect_parameters = has_ext("GL_ARB_indirect_parameters"); - GLAD_GL_NV_half_float = has_ext("GL_NV_half_float"); - GLAD_GL_ARB_ES3_2_compatibility = has_ext("GL_ARB_ES3_2_compatibility"); - GLAD_GL_ATI_texture_mirror_once = has_ext("GL_ATI_texture_mirror_once"); - GLAD_GL_IBM_rasterpos_clip = has_ext("GL_IBM_rasterpos_clip"); - GLAD_GL_SGIX_shadow = has_ext("GL_SGIX_shadow"); - GLAD_GL_EXT_polygon_offset_clamp = has_ext("GL_EXT_polygon_offset_clamp"); - GLAD_GL_NV_deep_texture3D = has_ext("GL_NV_deep_texture3D"); - GLAD_GL_ARB_shader_draw_parameters = has_ext("GL_ARB_shader_draw_parameters"); - GLAD_GL_SGIX_calligraphic_fragment = has_ext("GL_SGIX_calligraphic_fragment"); - GLAD_GL_ARB_shader_bit_encoding = has_ext("GL_ARB_shader_bit_encoding"); - GLAD_GL_EXT_compiled_vertex_array = has_ext("GL_EXT_compiled_vertex_array"); - GLAD_GL_NV_depth_buffer_float = has_ext("GL_NV_depth_buffer_float"); - GLAD_GL_NV_occlusion_query = has_ext("GL_NV_occlusion_query"); - GLAD_GL_APPLE_flush_buffer_range = has_ext("GL_APPLE_flush_buffer_range"); - GLAD_GL_ARB_imaging = has_ext("GL_ARB_imaging"); - GLAD_GL_ARB_draw_buffers_blend = has_ext("GL_ARB_draw_buffers_blend"); - GLAD_GL_AMD_gcn_shader = has_ext("GL_AMD_gcn_shader"); - GLAD_GL_AMD_blend_minmax_factor = has_ext("GL_AMD_blend_minmax_factor"); - GLAD_GL_EXT_texture_sRGB_decode = has_ext("GL_EXT_texture_sRGB_decode"); - GLAD_GL_ARB_shading_language_420pack = has_ext("GL_ARB_shading_language_420pack"); - GLAD_GL_ARB_shader_viewport_layer_array = has_ext("GL_ARB_shader_viewport_layer_array"); - GLAD_GL_ATI_meminfo = has_ext("GL_ATI_meminfo"); - GLAD_GL_EXT_abgr = has_ext("GL_EXT_abgr"); - GLAD_GL_AMD_pinned_memory = has_ext("GL_AMD_pinned_memory"); - GLAD_GL_EXT_texture_snorm = has_ext("GL_EXT_texture_snorm"); - GLAD_GL_SGIX_texture_coordinate_clamp = has_ext("GL_SGIX_texture_coordinate_clamp"); - GLAD_GL_ARB_clear_buffer_object = has_ext("GL_ARB_clear_buffer_object"); - GLAD_GL_ARB_multisample = has_ext("GL_ARB_multisample"); - GLAD_GL_EXT_debug_label = has_ext("GL_EXT_debug_label"); - GLAD_GL_ARB_sample_shading = has_ext("GL_ARB_sample_shading"); - GLAD_GL_NV_internalformat_sample_query = has_ext("GL_NV_internalformat_sample_query"); - GLAD_GL_INTEL_map_texture = has_ext("GL_INTEL_map_texture"); - GLAD_GL_ARB_texture_env_crossbar = has_ext("GL_ARB_texture_env_crossbar"); - GLAD_GL_EXT_422_pixels = has_ext("GL_EXT_422_pixels"); - GLAD_GL_ARB_compute_shader = has_ext("GL_ARB_compute_shader"); - GLAD_GL_EXT_blend_logic_op = has_ext("GL_EXT_blend_logic_op"); - GLAD_GL_IBM_cull_vertex = has_ext("GL_IBM_cull_vertex"); - GLAD_GL_IBM_vertex_array_lists = has_ext("GL_IBM_vertex_array_lists"); - GLAD_GL_ARB_color_buffer_float = has_ext("GL_ARB_color_buffer_float"); - GLAD_GL_ARB_bindless_texture = has_ext("GL_ARB_bindless_texture"); - GLAD_GL_ARB_window_pos = has_ext("GL_ARB_window_pos"); - GLAD_GL_ARB_internalformat_query = has_ext("GL_ARB_internalformat_query"); - GLAD_GL_ARB_shadow = has_ext("GL_ARB_shadow"); - GLAD_GL_ARB_texture_mirrored_repeat = has_ext("GL_ARB_texture_mirrored_repeat"); - GLAD_GL_EXT_shader_image_load_store = has_ext("GL_EXT_shader_image_load_store"); - GLAD_GL_EXT_copy_texture = has_ext("GL_EXT_copy_texture"); - GLAD_GL_NV_register_combiners2 = has_ext("GL_NV_register_combiners2"); - GLAD_GL_SGIX_ycrcb_subsample = has_ext("GL_SGIX_ycrcb_subsample"); - GLAD_GL_SGIX_ir_instrument1 = has_ext("GL_SGIX_ir_instrument1"); - GLAD_GL_NV_draw_texture = has_ext("GL_NV_draw_texture"); - GLAD_GL_EXT_texture_shared_exponent = has_ext("GL_EXT_texture_shared_exponent"); - GLAD_GL_EXT_draw_instanced = has_ext("GL_EXT_draw_instanced"); - GLAD_GL_NV_copy_depth_to_color = has_ext("GL_NV_copy_depth_to_color"); - GLAD_GL_ARB_viewport_array = has_ext("GL_ARB_viewport_array"); - GLAD_GL_ARB_separate_shader_objects = has_ext("GL_ARB_separate_shader_objects"); - GLAD_GL_EXT_depth_bounds_test = has_ext("GL_EXT_depth_bounds_test"); - GLAD_GL_EXT_shared_texture_palette = has_ext("GL_EXT_shared_texture_palette"); - GLAD_GL_ARB_texture_env_add = has_ext("GL_ARB_texture_env_add"); - GLAD_GL_NV_video_capture = has_ext("GL_NV_video_capture"); - GLAD_GL_ARB_sampler_objects = has_ext("GL_ARB_sampler_objects"); - GLAD_GL_ARB_matrix_palette = has_ext("GL_ARB_matrix_palette"); - GLAD_GL_SGIS_texture_color_mask = has_ext("GL_SGIS_texture_color_mask"); - GLAD_GL_EXT_packed_pixels = has_ext("GL_EXT_packed_pixels"); - GLAD_GL_EXT_coordinate_frame = has_ext("GL_EXT_coordinate_frame"); - GLAD_GL_ARB_texture_compression = has_ext("GL_ARB_texture_compression"); - GLAD_GL_APPLE_aux_depth_stencil = has_ext("GL_APPLE_aux_depth_stencil"); - GLAD_GL_ARB_shader_subroutine = has_ext("GL_ARB_shader_subroutine"); - GLAD_GL_EXT_framebuffer_sRGB = has_ext("GL_EXT_framebuffer_sRGB"); - GLAD_GL_ARB_texture_storage_multisample = has_ext("GL_ARB_texture_storage_multisample"); - GLAD_GL_KHR_blend_equation_advanced_coherent = has_ext("GL_KHR_blend_equation_advanced_coherent"); - GLAD_GL_EXT_vertex_attrib_64bit = has_ext("GL_EXT_vertex_attrib_64bit"); - GLAD_GL_ARB_depth_texture = has_ext("GL_ARB_depth_texture"); - GLAD_GL_NV_shader_buffer_store = has_ext("GL_NV_shader_buffer_store"); - GLAD_GL_OES_query_matrix = has_ext("GL_OES_query_matrix"); - GLAD_GL_MESA_window_pos = has_ext("GL_MESA_window_pos"); - GLAD_GL_NV_fill_rectangle = has_ext("GL_NV_fill_rectangle"); - GLAD_GL_NV_shader_storage_buffer_object = has_ext("GL_NV_shader_storage_buffer_object"); - GLAD_GL_ARB_texture_query_lod = has_ext("GL_ARB_texture_query_lod"); - GLAD_GL_ARB_copy_buffer = has_ext("GL_ARB_copy_buffer"); - GLAD_GL_ARB_shader_image_size = has_ext("GL_ARB_shader_image_size"); - GLAD_GL_NV_shader_atomic_counters = has_ext("GL_NV_shader_atomic_counters"); - GLAD_GL_APPLE_object_purgeable = has_ext("GL_APPLE_object_purgeable"); - GLAD_GL_ARB_occlusion_query = has_ext("GL_ARB_occlusion_query"); - GLAD_GL_INGR_color_clamp = has_ext("GL_INGR_color_clamp"); - GLAD_GL_SGI_color_table = has_ext("GL_SGI_color_table"); - GLAD_GL_NV_gpu_program5_mem_extended = has_ext("GL_NV_gpu_program5_mem_extended"); - GLAD_GL_ARB_texture_cube_map_array = has_ext("GL_ARB_texture_cube_map_array"); - GLAD_GL_SGIX_scalebias_hint = has_ext("GL_SGIX_scalebias_hint"); - GLAD_GL_EXT_gpu_shader4 = has_ext("GL_EXT_gpu_shader4"); - GLAD_GL_NV_geometry_program4 = has_ext("GL_NV_geometry_program4"); - GLAD_GL_EXT_framebuffer_multisample_blit_scaled = has_ext("GL_EXT_framebuffer_multisample_blit_scaled"); - GLAD_GL_AMD_debug_output = has_ext("GL_AMD_debug_output"); - GLAD_GL_ARB_texture_border_clamp = has_ext("GL_ARB_texture_border_clamp"); - GLAD_GL_ARB_fragment_coord_conventions = has_ext("GL_ARB_fragment_coord_conventions"); - GLAD_GL_ARB_multitexture = has_ext("GL_ARB_multitexture"); - GLAD_GL_SGIX_polynomial_ffd = has_ext("GL_SGIX_polynomial_ffd"); - GLAD_GL_EXT_provoking_vertex = has_ext("GL_EXT_provoking_vertex"); - GLAD_GL_ARB_point_parameters = has_ext("GL_ARB_point_parameters"); - GLAD_GL_ARB_shader_image_load_store = has_ext("GL_ARB_shader_image_load_store"); - GLAD_GL_ARB_conditional_render_inverted = has_ext("GL_ARB_conditional_render_inverted"); - GLAD_GL_HP_occlusion_test = has_ext("GL_HP_occlusion_test"); - GLAD_GL_ARB_ES3_compatibility = has_ext("GL_ARB_ES3_compatibility"); - GLAD_GL_ARB_texture_barrier = has_ext("GL_ARB_texture_barrier"); - GLAD_GL_ARB_texture_buffer_object_rgb32 = has_ext("GL_ARB_texture_buffer_object_rgb32"); - GLAD_GL_NV_bindless_multi_draw_indirect = has_ext("GL_NV_bindless_multi_draw_indirect"); - GLAD_GL_SGIX_texture_multi_buffer = has_ext("GL_SGIX_texture_multi_buffer"); - GLAD_GL_EXT_transform_feedback = has_ext("GL_EXT_transform_feedback"); - GLAD_GL_KHR_texture_compression_astc_ldr = has_ext("GL_KHR_texture_compression_astc_ldr"); - GLAD_GL_3DFX_multisample = has_ext("GL_3DFX_multisample"); - GLAD_GL_INTEL_fragment_shader_ordering = has_ext("GL_INTEL_fragment_shader_ordering"); - GLAD_GL_ARB_texture_env_dot3 = has_ext("GL_ARB_texture_env_dot3"); - GLAD_GL_NV_gpu_program4 = has_ext("GL_NV_gpu_program4"); - GLAD_GL_NV_gpu_program5 = has_ext("GL_NV_gpu_program5"); - GLAD_GL_NV_float_buffer = has_ext("GL_NV_float_buffer"); - GLAD_GL_SGIS_texture_edge_clamp = has_ext("GL_SGIS_texture_edge_clamp"); - GLAD_GL_ARB_framebuffer_sRGB = has_ext("GL_ARB_framebuffer_sRGB"); - GLAD_GL_SUN_slice_accum = has_ext("GL_SUN_slice_accum"); - GLAD_GL_EXT_index_texture = has_ext("GL_EXT_index_texture"); - GLAD_GL_EXT_shader_image_load_formatted = has_ext("GL_EXT_shader_image_load_formatted"); - GLAD_GL_ARB_geometry_shader4 = has_ext("GL_ARB_geometry_shader4"); - GLAD_GL_EXT_separate_specular_color = has_ext("GL_EXT_separate_specular_color"); - GLAD_GL_AMD_depth_clamp_separate = has_ext("GL_AMD_depth_clamp_separate"); - GLAD_GL_NV_conservative_raster = has_ext("GL_NV_conservative_raster"); - GLAD_GL_ARB_sparse_texture2 = has_ext("GL_ARB_sparse_texture2"); - GLAD_GL_SGIX_sprite = has_ext("GL_SGIX_sprite"); - GLAD_GL_ARB_get_program_binary = has_ext("GL_ARB_get_program_binary"); - GLAD_GL_AMD_occlusion_query_event = has_ext("GL_AMD_occlusion_query_event"); - GLAD_GL_SGIS_multisample = has_ext("GL_SGIS_multisample"); - GLAD_GL_EXT_framebuffer_object = has_ext("GL_EXT_framebuffer_object"); - GLAD_GL_ARB_robustness_isolation = has_ext("GL_ARB_robustness_isolation"); - GLAD_GL_ARB_vertex_array_bgra = has_ext("GL_ARB_vertex_array_bgra"); - GLAD_GL_APPLE_vertex_array_range = has_ext("GL_APPLE_vertex_array_range"); - GLAD_GL_AMD_query_buffer_object = has_ext("GL_AMD_query_buffer_object"); - GLAD_GL_NV_register_combiners = has_ext("GL_NV_register_combiners"); - GLAD_GL_ARB_draw_buffers = has_ext("GL_ARB_draw_buffers"); - GLAD_GL_ARB_clear_texture = has_ext("GL_ARB_clear_texture"); - GLAD_GL_ARB_debug_output = has_ext("GL_ARB_debug_output"); - GLAD_GL_SGI_color_matrix = has_ext("GL_SGI_color_matrix"); - GLAD_GL_EXT_cull_vertex = has_ext("GL_EXT_cull_vertex"); - GLAD_GL_EXT_texture_sRGB = has_ext("GL_EXT_texture_sRGB"); - GLAD_GL_APPLE_row_bytes = has_ext("GL_APPLE_row_bytes"); - GLAD_GL_NV_texgen_reflection = has_ext("GL_NV_texgen_reflection"); - GLAD_GL_IBM_multimode_draw_arrays = has_ext("GL_IBM_multimode_draw_arrays"); - GLAD_GL_APPLE_vertex_array_object = has_ext("GL_APPLE_vertex_array_object"); - GLAD_GL_3DFX_texture_compression_FXT1 = has_ext("GL_3DFX_texture_compression_FXT1"); - GLAD_GL_NV_fragment_shader_interlock = has_ext("GL_NV_fragment_shader_interlock"); - GLAD_GL_AMD_conservative_depth = has_ext("GL_AMD_conservative_depth"); - GLAD_GL_ARB_texture_float = has_ext("GL_ARB_texture_float"); - GLAD_GL_ARB_compressed_texture_pixel_storage = has_ext("GL_ARB_compressed_texture_pixel_storage"); - GLAD_GL_SGIS_detail_texture = has_ext("GL_SGIS_detail_texture"); - GLAD_GL_ARB_draw_instanced = has_ext("GL_ARB_draw_instanced"); - GLAD_GL_OES_read_format = has_ext("GL_OES_read_format"); - GLAD_GL_ATI_texture_float = has_ext("GL_ATI_texture_float"); - GLAD_GL_ARB_texture_gather = has_ext("GL_ARB_texture_gather"); - GLAD_GL_AMD_vertex_shader_layer = has_ext("GL_AMD_vertex_shader_layer"); - GLAD_GL_ARB_shading_language_include = has_ext("GL_ARB_shading_language_include"); - GLAD_GL_APPLE_client_storage = has_ext("GL_APPLE_client_storage"); - GLAD_GL_WIN_phong_shading = has_ext("GL_WIN_phong_shading"); - GLAD_GL_INGR_blend_func_separate = has_ext("GL_INGR_blend_func_separate"); - GLAD_GL_NV_path_rendering = has_ext("GL_NV_path_rendering"); - GLAD_GL_NV_conservative_raster_dilate = has_ext("GL_NV_conservative_raster_dilate"); - GLAD_GL_ATI_vertex_streams = has_ext("GL_ATI_vertex_streams"); - GLAD_GL_ARB_post_depth_coverage = has_ext("GL_ARB_post_depth_coverage"); - GLAD_GL_ARB_texture_non_power_of_two = has_ext("GL_ARB_texture_non_power_of_two"); - GLAD_GL_APPLE_rgb_422 = has_ext("GL_APPLE_rgb_422"); - GLAD_GL_EXT_texture_lod_bias = has_ext("GL_EXT_texture_lod_bias"); - GLAD_GL_ARB_gpu_shader_int64 = has_ext("GL_ARB_gpu_shader_int64"); - GLAD_GL_ARB_seamless_cube_map = has_ext("GL_ARB_seamless_cube_map"); - GLAD_GL_ARB_shader_group_vote = has_ext("GL_ARB_shader_group_vote"); - GLAD_GL_NV_vdpau_interop = has_ext("GL_NV_vdpau_interop"); - GLAD_GL_ARB_occlusion_query2 = has_ext("GL_ARB_occlusion_query2"); - GLAD_GL_ARB_internalformat_query2 = has_ext("GL_ARB_internalformat_query2"); - GLAD_GL_EXT_texture_filter_anisotropic = has_ext("GL_EXT_texture_filter_anisotropic"); - GLAD_GL_SUN_vertex = has_ext("GL_SUN_vertex"); - GLAD_GL_SGIX_igloo_interface = has_ext("GL_SGIX_igloo_interface"); - GLAD_GL_SGIS_texture_lod = has_ext("GL_SGIS_texture_lod"); - GLAD_GL_NV_vertex_program3 = has_ext("GL_NV_vertex_program3"); - GLAD_GL_ARB_draw_indirect = has_ext("GL_ARB_draw_indirect"); - GLAD_GL_NV_vertex_program4 = has_ext("GL_NV_vertex_program4"); - GLAD_GL_AMD_transform_feedback3_lines_triangles = has_ext("GL_AMD_transform_feedback3_lines_triangles"); - GLAD_GL_SGIS_fog_function = has_ext("GL_SGIS_fog_function"); - GLAD_GL_EXT_x11_sync_object = has_ext("GL_EXT_x11_sync_object"); - GLAD_GL_ARB_sync = has_ext("GL_ARB_sync"); - GLAD_GL_NV_sample_locations = has_ext("GL_NV_sample_locations"); - GLAD_GL_ARB_compute_variable_group_size = has_ext("GL_ARB_compute_variable_group_size"); - GLAD_GL_OES_fixed_point = has_ext("GL_OES_fixed_point"); - GLAD_GL_NV_blend_square = has_ext("GL_NV_blend_square"); - GLAD_GL_EXT_framebuffer_multisample = has_ext("GL_EXT_framebuffer_multisample"); - GLAD_GL_ARB_gpu_shader5 = has_ext("GL_ARB_gpu_shader5"); - GLAD_GL_SGIS_texture4D = has_ext("GL_SGIS_texture4D"); - GLAD_GL_EXT_texture3D = has_ext("GL_EXT_texture3D"); - GLAD_GL_EXT_multisample = has_ext("GL_EXT_multisample"); - GLAD_GL_EXT_secondary_color = has_ext("GL_EXT_secondary_color"); - GLAD_GL_ARB_texture_filter_minmax = has_ext("GL_ARB_texture_filter_minmax"); - GLAD_GL_ATI_vertex_array_object = has_ext("GL_ATI_vertex_array_object"); - GLAD_GL_ARB_parallel_shader_compile = has_ext("GL_ARB_parallel_shader_compile"); - GLAD_GL_NVX_gpu_memory_info = has_ext("GL_NVX_gpu_memory_info"); - GLAD_GL_ARB_sparse_texture = has_ext("GL_ARB_sparse_texture"); - GLAD_GL_SGIS_point_line_texgen = has_ext("GL_SGIS_point_line_texgen"); - GLAD_GL_ARB_sample_locations = has_ext("GL_ARB_sample_locations"); - GLAD_GL_ARB_sparse_buffer = has_ext("GL_ARB_sparse_buffer"); - GLAD_GL_EXT_draw_range_elements = has_ext("GL_EXT_draw_range_elements"); - GLAD_GL_SGIX_blend_alpha_minmax = has_ext("GL_SGIX_blend_alpha_minmax"); - GLAD_GL_KHR_context_flush_control = has_ext("GL_KHR_context_flush_control"); - free_exts(); - return 1; -} - -static void find_coreGL(void) { - - /* Thank you @elmindreda - * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 - * https://github.com/glfw/glfw/blob/master/src/context.c#L36 - */ - int i, major, minor; - - const char* version; - const char* prefixes[] = { - "OpenGL ES-CM ", - "OpenGL ES-CL ", - "OpenGL ES ", - NULL - }; - - version = (const char*) glGetString(GL_VERSION); - if (!version) return; - - for (i = 0; prefixes[i]; i++) { - const size_t length = strlen(prefixes[i]); - if (strncmp(version, prefixes[i], length) == 0) { - version += length; - break; - } - } - -/* PR #18 */ -#ifdef _MSC_VER - sscanf_s(version, "%d.%d", &major, &minor); -#else - sscanf(version, "%d.%d", &major, &minor); -#endif - - GLVersion.major = major; GLVersion.minor = minor; - max_loaded_major = major; max_loaded_minor = minor; - GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; - GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; - GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; - GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; - GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; - GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; - GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; - GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2; - GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; - GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3; - GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3; - GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3; - if (GLVersion.major > 3 || (GLVersion.major >= 3 && GLVersion.minor >= 3)) { - max_loaded_major = 3; - max_loaded_minor = 3; - } -} - -int gladLoadGLLoader(GLADloadproc load) { - GLVersion.major = 0; GLVersion.minor = 0; - glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); - if(glGetString == NULL) return 0; - if(glGetString(GL_VERSION) == NULL) return 0; - find_coreGL(); - load_GL_VERSION_1_0(load); - load_GL_VERSION_1_1(load); - load_GL_VERSION_1_2(load); - load_GL_VERSION_1_3(load); - load_GL_VERSION_1_4(load); - load_GL_VERSION_1_5(load); - load_GL_VERSION_2_0(load); - load_GL_VERSION_2_1(load); - load_GL_VERSION_3_0(load); - load_GL_VERSION_3_1(load); - load_GL_VERSION_3_2(load); - load_GL_VERSION_3_3(load); - - if (!find_extensionsGL()) return 0; - load_GL_APPLE_element_array(load); - load_GL_AMD_multi_draw_indirect(load); - load_GL_SGIX_tag_sample_buffer(load); - load_GL_NV_point_sprite(load); - load_GL_ATI_separate_stencil(load); - load_GL_EXT_texture_buffer_object(load); - load_GL_ARB_vertex_blend(load); - load_GL_OVR_multiview(load); - load_GL_ARB_program_interface_query(load); - load_GL_EXT_index_func(load); - load_GL_NV_shader_buffer_load(load); - load_GL_EXT_color_subtable(load); - load_GL_SUNX_constant_data(load); - load_GL_EXT_multi_draw_arrays(load); - load_GL_ARB_shader_atomic_counters(load); - load_GL_NV_conditional_render(load); - load_GL_MESA_resize_buffers(load); - load_GL_ARB_texture_view(load); - load_GL_ARB_map_buffer_range(load); - load_GL_EXT_convolution(load); - load_GL_NV_vertex_attrib_integer_64bit(load); - load_GL_EXT_paletted_texture(load); - load_GL_ARB_texture_buffer_object(load); - load_GL_ATI_pn_triangles(load); - load_GL_SGIX_flush_raster(load); - load_GL_EXT_light_texture(load); - load_GL_HP_image_transform(load); - load_GL_AMD_draw_buffers_blend(load); - load_GL_APPLE_texture_range(load); - load_GL_EXT_texture_array(load); - load_GL_NV_texture_barrier(load); - load_GL_ARB_vertex_type_2_10_10_10_rev(load); - load_GL_3DFX_tbuffer(load); - load_GL_GREMEDY_frame_terminator(load); - load_GL_ARB_blend_func_extended(load); - load_GL_EXT_separate_shader_objects(load); - load_GL_NV_texture_multisample(load); - load_GL_ARB_shader_objects(load); - load_GL_ARB_framebuffer_object(load); - load_GL_ATI_envmap_bumpmap(load); - load_GL_ATI_map_object_buffer(load); - load_GL_ARB_robustness(load); - load_GL_NV_pixel_data_range(load); - load_GL_EXT_framebuffer_blit(load); - load_GL_ARB_gpu_shader_fp64(load); - load_GL_NV_command_list(load); - load_GL_EXT_vertex_weighting(load); - load_GL_GREMEDY_string_marker(load); - load_GL_EXT_subtexture(load); - load_GL_EXT_gpu_program_parameters(load); - load_GL_NV_evaluators(load); - load_GL_SGIS_texture_filter4(load); - load_GL_AMD_performance_monitor(load); - load_GL_EXT_stencil_clear_tag(load); - load_GL_NV_present_video(load); - load_GL_SGIX_framezoom(load); - load_GL_ARB_draw_elements_base_vertex(load); - load_GL_NV_transform_feedback(load); - load_GL_NV_fragment_program(load); - load_GL_AMD_stencil_operation_extended(load); - load_GL_ARB_instanced_arrays(load); - load_GL_EXT_polygon_offset(load); - load_GL_KHR_robustness(load); - load_GL_AMD_sparse_texture(load); - load_GL_ARB_clip_control(load); - load_GL_NV_fragment_coverage_to_color(load); - load_GL_NV_fence(load); - load_GL_ARB_texture_buffer_range(load); - load_GL_SUN_mesh_array(load); - load_GL_ARB_vertex_attrib_binding(load); - load_GL_ARB_framebuffer_no_attachments(load); - load_GL_ARB_cl_event(load); - load_GL_OES_single_precision(load); - load_GL_NV_primitive_restart(load); - load_GL_SUN_global_alpha(load); - load_GL_EXT_texture_object(load); - load_GL_AMD_name_gen_delete(load); - load_GL_ARB_buffer_storage(load); - load_GL_APPLE_vertex_program_evaluators(load); - load_GL_ARB_multi_bind(load); - load_GL_SGIX_list_priority(load); - load_GL_NV_vertex_buffer_unified_memory(load); - load_GL_NV_blend_equation_advanced(load); - load_GL_SGIS_sharpen_texture(load); - load_GL_ARB_vertex_program(load); - load_GL_ARB_vertex_buffer_object(load); - load_GL_NV_vertex_array_range(load); - load_GL_SGIX_fragment_lighting(load); - load_GL_NV_framebuffer_multisample_coverage(load); - load_GL_EXT_timer_query(load); - load_GL_NV_bindless_texture(load); - load_GL_KHR_debug(load); - load_GL_ATI_vertex_attrib_array_object(load); - load_GL_EXT_geometry_shader4(load); - load_GL_EXT_bindable_uniform(load); - load_GL_KHR_blend_equation_advanced(load); - load_GL_ATI_element_array(load); - load_GL_SGIX_reference_plane(load); - load_GL_EXT_stencil_two_side(load); - load_GL_NV_explicit_multisample(load); - load_GL_IBM_static_data(load); - load_GL_EXT_texture_perturb_normal(load); - load_GL_EXT_point_parameters(load); - load_GL_PGI_misc_hints(load); - load_GL_ARB_vertex_shader(load); - load_GL_ARB_tessellation_shader(load); - load_GL_EXT_draw_buffers2(load); - load_GL_ARB_vertex_attrib_64bit(load); - load_GL_EXT_texture_filter_minmax(load); - load_GL_AMD_interleaved_elements(load); - load_GL_ARB_fragment_program(load); - load_GL_ARB_texture_storage(load); - load_GL_ARB_copy_image(load); - load_GL_SGIS_pixel_texture(load); - load_GL_SGIX_instruments(load); - load_GL_ARB_shader_storage_buffer_object(load); - load_GL_EXT_blend_minmax(load); - load_GL_ARB_base_instance(load); - load_GL_ARB_ES3_1_compatibility(load); - load_GL_EXT_texture_integer(load); - load_GL_ARB_texture_multisample(load); - load_GL_AMD_gpu_shader_int64(load); - load_GL_AMD_vertex_shader_tessellator(load); - load_GL_ARB_invalidate_subdata(load); - load_GL_EXT_index_material(load); - load_GL_INTEL_parallel_arrays(load); - load_GL_ATI_draw_buffers(load); - load_GL_SGIX_pixel_texture(load); - load_GL_ARB_timer_query(load); - load_GL_NV_parameter_buffer_object(load); - load_GL_ARB_direct_state_access(load); - load_GL_ARB_uniform_buffer_object(load); - load_GL_NV_transform_feedback2(load); - load_GL_EXT_blend_color(load); - load_GL_EXT_histogram(load); - load_GL_ARB_get_texture_sub_image(load); - load_GL_SGIS_point_parameters(load); - load_GL_EXT_direct_state_access(load); - load_GL_AMD_sample_positions(load); - load_GL_NV_vertex_program(load); - load_GL_EXT_vertex_shader(load); - load_GL_EXT_blend_func_separate(load); - load_GL_APPLE_fence(load); - load_GL_OES_byte_coordinates(load); - load_GL_ARB_transpose_matrix(load); - load_GL_ARB_provoking_vertex(load); - load_GL_EXT_fog_coord(load); - load_GL_EXT_vertex_array(load); - load_GL_EXT_blend_equation_separate(load); - load_GL_NV_framebuffer_mixed_samples(load); - load_GL_NVX_conditional_render(load); - load_GL_ARB_multi_draw_indirect(load); - load_GL_EXT_raster_multisample(load); - load_GL_NV_copy_image(load); - load_GL_INTEL_framebuffer_CMAA(load); - load_GL_ARB_transform_feedback2(load); - load_GL_ARB_transform_feedback3(load); - load_GL_EXT_debug_marker(load); - load_GL_EXT_pixel_transform(load); - load_GL_ATI_fragment_shader(load); - load_GL_ARB_vertex_array_object(load); - load_GL_SUN_triangle_list(load); - load_GL_ARB_transform_feedback_instanced(load); - load_GL_SGIX_async(load); - load_GL_INTEL_performance_query(load); - load_GL_NV_gpu_shader5(load); - load_GL_NV_bindless_multi_draw_indirect_count(load); - load_GL_ARB_ES2_compatibility(load); - load_GL_ARB_indirect_parameters(load); - load_GL_NV_half_float(load); - load_GL_ARB_ES3_2_compatibility(load); - load_GL_EXT_polygon_offset_clamp(load); - load_GL_EXT_compiled_vertex_array(load); - load_GL_NV_depth_buffer_float(load); - load_GL_NV_occlusion_query(load); - load_GL_APPLE_flush_buffer_range(load); - load_GL_ARB_imaging(load); - load_GL_ARB_draw_buffers_blend(load); - load_GL_ARB_clear_buffer_object(load); - load_GL_ARB_multisample(load); - load_GL_EXT_debug_label(load); - load_GL_ARB_sample_shading(load); - load_GL_NV_internalformat_sample_query(load); - load_GL_INTEL_map_texture(load); - load_GL_ARB_compute_shader(load); - load_GL_IBM_vertex_array_lists(load); - load_GL_ARB_color_buffer_float(load); - load_GL_ARB_bindless_texture(load); - load_GL_ARB_window_pos(load); - load_GL_ARB_internalformat_query(load); - load_GL_EXT_shader_image_load_store(load); - load_GL_EXT_copy_texture(load); - load_GL_NV_register_combiners2(load); - load_GL_NV_draw_texture(load); - load_GL_EXT_draw_instanced(load); - load_GL_ARB_viewport_array(load); - load_GL_ARB_separate_shader_objects(load); - load_GL_EXT_depth_bounds_test(load); - load_GL_NV_video_capture(load); - load_GL_ARB_sampler_objects(load); - load_GL_ARB_matrix_palette(load); - load_GL_SGIS_texture_color_mask(load); - load_GL_EXT_coordinate_frame(load); - load_GL_ARB_texture_compression(load); - load_GL_ARB_shader_subroutine(load); - load_GL_ARB_texture_storage_multisample(load); - load_GL_EXT_vertex_attrib_64bit(load); - load_GL_OES_query_matrix(load); - load_GL_MESA_window_pos(load); - load_GL_ARB_copy_buffer(load); - load_GL_APPLE_object_purgeable(load); - load_GL_ARB_occlusion_query(load); - load_GL_SGI_color_table(load); - load_GL_EXT_gpu_shader4(load); - load_GL_NV_geometry_program4(load); - load_GL_AMD_debug_output(load); - load_GL_ARB_multitexture(load); - load_GL_SGIX_polynomial_ffd(load); - load_GL_EXT_provoking_vertex(load); - load_GL_ARB_point_parameters(load); - load_GL_ARB_shader_image_load_store(load); - load_GL_ARB_texture_barrier(load); - load_GL_NV_bindless_multi_draw_indirect(load); - load_GL_EXT_transform_feedback(load); - load_GL_NV_gpu_program4(load); - load_GL_NV_gpu_program5(load); - load_GL_ARB_geometry_shader4(load); - load_GL_NV_conservative_raster(load); - load_GL_SGIX_sprite(load); - load_GL_ARB_get_program_binary(load); - load_GL_AMD_occlusion_query_event(load); - load_GL_SGIS_multisample(load); - load_GL_EXT_framebuffer_object(load); - load_GL_APPLE_vertex_array_range(load); - load_GL_NV_register_combiners(load); - load_GL_ARB_draw_buffers(load); - load_GL_ARB_clear_texture(load); - load_GL_ARB_debug_output(load); - load_GL_EXT_cull_vertex(load); - load_GL_IBM_multimode_draw_arrays(load); - load_GL_APPLE_vertex_array_object(load); - load_GL_SGIS_detail_texture(load); - load_GL_ARB_draw_instanced(load); - load_GL_ARB_shading_language_include(load); - load_GL_INGR_blend_func_separate(load); - load_GL_NV_path_rendering(load); - load_GL_NV_conservative_raster_dilate(load); - load_GL_ATI_vertex_streams(load); - load_GL_ARB_gpu_shader_int64(load); - load_GL_NV_vdpau_interop(load); - load_GL_ARB_internalformat_query2(load); - load_GL_SUN_vertex(load); - load_GL_SGIX_igloo_interface(load); - load_GL_ARB_draw_indirect(load); - load_GL_NV_vertex_program4(load); - load_GL_SGIS_fog_function(load); - load_GL_EXT_x11_sync_object(load); - load_GL_ARB_sync(load); - load_GL_NV_sample_locations(load); - load_GL_ARB_compute_variable_group_size(load); - load_GL_OES_fixed_point(load); - load_GL_EXT_framebuffer_multisample(load); - load_GL_SGIS_texture4D(load); - load_GL_EXT_texture3D(load); - load_GL_EXT_multisample(load); - load_GL_EXT_secondary_color(load); - load_GL_ATI_vertex_array_object(load); - load_GL_ARB_parallel_shader_compile(load); - load_GL_ARB_sparse_texture(load); - load_GL_ARB_sample_locations(load); - load_GL_ARB_sparse_buffer(load); - load_GL_EXT_draw_range_elements(load); - return GLVersion.major != 0 || GLVersion.minor != 0; -} - diff --git a/src/external/glad.h b/src/external/glad.h index 56bb622d8..db1516f8d 100644 --- a/src/external/glad.h +++ b/src/external/glad.h @@ -16,6 +16,10 @@ Too many extensions */ +////////////////////////////////////////////////////////////////////////////// +// +// INCLUDE SECTION +// #ifndef __glad_h_ #define __glad_h_ @@ -14239,3 +14243,7677 @@ GLAPI int GLAD_GL_KHR_context_flush_control; #endif #endif + +////////////////////////////////////////////////////////////////////////////// +// +// IMPLEMENTATION SECTION +// + +#ifdef GLAD_IMPLEMENTATION + +#include +#include +#include + +struct gladGLversionStruct GLVersion; + +#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) +#define _GLAD_IS_SOME_NEW_VERSION 1 +#endif + +static int max_loaded_major; +static int max_loaded_minor; + +static const char *exts = NULL; +static int num_exts_i = 0; +static const char **exts_i = NULL; + +static int get_exts(void) { +#ifdef _GLAD_IS_SOME_NEW_VERSION + if(max_loaded_major < 3) { +#endif + exts = (const char *)glGetString(GL_EXTENSIONS); +#ifdef _GLAD_IS_SOME_NEW_VERSION + } else { + int index; + + num_exts_i = 0; + glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i); + if (num_exts_i > 0) { + exts_i = (const char **)realloc((void *)exts_i, num_exts_i * sizeof *exts_i); + } + + if (exts_i == NULL) { + return 0; + } + + for(index = 0; index < num_exts_i; index++) { + exts_i[index] = (const char*)glGetStringi(GL_EXTENSIONS, index); + } + } +#endif + return 1; +} + +static void free_exts(void) { + if (exts_i != NULL) { + free(exts_i); + exts_i = NULL; + } +} + +static int has_ext(const char *ext) { +#ifdef _GLAD_IS_SOME_NEW_VERSION + if(max_loaded_major < 3) { +#endif + const char *extensions; + const char *loc; + const char *terminator; + extensions = exts; + if(extensions == NULL || ext == NULL) { + return 0; + } + + while(1) { + loc = strstr(extensions, ext); + if(loc == NULL) { + return 0; + } + + terminator = loc + strlen(ext); + if((loc == extensions || *(loc - 1) == ' ') && + (*terminator == ' ' || *terminator == '\0')) { + return 1; + } + extensions = terminator; + } +#ifdef _GLAD_IS_SOME_NEW_VERSION + } else { + int index; + + for(index = 0; index < num_exts_i; index++) { + const char *e = exts_i[index]; + + if(strcmp(e, ext) == 0) { + return 1; + } + } + } +#endif + + return 0; +} +int GLAD_GL_VERSION_1_0; +int GLAD_GL_VERSION_1_1; +int GLAD_GL_VERSION_1_2; +int GLAD_GL_VERSION_1_3; +int GLAD_GL_VERSION_1_4; +int GLAD_GL_VERSION_1_5; +int GLAD_GL_VERSION_2_0; +int GLAD_GL_VERSION_2_1; +int GLAD_GL_VERSION_3_0; +int GLAD_GL_VERSION_3_1; +int GLAD_GL_VERSION_3_2; +int GLAD_GL_VERSION_3_3; +PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; +PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; +PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate; +PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; +PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D; +PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv; +PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv; +PFNGLBINDSAMPLERPROC glad_glBindSampler; +PFNGLLINEWIDTHPROC glad_glLineWidth; +PFNGLCOLORP3UIVPROC glad_glColorP3uiv; +PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; +PFNGLCOMPILESHADERPROC glad_glCompileShader; +PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying; +PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer; +PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui; +PFNGLVERTEXP4UIPROC glad_glVertexP4ui; +PFNGLENABLEIPROC glad_glEnablei; +PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui; +PFNGLCREATESHADERPROC glad_glCreateShader; +PFNGLISBUFFERPROC glad_glIsBuffer; +PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv; +PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; +PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; +PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; +PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f; +PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; +PFNGLHINTPROC glad_glHint; +PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s; +PFNGLSAMPLEMASKIPROC glad_glSampleMaski; +PFNGLVERTEXP2UIPROC glad_glVertexP2ui; +PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; +PFNGLPOINTSIZEPROC glad_glPointSize; +PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; +PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; +PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv; +PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; +PFNGLWAITSYNCPROC glad_glWaitSync; +PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; +PFNGLUNIFORM3IPROC glad_glUniform3i; +PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; +PFNGLUNIFORM3FPROC glad_glUniform3f; +PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv; +PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; +PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui; +PFNGLCOLORMASKIPROC glad_glColorMaski; +PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; +PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; +PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui; +PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv; +PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex; +PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv; +PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv; +PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui; +PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; +PFNGLDRAWARRAYSPROC glad_glDrawArrays; +PFNGLUNIFORM1UIPROC glad_glUniform1ui; +PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; +PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui; +PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; +PFNGLCLEARPROC glad_glClear; +PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; +PFNGLISENABLEDPROC glad_glIsEnabled; +PFNGLSTENCILOPPROC glad_glStencilOp; +PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; +PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; +PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; +PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation; +PFNGLTEXIMAGE1DPROC glad_glTexImage1D; +PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; +PFNGLGETTEXIMAGEPROC glad_glGetTexImage; +PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v; +PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; +PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; +PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer; +PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; +PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; +PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; +PFNGLGETQUERYIVPROC glad_glGetQueryiv; +PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv; +PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; +PFNGLISSHADERPROC glad_glIsShader; +PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; +PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; +PFNGLENABLEPROC glad_glEnable; +PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv; +PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation; +PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv; +PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv; +PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui; +PFNGLGETUNIFORMFVPROC glad_glGetUniformfv; +PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv; +PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; +PFNGLDRAWBUFFERPROC glad_glDrawBuffer; +PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv; +PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced; +PFNGLFLUSHPROC glad_glFlush; +PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; +PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv; +PFNGLFENCESYNCPROC glad_glFenceSync; +PFNGLCOLORP3UIPROC glad_glColorP3ui; +PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; +PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; +PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv; +PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv; +PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate; +PFNGLGENSAMPLERSPROC glad_glGenSamplers; +PFNGLCLAMPCOLORPROC glad_glClampColor; +PFNGLUNIFORM4IVPROC glad_glUniform4iv; +PFNGLCLEARSTENCILPROC glad_glClearStencil; +PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv; +PFNGLGENTEXTURESPROC glad_glGenTextures; +PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv; +PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; +PFNGLISSYNCPROC glad_glIsSync; +PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName; +PFNGLUNIFORM2IPROC glad_glUniform2i; +PFNGLUNIFORM2FPROC glad_glUniform2f; +PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui; +PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; +PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; +PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; +PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange; +PFNGLGENQUERIESPROC glad_glGenQueries; +PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui; +PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D; +PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v; +PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers; +PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; +PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; +PFNGLISENABLEDIPROC glad_glIsEnabledi; +PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui; +PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed; +PFNGLUNIFORM2IVPROC glad_glUniform2iv; +PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv; +PFNGLUNIFORM4UIVPROC glad_glUniform4uiv; +PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; +PFNGLGETSHADERIVPROC glad_glGetShaderiv; +PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation; +PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; +PFNGLGETDOUBLEVPROC glad_glGetDoublev; +PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d; +PFNGLGETUNIFORMIVPROC glad_glGetUniformiv; +PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv; +PFNGLUNIFORM3FVPROC glad_glUniform3fv; +PFNGLDEPTHRANGEPROC glad_glDepthRange; +PFNGLMAPBUFFERPROC glad_glMapBuffer; +PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; +PFNGLDELETESYNCPROC glad_glDeleteSync; +PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D; +PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; +PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements; +PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; +PFNGLUNIFORM3IVPROC glad_glUniform3iv; +PFNGLPOLYGONMODEPROC glad_glPolygonMode; +PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; +PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv; +PFNGLUSEPROGRAMPROC glad_glUseProgram; +PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; +PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; +PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; +PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv; +PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex; +PFNGLUNIFORM2UIVPROC glad_glUniform2uiv; +PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; +PFNGLFINISHPROC glad_glFinish; +PFNGLDELETESHADERPROC glad_glDeleteShader; +PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv; +PFNGLVIEWPORTPROC glad_glViewport; +PFNGLUNIFORM1UIVPROC glad_glUniform1uiv; +PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings; +PFNGLUNIFORM2UIPROC glad_glUniform2ui; +PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i; +PFNGLCLEARDEPTHPROC glad_glClearDepth; +PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; +PFNGLTEXPARAMETERFPROC glad_glTexParameterf; +PFNGLTEXPARAMETERIPROC glad_glTexParameteri; +PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; +PFNGLTEXBUFFERPROC glad_glTexBuffer; +PFNGLPIXELSTOREIPROC glad_glPixelStorei; +PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram; +PFNGLPIXELSTOREFPROC glad_glPixelStoref; +PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; +PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv; +PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv; +PFNGLLINKPROGRAMPROC glad_glLinkProgram; +PFNGLBINDTEXTUREPROC glad_glBindTexture; +PFNGLGETSTRINGPROC glad_glGetString; +PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv; +PFNGLDETACHSHADERPROC glad_glDetachShader; +PFNGLENDQUERYPROC glad_glEndQuery; +PFNGLNORMALP3UIPROC glad_glNormalP3ui; +PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui; +PFNGLDELETETEXTURESPROC glad_glDeleteTextures; +PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate; +PFNGLDELETEQUERIESPROC glad_glDeleteQueries; +PFNGLNORMALP3UIVPROC glad_glNormalP3uiv; +PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f; +PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d; +PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; +PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; +PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex; +PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; +PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri; +PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf; +PFNGLUNIFORM1FPROC glad_glUniform1f; +PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; +PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; +PFNGLUNIFORM1IPROC glad_glUniform1i; +PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; +PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; +PFNGLDISABLEPROC glad_glDisable; +PFNGLLOGICOPPROC glad_glLogicOp; +PFNGLUNIFORM4UIPROC glad_glUniform4ui; +PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; +PFNGLCULLFACEPROC glad_glCullFace; +PFNGLGETSTRINGIPROC glad_glGetStringi; +PFNGLATTACHSHADERPROC glad_glAttachShader; +PFNGLQUERYCOUNTERPROC glad_glQueryCounter; +PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; +PFNGLDRAWELEMENTSPROC glad_glDrawElements; +PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv; +PFNGLUNIFORM1IVPROC glad_glUniform1iv; +PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv; +PFNGLREADBUFFERPROC glad_glReadBuffer; +PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; +PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced; +PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; +PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv; +PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f; +PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv; +PFNGLPOINTPARAMETERIPROC glad_glPointParameteri; +PFNGLBLENDCOLORPROC glad_glBlendColor; +PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv; +PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer; +PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; +PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s; +PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; +PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv; +PFNGLISPROGRAMPROC glad_glIsProgram; +PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv; +PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv; +PFNGLUNIFORM4IPROC glad_glUniform4i; +PFNGLACTIVETEXTUREPROC glad_glActiveTexture; +PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; +PFNGLREADPIXELSPROC glad_glReadPixels; +PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv; +PFNGLUNIFORM4FPROC glad_glUniform4f; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample; +PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; +PFNGLSTENCILFUNCPROC glad_glStencilFunc; +PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding; +PFNGLCOLORP4UIPROC glad_glColorP4ui; +PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; +PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; +PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i; +PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData; +PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate; +PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; +PFNGLGENBUFFERSPROC glad_glGenBuffers; +PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv; +PFNGLBLENDFUNCPROC glad_glBlendFunc; +PFNGLCREATEPROGRAMPROC glad_glCreateProgram; +PFNGLTEXIMAGE3DPROC glad_glTexImage3D; +PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer; +PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex; +PFNGLGETINTEGER64VPROC glad_glGetInteger64v; +PFNGLSCISSORPROC glad_glScissor; +PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv; +PFNGLGETBOOLEANVPROC glad_glGetBooleanv; +PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv; +PFNGLUNIFORM3UIVPROC glad_glUniform3uiv; +PFNGLCLEARCOLORPROC glad_glClearColor; +PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv; +PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv; +PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; +PFNGLCOLORP4UIVPROC glad_glColorP4uiv; +PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv; +PFNGLUNIFORM3UIPROC glad_glUniform3ui; +PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv; +PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; +PFNGLUNIFORM2FVPROC glad_glUniform2fv; +PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv; +PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange; +PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv; +PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv; +PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; +PFNGLDEPTHFUNCPROC glad_glDepthFunc; +PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; +PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv; +PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; +PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui; +PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync; +PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui; +PFNGLCOLORMASKPROC glad_glColorMask; +PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; +PFNGLBLENDEQUATIONPROC glad_glBlendEquation; +PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; +PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; +PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv; +PFNGLUNIFORM4FVPROC glad_glUniform4fv; +PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; +PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv; +PFNGLISSAMPLERPROC glad_glIsSampler; +PFNGLVERTEXP3UIPROC glad_glVertexP3ui; +PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor; +PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D; +PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; +PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex; +PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; +PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; +PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv; +PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; +PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv; +PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; +PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements; +PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv; +PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase; +PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; +PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv; +PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange; +PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture; +PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays; +PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv; +PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv; +PFNGLDISABLEIPROC glad_glDisablei; +PFNGLSHADERSOURCEPROC glad_glShaderSource; +PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; +PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv; +PFNGLGETSYNCIVPROC glad_glGetSynciv; +PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv; +PFNGLBEGINQUERYPROC glad_glBeginQuery; +PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; +PFNGLBINDBUFFERPROC glad_glBindBuffer; +PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv; +PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv; +PFNGLBUFFERDATAPROC glad_glBufferData; +PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; +PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui; +PFNGLGETERRORPROC glad_glGetError; +PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui; +PFNGLGETFLOATVPROC glad_glGetFloatv; +PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D; +PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv; +PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv; +PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; +PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv; +PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv; +PFNGLGETINTEGERVPROC glad_glGetIntegerv; +PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; +PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D; +PFNGLISQUERYPROC glad_glIsQuery; +PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv; +PFNGLTEXIMAGE2DPROC glad_glTexImage2D; +PFNGLSTENCILMASKPROC glad_glStencilMask; +PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv; +PFNGLISTEXTUREPROC glad_glIsTexture; +PFNGLUNIFORM1FVPROC glad_glUniform1fv; +PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv; +PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; +PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv; +PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData; +PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv; +PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d; +PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; +PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv; +PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v; +PFNGLDEPTHMASKPROC glad_glDepthMask; +PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s; +PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample; +PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex; +PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; +PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform; +PFNGLFRONTFACEPROC glad_glFrontFace; +int GLAD_GL_SGIX_pixel_tiles; +int GLAD_GL_NV_point_sprite; +int GLAD_GL_APPLE_element_array; +int GLAD_GL_AMD_multi_draw_indirect; +int GLAD_GL_EXT_blend_subtract; +int GLAD_GL_SGIX_tag_sample_buffer; +int GLAD_GL_IBM_texture_mirrored_repeat; +int GLAD_GL_APPLE_transform_hint; +int GLAD_GL_ATI_separate_stencil; +int GLAD_GL_NV_shader_atomic_int64; +int GLAD_GL_NV_vertex_program2_option; +int GLAD_GL_EXT_texture_buffer_object; +int GLAD_GL_ARB_vertex_blend; +int GLAD_GL_OVR_multiview; +int GLAD_GL_ARB_program_interface_query; +int GLAD_GL_EXT_misc_attribute; +int GLAD_GL_NV_multisample_coverage; +int GLAD_GL_ARB_shading_language_packing; +int GLAD_GL_EXT_texture_cube_map; +int GLAD_GL_NV_viewport_array2; +int GLAD_GL_KHR_robustness; +int GLAD_GL_EXT_index_func; +int GLAD_GL_OES_compressed_paletted_texture; +int GLAD_GL_NV_depth_clamp; +int GLAD_GL_NV_shader_buffer_load; +int GLAD_GL_EXT_color_subtable; +int GLAD_GL_SUNX_constant_data; +int GLAD_GL_EXT_multi_draw_arrays; +int GLAD_GL_ARB_shader_atomic_counters; +int GLAD_GL_ARB_arrays_of_arrays; +int GLAD_GL_NV_conditional_render; +int GLAD_GL_EXT_texture_env_combine; +int GLAD_GL_AMD_depth_clamp_separate; +int GLAD_GL_SGIX_async_histogram; +int GLAD_GL_MESA_resize_buffers; +int GLAD_GL_ARB_sample_shading; +int GLAD_GL_NV_texture_env_combine4; +int GLAD_GL_ARB_texture_view; +int GLAD_GL_ARB_texture_env_combine; +int GLAD_GL_ARB_map_buffer_range; +int GLAD_GL_EXT_convolution; +int GLAD_GL_NV_compute_program5; +int GLAD_GL_EXT_paletted_texture; +int GLAD_GL_ARB_texture_buffer_object; +int GLAD_GL_SUN_triangle_list; +int GLAD_GL_SGIX_resample; +int GLAD_GL_SGIX_flush_raster; +int GLAD_GL_EXT_light_texture; +int GLAD_GL_ARB_point_sprite; +int GLAD_GL_ARB_sparse_texture2; +int GLAD_GL_ARB_half_float_pixel; +int GLAD_GL_NV_tessellation_program5; +int GLAD_GL_REND_screen_coordinates; +int GLAD_GL_HP_image_transform; +int GLAD_GL_EXT_packed_float; +int GLAD_GL_ATI_vertex_attrib_array_object; +int GLAD_GL_SGIX_vertex_preclip; +int GLAD_GL_SGIX_texture_scale_bias; +int GLAD_GL_AMD_draw_buffers_blend; +int GLAD_GL_APPLE_texture_range; +int GLAD_GL_SGIX_framezoom; +int GLAD_GL_NV_texture_barrier; +int GLAD_GL_ARB_texture_query_levels; +int GLAD_GL_EXT_blend_logic_op; +int GLAD_GL_EXT_texture_swizzle; +int GLAD_GL_ARB_texture_rg; +int GLAD_GL_ARB_vertex_type_2_10_10_10_rev; +int GLAD_GL_ARB_fragment_shader; +int GLAD_GL_3DFX_tbuffer; +int GLAD_GL_SGIX_ycrcb; +int GLAD_GL_IBM_cull_vertex; +int GLAD_GL_EXT_separate_shader_objects; +int GLAD_GL_NV_texture_multisample; +int GLAD_GL_ARB_shader_objects; +int GLAD_GL_ARB_framebuffer_object; +int GLAD_GL_ATI_envmap_bumpmap; +int GLAD_GL_ARB_robust_buffer_access_behavior; +int GLAD_GL_ARB_shader_stencil_export; +int GLAD_GL_AMD_sample_positions; +int GLAD_GL_ARB_enhanced_layouts; +int GLAD_GL_ARB_texture_rectangle; +int GLAD_GL_SGI_texture_color_table; +int GLAD_GL_ATI_map_object_buffer; +int GLAD_GL_ARB_robustness; +int GLAD_GL_NV_pixel_data_range; +int GLAD_GL_EXT_framebuffer_blit; +int GLAD_GL_ARB_gpu_shader_fp64; +int GLAD_GL_NV_command_list; +int GLAD_GL_ARB_window_pos; +int GLAD_GL_ARB_robustness_isolation; +int GLAD_GL_GREMEDY_string_marker; +int GLAD_GL_ARB_texture_compression_bptc; +int GLAD_GL_EXT_subtexture; +int GLAD_GL_EXT_pixel_transform_color_table; +int GLAD_GL_EXT_texture_compression_rgtc; +int GLAD_GL_ARB_shadow; +int GLAD_GL_SGIX_depth_pass_instrument; +int GLAD_GL_NVX_conditional_render; +int GLAD_GL_NV_evaluators; +int GLAD_GL_SGIS_texture_filter4; +int GLAD_GL_AMD_performance_monitor; +int GLAD_GL_NV_geometry_shader4; +int GLAD_GL_EXT_stencil_clear_tag; +int GLAD_GL_NV_vertex_program1_1; +int GLAD_GL_NV_present_video; +int GLAD_GL_ARB_texture_compression_rgtc; +int GLAD_GL_ARB_texture_filter_minmax; +int GLAD_GL_HP_convolution_border_modes; +int GLAD_GL_EXT_gpu_program_parameters; +int GLAD_GL_SGIX_list_priority; +int GLAD_GL_ARB_stencil_texturing; +int GLAD_GL_ARB_shader_clock; +int GLAD_GL_NV_shader_atomic_fp16_vector; +int GLAD_GL_SGIX_fog_offset; +int GLAD_GL_ARB_draw_elements_base_vertex; +int GLAD_GL_INGR_interlace_read; +int GLAD_GL_NV_transform_feedback; +int GLAD_GL_EXT_post_depth_coverage; +int GLAD_GL_ARB_debug_output; +int GLAD_GL_AMD_stencil_operation_extended; +int GLAD_GL_ARB_compatibility; +int GLAD_GL_ARB_instanced_arrays; +int GLAD_GL_ARB_get_texture_sub_image; +int GLAD_GL_NV_vertex_array_range2; +int GLAD_GL_ARB_texture_stencil8; +int GLAD_GL_AMD_sparse_texture; +int GLAD_GL_ARB_clip_control; +int GLAD_GL_NV_fragment_coverage_to_color; +int GLAD_GL_NV_fence; +int GLAD_GL_ARB_texture_buffer_range; +int GLAD_GL_SUN_mesh_array; +int GLAD_GL_ARB_vertex_attrib_binding; +int GLAD_GL_EXT_texture_compression_s3tc; +int GLAD_GL_ARB_cl_event; +int GLAD_GL_ARB_derivative_control; +int GLAD_GL_NV_packed_depth_stencil; +int GLAD_GL_OES_single_precision; +int GLAD_GL_NV_primitive_restart; +int GLAD_GL_ARB_fragment_shader_interlock; +int GLAD_GL_EXT_texture_object; +int GLAD_GL_AMD_name_gen_delete; +int GLAD_GL_NV_texture_compression_vtc; +int GLAD_GL_NV_sample_mask_override_coverage; +int GLAD_GL_NV_texture_shader3; +int GLAD_GL_NV_texture_shader2; +int GLAD_GL_EXT_texture; +int GLAD_GL_ARB_buffer_storage; +int GLAD_GL_AMD_shader_atomic_counter_ops; +int GLAD_GL_APPLE_vertex_program_evaluators; +int GLAD_GL_ARB_multi_bind; +int GLAD_GL_ARB_explicit_uniform_location; +int GLAD_GL_ARB_depth_buffer_float; +int GLAD_GL_NV_path_rendering_shared_edge; +int GLAD_GL_SGIX_shadow_ambient; +int GLAD_GL_ARB_texture_cube_map; +int GLAD_GL_AMD_vertex_shader_viewport_index; +int GLAD_GL_EXT_shader_integer_mix; +int GLAD_GL_NV_vertex_buffer_unified_memory; +int GLAD_GL_EXT_fog_coord; +int GLAD_GL_EXT_texture_env_dot3; +int GLAD_GL_ATI_texture_env_combine3; +int GLAD_GL_ARB_map_buffer_alignment; +int GLAD_GL_NV_blend_equation_advanced; +int GLAD_GL_SGIS_sharpen_texture; +int GLAD_GL_KHR_robust_buffer_access_behavior; +int GLAD_GL_ARB_pipeline_statistics_query; +int GLAD_GL_ARB_vertex_program; +int GLAD_GL_ARB_texture_rgb10_a2ui; +int GLAD_GL_OML_interlace; +int GLAD_GL_ATI_pixel_format_float; +int GLAD_GL_ARB_vertex_buffer_object; +int GLAD_GL_EXT_shadow_funcs; +int GLAD_GL_ATI_text_fragment_shader; +int GLAD_GL_NV_vertex_array_range; +int GLAD_GL_SGIX_fragment_lighting; +int GLAD_GL_NV_texture_expand_normal; +int GLAD_GL_NV_framebuffer_multisample_coverage; +int GLAD_GL_ARB_framebuffer_no_attachments; +int GLAD_GL_EXT_timer_query; +int GLAD_GL_EXT_vertex_array_bgra; +int GLAD_GL_NV_bindless_texture; +int GLAD_GL_KHR_debug; +int GLAD_GL_SGIS_texture_border_clamp; +int GLAD_GL_OML_subsample; +int GLAD_GL_SGIX_clipmap; +int GLAD_GL_EXT_geometry_shader4; +int GLAD_GL_ARB_shader_texture_image_samples; +int GLAD_GL_MESA_ycbcr_texture; +int GLAD_GL_MESAX_texture_stack; +int GLAD_GL_AMD_seamless_cubemap_per_texture; +int GLAD_GL_EXT_bindable_uniform; +int GLAD_GL_KHR_texture_compression_astc_hdr; +int GLAD_GL_ARB_shader_ballot; +int GLAD_GL_KHR_blend_equation_advanced; +int GLAD_GL_ARB_fragment_program_shadow; +int GLAD_GL_ATI_element_array; +int GLAD_GL_ARB_sparse_texture_clamp; +int GLAD_GL_AMD_texture_texture4; +int GLAD_GL_SGIX_reference_plane; +int GLAD_GL_EXT_stencil_two_side; +int GLAD_GL_ARB_transform_feedback_overflow_query; +int GLAD_GL_SGIX_texture_lod_bias; +int GLAD_GL_KHR_no_error; +int GLAD_GL_NV_explicit_multisample; +int GLAD_GL_IBM_static_data; +int GLAD_GL_EXT_clip_volume_hint; +int GLAD_GL_EXT_texture_perturb_normal; +int GLAD_GL_NV_fragment_program2; +int GLAD_GL_NV_fragment_program4; +int GLAD_GL_EXT_point_parameters; +int GLAD_GL_PGI_misc_hints; +int GLAD_GL_SGIX_subsample; +int GLAD_GL_AMD_shader_stencil_export; +int GLAD_GL_ARB_shader_texture_lod; +int GLAD_GL_ARB_vertex_shader; +int GLAD_GL_ARB_depth_clamp; +int GLAD_GL_SGIS_texture_select; +int GLAD_GL_NV_texture_shader; +int GLAD_GL_ARB_tessellation_shader; +int GLAD_GL_EXT_draw_buffers2; +int GLAD_GL_ARB_vertex_attrib_64bit; +int GLAD_GL_EXT_texture_filter_minmax; +int GLAD_GL_ARB_texture_gather; +int GLAD_GL_AMD_interleaved_elements; +int GLAD_GL_ARB_fragment_program; +int GLAD_GL_OML_resample; +int GLAD_GL_APPLE_ycbcr_422; +int GLAD_GL_SGIX_texture_add_env; +int GLAD_GL_ARB_shadow_ambient; +int GLAD_GL_ARB_texture_storage; +int GLAD_GL_EXT_pixel_buffer_object; +int GLAD_GL_NV_vertex_program; +int GLAD_GL_SGIS_pixel_texture; +int GLAD_GL_SGIS_generate_mipmap; +int GLAD_GL_SGIX_instruments; +int GLAD_GL_ARB_fragment_layer_viewport; +int GLAD_GL_ARB_shader_storage_buffer_object; +int GLAD_GL_EXT_sparse_texture2; +int GLAD_GL_EXT_blend_minmax; +int GLAD_GL_MESA_pack_invert; +int GLAD_GL_ARB_base_instance; +int GLAD_GL_SUN_global_alpha; +int GLAD_GL_PGI_vertex_hints; +int GLAD_GL_AMD_transform_feedback4; +int GLAD_GL_ARB_ES3_1_compatibility; +int GLAD_GL_EXT_texture_integer; +int GLAD_GL_ARB_texture_multisample; +int GLAD_GL_AMD_gpu_shader_int64; +int GLAD_GL_S3_s3tc; +int GLAD_GL_ARB_query_buffer_object; +int GLAD_GL_AMD_vertex_shader_tessellator; +int GLAD_GL_ARB_invalidate_subdata; +int GLAD_GL_ARB_draw_indirect; +int GLAD_GL_ARB_transform_feedback2; +int GLAD_GL_EXT_index_material; +int GLAD_GL_NV_blend_equation_advanced_coherent; +int GLAD_GL_ARB_texture_non_power_of_two; +int GLAD_GL_KHR_texture_compression_astc_sliced_3d; +int GLAD_GL_ATI_draw_buffers; +int GLAD_GL_EXT_cmyka; +int GLAD_GL_SGIX_pixel_texture; +int GLAD_GL_APPLE_specular_vector; +int GLAD_GL_ARB_seamless_cubemap_per_texture; +int GLAD_GL_ARB_conservative_depth; +int GLAD_GL_SGIX_interlace; +int GLAD_GL_NV_parameter_buffer_object; +int GLAD_GL_AMD_shader_trinary_minmax; +int GLAD_GL_EXT_texture_lod_bias; +int GLAD_GL_EXT_rescale_normal; +int GLAD_GL_ARB_pixel_buffer_object; +int GLAD_GL_ARB_uniform_buffer_object; +int GLAD_GL_ARB_vertex_type_10f_11f_11f_rev; +int GLAD_GL_ARB_texture_swizzle; +int GLAD_GL_ARB_texture_compression; +int GLAD_GL_SGIX_async_pixel; +int GLAD_GL_NV_fragment_program_option; +int GLAD_GL_ARB_explicit_attrib_location; +int GLAD_GL_EXT_blend_color; +int GLAD_GL_NV_shader_thread_group; +int GLAD_GL_EXT_stencil_wrap; +int GLAD_GL_EXT_index_array_formats; +int GLAD_GL_OVR_multiview2; +int GLAD_GL_EXT_histogram; +int GLAD_GL_EXT_polygon_offset; +int GLAD_GL_SGIS_point_parameters; +int GLAD_GL_EXT_direct_state_access; +int GLAD_GL_ARB_shader_group_vote; +int GLAD_GL_NV_texture_rectangle; +int GLAD_GL_ARB_copy_image; +int GLAD_GL_NV_shader_thread_shuffle; +int GLAD_GL_ARB_shader_precision; +int GLAD_GL_EXT_vertex_shader; +int GLAD_GL_EXT_blend_func_separate; +int GLAD_GL_APPLE_fence; +int GLAD_GL_OES_byte_coordinates; +int GLAD_GL_ARB_transpose_matrix; +int GLAD_GL_ARB_provoking_vertex; +int GLAD_GL_NV_uniform_buffer_unified_memory; +int GLAD_GL_NV_fragment_shader_interlock; +int GLAD_GL_EXT_vertex_array; +int GLAD_GL_ARB_half_float_vertex; +int GLAD_GL_EXT_blend_equation_separate; +int GLAD_GL_NV_framebuffer_mixed_samples; +int GLAD_GL_ARB_multi_draw_indirect; +int GLAD_GL_EXT_raster_multisample; +int GLAD_GL_NV_copy_image; +int GLAD_GL_NV_geometry_shader_passthrough; +int GLAD_GL_INTEL_framebuffer_CMAA; +int GLAD_GL_SGIX_convolution_accuracy; +int GLAD_GL_ARB_transform_feedback3; +int GLAD_GL_SGIX_ycrcba; +int GLAD_GL_EXT_debug_marker; +int GLAD_GL_EXT_bgra; +int GLAD_GL_INTEL_parallel_arrays; +int GLAD_GL_EXT_pixel_transform; +int GLAD_GL_NV_vertex_attrib_integer_64bit; +int GLAD_GL_ATI_fragment_shader; +int GLAD_GL_ARB_vertex_array_object; +int GLAD_GL_ATI_pn_triangles; +int GLAD_GL_EXT_texture_env_add; +int GLAD_GL_EXT_packed_depth_stencil; +int GLAD_GL_EXT_texture_mirror_clamp; +int GLAD_GL_NV_multisample_filter_hint; +int GLAD_GL_INTEL_performance_query; +int GLAD_GL_ARB_transform_feedback_instanced; +int GLAD_GL_SGIX_async; +int GLAD_GL_EXT_texture_compression_latc; +int GLAD_GL_NV_shader_atomic_float; +int GLAD_GL_ARB_shading_language_100; +int GLAD_GL_APPLE_float_pixels; +int GLAD_GL_ARB_texture_mirror_clamp_to_edge; +int GLAD_GL_NV_vertex_program2; +int GLAD_GL_NV_bindless_multi_draw_indirect_count; +int GLAD_GL_ARB_depth_texture; +int GLAD_GL_ARB_ES2_compatibility; +int GLAD_GL_ARB_indirect_parameters; +int GLAD_GL_NV_half_float; +int GLAD_GL_ARB_ES3_2_compatibility; +int GLAD_GL_ATI_texture_mirror_once; +int GLAD_GL_IBM_rasterpos_clip; +int GLAD_GL_SGIX_shadow; +int GLAD_GL_EXT_polygon_offset_clamp; +int GLAD_GL_NV_deep_texture3D; +int GLAD_GL_ARB_shader_draw_parameters; +int GLAD_GL_SGIX_calligraphic_fragment; +int GLAD_GL_ARB_shader_bit_encoding; +int GLAD_GL_EXT_compiled_vertex_array; +int GLAD_GL_NV_depth_buffer_float; +int GLAD_GL_APPLE_flush_buffer_range; +int GLAD_GL_ARB_imaging; +int GLAD_GL_ARB_draw_buffers_blend; +int GLAD_GL_AMD_gcn_shader; +int GLAD_GL_AMD_blend_minmax_factor; +int GLAD_GL_EXT_texture_sRGB_decode; +int GLAD_GL_ARB_shading_language_420pack; +int GLAD_GL_ARB_shader_viewport_layer_array; +int GLAD_GL_ATI_meminfo; +int GLAD_GL_EXT_abgr; +int GLAD_GL_AMD_pinned_memory; +int GLAD_GL_EXT_texture_snorm; +int GLAD_GL_SGIX_texture_coordinate_clamp; +int GLAD_GL_ARB_clear_buffer_object; +int GLAD_GL_ARB_multisample; +int GLAD_GL_EXT_debug_label; +int GLAD_GL_NV_light_max_exponent; +int GLAD_GL_NV_internalformat_sample_query; +int GLAD_GL_INTEL_map_texture; +int GLAD_GL_ARB_texture_env_crossbar; +int GLAD_GL_EXT_422_pixels; +int GLAD_GL_ARB_compute_shader; +int GLAD_GL_NV_texgen_emboss; +int GLAD_GL_ARB_blend_func_extended; +int GLAD_GL_IBM_vertex_array_lists; +int GLAD_GL_ARB_color_buffer_float; +int GLAD_GL_ARB_bindless_texture; +int GLAD_GL_SGIX_depth_texture; +int GLAD_GL_ARB_internalformat_query; +int GLAD_GL_ARB_shader_atomic_counter_ops; +int GLAD_GL_ARB_texture_mirrored_repeat; +int GLAD_GL_EXT_shader_image_load_store; +int GLAD_GL_EXT_copy_texture; +int GLAD_GL_NV_register_combiners2; +int GLAD_GL_SGIX_ycrcb_subsample; +int GLAD_GL_ARB_copy_buffer; +int GLAD_GL_NV_draw_texture; +int GLAD_GL_EXT_texture_shared_exponent; +int GLAD_GL_EXT_draw_instanced; +int GLAD_GL_NV_copy_depth_to_color; +int GLAD_GL_ARB_viewport_array; +int GLAD_GL_ARB_separate_shader_objects; +int GLAD_GL_EXT_multisample; +int GLAD_GL_EXT_depth_bounds_test; +int GLAD_GL_EXT_shared_texture_palette; +int GLAD_GL_ARB_texture_env_add; +int GLAD_GL_NV_video_capture; +int GLAD_GL_ARB_sampler_objects; +int GLAD_GL_ARB_matrix_palette; +int GLAD_GL_SGIS_texture_color_mask; +int GLAD_GL_EXT_packed_pixels; +int GLAD_GL_EXT_coordinate_frame; +int GLAD_GL_NV_transform_feedback2; +int GLAD_GL_APPLE_aux_depth_stencil; +int GLAD_GL_ARB_shader_subroutine; +int GLAD_GL_EXT_framebuffer_sRGB; +int GLAD_GL_ARB_texture_storage_multisample; +int GLAD_GL_KHR_blend_equation_advanced_coherent; +int GLAD_GL_EXT_vertex_attrib_64bit; +int GLAD_GL_HP_texture_lighting; +int GLAD_GL_NV_shader_buffer_store; +int GLAD_GL_OES_query_matrix; +int GLAD_GL_MESA_window_pos; +int GLAD_GL_NV_fill_rectangle; +int GLAD_GL_NV_shader_storage_buffer_object; +int GLAD_GL_ARB_texture_query_lod; +int GLAD_GL_SGIX_ir_instrument1; +int GLAD_GL_ARB_shader_image_size; +int GLAD_GL_NV_shader_atomic_counters; +int GLAD_GL_APPLE_object_purgeable; +int GLAD_GL_ARB_occlusion_query; +int GLAD_GL_INGR_color_clamp; +int GLAD_GL_SGI_color_table; +int GLAD_GL_EXT_framebuffer_multisample_blit_scaled; +int GLAD_GL_ARB_texture_cube_map_array; +int GLAD_GL_AMD_debug_output; +int GLAD_GL_EXT_gpu_shader4; +int GLAD_GL_NV_geometry_program4; +int GLAD_GL_NV_gpu_program5_mem_extended; +int GLAD_GL_SGIX_scalebias_hint; +int GLAD_GL_ARB_texture_border_clamp; +int GLAD_GL_ARB_fragment_coord_conventions; +int GLAD_GL_SGIX_polynomial_ffd; +int GLAD_GL_EXT_provoking_vertex; +int GLAD_GL_ARB_point_parameters; +int GLAD_GL_ARB_shader_image_load_store; +int GLAD_GL_ARB_conditional_render_inverted; +int GLAD_GL_HP_occlusion_test; +int GLAD_GL_ARB_ES3_compatibility; +int GLAD_GL_EXT_texture_array; +int GLAD_GL_ARB_texture_buffer_object_rgb32; +int GLAD_GL_NV_bindless_multi_draw_indirect; +int GLAD_GL_SGIX_texture_multi_buffer; +int GLAD_GL_EXT_transform_feedback; +int GLAD_GL_KHR_texture_compression_astc_ldr; +int GLAD_GL_3DFX_multisample; +int GLAD_GL_INTEL_fragment_shader_ordering; +int GLAD_GL_ARB_texture_env_dot3; +int GLAD_GL_NV_gpu_program4; +int GLAD_GL_NV_gpu_program5; +int GLAD_GL_NV_float_buffer; +int GLAD_GL_SGIS_texture_edge_clamp; +int GLAD_GL_ARB_framebuffer_sRGB; +int GLAD_GL_SUN_slice_accum; +int GLAD_GL_EXT_index_texture; +int GLAD_GL_EXT_shader_image_load_formatted; +int GLAD_GL_ARB_geometry_shader4; +int GLAD_GL_EXT_separate_specular_color; +int GLAD_GL_NV_fog_distance; +int GLAD_GL_NV_conservative_raster; +int GLAD_GL_SUN_convolution_border_modes; +int GLAD_GL_SGIX_sprite; +int GLAD_GL_ARB_get_program_binary; +int GLAD_GL_ARB_timer_query; +int GLAD_GL_AMD_occlusion_query_event; +int GLAD_GL_SGIS_multisample; +int GLAD_GL_EXT_framebuffer_object; +int GLAD_GL_EXT_vertex_weighting; +int GLAD_GL_ARB_vertex_array_bgra; +int GLAD_GL_APPLE_vertex_array_range; +int GLAD_GL_AMD_query_buffer_object; +int GLAD_GL_NV_register_combiners; +int GLAD_GL_ARB_draw_buffers; +int GLAD_GL_ARB_clear_texture; +int GLAD_GL_NV_fragment_program; +int GLAD_GL_SGI_color_matrix; +int GLAD_GL_EXT_cull_vertex; +int GLAD_GL_EXT_texture_sRGB; +int GLAD_GL_APPLE_row_bytes; +int GLAD_GL_NV_texgen_reflection; +int GLAD_GL_IBM_multimode_draw_arrays; +int GLAD_GL_APPLE_vertex_array_object; +int GLAD_GL_3DFX_texture_compression_FXT1; +int GLAD_GL_GREMEDY_frame_terminator; +int GLAD_GL_AMD_conservative_depth; +int GLAD_GL_ARB_texture_float; +int GLAD_GL_ARB_compressed_texture_pixel_storage; +int GLAD_GL_SGIS_detail_texture; +int GLAD_GL_ARB_draw_instanced; +int GLAD_GL_OES_read_format; +int GLAD_GL_ATI_texture_float; +int GLAD_GL_WIN_specular_fog; +int GLAD_GL_AMD_vertex_shader_layer; +int GLAD_GL_ARB_shading_language_include; +int GLAD_GL_APPLE_client_storage; +int GLAD_GL_WIN_phong_shading; +int GLAD_GL_INGR_blend_func_separate; +int GLAD_GL_NV_path_rendering; +int GLAD_GL_NV_conservative_raster_dilate; +int GLAD_GL_ARB_texture_barrier; +int GLAD_GL_ATI_vertex_streams; +int GLAD_GL_ARB_post_depth_coverage; +int GLAD_GL_NV_occlusion_query; +int GLAD_GL_APPLE_rgb_422; +int GLAD_GL_ARB_direct_state_access; +int GLAD_GL_ARB_gpu_shader_int64; +int GLAD_GL_ARB_seamless_cube_map; +int GLAD_GL_ARB_cull_distance; +int GLAD_GL_NV_vdpau_interop; +int GLAD_GL_ARB_occlusion_query2; +int GLAD_GL_ARB_internalformat_query2; +int GLAD_GL_EXT_texture_filter_anisotropic; +int GLAD_GL_SUN_vertex; +int GLAD_GL_ARB_sparse_texture; +int GLAD_GL_SGIS_texture_lod; +int GLAD_GL_NV_vertex_program3; +int GLAD_GL_NV_gpu_shader5; +int GLAD_GL_NV_vertex_program4; +int GLAD_GL_AMD_transform_feedback3_lines_triangles; +int GLAD_GL_SGIS_fog_function; +int GLAD_GL_EXT_x11_sync_object; +int GLAD_GL_ARB_sync; +int GLAD_GL_NV_sample_locations; +int GLAD_GL_ARB_compute_variable_group_size; +int GLAD_GL_OES_fixed_point; +int GLAD_GL_NV_blend_square; +int GLAD_GL_EXT_framebuffer_multisample; +int GLAD_GL_ARB_gpu_shader5; +int GLAD_GL_SGIS_texture4D; +int GLAD_GL_EXT_texture3D; +int GLAD_GL_ARB_multitexture; +int GLAD_GL_EXT_secondary_color; +int GLAD_GL_NV_parameter_buffer_object2; +int GLAD_GL_ATI_vertex_array_object; +int GLAD_GL_ARB_parallel_shader_compile; +int GLAD_GL_NVX_gpu_memory_info; +int GLAD_GL_SGIX_igloo_interface; +int GLAD_GL_SGIS_point_line_texgen; +int GLAD_GL_ARB_sample_locations; +int GLAD_GL_ARB_sparse_buffer; +int GLAD_GL_EXT_draw_range_elements; +int GLAD_GL_SGIX_blend_alpha_minmax; +int GLAD_GL_KHR_context_flush_control; +PFNGLELEMENTPOINTERAPPLEPROC glad_glElementPointerAPPLE; +PFNGLDRAWELEMENTARRAYAPPLEPROC glad_glDrawElementArrayAPPLE; +PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC glad_glDrawRangeElementArrayAPPLE; +PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC glad_glMultiDrawElementArrayAPPLE; +PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC glad_glMultiDrawRangeElementArrayAPPLE; +PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC glad_glMultiDrawArraysIndirectAMD; +PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC glad_glMultiDrawElementsIndirectAMD; +PFNGLTAGSAMPLEBUFFERSGIXPROC glad_glTagSampleBufferSGIX; +PFNGLPOINTPARAMETERINVPROC glad_glPointParameteriNV; +PFNGLPOINTPARAMETERIVNVPROC glad_glPointParameterivNV; +PFNGLSTENCILOPSEPARATEATIPROC glad_glStencilOpSeparateATI; +PFNGLSTENCILFUNCSEPARATEATIPROC glad_glStencilFuncSeparateATI; +PFNGLTEXBUFFEREXTPROC glad_glTexBufferEXT; +PFNGLWEIGHTBVARBPROC glad_glWeightbvARB; +PFNGLWEIGHTSVARBPROC glad_glWeightsvARB; +PFNGLWEIGHTIVARBPROC glad_glWeightivARB; +PFNGLWEIGHTFVARBPROC glad_glWeightfvARB; +PFNGLWEIGHTDVARBPROC glad_glWeightdvARB; +PFNGLWEIGHTUBVARBPROC glad_glWeightubvARB; +PFNGLWEIGHTUSVARBPROC glad_glWeightusvARB; +PFNGLWEIGHTUIVARBPROC glad_glWeightuivARB; +PFNGLWEIGHTPOINTERARBPROC glad_glWeightPointerARB; +PFNGLVERTEXBLENDARBPROC glad_glVertexBlendARB; +PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC glad_glFramebufferTextureMultiviewOVR; +PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv; +PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex; +PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName; +PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv; +PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation; +PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glad_glGetProgramResourceLocationIndex; +PFNGLINDEXFUNCEXTPROC glad_glIndexFuncEXT; +PFNGLMAKEBUFFERRESIDENTNVPROC glad_glMakeBufferResidentNV; +PFNGLMAKEBUFFERNONRESIDENTNVPROC glad_glMakeBufferNonResidentNV; +PFNGLISBUFFERRESIDENTNVPROC glad_glIsBufferResidentNV; +PFNGLMAKENAMEDBUFFERRESIDENTNVPROC glad_glMakeNamedBufferResidentNV; +PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC glad_glMakeNamedBufferNonResidentNV; +PFNGLISNAMEDBUFFERRESIDENTNVPROC glad_glIsNamedBufferResidentNV; +PFNGLGETBUFFERPARAMETERUI64VNVPROC glad_glGetBufferParameterui64vNV; +PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC glad_glGetNamedBufferParameterui64vNV; +PFNGLGETINTEGERUI64VNVPROC glad_glGetIntegerui64vNV; +PFNGLUNIFORMUI64NVPROC glad_glUniformui64NV; +PFNGLUNIFORMUI64VNVPROC glad_glUniformui64vNV; +PFNGLGETUNIFORMUI64VNVPROC glad_glGetUniformui64vNV; +PFNGLPROGRAMUNIFORMUI64NVPROC glad_glProgramUniformui64NV; +PFNGLPROGRAMUNIFORMUI64VNVPROC glad_glProgramUniformui64vNV; +PFNGLCOLORSUBTABLEEXTPROC glad_glColorSubTableEXT; +PFNGLCOPYCOLORSUBTABLEEXTPROC glad_glCopyColorSubTableEXT; +PFNGLFINISHTEXTURESUNXPROC glad_glFinishTextureSUNX; +PFNGLMULTIDRAWARRAYSEXTPROC glad_glMultiDrawArraysEXT; +PFNGLMULTIDRAWELEMENTSEXTPROC glad_glMultiDrawElementsEXT; +PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv; +PFNGLBEGINCONDITIONALRENDERNVPROC glad_glBeginConditionalRenderNV; +PFNGLENDCONDITIONALRENDERNVPROC glad_glEndConditionalRenderNV; +PFNGLRESIZEBUFFERSMESAPROC glad_glResizeBuffersMESA; +PFNGLTEXTUREVIEWPROC glad_glTextureView; +PFNGLCONVOLUTIONFILTER1DEXTPROC glad_glConvolutionFilter1DEXT; +PFNGLCONVOLUTIONFILTER2DEXTPROC glad_glConvolutionFilter2DEXT; +PFNGLCONVOLUTIONPARAMETERFEXTPROC glad_glConvolutionParameterfEXT; +PFNGLCONVOLUTIONPARAMETERFVEXTPROC glad_glConvolutionParameterfvEXT; +PFNGLCONVOLUTIONPARAMETERIEXTPROC glad_glConvolutionParameteriEXT; +PFNGLCONVOLUTIONPARAMETERIVEXTPROC glad_glConvolutionParameterivEXT; +PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC glad_glCopyConvolutionFilter1DEXT; +PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC glad_glCopyConvolutionFilter2DEXT; +PFNGLGETCONVOLUTIONFILTEREXTPROC glad_glGetConvolutionFilterEXT; +PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC glad_glGetConvolutionParameterfvEXT; +PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC glad_glGetConvolutionParameterivEXT; +PFNGLGETSEPARABLEFILTEREXTPROC glad_glGetSeparableFilterEXT; +PFNGLSEPARABLEFILTER2DEXTPROC glad_glSeparableFilter2DEXT; +PFNGLVERTEXATTRIBL1I64NVPROC glad_glVertexAttribL1i64NV; +PFNGLVERTEXATTRIBL2I64NVPROC glad_glVertexAttribL2i64NV; +PFNGLVERTEXATTRIBL3I64NVPROC glad_glVertexAttribL3i64NV; +PFNGLVERTEXATTRIBL4I64NVPROC glad_glVertexAttribL4i64NV; +PFNGLVERTEXATTRIBL1I64VNVPROC glad_glVertexAttribL1i64vNV; +PFNGLVERTEXATTRIBL2I64VNVPROC glad_glVertexAttribL2i64vNV; +PFNGLVERTEXATTRIBL3I64VNVPROC glad_glVertexAttribL3i64vNV; +PFNGLVERTEXATTRIBL4I64VNVPROC glad_glVertexAttribL4i64vNV; +PFNGLVERTEXATTRIBL1UI64NVPROC glad_glVertexAttribL1ui64NV; +PFNGLVERTEXATTRIBL2UI64NVPROC glad_glVertexAttribL2ui64NV; +PFNGLVERTEXATTRIBL3UI64NVPROC glad_glVertexAttribL3ui64NV; +PFNGLVERTEXATTRIBL4UI64NVPROC glad_glVertexAttribL4ui64NV; +PFNGLVERTEXATTRIBL1UI64VNVPROC glad_glVertexAttribL1ui64vNV; +PFNGLVERTEXATTRIBL2UI64VNVPROC glad_glVertexAttribL2ui64vNV; +PFNGLVERTEXATTRIBL3UI64VNVPROC glad_glVertexAttribL3ui64vNV; +PFNGLVERTEXATTRIBL4UI64VNVPROC glad_glVertexAttribL4ui64vNV; +PFNGLGETVERTEXATTRIBLI64VNVPROC glad_glGetVertexAttribLi64vNV; +PFNGLGETVERTEXATTRIBLUI64VNVPROC glad_glGetVertexAttribLui64vNV; +PFNGLVERTEXATTRIBLFORMATNVPROC glad_glVertexAttribLFormatNV; +PFNGLCOLORTABLEEXTPROC glad_glColorTableEXT; +PFNGLGETCOLORTABLEEXTPROC glad_glGetColorTableEXT; +PFNGLGETCOLORTABLEPARAMETERIVEXTPROC glad_glGetColorTableParameterivEXT; +PFNGLGETCOLORTABLEPARAMETERFVEXTPROC glad_glGetColorTableParameterfvEXT; +PFNGLTEXBUFFERARBPROC glad_glTexBufferARB; +PFNGLPNTRIANGLESIATIPROC glad_glPNTrianglesiATI; +PFNGLPNTRIANGLESFATIPROC glad_glPNTrianglesfATI; +PFNGLFLUSHRASTERSGIXPROC glad_glFlushRasterSGIX; +PFNGLAPPLYTEXTUREEXTPROC glad_glApplyTextureEXT; +PFNGLTEXTURELIGHTEXTPROC glad_glTextureLightEXT; +PFNGLTEXTUREMATERIALEXTPROC glad_glTextureMaterialEXT; +PFNGLIMAGETRANSFORMPARAMETERIHPPROC glad_glImageTransformParameteriHP; +PFNGLIMAGETRANSFORMPARAMETERFHPPROC glad_glImageTransformParameterfHP; +PFNGLIMAGETRANSFORMPARAMETERIVHPPROC glad_glImageTransformParameterivHP; +PFNGLIMAGETRANSFORMPARAMETERFVHPPROC glad_glImageTransformParameterfvHP; +PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC glad_glGetImageTransformParameterivHP; +PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC glad_glGetImageTransformParameterfvHP; +PFNGLBLENDFUNCINDEXEDAMDPROC glad_glBlendFuncIndexedAMD; +PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC glad_glBlendFuncSeparateIndexedAMD; +PFNGLBLENDEQUATIONINDEXEDAMDPROC glad_glBlendEquationIndexedAMD; +PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC glad_glBlendEquationSeparateIndexedAMD; +PFNGLTEXTURERANGEAPPLEPROC glad_glTextureRangeAPPLE; +PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC glad_glGetTexParameterPointervAPPLE; +PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC glad_glFramebufferTextureLayerEXT; +PFNGLTEXTUREBARRIERNVPROC glad_glTextureBarrierNV; +PFNGLTBUFFERMASK3DFXPROC glad_glTbufferMask3DFX; +PFNGLFRAMETERMINATORGREMEDYPROC glad_glFrameTerminatorGREMEDY; +PFNGLUSESHADERPROGRAMEXTPROC glad_glUseShaderProgramEXT; +PFNGLACTIVEPROGRAMEXTPROC glad_glActiveProgramEXT; +PFNGLCREATESHADERPROGRAMEXTPROC glad_glCreateShaderProgramEXT; +PFNGLACTIVESHADERPROGRAMEXTPROC glad_glActiveShaderProgramEXT; +PFNGLBINDPROGRAMPIPELINEEXTPROC glad_glBindProgramPipelineEXT; +PFNGLCREATESHADERPROGRAMVEXTPROC glad_glCreateShaderProgramvEXT; +PFNGLDELETEPROGRAMPIPELINESEXTPROC glad_glDeleteProgramPipelinesEXT; +PFNGLGENPROGRAMPIPELINESEXTPROC glad_glGenProgramPipelinesEXT; +PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC glad_glGetProgramPipelineInfoLogEXT; +PFNGLGETPROGRAMPIPELINEIVEXTPROC glad_glGetProgramPipelineivEXT; +PFNGLISPROGRAMPIPELINEEXTPROC glad_glIsProgramPipelineEXT; +PFNGLPROGRAMPARAMETERIEXTPROC glad_glProgramParameteriEXT; +PFNGLPROGRAMUNIFORM1FEXTPROC glad_glProgramUniform1fEXT; +PFNGLPROGRAMUNIFORM1FVEXTPROC glad_glProgramUniform1fvEXT; +PFNGLPROGRAMUNIFORM1IEXTPROC glad_glProgramUniform1iEXT; +PFNGLPROGRAMUNIFORM1IVEXTPROC glad_glProgramUniform1ivEXT; +PFNGLPROGRAMUNIFORM2FEXTPROC glad_glProgramUniform2fEXT; +PFNGLPROGRAMUNIFORM2FVEXTPROC glad_glProgramUniform2fvEXT; +PFNGLPROGRAMUNIFORM2IEXTPROC glad_glProgramUniform2iEXT; +PFNGLPROGRAMUNIFORM2IVEXTPROC glad_glProgramUniform2ivEXT; +PFNGLPROGRAMUNIFORM3FEXTPROC glad_glProgramUniform3fEXT; +PFNGLPROGRAMUNIFORM3FVEXTPROC glad_glProgramUniform3fvEXT; +PFNGLPROGRAMUNIFORM3IEXTPROC glad_glProgramUniform3iEXT; +PFNGLPROGRAMUNIFORM3IVEXTPROC glad_glProgramUniform3ivEXT; +PFNGLPROGRAMUNIFORM4FEXTPROC glad_glProgramUniform4fEXT; +PFNGLPROGRAMUNIFORM4FVEXTPROC glad_glProgramUniform4fvEXT; +PFNGLPROGRAMUNIFORM4IEXTPROC glad_glProgramUniform4iEXT; +PFNGLPROGRAMUNIFORM4IVEXTPROC glad_glProgramUniform4ivEXT; +PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC glad_glProgramUniformMatrix2fvEXT; +PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC glad_glProgramUniformMatrix3fvEXT; +PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC glad_glProgramUniformMatrix4fvEXT; +PFNGLUSEPROGRAMSTAGESEXTPROC glad_glUseProgramStagesEXT; +PFNGLVALIDATEPROGRAMPIPELINEEXTPROC glad_glValidateProgramPipelineEXT; +PFNGLPROGRAMUNIFORM1UIEXTPROC glad_glProgramUniform1uiEXT; +PFNGLPROGRAMUNIFORM2UIEXTPROC glad_glProgramUniform2uiEXT; +PFNGLPROGRAMUNIFORM3UIEXTPROC glad_glProgramUniform3uiEXT; +PFNGLPROGRAMUNIFORM4UIEXTPROC glad_glProgramUniform4uiEXT; +PFNGLPROGRAMUNIFORM1UIVEXTPROC glad_glProgramUniform1uivEXT; +PFNGLPROGRAMUNIFORM2UIVEXTPROC glad_glProgramUniform2uivEXT; +PFNGLPROGRAMUNIFORM3UIVEXTPROC glad_glProgramUniform3uivEXT; +PFNGLPROGRAMUNIFORM4UIVEXTPROC glad_glProgramUniform4uivEXT; +PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC glad_glProgramUniformMatrix2x3fvEXT; +PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC glad_glProgramUniformMatrix3x2fvEXT; +PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC glad_glProgramUniformMatrix2x4fvEXT; +PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC glad_glProgramUniformMatrix4x2fvEXT; +PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC glad_glProgramUniformMatrix3x4fvEXT; +PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC glad_glProgramUniformMatrix4x3fvEXT; +PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC glad_glTexImage2DMultisampleCoverageNV; +PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC glad_glTexImage3DMultisampleCoverageNV; +PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC glad_glTextureImage2DMultisampleNV; +PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC glad_glTextureImage3DMultisampleNV; +PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC glad_glTextureImage2DMultisampleCoverageNV; +PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC glad_glTextureImage3DMultisampleCoverageNV; +PFNGLDELETEOBJECTARBPROC glad_glDeleteObjectARB; +PFNGLGETHANDLEARBPROC glad_glGetHandleARB; +PFNGLDETACHOBJECTARBPROC glad_glDetachObjectARB; +PFNGLCREATESHADEROBJECTARBPROC glad_glCreateShaderObjectARB; +PFNGLSHADERSOURCEARBPROC glad_glShaderSourceARB; +PFNGLCOMPILESHADERARBPROC glad_glCompileShaderARB; +PFNGLCREATEPROGRAMOBJECTARBPROC glad_glCreateProgramObjectARB; +PFNGLATTACHOBJECTARBPROC glad_glAttachObjectARB; +PFNGLLINKPROGRAMARBPROC glad_glLinkProgramARB; +PFNGLUSEPROGRAMOBJECTARBPROC glad_glUseProgramObjectARB; +PFNGLVALIDATEPROGRAMARBPROC glad_glValidateProgramARB; +PFNGLUNIFORM1FARBPROC glad_glUniform1fARB; +PFNGLUNIFORM2FARBPROC glad_glUniform2fARB; +PFNGLUNIFORM3FARBPROC glad_glUniform3fARB; +PFNGLUNIFORM4FARBPROC glad_glUniform4fARB; +PFNGLUNIFORM1IARBPROC glad_glUniform1iARB; +PFNGLUNIFORM2IARBPROC glad_glUniform2iARB; +PFNGLUNIFORM3IARBPROC glad_glUniform3iARB; +PFNGLUNIFORM4IARBPROC glad_glUniform4iARB; +PFNGLUNIFORM1FVARBPROC glad_glUniform1fvARB; +PFNGLUNIFORM2FVARBPROC glad_glUniform2fvARB; +PFNGLUNIFORM3FVARBPROC glad_glUniform3fvARB; +PFNGLUNIFORM4FVARBPROC glad_glUniform4fvARB; +PFNGLUNIFORM1IVARBPROC glad_glUniform1ivARB; +PFNGLUNIFORM2IVARBPROC glad_glUniform2ivARB; +PFNGLUNIFORM3IVARBPROC glad_glUniform3ivARB; +PFNGLUNIFORM4IVARBPROC glad_glUniform4ivARB; +PFNGLUNIFORMMATRIX2FVARBPROC glad_glUniformMatrix2fvARB; +PFNGLUNIFORMMATRIX3FVARBPROC glad_glUniformMatrix3fvARB; +PFNGLUNIFORMMATRIX4FVARBPROC glad_glUniformMatrix4fvARB; +PFNGLGETOBJECTPARAMETERFVARBPROC glad_glGetObjectParameterfvARB; +PFNGLGETOBJECTPARAMETERIVARBPROC glad_glGetObjectParameterivARB; +PFNGLGETINFOLOGARBPROC glad_glGetInfoLogARB; +PFNGLGETATTACHEDOBJECTSARBPROC glad_glGetAttachedObjectsARB; +PFNGLGETUNIFORMLOCATIONARBPROC glad_glGetUniformLocationARB; +PFNGLGETACTIVEUNIFORMARBPROC glad_glGetActiveUniformARB; +PFNGLGETUNIFORMFVARBPROC glad_glGetUniformfvARB; +PFNGLGETUNIFORMIVARBPROC glad_glGetUniformivARB; +PFNGLGETSHADERSOURCEARBPROC glad_glGetShaderSourceARB; +PFNGLTEXBUMPPARAMETERIVATIPROC glad_glTexBumpParameterivATI; +PFNGLTEXBUMPPARAMETERFVATIPROC glad_glTexBumpParameterfvATI; +PFNGLGETTEXBUMPPARAMETERIVATIPROC glad_glGetTexBumpParameterivATI; +PFNGLGETTEXBUMPPARAMETERFVATIPROC glad_glGetTexBumpParameterfvATI; +PFNGLMAPOBJECTBUFFERATIPROC glad_glMapObjectBufferATI; +PFNGLUNMAPOBJECTBUFFERATIPROC glad_glUnmapObjectBufferATI; +PFNGLGETGRAPHICSRESETSTATUSARBPROC glad_glGetGraphicsResetStatusARB; +PFNGLGETNTEXIMAGEARBPROC glad_glGetnTexImageARB; +PFNGLREADNPIXELSARBPROC glad_glReadnPixelsARB; +PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC glad_glGetnCompressedTexImageARB; +PFNGLGETNUNIFORMFVARBPROC glad_glGetnUniformfvARB; +PFNGLGETNUNIFORMIVARBPROC glad_glGetnUniformivARB; +PFNGLGETNUNIFORMUIVARBPROC glad_glGetnUniformuivARB; +PFNGLGETNUNIFORMDVARBPROC glad_glGetnUniformdvARB; +PFNGLGETNMAPDVARBPROC glad_glGetnMapdvARB; +PFNGLGETNMAPFVARBPROC glad_glGetnMapfvARB; +PFNGLGETNMAPIVARBPROC glad_glGetnMapivARB; +PFNGLGETNPIXELMAPFVARBPROC glad_glGetnPixelMapfvARB; +PFNGLGETNPIXELMAPUIVARBPROC glad_glGetnPixelMapuivARB; +PFNGLGETNPIXELMAPUSVARBPROC glad_glGetnPixelMapusvARB; +PFNGLGETNPOLYGONSTIPPLEARBPROC glad_glGetnPolygonStippleARB; +PFNGLGETNCOLORTABLEARBPROC glad_glGetnColorTableARB; +PFNGLGETNCONVOLUTIONFILTERARBPROC glad_glGetnConvolutionFilterARB; +PFNGLGETNSEPARABLEFILTERARBPROC glad_glGetnSeparableFilterARB; +PFNGLGETNHISTOGRAMARBPROC glad_glGetnHistogramARB; +PFNGLGETNMINMAXARBPROC glad_glGetnMinmaxARB; +PFNGLPIXELDATARANGENVPROC glad_glPixelDataRangeNV; +PFNGLFLUSHPIXELDATARANGENVPROC glad_glFlushPixelDataRangeNV; +PFNGLBLITFRAMEBUFFEREXTPROC glad_glBlitFramebufferEXT; +PFNGLUNIFORM1DPROC glad_glUniform1d; +PFNGLUNIFORM2DPROC glad_glUniform2d; +PFNGLUNIFORM3DPROC glad_glUniform3d; +PFNGLUNIFORM4DPROC glad_glUniform4d; +PFNGLUNIFORM1DVPROC glad_glUniform1dv; +PFNGLUNIFORM2DVPROC glad_glUniform2dv; +PFNGLUNIFORM3DVPROC glad_glUniform3dv; +PFNGLUNIFORM4DVPROC glad_glUniform4dv; +PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv; +PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv; +PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv; +PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv; +PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv; +PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv; +PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv; +PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv; +PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv; +PFNGLGETUNIFORMDVPROC glad_glGetUniformdv; +PFNGLCREATESTATESNVPROC glad_glCreateStatesNV; +PFNGLDELETESTATESNVPROC glad_glDeleteStatesNV; +PFNGLISSTATENVPROC glad_glIsStateNV; +PFNGLSTATECAPTURENVPROC glad_glStateCaptureNV; +PFNGLGETCOMMANDHEADERNVPROC glad_glGetCommandHeaderNV; +PFNGLGETSTAGEINDEXNVPROC glad_glGetStageIndexNV; +PFNGLDRAWCOMMANDSNVPROC glad_glDrawCommandsNV; +PFNGLDRAWCOMMANDSADDRESSNVPROC glad_glDrawCommandsAddressNV; +PFNGLDRAWCOMMANDSSTATESNVPROC glad_glDrawCommandsStatesNV; +PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC glad_glDrawCommandsStatesAddressNV; +PFNGLCREATECOMMANDLISTSNVPROC glad_glCreateCommandListsNV; +PFNGLDELETECOMMANDLISTSNVPROC glad_glDeleteCommandListsNV; +PFNGLISCOMMANDLISTNVPROC glad_glIsCommandListNV; +PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC glad_glListDrawCommandsStatesClientNV; +PFNGLCOMMANDLISTSEGMENTSNVPROC glad_glCommandListSegmentsNV; +PFNGLCOMPILECOMMANDLISTNVPROC glad_glCompileCommandListNV; +PFNGLCALLCOMMANDLISTNVPROC glad_glCallCommandListNV; +PFNGLVERTEXWEIGHTFEXTPROC glad_glVertexWeightfEXT; +PFNGLVERTEXWEIGHTFVEXTPROC glad_glVertexWeightfvEXT; +PFNGLVERTEXWEIGHTPOINTEREXTPROC glad_glVertexWeightPointerEXT; +PFNGLSTRINGMARKERGREMEDYPROC glad_glStringMarkerGREMEDY; +PFNGLTEXSUBIMAGE1DEXTPROC glad_glTexSubImage1DEXT; +PFNGLTEXSUBIMAGE2DEXTPROC glad_glTexSubImage2DEXT; +PFNGLPROGRAMENVPARAMETERS4FVEXTPROC glad_glProgramEnvParameters4fvEXT; +PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC glad_glProgramLocalParameters4fvEXT; +PFNGLMAPCONTROLPOINTSNVPROC glad_glMapControlPointsNV; +PFNGLMAPPARAMETERIVNVPROC glad_glMapParameterivNV; +PFNGLMAPPARAMETERFVNVPROC glad_glMapParameterfvNV; +PFNGLGETMAPCONTROLPOINTSNVPROC glad_glGetMapControlPointsNV; +PFNGLGETMAPPARAMETERIVNVPROC glad_glGetMapParameterivNV; +PFNGLGETMAPPARAMETERFVNVPROC glad_glGetMapParameterfvNV; +PFNGLGETMAPATTRIBPARAMETERIVNVPROC glad_glGetMapAttribParameterivNV; +PFNGLGETMAPATTRIBPARAMETERFVNVPROC glad_glGetMapAttribParameterfvNV; +PFNGLEVALMAPSNVPROC glad_glEvalMapsNV; +PFNGLGETTEXFILTERFUNCSGISPROC glad_glGetTexFilterFuncSGIS; +PFNGLTEXFILTERFUNCSGISPROC glad_glTexFilterFuncSGIS; +PFNGLGETPERFMONITORGROUPSAMDPROC glad_glGetPerfMonitorGroupsAMD; +PFNGLGETPERFMONITORCOUNTERSAMDPROC glad_glGetPerfMonitorCountersAMD; +PFNGLGETPERFMONITORGROUPSTRINGAMDPROC glad_glGetPerfMonitorGroupStringAMD; +PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC glad_glGetPerfMonitorCounterStringAMD; +PFNGLGETPERFMONITORCOUNTERINFOAMDPROC glad_glGetPerfMonitorCounterInfoAMD; +PFNGLGENPERFMONITORSAMDPROC glad_glGenPerfMonitorsAMD; +PFNGLDELETEPERFMONITORSAMDPROC glad_glDeletePerfMonitorsAMD; +PFNGLSELECTPERFMONITORCOUNTERSAMDPROC glad_glSelectPerfMonitorCountersAMD; +PFNGLBEGINPERFMONITORAMDPROC glad_glBeginPerfMonitorAMD; +PFNGLENDPERFMONITORAMDPROC glad_glEndPerfMonitorAMD; +PFNGLGETPERFMONITORCOUNTERDATAAMDPROC glad_glGetPerfMonitorCounterDataAMD; +PFNGLSTENCILCLEARTAGEXTPROC glad_glStencilClearTagEXT; +PFNGLPRESENTFRAMEKEYEDNVPROC glad_glPresentFrameKeyedNV; +PFNGLPRESENTFRAMEDUALFILLNVPROC glad_glPresentFrameDualFillNV; +PFNGLGETVIDEOIVNVPROC glad_glGetVideoivNV; +PFNGLGETVIDEOUIVNVPROC glad_glGetVideouivNV; +PFNGLGETVIDEOI64VNVPROC glad_glGetVideoi64vNV; +PFNGLGETVIDEOUI64VNVPROC glad_glGetVideoui64vNV; +PFNGLFRAMEZOOMSGIXPROC glad_glFrameZoomSGIX; +PFNGLBEGINTRANSFORMFEEDBACKNVPROC glad_glBeginTransformFeedbackNV; +PFNGLENDTRANSFORMFEEDBACKNVPROC glad_glEndTransformFeedbackNV; +PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC glad_glTransformFeedbackAttribsNV; +PFNGLBINDBUFFERRANGENVPROC glad_glBindBufferRangeNV; +PFNGLBINDBUFFEROFFSETNVPROC glad_glBindBufferOffsetNV; +PFNGLBINDBUFFERBASENVPROC glad_glBindBufferBaseNV; +PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC glad_glTransformFeedbackVaryingsNV; +PFNGLACTIVEVARYINGNVPROC glad_glActiveVaryingNV; +PFNGLGETVARYINGLOCATIONNVPROC glad_glGetVaryingLocationNV; +PFNGLGETACTIVEVARYINGNVPROC glad_glGetActiveVaryingNV; +PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC glad_glGetTransformFeedbackVaryingNV; +PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC glad_glTransformFeedbackStreamAttribsNV; +PFNGLPROGRAMNAMEDPARAMETER4FNVPROC glad_glProgramNamedParameter4fNV; +PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC glad_glProgramNamedParameter4fvNV; +PFNGLPROGRAMNAMEDPARAMETER4DNVPROC glad_glProgramNamedParameter4dNV; +PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC glad_glProgramNamedParameter4dvNV; +PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC glad_glGetProgramNamedParameterfvNV; +PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC glad_glGetProgramNamedParameterdvNV; +PFNGLSTENCILOPVALUEAMDPROC glad_glStencilOpValueAMD; +PFNGLVERTEXATTRIBDIVISORARBPROC glad_glVertexAttribDivisorARB; +PFNGLPOLYGONOFFSETEXTPROC glad_glPolygonOffsetEXT; +PFNGLGETGRAPHICSRESETSTATUSPROC glad_glGetGraphicsResetStatus; +PFNGLREADNPIXELSPROC glad_glReadnPixels; +PFNGLGETNUNIFORMFVPROC glad_glGetnUniformfv; +PFNGLGETNUNIFORMIVPROC glad_glGetnUniformiv; +PFNGLGETNUNIFORMUIVPROC glad_glGetnUniformuiv; +PFNGLGETGRAPHICSRESETSTATUSKHRPROC glad_glGetGraphicsResetStatusKHR; +PFNGLREADNPIXELSKHRPROC glad_glReadnPixelsKHR; +PFNGLGETNUNIFORMFVKHRPROC glad_glGetnUniformfvKHR; +PFNGLGETNUNIFORMIVKHRPROC glad_glGetnUniformivKHR; +PFNGLGETNUNIFORMUIVKHRPROC glad_glGetnUniformuivKHR; +PFNGLTEXSTORAGESPARSEAMDPROC glad_glTexStorageSparseAMD; +PFNGLTEXTURESTORAGESPARSEAMDPROC glad_glTextureStorageSparseAMD; +PFNGLCLIPCONTROLPROC glad_glClipControl; +PFNGLFRAGMENTCOVERAGECOLORNVPROC glad_glFragmentCoverageColorNV; +PFNGLDELETEFENCESNVPROC glad_glDeleteFencesNV; +PFNGLGENFENCESNVPROC glad_glGenFencesNV; +PFNGLISFENCENVPROC glad_glIsFenceNV; +PFNGLTESTFENCENVPROC glad_glTestFenceNV; +PFNGLGETFENCEIVNVPROC glad_glGetFenceivNV; +PFNGLFINISHFENCENVPROC glad_glFinishFenceNV; +PFNGLSETFENCENVPROC glad_glSetFenceNV; +PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange; +PFNGLDRAWMESHARRAYSSUNPROC glad_glDrawMeshArraysSUN; +PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer; +PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat; +PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat; +PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat; +PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding; +PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor; +PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri; +PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv; +PFNGLCREATESYNCFROMCLEVENTARBPROC glad_glCreateSyncFromCLeventARB; +PFNGLCLEARDEPTHFOESPROC glad_glClearDepthfOES; +PFNGLCLIPPLANEFOESPROC glad_glClipPlanefOES; +PFNGLDEPTHRANGEFOESPROC glad_glDepthRangefOES; +PFNGLFRUSTUMFOESPROC glad_glFrustumfOES; +PFNGLGETCLIPPLANEFOESPROC glad_glGetClipPlanefOES; +PFNGLORTHOFOESPROC glad_glOrthofOES; +PFNGLPRIMITIVERESTARTNVPROC glad_glPrimitiveRestartNV; +PFNGLPRIMITIVERESTARTINDEXNVPROC glad_glPrimitiveRestartIndexNV; +PFNGLGLOBALALPHAFACTORBSUNPROC glad_glGlobalAlphaFactorbSUN; +PFNGLGLOBALALPHAFACTORSSUNPROC glad_glGlobalAlphaFactorsSUN; +PFNGLGLOBALALPHAFACTORISUNPROC glad_glGlobalAlphaFactoriSUN; +PFNGLGLOBALALPHAFACTORFSUNPROC glad_glGlobalAlphaFactorfSUN; +PFNGLGLOBALALPHAFACTORDSUNPROC glad_glGlobalAlphaFactordSUN; +PFNGLGLOBALALPHAFACTORUBSUNPROC glad_glGlobalAlphaFactorubSUN; +PFNGLGLOBALALPHAFACTORUSSUNPROC glad_glGlobalAlphaFactorusSUN; +PFNGLGLOBALALPHAFACTORUISUNPROC glad_glGlobalAlphaFactoruiSUN; +PFNGLARETEXTURESRESIDENTEXTPROC glad_glAreTexturesResidentEXT; +PFNGLBINDTEXTUREEXTPROC glad_glBindTextureEXT; +PFNGLDELETETEXTURESEXTPROC glad_glDeleteTexturesEXT; +PFNGLGENTEXTURESEXTPROC glad_glGenTexturesEXT; +PFNGLISTEXTUREEXTPROC glad_glIsTextureEXT; +PFNGLPRIORITIZETEXTURESEXTPROC glad_glPrioritizeTexturesEXT; +PFNGLGENNAMESAMDPROC glad_glGenNamesAMD; +PFNGLDELETENAMESAMDPROC glad_glDeleteNamesAMD; +PFNGLISNAMEAMDPROC glad_glIsNameAMD; +PFNGLBUFFERSTORAGEPROC glad_glBufferStorage; +PFNGLENABLEVERTEXATTRIBAPPLEPROC glad_glEnableVertexAttribAPPLE; +PFNGLDISABLEVERTEXATTRIBAPPLEPROC glad_glDisableVertexAttribAPPLE; +PFNGLISVERTEXATTRIBENABLEDAPPLEPROC glad_glIsVertexAttribEnabledAPPLE; +PFNGLMAPVERTEXATTRIB1DAPPLEPROC glad_glMapVertexAttrib1dAPPLE; +PFNGLMAPVERTEXATTRIB1FAPPLEPROC glad_glMapVertexAttrib1fAPPLE; +PFNGLMAPVERTEXATTRIB2DAPPLEPROC glad_glMapVertexAttrib2dAPPLE; +PFNGLMAPVERTEXATTRIB2FAPPLEPROC glad_glMapVertexAttrib2fAPPLE; +PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase; +PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange; +PFNGLBINDTEXTURESPROC glad_glBindTextures; +PFNGLBINDSAMPLERSPROC glad_glBindSamplers; +PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures; +PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers; +PFNGLGETLISTPARAMETERFVSGIXPROC glad_glGetListParameterfvSGIX; +PFNGLGETLISTPARAMETERIVSGIXPROC glad_glGetListParameterivSGIX; +PFNGLLISTPARAMETERFSGIXPROC glad_glListParameterfSGIX; +PFNGLLISTPARAMETERFVSGIXPROC glad_glListParameterfvSGIX; +PFNGLLISTPARAMETERISGIXPROC glad_glListParameteriSGIX; +PFNGLLISTPARAMETERIVSGIXPROC glad_glListParameterivSGIX; +PFNGLBUFFERADDRESSRANGENVPROC glad_glBufferAddressRangeNV; +PFNGLVERTEXFORMATNVPROC glad_glVertexFormatNV; +PFNGLNORMALFORMATNVPROC glad_glNormalFormatNV; +PFNGLCOLORFORMATNVPROC glad_glColorFormatNV; +PFNGLINDEXFORMATNVPROC glad_glIndexFormatNV; +PFNGLTEXCOORDFORMATNVPROC glad_glTexCoordFormatNV; +PFNGLEDGEFLAGFORMATNVPROC glad_glEdgeFlagFormatNV; +PFNGLSECONDARYCOLORFORMATNVPROC glad_glSecondaryColorFormatNV; +PFNGLFOGCOORDFORMATNVPROC glad_glFogCoordFormatNV; +PFNGLVERTEXATTRIBFORMATNVPROC glad_glVertexAttribFormatNV; +PFNGLVERTEXATTRIBIFORMATNVPROC glad_glVertexAttribIFormatNV; +PFNGLGETINTEGERUI64I_VNVPROC glad_glGetIntegerui64i_vNV; +PFNGLBLENDPARAMETERINVPROC glad_glBlendParameteriNV; +PFNGLBLENDBARRIERNVPROC glad_glBlendBarrierNV; +PFNGLSHARPENTEXFUNCSGISPROC glad_glSharpenTexFuncSGIS; +PFNGLGETSHARPENTEXFUNCSGISPROC glad_glGetSharpenTexFuncSGIS; +PFNGLVERTEXATTRIB1DARBPROC glad_glVertexAttrib1dARB; +PFNGLVERTEXATTRIB1DVARBPROC glad_glVertexAttrib1dvARB; +PFNGLVERTEXATTRIB1FARBPROC glad_glVertexAttrib1fARB; +PFNGLVERTEXATTRIB1FVARBPROC glad_glVertexAttrib1fvARB; +PFNGLVERTEXATTRIB1SARBPROC glad_glVertexAttrib1sARB; +PFNGLVERTEXATTRIB1SVARBPROC glad_glVertexAttrib1svARB; +PFNGLVERTEXATTRIB2DARBPROC glad_glVertexAttrib2dARB; +PFNGLVERTEXATTRIB2DVARBPROC glad_glVertexAttrib2dvARB; +PFNGLVERTEXATTRIB2FARBPROC glad_glVertexAttrib2fARB; +PFNGLVERTEXATTRIB2FVARBPROC glad_glVertexAttrib2fvARB; +PFNGLVERTEXATTRIB2SARBPROC glad_glVertexAttrib2sARB; +PFNGLVERTEXATTRIB2SVARBPROC glad_glVertexAttrib2svARB; +PFNGLVERTEXATTRIB3DARBPROC glad_glVertexAttrib3dARB; +PFNGLVERTEXATTRIB3DVARBPROC glad_glVertexAttrib3dvARB; +PFNGLVERTEXATTRIB3FARBPROC glad_glVertexAttrib3fARB; +PFNGLVERTEXATTRIB3FVARBPROC glad_glVertexAttrib3fvARB; +PFNGLVERTEXATTRIB3SARBPROC glad_glVertexAttrib3sARB; +PFNGLVERTEXATTRIB3SVARBPROC glad_glVertexAttrib3svARB; +PFNGLVERTEXATTRIB4NBVARBPROC glad_glVertexAttrib4NbvARB; +PFNGLVERTEXATTRIB4NIVARBPROC glad_glVertexAttrib4NivARB; +PFNGLVERTEXATTRIB4NSVARBPROC glad_glVertexAttrib4NsvARB; +PFNGLVERTEXATTRIB4NUBARBPROC glad_glVertexAttrib4NubARB; +PFNGLVERTEXATTRIB4NUBVARBPROC glad_glVertexAttrib4NubvARB; +PFNGLVERTEXATTRIB4NUIVARBPROC glad_glVertexAttrib4NuivARB; +PFNGLVERTEXATTRIB4NUSVARBPROC glad_glVertexAttrib4NusvARB; +PFNGLVERTEXATTRIB4BVARBPROC glad_glVertexAttrib4bvARB; +PFNGLVERTEXATTRIB4DARBPROC glad_glVertexAttrib4dARB; +PFNGLVERTEXATTRIB4DVARBPROC glad_glVertexAttrib4dvARB; +PFNGLVERTEXATTRIB4FARBPROC glad_glVertexAttrib4fARB; +PFNGLVERTEXATTRIB4FVARBPROC glad_glVertexAttrib4fvARB; +PFNGLVERTEXATTRIB4IVARBPROC glad_glVertexAttrib4ivARB; +PFNGLVERTEXATTRIB4SARBPROC glad_glVertexAttrib4sARB; +PFNGLVERTEXATTRIB4SVARBPROC glad_glVertexAttrib4svARB; +PFNGLVERTEXATTRIB4UBVARBPROC glad_glVertexAttrib4ubvARB; +PFNGLVERTEXATTRIB4UIVARBPROC glad_glVertexAttrib4uivARB; +PFNGLVERTEXATTRIB4USVARBPROC glad_glVertexAttrib4usvARB; +PFNGLVERTEXATTRIBPOINTERARBPROC glad_glVertexAttribPointerARB; +PFNGLENABLEVERTEXATTRIBARRAYARBPROC glad_glEnableVertexAttribArrayARB; +PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glad_glDisableVertexAttribArrayARB; +PFNGLPROGRAMSTRINGARBPROC glad_glProgramStringARB; +PFNGLBINDPROGRAMARBPROC glad_glBindProgramARB; +PFNGLDELETEPROGRAMSARBPROC glad_glDeleteProgramsARB; +PFNGLGENPROGRAMSARBPROC glad_glGenProgramsARB; +PFNGLPROGRAMENVPARAMETER4DARBPROC glad_glProgramEnvParameter4dARB; +PFNGLPROGRAMENVPARAMETER4DVARBPROC glad_glProgramEnvParameter4dvARB; +PFNGLPROGRAMENVPARAMETER4FARBPROC glad_glProgramEnvParameter4fARB; +PFNGLPROGRAMENVPARAMETER4FVARBPROC glad_glProgramEnvParameter4fvARB; +PFNGLPROGRAMLOCALPARAMETER4DARBPROC glad_glProgramLocalParameter4dARB; +PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glad_glProgramLocalParameter4dvARB; +PFNGLPROGRAMLOCALPARAMETER4FARBPROC glad_glProgramLocalParameter4fARB; +PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glad_glProgramLocalParameter4fvARB; +PFNGLGETPROGRAMENVPARAMETERDVARBPROC glad_glGetProgramEnvParameterdvARB; +PFNGLGETPROGRAMENVPARAMETERFVARBPROC glad_glGetProgramEnvParameterfvARB; +PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glad_glGetProgramLocalParameterdvARB; +PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glad_glGetProgramLocalParameterfvARB; +PFNGLGETPROGRAMIVARBPROC glad_glGetProgramivARB; +PFNGLGETPROGRAMSTRINGARBPROC glad_glGetProgramStringARB; +PFNGLGETVERTEXATTRIBDVARBPROC glad_glGetVertexAttribdvARB; +PFNGLGETVERTEXATTRIBFVARBPROC glad_glGetVertexAttribfvARB; +PFNGLGETVERTEXATTRIBIVARBPROC glad_glGetVertexAttribivARB; +PFNGLGETVERTEXATTRIBPOINTERVARBPROC glad_glGetVertexAttribPointervARB; +PFNGLISPROGRAMARBPROC glad_glIsProgramARB; +PFNGLBINDBUFFERARBPROC glad_glBindBufferARB; +PFNGLDELETEBUFFERSARBPROC glad_glDeleteBuffersARB; +PFNGLGENBUFFERSARBPROC glad_glGenBuffersARB; +PFNGLISBUFFERARBPROC glad_glIsBufferARB; +PFNGLBUFFERDATAARBPROC glad_glBufferDataARB; +PFNGLBUFFERSUBDATAARBPROC glad_glBufferSubDataARB; +PFNGLGETBUFFERSUBDATAARBPROC glad_glGetBufferSubDataARB; +PFNGLMAPBUFFERARBPROC glad_glMapBufferARB; +PFNGLUNMAPBUFFERARBPROC glad_glUnmapBufferARB; +PFNGLGETBUFFERPARAMETERIVARBPROC glad_glGetBufferParameterivARB; +PFNGLGETBUFFERPOINTERVARBPROC glad_glGetBufferPointervARB; +PFNGLFLUSHVERTEXARRAYRANGENVPROC glad_glFlushVertexArrayRangeNV; +PFNGLVERTEXARRAYRANGENVPROC glad_glVertexArrayRangeNV; +PFNGLFRAGMENTCOLORMATERIALSGIXPROC glad_glFragmentColorMaterialSGIX; +PFNGLFRAGMENTLIGHTFSGIXPROC glad_glFragmentLightfSGIX; +PFNGLFRAGMENTLIGHTFVSGIXPROC glad_glFragmentLightfvSGIX; +PFNGLFRAGMENTLIGHTISGIXPROC glad_glFragmentLightiSGIX; +PFNGLFRAGMENTLIGHTIVSGIXPROC glad_glFragmentLightivSGIX; +PFNGLFRAGMENTLIGHTMODELFSGIXPROC glad_glFragmentLightModelfSGIX; +PFNGLFRAGMENTLIGHTMODELFVSGIXPROC glad_glFragmentLightModelfvSGIX; +PFNGLFRAGMENTLIGHTMODELISGIXPROC glad_glFragmentLightModeliSGIX; +PFNGLFRAGMENTLIGHTMODELIVSGIXPROC glad_glFragmentLightModelivSGIX; +PFNGLFRAGMENTMATERIALFSGIXPROC glad_glFragmentMaterialfSGIX; +PFNGLFRAGMENTMATERIALFVSGIXPROC glad_glFragmentMaterialfvSGIX; +PFNGLFRAGMENTMATERIALISGIXPROC glad_glFragmentMaterialiSGIX; +PFNGLFRAGMENTMATERIALIVSGIXPROC glad_glFragmentMaterialivSGIX; +PFNGLGETFRAGMENTLIGHTFVSGIXPROC glad_glGetFragmentLightfvSGIX; +PFNGLGETFRAGMENTLIGHTIVSGIXPROC glad_glGetFragmentLightivSGIX; +PFNGLGETFRAGMENTMATERIALFVSGIXPROC glad_glGetFragmentMaterialfvSGIX; +PFNGLGETFRAGMENTMATERIALIVSGIXPROC glad_glGetFragmentMaterialivSGIX; +PFNGLLIGHTENVISGIXPROC glad_glLightEnviSGIX; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC glad_glRenderbufferStorageMultisampleCoverageNV; +PFNGLGETQUERYOBJECTI64VEXTPROC glad_glGetQueryObjecti64vEXT; +PFNGLGETQUERYOBJECTUI64VEXTPROC glad_glGetQueryObjectui64vEXT; +PFNGLGETTEXTUREHANDLENVPROC glad_glGetTextureHandleNV; +PFNGLGETTEXTURESAMPLERHANDLENVPROC glad_glGetTextureSamplerHandleNV; +PFNGLMAKETEXTUREHANDLERESIDENTNVPROC glad_glMakeTextureHandleResidentNV; +PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC glad_glMakeTextureHandleNonResidentNV; +PFNGLGETIMAGEHANDLENVPROC glad_glGetImageHandleNV; +PFNGLMAKEIMAGEHANDLERESIDENTNVPROC glad_glMakeImageHandleResidentNV; +PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC glad_glMakeImageHandleNonResidentNV; +PFNGLUNIFORMHANDLEUI64NVPROC glad_glUniformHandleui64NV; +PFNGLUNIFORMHANDLEUI64VNVPROC glad_glUniformHandleui64vNV; +PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC glad_glProgramUniformHandleui64NV; +PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC glad_glProgramUniformHandleui64vNV; +PFNGLISTEXTUREHANDLERESIDENTNVPROC glad_glIsTextureHandleResidentNV; +PFNGLISIMAGEHANDLERESIDENTNVPROC glad_glIsImageHandleResidentNV; +PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl; +PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert; +PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback; +PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog; +PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup; +PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup; +PFNGLOBJECTLABELPROC glad_glObjectLabel; +PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel; +PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel; +PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel; +PFNGLGETPOINTERVPROC glad_glGetPointerv; +PFNGLDEBUGMESSAGECONTROLKHRPROC glad_glDebugMessageControlKHR; +PFNGLDEBUGMESSAGEINSERTKHRPROC glad_glDebugMessageInsertKHR; +PFNGLDEBUGMESSAGECALLBACKKHRPROC glad_glDebugMessageCallbackKHR; +PFNGLGETDEBUGMESSAGELOGKHRPROC glad_glGetDebugMessageLogKHR; +PFNGLPUSHDEBUGGROUPKHRPROC glad_glPushDebugGroupKHR; +PFNGLPOPDEBUGGROUPKHRPROC glad_glPopDebugGroupKHR; +PFNGLOBJECTLABELKHRPROC glad_glObjectLabelKHR; +PFNGLGETOBJECTLABELKHRPROC glad_glGetObjectLabelKHR; +PFNGLOBJECTPTRLABELKHRPROC glad_glObjectPtrLabelKHR; +PFNGLGETOBJECTPTRLABELKHRPROC glad_glGetObjectPtrLabelKHR; +PFNGLGETPOINTERVKHRPROC glad_glGetPointervKHR; +PFNGLVERTEXATTRIBARRAYOBJECTATIPROC glad_glVertexAttribArrayObjectATI; +PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC glad_glGetVertexAttribArrayObjectfvATI; +PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC glad_glGetVertexAttribArrayObjectivATI; +PFNGLUNIFORMBUFFEREXTPROC glad_glUniformBufferEXT; +PFNGLGETUNIFORMBUFFERSIZEEXTPROC glad_glGetUniformBufferSizeEXT; +PFNGLGETUNIFORMOFFSETEXTPROC glad_glGetUniformOffsetEXT; +PFNGLBLENDBARRIERKHRPROC glad_glBlendBarrierKHR; +PFNGLELEMENTPOINTERATIPROC glad_glElementPointerATI; +PFNGLDRAWELEMENTARRAYATIPROC glad_glDrawElementArrayATI; +PFNGLDRAWRANGEELEMENTARRAYATIPROC glad_glDrawRangeElementArrayATI; +PFNGLREFERENCEPLANESGIXPROC glad_glReferencePlaneSGIX; +PFNGLACTIVESTENCILFACEEXTPROC glad_glActiveStencilFaceEXT; +PFNGLGETMULTISAMPLEFVNVPROC glad_glGetMultisamplefvNV; +PFNGLSAMPLEMASKINDEXEDNVPROC glad_glSampleMaskIndexedNV; +PFNGLTEXRENDERBUFFERNVPROC glad_glTexRenderbufferNV; +PFNGLFLUSHSTATICDATAIBMPROC glad_glFlushStaticDataIBM; +PFNGLTEXTURENORMALEXTPROC glad_glTextureNormalEXT; +PFNGLPOINTPARAMETERFEXTPROC glad_glPointParameterfEXT; +PFNGLPOINTPARAMETERFVEXTPROC glad_glPointParameterfvEXT; +PFNGLHINTPGIPROC glad_glHintPGI; +PFNGLBINDATTRIBLOCATIONARBPROC glad_glBindAttribLocationARB; +PFNGLGETACTIVEATTRIBARBPROC glad_glGetActiveAttribARB; +PFNGLGETATTRIBLOCATIONARBPROC glad_glGetAttribLocationARB; +PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri; +PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv; +PFNGLCOLORMASKINDEXEDEXTPROC glad_glColorMaskIndexedEXT; +PFNGLGETBOOLEANINDEXEDVEXTPROC glad_glGetBooleanIndexedvEXT; +PFNGLGETINTEGERINDEXEDVEXTPROC glad_glGetIntegerIndexedvEXT; +PFNGLENABLEINDEXEDEXTPROC glad_glEnableIndexedEXT; +PFNGLDISABLEINDEXEDEXTPROC glad_glDisableIndexedEXT; +PFNGLISENABLEDINDEXEDEXTPROC glad_glIsEnabledIndexedEXT; +PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d; +PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d; +PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d; +PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d; +PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv; +PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv; +PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv; +PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv; +PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer; +PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv; +PFNGLRASTERSAMPLESEXTPROC glad_glRasterSamplesEXT; +PFNGLVERTEXATTRIBPARAMETERIAMDPROC glad_glVertexAttribParameteriAMD; +PFNGLTEXSTORAGE1DPROC glad_glTexStorage1D; +PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D; +PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D; +PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData; +PFNGLPIXELTEXGENPARAMETERISGISPROC glad_glPixelTexGenParameteriSGIS; +PFNGLPIXELTEXGENPARAMETERIVSGISPROC glad_glPixelTexGenParameterivSGIS; +PFNGLPIXELTEXGENPARAMETERFSGISPROC glad_glPixelTexGenParameterfSGIS; +PFNGLPIXELTEXGENPARAMETERFVSGISPROC glad_glPixelTexGenParameterfvSGIS; +PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC glad_glGetPixelTexGenParameterivSGIS; +PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC glad_glGetPixelTexGenParameterfvSGIS; +PFNGLGETINSTRUMENTSSGIXPROC glad_glGetInstrumentsSGIX; +PFNGLINSTRUMENTSBUFFERSGIXPROC glad_glInstrumentsBufferSGIX; +PFNGLPOLLINSTRUMENTSSGIXPROC glad_glPollInstrumentsSGIX; +PFNGLREADINSTRUMENTSSGIXPROC glad_glReadInstrumentsSGIX; +PFNGLSTARTINSTRUMENTSSGIXPROC glad_glStartInstrumentsSGIX; +PFNGLSTOPINSTRUMENTSSGIXPROC glad_glStopInstrumentsSGIX; +PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding; +PFNGLBLENDEQUATIONEXTPROC glad_glBlendEquationEXT; +PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glad_glDrawArraysInstancedBaseInstance; +PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance; +PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion; +PFNGLTEXPARAMETERIIVEXTPROC glad_glTexParameterIivEXT; +PFNGLTEXPARAMETERIUIVEXTPROC glad_glTexParameterIuivEXT; +PFNGLGETTEXPARAMETERIIVEXTPROC glad_glGetTexParameterIivEXT; +PFNGLGETTEXPARAMETERIUIVEXTPROC glad_glGetTexParameterIuivEXT; +PFNGLCLEARCOLORIIEXTPROC glad_glClearColorIiEXT; +PFNGLCLEARCOLORIUIEXTPROC glad_glClearColorIuiEXT; +PFNGLUNIFORM1I64NVPROC glad_glUniform1i64NV; +PFNGLUNIFORM2I64NVPROC glad_glUniform2i64NV; +PFNGLUNIFORM3I64NVPROC glad_glUniform3i64NV; +PFNGLUNIFORM4I64NVPROC glad_glUniform4i64NV; +PFNGLUNIFORM1I64VNVPROC glad_glUniform1i64vNV; +PFNGLUNIFORM2I64VNVPROC glad_glUniform2i64vNV; +PFNGLUNIFORM3I64VNVPROC glad_glUniform3i64vNV; +PFNGLUNIFORM4I64VNVPROC glad_glUniform4i64vNV; +PFNGLUNIFORM1UI64NVPROC glad_glUniform1ui64NV; +PFNGLUNIFORM2UI64NVPROC glad_glUniform2ui64NV; +PFNGLUNIFORM3UI64NVPROC glad_glUniform3ui64NV; +PFNGLUNIFORM4UI64NVPROC glad_glUniform4ui64NV; +PFNGLUNIFORM1UI64VNVPROC glad_glUniform1ui64vNV; +PFNGLUNIFORM2UI64VNVPROC glad_glUniform2ui64vNV; +PFNGLUNIFORM3UI64VNVPROC glad_glUniform3ui64vNV; +PFNGLUNIFORM4UI64VNVPROC glad_glUniform4ui64vNV; +PFNGLGETUNIFORMI64VNVPROC glad_glGetUniformi64vNV; +PFNGLPROGRAMUNIFORM1I64NVPROC glad_glProgramUniform1i64NV; +PFNGLPROGRAMUNIFORM2I64NVPROC glad_glProgramUniform2i64NV; +PFNGLPROGRAMUNIFORM3I64NVPROC glad_glProgramUniform3i64NV; +PFNGLPROGRAMUNIFORM4I64NVPROC glad_glProgramUniform4i64NV; +PFNGLPROGRAMUNIFORM1I64VNVPROC glad_glProgramUniform1i64vNV; +PFNGLPROGRAMUNIFORM2I64VNVPROC glad_glProgramUniform2i64vNV; +PFNGLPROGRAMUNIFORM3I64VNVPROC glad_glProgramUniform3i64vNV; +PFNGLPROGRAMUNIFORM4I64VNVPROC glad_glProgramUniform4i64vNV; +PFNGLPROGRAMUNIFORM1UI64NVPROC glad_glProgramUniform1ui64NV; +PFNGLPROGRAMUNIFORM2UI64NVPROC glad_glProgramUniform2ui64NV; +PFNGLPROGRAMUNIFORM3UI64NVPROC glad_glProgramUniform3ui64NV; +PFNGLPROGRAMUNIFORM4UI64NVPROC glad_glProgramUniform4ui64NV; +PFNGLPROGRAMUNIFORM1UI64VNVPROC glad_glProgramUniform1ui64vNV; +PFNGLPROGRAMUNIFORM2UI64VNVPROC glad_glProgramUniform2ui64vNV; +PFNGLPROGRAMUNIFORM3UI64VNVPROC glad_glProgramUniform3ui64vNV; +PFNGLPROGRAMUNIFORM4UI64VNVPROC glad_glProgramUniform4ui64vNV; +PFNGLTESSELLATIONFACTORAMDPROC glad_glTessellationFactorAMD; +PFNGLTESSELLATIONMODEAMDPROC glad_glTessellationModeAMD; +PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage; +PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage; +PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData; +PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData; +PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer; +PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer; +PFNGLINDEXMATERIALEXTPROC glad_glIndexMaterialEXT; +PFNGLVERTEXPOINTERVINTELPROC glad_glVertexPointervINTEL; +PFNGLNORMALPOINTERVINTELPROC glad_glNormalPointervINTEL; +PFNGLCOLORPOINTERVINTELPROC glad_glColorPointervINTEL; +PFNGLTEXCOORDPOINTERVINTELPROC glad_glTexCoordPointervINTEL; +PFNGLDRAWBUFFERSATIPROC glad_glDrawBuffersATI; +PFNGLPIXELTEXGENSGIXPROC glad_glPixelTexGenSGIX; +PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC glad_glProgramBufferParametersfvNV; +PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC glad_glProgramBufferParametersIivNV; +PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC glad_glProgramBufferParametersIuivNV; +PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks; +PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase; +PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange; +PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv; +PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v; +PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v; +PFNGLCREATEBUFFERSPROC glad_glCreateBuffers; +PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage; +PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData; +PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData; +PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData; +PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData; +PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData; +PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer; +PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange; +PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer; +PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange; +PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv; +PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v; +PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv; +PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData; +PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers; +PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer; +PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri; +PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture; +PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer; +PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer; +PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers; +PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer; +PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData; +PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData; +PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv; +PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv; +PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv; +PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi; +PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer; +PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus; +PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv; +PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv; +PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers; +PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage; +PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample; +PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv; +PFNGLCREATETEXTURESPROC glad_glCreateTextures; +PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer; +PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange; +PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D; +PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D; +PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D; +PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample; +PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample; +PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D; +PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D; +PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D; +PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D; +PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D; +PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D; +PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D; +PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D; +PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D; +PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf; +PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv; +PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri; +PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv; +PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv; +PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv; +PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap; +PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit; +PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage; +PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage; +PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv; +PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv; +PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv; +PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv; +PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv; +PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv; +PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays; +PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib; +PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib; +PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer; +PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer; +PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers; +PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding; +PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat; +PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat; +PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat; +PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor; +PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv; +PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv; +PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv; +PFNGLCREATESAMPLERSPROC glad_glCreateSamplers; +PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines; +PFNGLCREATEQUERIESPROC glad_glCreateQueries; +PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v; +PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv; +PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v; +PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv; +PFNGLBINDTRANSFORMFEEDBACKNVPROC glad_glBindTransformFeedbackNV; +PFNGLDELETETRANSFORMFEEDBACKSNVPROC glad_glDeleteTransformFeedbacksNV; +PFNGLGENTRANSFORMFEEDBACKSNVPROC glad_glGenTransformFeedbacksNV; +PFNGLISTRANSFORMFEEDBACKNVPROC glad_glIsTransformFeedbackNV; +PFNGLPAUSETRANSFORMFEEDBACKNVPROC glad_glPauseTransformFeedbackNV; +PFNGLRESUMETRANSFORMFEEDBACKNVPROC glad_glResumeTransformFeedbackNV; +PFNGLDRAWTRANSFORMFEEDBACKNVPROC glad_glDrawTransformFeedbackNV; +PFNGLBLENDCOLOREXTPROC glad_glBlendColorEXT; +PFNGLGETHISTOGRAMEXTPROC glad_glGetHistogramEXT; +PFNGLGETHISTOGRAMPARAMETERFVEXTPROC glad_glGetHistogramParameterfvEXT; +PFNGLGETHISTOGRAMPARAMETERIVEXTPROC glad_glGetHistogramParameterivEXT; +PFNGLGETMINMAXEXTPROC glad_glGetMinmaxEXT; +PFNGLGETMINMAXPARAMETERFVEXTPROC glad_glGetMinmaxParameterfvEXT; +PFNGLGETMINMAXPARAMETERIVEXTPROC glad_glGetMinmaxParameterivEXT; +PFNGLHISTOGRAMEXTPROC glad_glHistogramEXT; +PFNGLMINMAXEXTPROC glad_glMinmaxEXT; +PFNGLRESETHISTOGRAMEXTPROC glad_glResetHistogramEXT; +PFNGLRESETMINMAXEXTPROC glad_glResetMinmaxEXT; +PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage; +PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage; +PFNGLPOINTPARAMETERFSGISPROC glad_glPointParameterfSGIS; +PFNGLPOINTPARAMETERFVSGISPROC glad_glPointParameterfvSGIS; +PFNGLMATRIXLOADFEXTPROC glad_glMatrixLoadfEXT; +PFNGLMATRIXLOADDEXTPROC glad_glMatrixLoaddEXT; +PFNGLMATRIXMULTFEXTPROC glad_glMatrixMultfEXT; +PFNGLMATRIXMULTDEXTPROC glad_glMatrixMultdEXT; +PFNGLMATRIXLOADIDENTITYEXTPROC glad_glMatrixLoadIdentityEXT; +PFNGLMATRIXROTATEFEXTPROC glad_glMatrixRotatefEXT; +PFNGLMATRIXROTATEDEXTPROC glad_glMatrixRotatedEXT; +PFNGLMATRIXSCALEFEXTPROC glad_glMatrixScalefEXT; +PFNGLMATRIXSCALEDEXTPROC glad_glMatrixScaledEXT; +PFNGLMATRIXTRANSLATEFEXTPROC glad_glMatrixTranslatefEXT; +PFNGLMATRIXTRANSLATEDEXTPROC glad_glMatrixTranslatedEXT; +PFNGLMATRIXFRUSTUMEXTPROC glad_glMatrixFrustumEXT; +PFNGLMATRIXORTHOEXTPROC glad_glMatrixOrthoEXT; +PFNGLMATRIXPOPEXTPROC glad_glMatrixPopEXT; +PFNGLMATRIXPUSHEXTPROC glad_glMatrixPushEXT; +PFNGLCLIENTATTRIBDEFAULTEXTPROC glad_glClientAttribDefaultEXT; +PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC glad_glPushClientAttribDefaultEXT; +PFNGLTEXTUREPARAMETERFEXTPROC glad_glTextureParameterfEXT; +PFNGLTEXTUREPARAMETERFVEXTPROC glad_glTextureParameterfvEXT; +PFNGLTEXTUREPARAMETERIEXTPROC glad_glTextureParameteriEXT; +PFNGLTEXTUREPARAMETERIVEXTPROC glad_glTextureParameterivEXT; +PFNGLTEXTUREIMAGE1DEXTPROC glad_glTextureImage1DEXT; +PFNGLTEXTUREIMAGE2DEXTPROC glad_glTextureImage2DEXT; +PFNGLTEXTURESUBIMAGE1DEXTPROC glad_glTextureSubImage1DEXT; +PFNGLTEXTURESUBIMAGE2DEXTPROC glad_glTextureSubImage2DEXT; +PFNGLCOPYTEXTUREIMAGE1DEXTPROC glad_glCopyTextureImage1DEXT; +PFNGLCOPYTEXTUREIMAGE2DEXTPROC glad_glCopyTextureImage2DEXT; +PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC glad_glCopyTextureSubImage1DEXT; +PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC glad_glCopyTextureSubImage2DEXT; +PFNGLGETTEXTUREIMAGEEXTPROC glad_glGetTextureImageEXT; +PFNGLGETTEXTUREPARAMETERFVEXTPROC glad_glGetTextureParameterfvEXT; +PFNGLGETTEXTUREPARAMETERIVEXTPROC glad_glGetTextureParameterivEXT; +PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC glad_glGetTextureLevelParameterfvEXT; +PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC glad_glGetTextureLevelParameterivEXT; +PFNGLTEXTUREIMAGE3DEXTPROC glad_glTextureImage3DEXT; +PFNGLTEXTURESUBIMAGE3DEXTPROC glad_glTextureSubImage3DEXT; +PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC glad_glCopyTextureSubImage3DEXT; +PFNGLBINDMULTITEXTUREEXTPROC glad_glBindMultiTextureEXT; +PFNGLMULTITEXCOORDPOINTEREXTPROC glad_glMultiTexCoordPointerEXT; +PFNGLMULTITEXENVFEXTPROC glad_glMultiTexEnvfEXT; +PFNGLMULTITEXENVFVEXTPROC glad_glMultiTexEnvfvEXT; +PFNGLMULTITEXENVIEXTPROC glad_glMultiTexEnviEXT; +PFNGLMULTITEXENVIVEXTPROC glad_glMultiTexEnvivEXT; +PFNGLMULTITEXGENDEXTPROC glad_glMultiTexGendEXT; +PFNGLMULTITEXGENDVEXTPROC glad_glMultiTexGendvEXT; +PFNGLMULTITEXGENFEXTPROC glad_glMultiTexGenfEXT; +PFNGLMULTITEXGENFVEXTPROC glad_glMultiTexGenfvEXT; +PFNGLMULTITEXGENIEXTPROC glad_glMultiTexGeniEXT; +PFNGLMULTITEXGENIVEXTPROC glad_glMultiTexGenivEXT; +PFNGLGETMULTITEXENVFVEXTPROC glad_glGetMultiTexEnvfvEXT; +PFNGLGETMULTITEXENVIVEXTPROC glad_glGetMultiTexEnvivEXT; +PFNGLGETMULTITEXGENDVEXTPROC glad_glGetMultiTexGendvEXT; +PFNGLGETMULTITEXGENFVEXTPROC glad_glGetMultiTexGenfvEXT; +PFNGLGETMULTITEXGENIVEXTPROC glad_glGetMultiTexGenivEXT; +PFNGLMULTITEXPARAMETERIEXTPROC glad_glMultiTexParameteriEXT; +PFNGLMULTITEXPARAMETERIVEXTPROC glad_glMultiTexParameterivEXT; +PFNGLMULTITEXPARAMETERFEXTPROC glad_glMultiTexParameterfEXT; +PFNGLMULTITEXPARAMETERFVEXTPROC glad_glMultiTexParameterfvEXT; +PFNGLMULTITEXIMAGE1DEXTPROC glad_glMultiTexImage1DEXT; +PFNGLMULTITEXIMAGE2DEXTPROC glad_glMultiTexImage2DEXT; +PFNGLMULTITEXSUBIMAGE1DEXTPROC glad_glMultiTexSubImage1DEXT; +PFNGLMULTITEXSUBIMAGE2DEXTPROC glad_glMultiTexSubImage2DEXT; +PFNGLCOPYMULTITEXIMAGE1DEXTPROC glad_glCopyMultiTexImage1DEXT; +PFNGLCOPYMULTITEXIMAGE2DEXTPROC glad_glCopyMultiTexImage2DEXT; +PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC glad_glCopyMultiTexSubImage1DEXT; +PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC glad_glCopyMultiTexSubImage2DEXT; +PFNGLGETMULTITEXIMAGEEXTPROC glad_glGetMultiTexImageEXT; +PFNGLGETMULTITEXPARAMETERFVEXTPROC glad_glGetMultiTexParameterfvEXT; +PFNGLGETMULTITEXPARAMETERIVEXTPROC glad_glGetMultiTexParameterivEXT; +PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC glad_glGetMultiTexLevelParameterfvEXT; +PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC glad_glGetMultiTexLevelParameterivEXT; +PFNGLMULTITEXIMAGE3DEXTPROC glad_glMultiTexImage3DEXT; +PFNGLMULTITEXSUBIMAGE3DEXTPROC glad_glMultiTexSubImage3DEXT; +PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC glad_glCopyMultiTexSubImage3DEXT; +PFNGLENABLECLIENTSTATEINDEXEDEXTPROC glad_glEnableClientStateIndexedEXT; +PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC glad_glDisableClientStateIndexedEXT; +PFNGLGETFLOATINDEXEDVEXTPROC glad_glGetFloatIndexedvEXT; +PFNGLGETDOUBLEINDEXEDVEXTPROC glad_glGetDoubleIndexedvEXT; +PFNGLGETPOINTERINDEXEDVEXTPROC glad_glGetPointerIndexedvEXT; +PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC glad_glCompressedTextureImage3DEXT; +PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC glad_glCompressedTextureImage2DEXT; +PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC glad_glCompressedTextureImage1DEXT; +PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC glad_glCompressedTextureSubImage3DEXT; +PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC glad_glCompressedTextureSubImage2DEXT; +PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC glad_glCompressedTextureSubImage1DEXT; +PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC glad_glGetCompressedTextureImageEXT; +PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC glad_glCompressedMultiTexImage3DEXT; +PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC glad_glCompressedMultiTexImage2DEXT; +PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC glad_glCompressedMultiTexImage1DEXT; +PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC glad_glCompressedMultiTexSubImage3DEXT; +PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC glad_glCompressedMultiTexSubImage2DEXT; +PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC glad_glCompressedMultiTexSubImage1DEXT; +PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC glad_glGetCompressedMultiTexImageEXT; +PFNGLMATRIXLOADTRANSPOSEFEXTPROC glad_glMatrixLoadTransposefEXT; +PFNGLMATRIXLOADTRANSPOSEDEXTPROC glad_glMatrixLoadTransposedEXT; +PFNGLMATRIXMULTTRANSPOSEFEXTPROC glad_glMatrixMultTransposefEXT; +PFNGLMATRIXMULTTRANSPOSEDEXTPROC glad_glMatrixMultTransposedEXT; +PFNGLNAMEDBUFFERDATAEXTPROC glad_glNamedBufferDataEXT; +PFNGLNAMEDBUFFERSUBDATAEXTPROC glad_glNamedBufferSubDataEXT; +PFNGLMAPNAMEDBUFFEREXTPROC glad_glMapNamedBufferEXT; +PFNGLUNMAPNAMEDBUFFEREXTPROC glad_glUnmapNamedBufferEXT; +PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC glad_glGetNamedBufferParameterivEXT; +PFNGLGETNAMEDBUFFERPOINTERVEXTPROC glad_glGetNamedBufferPointervEXT; +PFNGLGETNAMEDBUFFERSUBDATAEXTPROC glad_glGetNamedBufferSubDataEXT; +PFNGLTEXTUREBUFFEREXTPROC glad_glTextureBufferEXT; +PFNGLMULTITEXBUFFEREXTPROC glad_glMultiTexBufferEXT; +PFNGLTEXTUREPARAMETERIIVEXTPROC glad_glTextureParameterIivEXT; +PFNGLTEXTUREPARAMETERIUIVEXTPROC glad_glTextureParameterIuivEXT; +PFNGLGETTEXTUREPARAMETERIIVEXTPROC glad_glGetTextureParameterIivEXT; +PFNGLGETTEXTUREPARAMETERIUIVEXTPROC glad_glGetTextureParameterIuivEXT; +PFNGLMULTITEXPARAMETERIIVEXTPROC glad_glMultiTexParameterIivEXT; +PFNGLMULTITEXPARAMETERIUIVEXTPROC glad_glMultiTexParameterIuivEXT; +PFNGLGETMULTITEXPARAMETERIIVEXTPROC glad_glGetMultiTexParameterIivEXT; +PFNGLGETMULTITEXPARAMETERIUIVEXTPROC glad_glGetMultiTexParameterIuivEXT; +PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC glad_glNamedProgramLocalParameters4fvEXT; +PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC glad_glNamedProgramLocalParameterI4iEXT; +PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC glad_glNamedProgramLocalParameterI4ivEXT; +PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC glad_glNamedProgramLocalParametersI4ivEXT; +PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC glad_glNamedProgramLocalParameterI4uiEXT; +PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC glad_glNamedProgramLocalParameterI4uivEXT; +PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC glad_glNamedProgramLocalParametersI4uivEXT; +PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC glad_glGetNamedProgramLocalParameterIivEXT; +PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC glad_glGetNamedProgramLocalParameterIuivEXT; +PFNGLENABLECLIENTSTATEIEXTPROC glad_glEnableClientStateiEXT; +PFNGLDISABLECLIENTSTATEIEXTPROC glad_glDisableClientStateiEXT; +PFNGLGETFLOATI_VEXTPROC glad_glGetFloati_vEXT; +PFNGLGETDOUBLEI_VEXTPROC glad_glGetDoublei_vEXT; +PFNGLGETPOINTERI_VEXTPROC glad_glGetPointeri_vEXT; +PFNGLNAMEDPROGRAMSTRINGEXTPROC glad_glNamedProgramStringEXT; +PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC glad_glNamedProgramLocalParameter4dEXT; +PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC glad_glNamedProgramLocalParameter4dvEXT; +PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC glad_glNamedProgramLocalParameter4fEXT; +PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC glad_glNamedProgramLocalParameter4fvEXT; +PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC glad_glGetNamedProgramLocalParameterdvEXT; +PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC glad_glGetNamedProgramLocalParameterfvEXT; +PFNGLGETNAMEDPROGRAMIVEXTPROC glad_glGetNamedProgramivEXT; +PFNGLGETNAMEDPROGRAMSTRINGEXTPROC glad_glGetNamedProgramStringEXT; +PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC glad_glNamedRenderbufferStorageEXT; +PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC glad_glGetNamedRenderbufferParameterivEXT; +PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glNamedRenderbufferStorageMultisampleEXT; +PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC glad_glNamedRenderbufferStorageMultisampleCoverageEXT; +PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC glad_glCheckNamedFramebufferStatusEXT; +PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC glad_glNamedFramebufferTexture1DEXT; +PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC glad_glNamedFramebufferTexture2DEXT; +PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC glad_glNamedFramebufferTexture3DEXT; +PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC glad_glNamedFramebufferRenderbufferEXT; +PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetNamedFramebufferAttachmentParameterivEXT; +PFNGLGENERATETEXTUREMIPMAPEXTPROC glad_glGenerateTextureMipmapEXT; +PFNGLGENERATEMULTITEXMIPMAPEXTPROC glad_glGenerateMultiTexMipmapEXT; +PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC glad_glFramebufferDrawBufferEXT; +PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC glad_glFramebufferDrawBuffersEXT; +PFNGLFRAMEBUFFERREADBUFFEREXTPROC glad_glFramebufferReadBufferEXT; +PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC glad_glGetFramebufferParameterivEXT; +PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC glad_glNamedCopyBufferSubDataEXT; +PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC glad_glNamedFramebufferTextureEXT; +PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC glad_glNamedFramebufferTextureLayerEXT; +PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC glad_glNamedFramebufferTextureFaceEXT; +PFNGLTEXTURERENDERBUFFEREXTPROC glad_glTextureRenderbufferEXT; +PFNGLMULTITEXRENDERBUFFEREXTPROC glad_glMultiTexRenderbufferEXT; +PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC glad_glVertexArrayVertexOffsetEXT; +PFNGLVERTEXARRAYCOLOROFFSETEXTPROC glad_glVertexArrayColorOffsetEXT; +PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC glad_glVertexArrayEdgeFlagOffsetEXT; +PFNGLVERTEXARRAYINDEXOFFSETEXTPROC glad_glVertexArrayIndexOffsetEXT; +PFNGLVERTEXARRAYNORMALOFFSETEXTPROC glad_glVertexArrayNormalOffsetEXT; +PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC glad_glVertexArrayTexCoordOffsetEXT; +PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC glad_glVertexArrayMultiTexCoordOffsetEXT; +PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC glad_glVertexArrayFogCoordOffsetEXT; +PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC glad_glVertexArraySecondaryColorOffsetEXT; +PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC glad_glVertexArrayVertexAttribOffsetEXT; +PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC glad_glVertexArrayVertexAttribIOffsetEXT; +PFNGLENABLEVERTEXARRAYEXTPROC glad_glEnableVertexArrayEXT; +PFNGLDISABLEVERTEXARRAYEXTPROC glad_glDisableVertexArrayEXT; +PFNGLENABLEVERTEXARRAYATTRIBEXTPROC glad_glEnableVertexArrayAttribEXT; +PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC glad_glDisableVertexArrayAttribEXT; +PFNGLGETVERTEXARRAYINTEGERVEXTPROC glad_glGetVertexArrayIntegervEXT; +PFNGLGETVERTEXARRAYPOINTERVEXTPROC glad_glGetVertexArrayPointervEXT; +PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC glad_glGetVertexArrayIntegeri_vEXT; +PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC glad_glGetVertexArrayPointeri_vEXT; +PFNGLMAPNAMEDBUFFERRANGEEXTPROC glad_glMapNamedBufferRangeEXT; +PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC glad_glFlushMappedNamedBufferRangeEXT; +PFNGLNAMEDBUFFERSTORAGEEXTPROC glad_glNamedBufferStorageEXT; +PFNGLCLEARNAMEDBUFFERDATAEXTPROC glad_glClearNamedBufferDataEXT; +PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC glad_glClearNamedBufferSubDataEXT; +PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC glad_glNamedFramebufferParameteriEXT; +PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC glad_glGetNamedFramebufferParameterivEXT; +PFNGLPROGRAMUNIFORM1DEXTPROC glad_glProgramUniform1dEXT; +PFNGLPROGRAMUNIFORM2DEXTPROC glad_glProgramUniform2dEXT; +PFNGLPROGRAMUNIFORM3DEXTPROC glad_glProgramUniform3dEXT; +PFNGLPROGRAMUNIFORM4DEXTPROC glad_glProgramUniform4dEXT; +PFNGLPROGRAMUNIFORM1DVEXTPROC glad_glProgramUniform1dvEXT; +PFNGLPROGRAMUNIFORM2DVEXTPROC glad_glProgramUniform2dvEXT; +PFNGLPROGRAMUNIFORM3DVEXTPROC glad_glProgramUniform3dvEXT; +PFNGLPROGRAMUNIFORM4DVEXTPROC glad_glProgramUniform4dvEXT; +PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC glad_glProgramUniformMatrix2dvEXT; +PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC glad_glProgramUniformMatrix3dvEXT; +PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC glad_glProgramUniformMatrix4dvEXT; +PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC glad_glProgramUniformMatrix2x3dvEXT; +PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC glad_glProgramUniformMatrix2x4dvEXT; +PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC glad_glProgramUniformMatrix3x2dvEXT; +PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC glad_glProgramUniformMatrix3x4dvEXT; +PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC glad_glProgramUniformMatrix4x2dvEXT; +PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC glad_glProgramUniformMatrix4x3dvEXT; +PFNGLTEXTUREBUFFERRANGEEXTPROC glad_glTextureBufferRangeEXT; +PFNGLTEXTURESTORAGE1DEXTPROC glad_glTextureStorage1DEXT; +PFNGLTEXTURESTORAGE2DEXTPROC glad_glTextureStorage2DEXT; +PFNGLTEXTURESTORAGE3DEXTPROC glad_glTextureStorage3DEXT; +PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC glad_glTextureStorage2DMultisampleEXT; +PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC glad_glTextureStorage3DMultisampleEXT; +PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC glad_glVertexArrayBindVertexBufferEXT; +PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC glad_glVertexArrayVertexAttribFormatEXT; +PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC glad_glVertexArrayVertexAttribIFormatEXT; +PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC glad_glVertexArrayVertexAttribLFormatEXT; +PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC glad_glVertexArrayVertexAttribBindingEXT; +PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC glad_glVertexArrayVertexBindingDivisorEXT; +PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC glad_glVertexArrayVertexAttribLOffsetEXT; +PFNGLTEXTUREPAGECOMMITMENTEXTPROC glad_glTexturePageCommitmentEXT; +PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC glad_glVertexArrayVertexAttribDivisorEXT; +PFNGLSETMULTISAMPLEFVAMDPROC glad_glSetMultisamplefvAMD; +PFNGLAREPROGRAMSRESIDENTNVPROC glad_glAreProgramsResidentNV; +PFNGLBINDPROGRAMNVPROC glad_glBindProgramNV; +PFNGLDELETEPROGRAMSNVPROC glad_glDeleteProgramsNV; +PFNGLEXECUTEPROGRAMNVPROC glad_glExecuteProgramNV; +PFNGLGENPROGRAMSNVPROC glad_glGenProgramsNV; +PFNGLGETPROGRAMPARAMETERDVNVPROC glad_glGetProgramParameterdvNV; +PFNGLGETPROGRAMPARAMETERFVNVPROC glad_glGetProgramParameterfvNV; +PFNGLGETPROGRAMIVNVPROC glad_glGetProgramivNV; +PFNGLGETPROGRAMSTRINGNVPROC glad_glGetProgramStringNV; +PFNGLGETTRACKMATRIXIVNVPROC glad_glGetTrackMatrixivNV; +PFNGLGETVERTEXATTRIBDVNVPROC glad_glGetVertexAttribdvNV; +PFNGLGETVERTEXATTRIBFVNVPROC glad_glGetVertexAttribfvNV; +PFNGLGETVERTEXATTRIBIVNVPROC glad_glGetVertexAttribivNV; +PFNGLGETVERTEXATTRIBPOINTERVNVPROC glad_glGetVertexAttribPointervNV; +PFNGLISPROGRAMNVPROC glad_glIsProgramNV; +PFNGLLOADPROGRAMNVPROC glad_glLoadProgramNV; +PFNGLPROGRAMPARAMETER4DNVPROC glad_glProgramParameter4dNV; +PFNGLPROGRAMPARAMETER4DVNVPROC glad_glProgramParameter4dvNV; +PFNGLPROGRAMPARAMETER4FNVPROC glad_glProgramParameter4fNV; +PFNGLPROGRAMPARAMETER4FVNVPROC glad_glProgramParameter4fvNV; +PFNGLPROGRAMPARAMETERS4DVNVPROC glad_glProgramParameters4dvNV; +PFNGLPROGRAMPARAMETERS4FVNVPROC glad_glProgramParameters4fvNV; +PFNGLREQUESTRESIDENTPROGRAMSNVPROC glad_glRequestResidentProgramsNV; +PFNGLTRACKMATRIXNVPROC glad_glTrackMatrixNV; +PFNGLVERTEXATTRIBPOINTERNVPROC glad_glVertexAttribPointerNV; +PFNGLVERTEXATTRIB1DNVPROC glad_glVertexAttrib1dNV; +PFNGLVERTEXATTRIB1DVNVPROC glad_glVertexAttrib1dvNV; +PFNGLVERTEXATTRIB1FNVPROC glad_glVertexAttrib1fNV; +PFNGLVERTEXATTRIB1FVNVPROC glad_glVertexAttrib1fvNV; +PFNGLVERTEXATTRIB1SNVPROC glad_glVertexAttrib1sNV; +PFNGLVERTEXATTRIB1SVNVPROC glad_glVertexAttrib1svNV; +PFNGLVERTEXATTRIB2DNVPROC glad_glVertexAttrib2dNV; +PFNGLVERTEXATTRIB2DVNVPROC glad_glVertexAttrib2dvNV; +PFNGLVERTEXATTRIB2FNVPROC glad_glVertexAttrib2fNV; +PFNGLVERTEXATTRIB2FVNVPROC glad_glVertexAttrib2fvNV; +PFNGLVERTEXATTRIB2SNVPROC glad_glVertexAttrib2sNV; +PFNGLVERTEXATTRIB2SVNVPROC glad_glVertexAttrib2svNV; +PFNGLVERTEXATTRIB3DNVPROC glad_glVertexAttrib3dNV; +PFNGLVERTEXATTRIB3DVNVPROC glad_glVertexAttrib3dvNV; +PFNGLVERTEXATTRIB3FNVPROC glad_glVertexAttrib3fNV; +PFNGLVERTEXATTRIB3FVNVPROC glad_glVertexAttrib3fvNV; +PFNGLVERTEXATTRIB3SNVPROC glad_glVertexAttrib3sNV; +PFNGLVERTEXATTRIB3SVNVPROC glad_glVertexAttrib3svNV; +PFNGLVERTEXATTRIB4DNVPROC glad_glVertexAttrib4dNV; +PFNGLVERTEXATTRIB4DVNVPROC glad_glVertexAttrib4dvNV; +PFNGLVERTEXATTRIB4FNVPROC glad_glVertexAttrib4fNV; +PFNGLVERTEXATTRIB4FVNVPROC glad_glVertexAttrib4fvNV; +PFNGLVERTEXATTRIB4SNVPROC glad_glVertexAttrib4sNV; +PFNGLVERTEXATTRIB4SVNVPROC glad_glVertexAttrib4svNV; +PFNGLVERTEXATTRIB4UBNVPROC glad_glVertexAttrib4ubNV; +PFNGLVERTEXATTRIB4UBVNVPROC glad_glVertexAttrib4ubvNV; +PFNGLVERTEXATTRIBS1DVNVPROC glad_glVertexAttribs1dvNV; +PFNGLVERTEXATTRIBS1FVNVPROC glad_glVertexAttribs1fvNV; +PFNGLVERTEXATTRIBS1SVNVPROC glad_glVertexAttribs1svNV; +PFNGLVERTEXATTRIBS2DVNVPROC glad_glVertexAttribs2dvNV; +PFNGLVERTEXATTRIBS2FVNVPROC glad_glVertexAttribs2fvNV; +PFNGLVERTEXATTRIBS2SVNVPROC glad_glVertexAttribs2svNV; +PFNGLVERTEXATTRIBS3DVNVPROC glad_glVertexAttribs3dvNV; +PFNGLVERTEXATTRIBS3FVNVPROC glad_glVertexAttribs3fvNV; +PFNGLVERTEXATTRIBS3SVNVPROC glad_glVertexAttribs3svNV; +PFNGLVERTEXATTRIBS4DVNVPROC glad_glVertexAttribs4dvNV; +PFNGLVERTEXATTRIBS4FVNVPROC glad_glVertexAttribs4fvNV; +PFNGLVERTEXATTRIBS4SVNVPROC glad_glVertexAttribs4svNV; +PFNGLVERTEXATTRIBS4UBVNVPROC glad_glVertexAttribs4ubvNV; +PFNGLBEGINVERTEXSHADEREXTPROC glad_glBeginVertexShaderEXT; +PFNGLENDVERTEXSHADEREXTPROC glad_glEndVertexShaderEXT; +PFNGLBINDVERTEXSHADEREXTPROC glad_glBindVertexShaderEXT; +PFNGLGENVERTEXSHADERSEXTPROC glad_glGenVertexShadersEXT; +PFNGLDELETEVERTEXSHADEREXTPROC glad_glDeleteVertexShaderEXT; +PFNGLSHADEROP1EXTPROC glad_glShaderOp1EXT; +PFNGLSHADEROP2EXTPROC glad_glShaderOp2EXT; +PFNGLSHADEROP3EXTPROC glad_glShaderOp3EXT; +PFNGLSWIZZLEEXTPROC glad_glSwizzleEXT; +PFNGLWRITEMASKEXTPROC glad_glWriteMaskEXT; +PFNGLINSERTCOMPONENTEXTPROC glad_glInsertComponentEXT; +PFNGLEXTRACTCOMPONENTEXTPROC glad_glExtractComponentEXT; +PFNGLGENSYMBOLSEXTPROC glad_glGenSymbolsEXT; +PFNGLSETINVARIANTEXTPROC glad_glSetInvariantEXT; +PFNGLSETLOCALCONSTANTEXTPROC glad_glSetLocalConstantEXT; +PFNGLVARIANTBVEXTPROC glad_glVariantbvEXT; +PFNGLVARIANTSVEXTPROC glad_glVariantsvEXT; +PFNGLVARIANTIVEXTPROC glad_glVariantivEXT; +PFNGLVARIANTFVEXTPROC glad_glVariantfvEXT; +PFNGLVARIANTDVEXTPROC glad_glVariantdvEXT; +PFNGLVARIANTUBVEXTPROC glad_glVariantubvEXT; +PFNGLVARIANTUSVEXTPROC glad_glVariantusvEXT; +PFNGLVARIANTUIVEXTPROC glad_glVariantuivEXT; +PFNGLVARIANTPOINTEREXTPROC glad_glVariantPointerEXT; +PFNGLENABLEVARIANTCLIENTSTATEEXTPROC glad_glEnableVariantClientStateEXT; +PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC glad_glDisableVariantClientStateEXT; +PFNGLBINDLIGHTPARAMETEREXTPROC glad_glBindLightParameterEXT; +PFNGLBINDMATERIALPARAMETEREXTPROC glad_glBindMaterialParameterEXT; +PFNGLBINDTEXGENPARAMETEREXTPROC glad_glBindTexGenParameterEXT; +PFNGLBINDTEXTUREUNITPARAMETEREXTPROC glad_glBindTextureUnitParameterEXT; +PFNGLBINDPARAMETEREXTPROC glad_glBindParameterEXT; +PFNGLISVARIANTENABLEDEXTPROC glad_glIsVariantEnabledEXT; +PFNGLGETVARIANTBOOLEANVEXTPROC glad_glGetVariantBooleanvEXT; +PFNGLGETVARIANTINTEGERVEXTPROC glad_glGetVariantIntegervEXT; +PFNGLGETVARIANTFLOATVEXTPROC glad_glGetVariantFloatvEXT; +PFNGLGETVARIANTPOINTERVEXTPROC glad_glGetVariantPointervEXT; +PFNGLGETINVARIANTBOOLEANVEXTPROC glad_glGetInvariantBooleanvEXT; +PFNGLGETINVARIANTINTEGERVEXTPROC glad_glGetInvariantIntegervEXT; +PFNGLGETINVARIANTFLOATVEXTPROC glad_glGetInvariantFloatvEXT; +PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC glad_glGetLocalConstantBooleanvEXT; +PFNGLGETLOCALCONSTANTINTEGERVEXTPROC glad_glGetLocalConstantIntegervEXT; +PFNGLGETLOCALCONSTANTFLOATVEXTPROC glad_glGetLocalConstantFloatvEXT; +PFNGLBLENDFUNCSEPARATEEXTPROC glad_glBlendFuncSeparateEXT; +PFNGLGENFENCESAPPLEPROC glad_glGenFencesAPPLE; +PFNGLDELETEFENCESAPPLEPROC glad_glDeleteFencesAPPLE; +PFNGLSETFENCEAPPLEPROC glad_glSetFenceAPPLE; +PFNGLISFENCEAPPLEPROC glad_glIsFenceAPPLE; +PFNGLTESTFENCEAPPLEPROC glad_glTestFenceAPPLE; +PFNGLFINISHFENCEAPPLEPROC glad_glFinishFenceAPPLE; +PFNGLTESTOBJECTAPPLEPROC glad_glTestObjectAPPLE; +PFNGLFINISHOBJECTAPPLEPROC glad_glFinishObjectAPPLE; +PFNGLMULTITEXCOORD1BOESPROC glad_glMultiTexCoord1bOES; +PFNGLMULTITEXCOORD1BVOESPROC glad_glMultiTexCoord1bvOES; +PFNGLMULTITEXCOORD2BOESPROC glad_glMultiTexCoord2bOES; +PFNGLMULTITEXCOORD2BVOESPROC glad_glMultiTexCoord2bvOES; +PFNGLMULTITEXCOORD3BOESPROC glad_glMultiTexCoord3bOES; +PFNGLMULTITEXCOORD3BVOESPROC glad_glMultiTexCoord3bvOES; +PFNGLMULTITEXCOORD4BOESPROC glad_glMultiTexCoord4bOES; +PFNGLMULTITEXCOORD4BVOESPROC glad_glMultiTexCoord4bvOES; +PFNGLTEXCOORD1BOESPROC glad_glTexCoord1bOES; +PFNGLTEXCOORD1BVOESPROC glad_glTexCoord1bvOES; +PFNGLTEXCOORD2BOESPROC glad_glTexCoord2bOES; +PFNGLTEXCOORD2BVOESPROC glad_glTexCoord2bvOES; +PFNGLTEXCOORD3BOESPROC glad_glTexCoord3bOES; +PFNGLTEXCOORD3BVOESPROC glad_glTexCoord3bvOES; +PFNGLTEXCOORD4BOESPROC glad_glTexCoord4bOES; +PFNGLTEXCOORD4BVOESPROC glad_glTexCoord4bvOES; +PFNGLVERTEX2BOESPROC glad_glVertex2bOES; +PFNGLVERTEX2BVOESPROC glad_glVertex2bvOES; +PFNGLVERTEX3BOESPROC glad_glVertex3bOES; +PFNGLVERTEX3BVOESPROC glad_glVertex3bvOES; +PFNGLVERTEX4BOESPROC glad_glVertex4bOES; +PFNGLVERTEX4BVOESPROC glad_glVertex4bvOES; +PFNGLLOADTRANSPOSEMATRIXFARBPROC glad_glLoadTransposeMatrixfARB; +PFNGLLOADTRANSPOSEMATRIXDARBPROC glad_glLoadTransposeMatrixdARB; +PFNGLMULTTRANSPOSEMATRIXFARBPROC glad_glMultTransposeMatrixfARB; +PFNGLMULTTRANSPOSEMATRIXDARBPROC glad_glMultTransposeMatrixdARB; +PFNGLFOGCOORDFEXTPROC glad_glFogCoordfEXT; +PFNGLFOGCOORDFVEXTPROC glad_glFogCoordfvEXT; +PFNGLFOGCOORDDEXTPROC glad_glFogCoorddEXT; +PFNGLFOGCOORDDVEXTPROC glad_glFogCoorddvEXT; +PFNGLFOGCOORDPOINTEREXTPROC glad_glFogCoordPointerEXT; +PFNGLARRAYELEMENTEXTPROC glad_glArrayElementEXT; +PFNGLCOLORPOINTEREXTPROC glad_glColorPointerEXT; +PFNGLDRAWARRAYSEXTPROC glad_glDrawArraysEXT; +PFNGLEDGEFLAGPOINTEREXTPROC glad_glEdgeFlagPointerEXT; +PFNGLGETPOINTERVEXTPROC glad_glGetPointervEXT; +PFNGLINDEXPOINTEREXTPROC glad_glIndexPointerEXT; +PFNGLNORMALPOINTEREXTPROC glad_glNormalPointerEXT; +PFNGLTEXCOORDPOINTEREXTPROC glad_glTexCoordPointerEXT; +PFNGLVERTEXPOINTEREXTPROC glad_glVertexPointerEXT; +PFNGLBLENDEQUATIONSEPARATEEXTPROC glad_glBlendEquationSeparateEXT; +PFNGLCOVERAGEMODULATIONTABLENVPROC glad_glCoverageModulationTableNV; +PFNGLGETCOVERAGEMODULATIONTABLENVPROC glad_glGetCoverageModulationTableNV; +PFNGLCOVERAGEMODULATIONNVPROC glad_glCoverageModulationNV; +PFNGLBEGINCONDITIONALRENDERNVXPROC glad_glBeginConditionalRenderNVX; +PFNGLENDCONDITIONALRENDERNVXPROC glad_glEndConditionalRenderNVX; +PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect; +PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect; +PFNGLCOPYIMAGESUBDATANVPROC glad_glCopyImageSubDataNV; +PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC glad_glApplyFramebufferAttachmentCMAAINTEL; +PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback; +PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks; +PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks; +PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback; +PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback; +PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback; +PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback; +PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream; +PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed; +PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed; +PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv; +PFNGLINSERTEVENTMARKEREXTPROC glad_glInsertEventMarkerEXT; +PFNGLPUSHGROUPMARKEREXTPROC glad_glPushGroupMarkerEXT; +PFNGLPOPGROUPMARKEREXTPROC glad_glPopGroupMarkerEXT; +PFNGLPIXELTRANSFORMPARAMETERIEXTPROC glad_glPixelTransformParameteriEXT; +PFNGLPIXELTRANSFORMPARAMETERFEXTPROC glad_glPixelTransformParameterfEXT; +PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC glad_glPixelTransformParameterivEXT; +PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC glad_glPixelTransformParameterfvEXT; +PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC glad_glGetPixelTransformParameterivEXT; +PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC glad_glGetPixelTransformParameterfvEXT; +PFNGLGENFRAGMENTSHADERSATIPROC glad_glGenFragmentShadersATI; +PFNGLBINDFRAGMENTSHADERATIPROC glad_glBindFragmentShaderATI; +PFNGLDELETEFRAGMENTSHADERATIPROC glad_glDeleteFragmentShaderATI; +PFNGLBEGINFRAGMENTSHADERATIPROC glad_glBeginFragmentShaderATI; +PFNGLENDFRAGMENTSHADERATIPROC glad_glEndFragmentShaderATI; +PFNGLPASSTEXCOORDATIPROC glad_glPassTexCoordATI; +PFNGLSAMPLEMAPATIPROC glad_glSampleMapATI; +PFNGLCOLORFRAGMENTOP1ATIPROC glad_glColorFragmentOp1ATI; +PFNGLCOLORFRAGMENTOP2ATIPROC glad_glColorFragmentOp2ATI; +PFNGLCOLORFRAGMENTOP3ATIPROC glad_glColorFragmentOp3ATI; +PFNGLALPHAFRAGMENTOP1ATIPROC glad_glAlphaFragmentOp1ATI; +PFNGLALPHAFRAGMENTOP2ATIPROC glad_glAlphaFragmentOp2ATI; +PFNGLALPHAFRAGMENTOP3ATIPROC glad_glAlphaFragmentOp3ATI; +PFNGLSETFRAGMENTSHADERCONSTANTATIPROC glad_glSetFragmentShaderConstantATI; +PFNGLREPLACEMENTCODEUISUNPROC glad_glReplacementCodeuiSUN; +PFNGLREPLACEMENTCODEUSSUNPROC glad_glReplacementCodeusSUN; +PFNGLREPLACEMENTCODEUBSUNPROC glad_glReplacementCodeubSUN; +PFNGLREPLACEMENTCODEUIVSUNPROC glad_glReplacementCodeuivSUN; +PFNGLREPLACEMENTCODEUSVSUNPROC glad_glReplacementCodeusvSUN; +PFNGLREPLACEMENTCODEUBVSUNPROC glad_glReplacementCodeubvSUN; +PFNGLREPLACEMENTCODEPOINTERSUNPROC glad_glReplacementCodePointerSUN; +PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced; +PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced; +PFNGLASYNCMARKERSGIXPROC glad_glAsyncMarkerSGIX; +PFNGLFINISHASYNCSGIXPROC glad_glFinishAsyncSGIX; +PFNGLPOLLASYNCSGIXPROC glad_glPollAsyncSGIX; +PFNGLGENASYNCMARKERSSGIXPROC glad_glGenAsyncMarkersSGIX; +PFNGLDELETEASYNCMARKERSSGIXPROC glad_glDeleteAsyncMarkersSGIX; +PFNGLISASYNCMARKERSGIXPROC glad_glIsAsyncMarkerSGIX; +PFNGLBEGINPERFQUERYINTELPROC glad_glBeginPerfQueryINTEL; +PFNGLCREATEPERFQUERYINTELPROC glad_glCreatePerfQueryINTEL; +PFNGLDELETEPERFQUERYINTELPROC glad_glDeletePerfQueryINTEL; +PFNGLENDPERFQUERYINTELPROC glad_glEndPerfQueryINTEL; +PFNGLGETFIRSTPERFQUERYIDINTELPROC glad_glGetFirstPerfQueryIdINTEL; +PFNGLGETNEXTPERFQUERYIDINTELPROC glad_glGetNextPerfQueryIdINTEL; +PFNGLGETPERFCOUNTERINFOINTELPROC glad_glGetPerfCounterInfoINTEL; +PFNGLGETPERFQUERYDATAINTELPROC glad_glGetPerfQueryDataINTEL; +PFNGLGETPERFQUERYIDBYNAMEINTELPROC glad_glGetPerfQueryIdByNameINTEL; +PFNGLGETPERFQUERYINFOINTELPROC glad_glGetPerfQueryInfoINTEL; +PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC glad_glMultiDrawArraysIndirectBindlessCountNV; +PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC glad_glMultiDrawElementsIndirectBindlessCountNV; +PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler; +PFNGLSHADERBINARYPROC glad_glShaderBinary; +PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat; +PFNGLDEPTHRANGEFPROC glad_glDepthRangef; +PFNGLCLEARDEPTHFPROC glad_glClearDepthf; +PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC glad_glMultiDrawArraysIndirectCountARB; +PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC glad_glMultiDrawElementsIndirectCountARB; +PFNGLVERTEX2HNVPROC glad_glVertex2hNV; +PFNGLVERTEX2HVNVPROC glad_glVertex2hvNV; +PFNGLVERTEX3HNVPROC glad_glVertex3hNV; +PFNGLVERTEX3HVNVPROC glad_glVertex3hvNV; +PFNGLVERTEX4HNVPROC glad_glVertex4hNV; +PFNGLVERTEX4HVNVPROC glad_glVertex4hvNV; +PFNGLNORMAL3HNVPROC glad_glNormal3hNV; +PFNGLNORMAL3HVNVPROC glad_glNormal3hvNV; +PFNGLCOLOR3HNVPROC glad_glColor3hNV; +PFNGLCOLOR3HVNVPROC glad_glColor3hvNV; +PFNGLCOLOR4HNVPROC glad_glColor4hNV; +PFNGLCOLOR4HVNVPROC glad_glColor4hvNV; +PFNGLTEXCOORD1HNVPROC glad_glTexCoord1hNV; +PFNGLTEXCOORD1HVNVPROC glad_glTexCoord1hvNV; +PFNGLTEXCOORD2HNVPROC glad_glTexCoord2hNV; +PFNGLTEXCOORD2HVNVPROC glad_glTexCoord2hvNV; +PFNGLTEXCOORD3HNVPROC glad_glTexCoord3hNV; +PFNGLTEXCOORD3HVNVPROC glad_glTexCoord3hvNV; +PFNGLTEXCOORD4HNVPROC glad_glTexCoord4hNV; +PFNGLTEXCOORD4HVNVPROC glad_glTexCoord4hvNV; +PFNGLMULTITEXCOORD1HNVPROC glad_glMultiTexCoord1hNV; +PFNGLMULTITEXCOORD1HVNVPROC glad_glMultiTexCoord1hvNV; +PFNGLMULTITEXCOORD2HNVPROC glad_glMultiTexCoord2hNV; +PFNGLMULTITEXCOORD2HVNVPROC glad_glMultiTexCoord2hvNV; +PFNGLMULTITEXCOORD3HNVPROC glad_glMultiTexCoord3hNV; +PFNGLMULTITEXCOORD3HVNVPROC glad_glMultiTexCoord3hvNV; +PFNGLMULTITEXCOORD4HNVPROC glad_glMultiTexCoord4hNV; +PFNGLMULTITEXCOORD4HVNVPROC glad_glMultiTexCoord4hvNV; +PFNGLFOGCOORDHNVPROC glad_glFogCoordhNV; +PFNGLFOGCOORDHVNVPROC glad_glFogCoordhvNV; +PFNGLSECONDARYCOLOR3HNVPROC glad_glSecondaryColor3hNV; +PFNGLSECONDARYCOLOR3HVNVPROC glad_glSecondaryColor3hvNV; +PFNGLVERTEXWEIGHTHNVPROC glad_glVertexWeighthNV; +PFNGLVERTEXWEIGHTHVNVPROC glad_glVertexWeighthvNV; +PFNGLVERTEXATTRIB1HNVPROC glad_glVertexAttrib1hNV; +PFNGLVERTEXATTRIB1HVNVPROC glad_glVertexAttrib1hvNV; +PFNGLVERTEXATTRIB2HNVPROC glad_glVertexAttrib2hNV; +PFNGLVERTEXATTRIB2HVNVPROC glad_glVertexAttrib2hvNV; +PFNGLVERTEXATTRIB3HNVPROC glad_glVertexAttrib3hNV; +PFNGLVERTEXATTRIB3HVNVPROC glad_glVertexAttrib3hvNV; +PFNGLVERTEXATTRIB4HNVPROC glad_glVertexAttrib4hNV; +PFNGLVERTEXATTRIB4HVNVPROC glad_glVertexAttrib4hvNV; +PFNGLVERTEXATTRIBS1HVNVPROC glad_glVertexAttribs1hvNV; +PFNGLVERTEXATTRIBS2HVNVPROC glad_glVertexAttribs2hvNV; +PFNGLVERTEXATTRIBS3HVNVPROC glad_glVertexAttribs3hvNV; +PFNGLVERTEXATTRIBS4HVNVPROC glad_glVertexAttribs4hvNV; +PFNGLPRIMITIVEBOUNDINGBOXARBPROC glad_glPrimitiveBoundingBoxARB; +PFNGLPOLYGONOFFSETCLAMPEXTPROC glad_glPolygonOffsetClampEXT; +PFNGLLOCKARRAYSEXTPROC glad_glLockArraysEXT; +PFNGLUNLOCKARRAYSEXTPROC glad_glUnlockArraysEXT; +PFNGLDEPTHRANGEDNVPROC glad_glDepthRangedNV; +PFNGLCLEARDEPTHDNVPROC glad_glClearDepthdNV; +PFNGLDEPTHBOUNDSDNVPROC glad_glDepthBoundsdNV; +PFNGLGENOCCLUSIONQUERIESNVPROC glad_glGenOcclusionQueriesNV; +PFNGLDELETEOCCLUSIONQUERIESNVPROC glad_glDeleteOcclusionQueriesNV; +PFNGLISOCCLUSIONQUERYNVPROC glad_glIsOcclusionQueryNV; +PFNGLBEGINOCCLUSIONQUERYNVPROC glad_glBeginOcclusionQueryNV; +PFNGLENDOCCLUSIONQUERYNVPROC glad_glEndOcclusionQueryNV; +PFNGLGETOCCLUSIONQUERYIVNVPROC glad_glGetOcclusionQueryivNV; +PFNGLGETOCCLUSIONQUERYUIVNVPROC glad_glGetOcclusionQueryuivNV; +PFNGLBUFFERPARAMETERIAPPLEPROC glad_glBufferParameteriAPPLE; +PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC glad_glFlushMappedBufferRangeAPPLE; +PFNGLCOLORTABLEPROC glad_glColorTable; +PFNGLCOLORTABLEPARAMETERFVPROC glad_glColorTableParameterfv; +PFNGLCOLORTABLEPARAMETERIVPROC glad_glColorTableParameteriv; +PFNGLCOPYCOLORTABLEPROC glad_glCopyColorTable; +PFNGLGETCOLORTABLEPROC glad_glGetColorTable; +PFNGLGETCOLORTABLEPARAMETERFVPROC glad_glGetColorTableParameterfv; +PFNGLGETCOLORTABLEPARAMETERIVPROC glad_glGetColorTableParameteriv; +PFNGLCOLORSUBTABLEPROC glad_glColorSubTable; +PFNGLCOPYCOLORSUBTABLEPROC glad_glCopyColorSubTable; +PFNGLCONVOLUTIONFILTER1DPROC glad_glConvolutionFilter1D; +PFNGLCONVOLUTIONFILTER2DPROC glad_glConvolutionFilter2D; +PFNGLCONVOLUTIONPARAMETERFPROC glad_glConvolutionParameterf; +PFNGLCONVOLUTIONPARAMETERFVPROC glad_glConvolutionParameterfv; +PFNGLCONVOLUTIONPARAMETERIPROC glad_glConvolutionParameteri; +PFNGLCONVOLUTIONPARAMETERIVPROC glad_glConvolutionParameteriv; +PFNGLCOPYCONVOLUTIONFILTER1DPROC glad_glCopyConvolutionFilter1D; +PFNGLCOPYCONVOLUTIONFILTER2DPROC glad_glCopyConvolutionFilter2D; +PFNGLGETCONVOLUTIONFILTERPROC glad_glGetConvolutionFilter; +PFNGLGETCONVOLUTIONPARAMETERFVPROC glad_glGetConvolutionParameterfv; +PFNGLGETCONVOLUTIONPARAMETERIVPROC glad_glGetConvolutionParameteriv; +PFNGLGETSEPARABLEFILTERPROC glad_glGetSeparableFilter; +PFNGLSEPARABLEFILTER2DPROC glad_glSeparableFilter2D; +PFNGLGETHISTOGRAMPROC glad_glGetHistogram; +PFNGLGETHISTOGRAMPARAMETERFVPROC glad_glGetHistogramParameterfv; +PFNGLGETHISTOGRAMPARAMETERIVPROC glad_glGetHistogramParameteriv; +PFNGLGETMINMAXPROC glad_glGetMinmax; +PFNGLGETMINMAXPARAMETERFVPROC glad_glGetMinmaxParameterfv; +PFNGLGETMINMAXPARAMETERIVPROC glad_glGetMinmaxParameteriv; +PFNGLHISTOGRAMPROC glad_glHistogram; +PFNGLMINMAXPROC glad_glMinmax; +PFNGLRESETHISTOGRAMPROC glad_glResetHistogram; +PFNGLRESETMINMAXPROC glad_glResetMinmax; +PFNGLBLENDEQUATIONIARBPROC glad_glBlendEquationiARB; +PFNGLBLENDEQUATIONSEPARATEIARBPROC glad_glBlendEquationSeparateiARB; +PFNGLBLENDFUNCIARBPROC glad_glBlendFunciARB; +PFNGLBLENDFUNCSEPARATEIARBPROC glad_glBlendFuncSeparateiARB; +PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData; +PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData; +PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB; +PFNGLLABELOBJECTEXTPROC glad_glLabelObjectEXT; +PFNGLGETOBJECTLABELEXTPROC glad_glGetObjectLabelEXT; +PFNGLMINSAMPLESHADINGARBPROC glad_glMinSampleShadingARB; +PFNGLGETINTERNALFORMATSAMPLEIVNVPROC glad_glGetInternalformatSampleivNV; +PFNGLSYNCTEXTUREINTELPROC glad_glSyncTextureINTEL; +PFNGLUNMAPTEXTURE2DINTELPROC glad_glUnmapTexture2DINTEL; +PFNGLMAPTEXTURE2DINTELPROC glad_glMapTexture2DINTEL; +PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute; +PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect; +PFNGLCOLORPOINTERLISTIBMPROC glad_glColorPointerListIBM; +PFNGLSECONDARYCOLORPOINTERLISTIBMPROC glad_glSecondaryColorPointerListIBM; +PFNGLEDGEFLAGPOINTERLISTIBMPROC glad_glEdgeFlagPointerListIBM; +PFNGLFOGCOORDPOINTERLISTIBMPROC glad_glFogCoordPointerListIBM; +PFNGLINDEXPOINTERLISTIBMPROC glad_glIndexPointerListIBM; +PFNGLNORMALPOINTERLISTIBMPROC glad_glNormalPointerListIBM; +PFNGLTEXCOORDPOINTERLISTIBMPROC glad_glTexCoordPointerListIBM; +PFNGLVERTEXPOINTERLISTIBMPROC glad_glVertexPointerListIBM; +PFNGLCLAMPCOLORARBPROC glad_glClampColorARB; +PFNGLGETTEXTUREHANDLEARBPROC glad_glGetTextureHandleARB; +PFNGLGETTEXTURESAMPLERHANDLEARBPROC glad_glGetTextureSamplerHandleARB; +PFNGLMAKETEXTUREHANDLERESIDENTARBPROC glad_glMakeTextureHandleResidentARB; +PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC glad_glMakeTextureHandleNonResidentARB; +PFNGLGETIMAGEHANDLEARBPROC glad_glGetImageHandleARB; +PFNGLMAKEIMAGEHANDLERESIDENTARBPROC glad_glMakeImageHandleResidentARB; +PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC glad_glMakeImageHandleNonResidentARB; +PFNGLUNIFORMHANDLEUI64ARBPROC glad_glUniformHandleui64ARB; +PFNGLUNIFORMHANDLEUI64VARBPROC glad_glUniformHandleui64vARB; +PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC glad_glProgramUniformHandleui64ARB; +PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC glad_glProgramUniformHandleui64vARB; +PFNGLISTEXTUREHANDLERESIDENTARBPROC glad_glIsTextureHandleResidentARB; +PFNGLISIMAGEHANDLERESIDENTARBPROC glad_glIsImageHandleResidentARB; +PFNGLVERTEXATTRIBL1UI64ARBPROC glad_glVertexAttribL1ui64ARB; +PFNGLVERTEXATTRIBL1UI64VARBPROC glad_glVertexAttribL1ui64vARB; +PFNGLGETVERTEXATTRIBLUI64VARBPROC glad_glGetVertexAttribLui64vARB; +PFNGLWINDOWPOS2DARBPROC glad_glWindowPos2dARB; +PFNGLWINDOWPOS2DVARBPROC glad_glWindowPos2dvARB; +PFNGLWINDOWPOS2FARBPROC glad_glWindowPos2fARB; +PFNGLWINDOWPOS2FVARBPROC glad_glWindowPos2fvARB; +PFNGLWINDOWPOS2IARBPROC glad_glWindowPos2iARB; +PFNGLWINDOWPOS2IVARBPROC glad_glWindowPos2ivARB; +PFNGLWINDOWPOS2SARBPROC glad_glWindowPos2sARB; +PFNGLWINDOWPOS2SVARBPROC glad_glWindowPos2svARB; +PFNGLWINDOWPOS3DARBPROC glad_glWindowPos3dARB; +PFNGLWINDOWPOS3DVARBPROC glad_glWindowPos3dvARB; +PFNGLWINDOWPOS3FARBPROC glad_glWindowPos3fARB; +PFNGLWINDOWPOS3FVARBPROC glad_glWindowPos3fvARB; +PFNGLWINDOWPOS3IARBPROC glad_glWindowPos3iARB; +PFNGLWINDOWPOS3IVARBPROC glad_glWindowPos3ivARB; +PFNGLWINDOWPOS3SARBPROC glad_glWindowPos3sARB; +PFNGLWINDOWPOS3SVARBPROC glad_glWindowPos3svARB; +PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ; +PFNGLBINDIMAGETEXTUREEXTPROC glad_glBindImageTextureEXT; +PFNGLMEMORYBARRIEREXTPROC glad_glMemoryBarrierEXT; +PFNGLCOPYTEXIMAGE1DEXTPROC glad_glCopyTexImage1DEXT; +PFNGLCOPYTEXIMAGE2DEXTPROC glad_glCopyTexImage2DEXT; +PFNGLCOPYTEXSUBIMAGE1DEXTPROC glad_glCopyTexSubImage1DEXT; +PFNGLCOPYTEXSUBIMAGE2DEXTPROC glad_glCopyTexSubImage2DEXT; +PFNGLCOPYTEXSUBIMAGE3DEXTPROC glad_glCopyTexSubImage3DEXT; +PFNGLCOMBINERSTAGEPARAMETERFVNVPROC glad_glCombinerStageParameterfvNV; +PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC glad_glGetCombinerStageParameterfvNV; +PFNGLDRAWTEXTURENVPROC glad_glDrawTextureNV; +PFNGLDRAWARRAYSINSTANCEDEXTPROC glad_glDrawArraysInstancedEXT; +PFNGLDRAWELEMENTSINSTANCEDEXTPROC glad_glDrawElementsInstancedEXT; +PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv; +PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf; +PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv; +PFNGLSCISSORARRAYVPROC glad_glScissorArrayv; +PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed; +PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv; +PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv; +PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed; +PFNGLGETFLOATI_VPROC glad_glGetFloati_v; +PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v; +PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages; +PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram; +PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv; +PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline; +PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines; +PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines; +PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline; +PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv; +PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i; +PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv; +PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f; +PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv; +PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d; +PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv; +PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui; +PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv; +PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i; +PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv; +PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f; +PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv; +PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d; +PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv; +PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui; +PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv; +PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i; +PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv; +PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f; +PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv; +PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d; +PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv; +PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui; +PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv; +PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i; +PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv; +PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f; +PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv; +PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d; +PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv; +PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui; +PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv; +PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv; +PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv; +PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv; +PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv; +PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv; +PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv; +PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv; +PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv; +PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv; +PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv; +PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv; +PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv; +PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv; +PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv; +PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv; +PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv; +PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv; +PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv; +PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline; +PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog; +PFNGLDEPTHBOUNDSEXTPROC glad_glDepthBoundsEXT; +PFNGLBEGINVIDEOCAPTURENVPROC glad_glBeginVideoCaptureNV; +PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC glad_glBindVideoCaptureStreamBufferNV; +PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC glad_glBindVideoCaptureStreamTextureNV; +PFNGLENDVIDEOCAPTURENVPROC glad_glEndVideoCaptureNV; +PFNGLGETVIDEOCAPTUREIVNVPROC glad_glGetVideoCaptureivNV; +PFNGLGETVIDEOCAPTURESTREAMIVNVPROC glad_glGetVideoCaptureStreamivNV; +PFNGLGETVIDEOCAPTURESTREAMFVNVPROC glad_glGetVideoCaptureStreamfvNV; +PFNGLGETVIDEOCAPTURESTREAMDVNVPROC glad_glGetVideoCaptureStreamdvNV; +PFNGLVIDEOCAPTURENVPROC glad_glVideoCaptureNV; +PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC glad_glVideoCaptureStreamParameterivNV; +PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC glad_glVideoCaptureStreamParameterfvNV; +PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC glad_glVideoCaptureStreamParameterdvNV; +PFNGLCURRENTPALETTEMATRIXARBPROC glad_glCurrentPaletteMatrixARB; +PFNGLMATRIXINDEXUBVARBPROC glad_glMatrixIndexubvARB; +PFNGLMATRIXINDEXUSVARBPROC glad_glMatrixIndexusvARB; +PFNGLMATRIXINDEXUIVARBPROC glad_glMatrixIndexuivARB; +PFNGLMATRIXINDEXPOINTERARBPROC glad_glMatrixIndexPointerARB; +PFNGLTEXTURECOLORMASKSGISPROC glad_glTextureColorMaskSGIS; +PFNGLTANGENT3BEXTPROC glad_glTangent3bEXT; +PFNGLTANGENT3BVEXTPROC glad_glTangent3bvEXT; +PFNGLTANGENT3DEXTPROC glad_glTangent3dEXT; +PFNGLTANGENT3DVEXTPROC glad_glTangent3dvEXT; +PFNGLTANGENT3FEXTPROC glad_glTangent3fEXT; +PFNGLTANGENT3FVEXTPROC glad_glTangent3fvEXT; +PFNGLTANGENT3IEXTPROC glad_glTangent3iEXT; +PFNGLTANGENT3IVEXTPROC glad_glTangent3ivEXT; +PFNGLTANGENT3SEXTPROC glad_glTangent3sEXT; +PFNGLTANGENT3SVEXTPROC glad_glTangent3svEXT; +PFNGLBINORMAL3BEXTPROC glad_glBinormal3bEXT; +PFNGLBINORMAL3BVEXTPROC glad_glBinormal3bvEXT; +PFNGLBINORMAL3DEXTPROC glad_glBinormal3dEXT; +PFNGLBINORMAL3DVEXTPROC glad_glBinormal3dvEXT; +PFNGLBINORMAL3FEXTPROC glad_glBinormal3fEXT; +PFNGLBINORMAL3FVEXTPROC glad_glBinormal3fvEXT; +PFNGLBINORMAL3IEXTPROC glad_glBinormal3iEXT; +PFNGLBINORMAL3IVEXTPROC glad_glBinormal3ivEXT; +PFNGLBINORMAL3SEXTPROC glad_glBinormal3sEXT; +PFNGLBINORMAL3SVEXTPROC glad_glBinormal3svEXT; +PFNGLTANGENTPOINTEREXTPROC glad_glTangentPointerEXT; +PFNGLBINORMALPOINTEREXTPROC glad_glBinormalPointerEXT; +PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB; +PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB; +PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glad_glCompressedTexImage1DARB; +PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glad_glCompressedTexSubImage3DARB; +PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glad_glCompressedTexSubImage2DARB; +PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glad_glCompressedTexSubImage1DARB; +PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glad_glGetCompressedTexImageARB; +PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation; +PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex; +PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv; +PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName; +PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName; +PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv; +PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv; +PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv; +PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample; +PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample; +PFNGLVERTEXATTRIBL1DEXTPROC glad_glVertexAttribL1dEXT; +PFNGLVERTEXATTRIBL2DEXTPROC glad_glVertexAttribL2dEXT; +PFNGLVERTEXATTRIBL3DEXTPROC glad_glVertexAttribL3dEXT; +PFNGLVERTEXATTRIBL4DEXTPROC glad_glVertexAttribL4dEXT; +PFNGLVERTEXATTRIBL1DVEXTPROC glad_glVertexAttribL1dvEXT; +PFNGLVERTEXATTRIBL2DVEXTPROC glad_glVertexAttribL2dvEXT; +PFNGLVERTEXATTRIBL3DVEXTPROC glad_glVertexAttribL3dvEXT; +PFNGLVERTEXATTRIBL4DVEXTPROC glad_glVertexAttribL4dvEXT; +PFNGLVERTEXATTRIBLPOINTEREXTPROC glad_glVertexAttribLPointerEXT; +PFNGLGETVERTEXATTRIBLDVEXTPROC glad_glGetVertexAttribLdvEXT; +PFNGLQUERYMATRIXXOESPROC glad_glQueryMatrixxOES; +PFNGLWINDOWPOS2DMESAPROC glad_glWindowPos2dMESA; +PFNGLWINDOWPOS2DVMESAPROC glad_glWindowPos2dvMESA; +PFNGLWINDOWPOS2FMESAPROC glad_glWindowPos2fMESA; +PFNGLWINDOWPOS2FVMESAPROC glad_glWindowPos2fvMESA; +PFNGLWINDOWPOS2IMESAPROC glad_glWindowPos2iMESA; +PFNGLWINDOWPOS2IVMESAPROC glad_glWindowPos2ivMESA; +PFNGLWINDOWPOS2SMESAPROC glad_glWindowPos2sMESA; +PFNGLWINDOWPOS2SVMESAPROC glad_glWindowPos2svMESA; +PFNGLWINDOWPOS3DMESAPROC glad_glWindowPos3dMESA; +PFNGLWINDOWPOS3DVMESAPROC glad_glWindowPos3dvMESA; +PFNGLWINDOWPOS3FMESAPROC glad_glWindowPos3fMESA; +PFNGLWINDOWPOS3FVMESAPROC glad_glWindowPos3fvMESA; +PFNGLWINDOWPOS3IMESAPROC glad_glWindowPos3iMESA; +PFNGLWINDOWPOS3IVMESAPROC glad_glWindowPos3ivMESA; +PFNGLWINDOWPOS3SMESAPROC glad_glWindowPos3sMESA; +PFNGLWINDOWPOS3SVMESAPROC glad_glWindowPos3svMESA; +PFNGLWINDOWPOS4DMESAPROC glad_glWindowPos4dMESA; +PFNGLWINDOWPOS4DVMESAPROC glad_glWindowPos4dvMESA; +PFNGLWINDOWPOS4FMESAPROC glad_glWindowPos4fMESA; +PFNGLWINDOWPOS4FVMESAPROC glad_glWindowPos4fvMESA; +PFNGLWINDOWPOS4IMESAPROC glad_glWindowPos4iMESA; +PFNGLWINDOWPOS4IVMESAPROC glad_glWindowPos4ivMESA; +PFNGLWINDOWPOS4SMESAPROC glad_glWindowPos4sMESA; +PFNGLWINDOWPOS4SVMESAPROC glad_glWindowPos4svMESA; +PFNGLOBJECTPURGEABLEAPPLEPROC glad_glObjectPurgeableAPPLE; +PFNGLOBJECTUNPURGEABLEAPPLEPROC glad_glObjectUnpurgeableAPPLE; +PFNGLGETOBJECTPARAMETERIVAPPLEPROC glad_glGetObjectParameterivAPPLE; +PFNGLGENQUERIESARBPROC glad_glGenQueriesARB; +PFNGLDELETEQUERIESARBPROC glad_glDeleteQueriesARB; +PFNGLISQUERYARBPROC glad_glIsQueryARB; +PFNGLBEGINQUERYARBPROC glad_glBeginQueryARB; +PFNGLENDQUERYARBPROC glad_glEndQueryARB; +PFNGLGETQUERYIVARBPROC glad_glGetQueryivARB; +PFNGLGETQUERYOBJECTIVARBPROC glad_glGetQueryObjectivARB; +PFNGLGETQUERYOBJECTUIVARBPROC glad_glGetQueryObjectuivARB; +PFNGLCOLORTABLESGIPROC glad_glColorTableSGI; +PFNGLCOLORTABLEPARAMETERFVSGIPROC glad_glColorTableParameterfvSGI; +PFNGLCOLORTABLEPARAMETERIVSGIPROC glad_glColorTableParameterivSGI; +PFNGLCOPYCOLORTABLESGIPROC glad_glCopyColorTableSGI; +PFNGLGETCOLORTABLESGIPROC glad_glGetColorTableSGI; +PFNGLGETCOLORTABLEPARAMETERFVSGIPROC glad_glGetColorTableParameterfvSGI; +PFNGLGETCOLORTABLEPARAMETERIVSGIPROC glad_glGetColorTableParameterivSGI; +PFNGLGETUNIFORMUIVEXTPROC glad_glGetUniformuivEXT; +PFNGLBINDFRAGDATALOCATIONEXTPROC glad_glBindFragDataLocationEXT; +PFNGLGETFRAGDATALOCATIONEXTPROC glad_glGetFragDataLocationEXT; +PFNGLUNIFORM1UIEXTPROC glad_glUniform1uiEXT; +PFNGLUNIFORM2UIEXTPROC glad_glUniform2uiEXT; +PFNGLUNIFORM3UIEXTPROC glad_glUniform3uiEXT; +PFNGLUNIFORM4UIEXTPROC glad_glUniform4uiEXT; +PFNGLUNIFORM1UIVEXTPROC glad_glUniform1uivEXT; +PFNGLUNIFORM2UIVEXTPROC glad_glUniform2uivEXT; +PFNGLUNIFORM3UIVEXTPROC glad_glUniform3uivEXT; +PFNGLUNIFORM4UIVEXTPROC glad_glUniform4uivEXT; +PFNGLPROGRAMVERTEXLIMITNVPROC glad_glProgramVertexLimitNV; +PFNGLFRAMEBUFFERTEXTUREEXTPROC glad_glFramebufferTextureEXT; +PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC glad_glFramebufferTextureFaceEXT; +PFNGLDEBUGMESSAGEENABLEAMDPROC glad_glDebugMessageEnableAMD; +PFNGLDEBUGMESSAGEINSERTAMDPROC glad_glDebugMessageInsertAMD; +PFNGLDEBUGMESSAGECALLBACKAMDPROC glad_glDebugMessageCallbackAMD; +PFNGLGETDEBUGMESSAGELOGAMDPROC glad_glGetDebugMessageLogAMD; +PFNGLACTIVETEXTUREARBPROC glad_glActiveTextureARB; +PFNGLCLIENTACTIVETEXTUREARBPROC glad_glClientActiveTextureARB; +PFNGLMULTITEXCOORD1DARBPROC glad_glMultiTexCoord1dARB; +PFNGLMULTITEXCOORD1DVARBPROC glad_glMultiTexCoord1dvARB; +PFNGLMULTITEXCOORD1FARBPROC glad_glMultiTexCoord1fARB; +PFNGLMULTITEXCOORD1FVARBPROC glad_glMultiTexCoord1fvARB; +PFNGLMULTITEXCOORD1IARBPROC glad_glMultiTexCoord1iARB; +PFNGLMULTITEXCOORD1IVARBPROC glad_glMultiTexCoord1ivARB; +PFNGLMULTITEXCOORD1SARBPROC glad_glMultiTexCoord1sARB; +PFNGLMULTITEXCOORD1SVARBPROC glad_glMultiTexCoord1svARB; +PFNGLMULTITEXCOORD2DARBPROC glad_glMultiTexCoord2dARB; +PFNGLMULTITEXCOORD2DVARBPROC glad_glMultiTexCoord2dvARB; +PFNGLMULTITEXCOORD2FARBPROC glad_glMultiTexCoord2fARB; +PFNGLMULTITEXCOORD2FVARBPROC glad_glMultiTexCoord2fvARB; +PFNGLMULTITEXCOORD2IARBPROC glad_glMultiTexCoord2iARB; +PFNGLMULTITEXCOORD2IVARBPROC glad_glMultiTexCoord2ivARB; +PFNGLMULTITEXCOORD2SARBPROC glad_glMultiTexCoord2sARB; +PFNGLMULTITEXCOORD2SVARBPROC glad_glMultiTexCoord2svARB; +PFNGLMULTITEXCOORD3DARBPROC glad_glMultiTexCoord3dARB; +PFNGLMULTITEXCOORD3DVARBPROC glad_glMultiTexCoord3dvARB; +PFNGLMULTITEXCOORD3FARBPROC glad_glMultiTexCoord3fARB; +PFNGLMULTITEXCOORD3FVARBPROC glad_glMultiTexCoord3fvARB; +PFNGLMULTITEXCOORD3IARBPROC glad_glMultiTexCoord3iARB; +PFNGLMULTITEXCOORD3IVARBPROC glad_glMultiTexCoord3ivARB; +PFNGLMULTITEXCOORD3SARBPROC glad_glMultiTexCoord3sARB; +PFNGLMULTITEXCOORD3SVARBPROC glad_glMultiTexCoord3svARB; +PFNGLMULTITEXCOORD4DARBPROC glad_glMultiTexCoord4dARB; +PFNGLMULTITEXCOORD4DVARBPROC glad_glMultiTexCoord4dvARB; +PFNGLMULTITEXCOORD4FARBPROC glad_glMultiTexCoord4fARB; +PFNGLMULTITEXCOORD4FVARBPROC glad_glMultiTexCoord4fvARB; +PFNGLMULTITEXCOORD4IARBPROC glad_glMultiTexCoord4iARB; +PFNGLMULTITEXCOORD4IVARBPROC glad_glMultiTexCoord4ivARB; +PFNGLMULTITEXCOORD4SARBPROC glad_glMultiTexCoord4sARB; +PFNGLMULTITEXCOORD4SVARBPROC glad_glMultiTexCoord4svARB; +PFNGLDEFORMATIONMAP3DSGIXPROC glad_glDeformationMap3dSGIX; +PFNGLDEFORMATIONMAP3FSGIXPROC glad_glDeformationMap3fSGIX; +PFNGLDEFORMSGIXPROC glad_glDeformSGIX; +PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC glad_glLoadIdentityDeformationMapSGIX; +PFNGLPROVOKINGVERTEXEXTPROC glad_glProvokingVertexEXT; +PFNGLPOINTPARAMETERFARBPROC glad_glPointParameterfARB; +PFNGLPOINTPARAMETERFVARBPROC glad_glPointParameterfvARB; +PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture; +PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier; +PFNGLTEXTUREBARRIERPROC glad_glTextureBarrier; +PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC glad_glMultiDrawArraysIndirectBindlessNV; +PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC glad_glMultiDrawElementsIndirectBindlessNV; +PFNGLBEGINTRANSFORMFEEDBACKEXTPROC glad_glBeginTransformFeedbackEXT; +PFNGLENDTRANSFORMFEEDBACKEXTPROC glad_glEndTransformFeedbackEXT; +PFNGLBINDBUFFERRANGEEXTPROC glad_glBindBufferRangeEXT; +PFNGLBINDBUFFEROFFSETEXTPROC glad_glBindBufferOffsetEXT; +PFNGLBINDBUFFERBASEEXTPROC glad_glBindBufferBaseEXT; +PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC glad_glTransformFeedbackVaryingsEXT; +PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC glad_glGetTransformFeedbackVaryingEXT; +PFNGLPROGRAMLOCALPARAMETERI4INVPROC glad_glProgramLocalParameterI4iNV; +PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC glad_glProgramLocalParameterI4ivNV; +PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC glad_glProgramLocalParametersI4ivNV; +PFNGLPROGRAMLOCALPARAMETERI4UINVPROC glad_glProgramLocalParameterI4uiNV; +PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC glad_glProgramLocalParameterI4uivNV; +PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC glad_glProgramLocalParametersI4uivNV; +PFNGLPROGRAMENVPARAMETERI4INVPROC glad_glProgramEnvParameterI4iNV; +PFNGLPROGRAMENVPARAMETERI4IVNVPROC glad_glProgramEnvParameterI4ivNV; +PFNGLPROGRAMENVPARAMETERSI4IVNVPROC glad_glProgramEnvParametersI4ivNV; +PFNGLPROGRAMENVPARAMETERI4UINVPROC glad_glProgramEnvParameterI4uiNV; +PFNGLPROGRAMENVPARAMETERI4UIVNVPROC glad_glProgramEnvParameterI4uivNV; +PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC glad_glProgramEnvParametersI4uivNV; +PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC glad_glGetProgramLocalParameterIivNV; +PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC glad_glGetProgramLocalParameterIuivNV; +PFNGLGETPROGRAMENVPARAMETERIIVNVPROC glad_glGetProgramEnvParameterIivNV; +PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC glad_glGetProgramEnvParameterIuivNV; +PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC glad_glProgramSubroutineParametersuivNV; +PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC glad_glGetProgramSubroutineParameteruivNV; +PFNGLPROGRAMPARAMETERIARBPROC glad_glProgramParameteriARB; +PFNGLFRAMEBUFFERTEXTUREARBPROC glad_glFramebufferTextureARB; +PFNGLFRAMEBUFFERTEXTURELAYERARBPROC glad_glFramebufferTextureLayerARB; +PFNGLFRAMEBUFFERTEXTUREFACEARBPROC glad_glFramebufferTextureFaceARB; +PFNGLSUBPIXELPRECISIONBIASNVPROC glad_glSubpixelPrecisionBiasNV; +PFNGLSPRITEPARAMETERFSGIXPROC glad_glSpriteParameterfSGIX; +PFNGLSPRITEPARAMETERFVSGIXPROC glad_glSpriteParameterfvSGIX; +PFNGLSPRITEPARAMETERISGIXPROC glad_glSpriteParameteriSGIX; +PFNGLSPRITEPARAMETERIVSGIXPROC glad_glSpriteParameterivSGIX; +PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary; +PFNGLPROGRAMBINARYPROC glad_glProgramBinary; +PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri; +PFNGLQUERYOBJECTPARAMETERUIAMDPROC glad_glQueryObjectParameteruiAMD; +PFNGLSAMPLEMASKSGISPROC glad_glSampleMaskSGIS; +PFNGLSAMPLEPATTERNSGISPROC glad_glSamplePatternSGIS; +PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT; +PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT; +PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT; +PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT; +PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT; +PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT; +PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT; +PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT; +PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT; +PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT; +PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT; +PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT; +PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT; +PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT; +PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT; +PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT; +PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT; +PFNGLVERTEXARRAYRANGEAPPLEPROC glad_glVertexArrayRangeAPPLE; +PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC glad_glFlushVertexArrayRangeAPPLE; +PFNGLVERTEXARRAYPARAMETERIAPPLEPROC glad_glVertexArrayParameteriAPPLE; +PFNGLCOMBINERPARAMETERFVNVPROC glad_glCombinerParameterfvNV; +PFNGLCOMBINERPARAMETERFNVPROC glad_glCombinerParameterfNV; +PFNGLCOMBINERPARAMETERIVNVPROC glad_glCombinerParameterivNV; +PFNGLCOMBINERPARAMETERINVPROC glad_glCombinerParameteriNV; +PFNGLCOMBINERINPUTNVPROC glad_glCombinerInputNV; +PFNGLCOMBINEROUTPUTNVPROC glad_glCombinerOutputNV; +PFNGLFINALCOMBINERINPUTNVPROC glad_glFinalCombinerInputNV; +PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC glad_glGetCombinerInputParameterfvNV; +PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC glad_glGetCombinerInputParameterivNV; +PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC glad_glGetCombinerOutputParameterfvNV; +PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC glad_glGetCombinerOutputParameterivNV; +PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC glad_glGetFinalCombinerInputParameterfvNV; +PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC glad_glGetFinalCombinerInputParameterivNV; +PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB; +PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage; +PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage; +PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB; +PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB; +PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB; +PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB; +PFNGLCULLPARAMETERDVEXTPROC glad_glCullParameterdvEXT; +PFNGLCULLPARAMETERFVEXTPROC glad_glCullParameterfvEXT; +PFNGLMULTIMODEDRAWARRAYSIBMPROC glad_glMultiModeDrawArraysIBM; +PFNGLMULTIMODEDRAWELEMENTSIBMPROC glad_glMultiModeDrawElementsIBM; +PFNGLBINDVERTEXARRAYAPPLEPROC glad_glBindVertexArrayAPPLE; +PFNGLDELETEVERTEXARRAYSAPPLEPROC glad_glDeleteVertexArraysAPPLE; +PFNGLGENVERTEXARRAYSAPPLEPROC glad_glGenVertexArraysAPPLE; +PFNGLISVERTEXARRAYAPPLEPROC glad_glIsVertexArrayAPPLE; +PFNGLDETAILTEXFUNCSGISPROC glad_glDetailTexFuncSGIS; +PFNGLGETDETAILTEXFUNCSGISPROC glad_glGetDetailTexFuncSGIS; +PFNGLDRAWARRAYSINSTANCEDARBPROC glad_glDrawArraysInstancedARB; +PFNGLDRAWELEMENTSINSTANCEDARBPROC glad_glDrawElementsInstancedARB; +PFNGLNAMEDSTRINGARBPROC glad_glNamedStringARB; +PFNGLDELETENAMEDSTRINGARBPROC glad_glDeleteNamedStringARB; +PFNGLCOMPILESHADERINCLUDEARBPROC glad_glCompileShaderIncludeARB; +PFNGLISNAMEDSTRINGARBPROC glad_glIsNamedStringARB; +PFNGLGETNAMEDSTRINGARBPROC glad_glGetNamedStringARB; +PFNGLGETNAMEDSTRINGIVARBPROC glad_glGetNamedStringivARB; +PFNGLBLENDFUNCSEPARATEINGRPROC glad_glBlendFuncSeparateINGR; +PFNGLGENPATHSNVPROC glad_glGenPathsNV; +PFNGLDELETEPATHSNVPROC glad_glDeletePathsNV; +PFNGLISPATHNVPROC glad_glIsPathNV; +PFNGLPATHCOMMANDSNVPROC glad_glPathCommandsNV; +PFNGLPATHCOORDSNVPROC glad_glPathCoordsNV; +PFNGLPATHSUBCOMMANDSNVPROC glad_glPathSubCommandsNV; +PFNGLPATHSUBCOORDSNVPROC glad_glPathSubCoordsNV; +PFNGLPATHSTRINGNVPROC glad_glPathStringNV; +PFNGLPATHGLYPHSNVPROC glad_glPathGlyphsNV; +PFNGLPATHGLYPHRANGENVPROC glad_glPathGlyphRangeNV; +PFNGLWEIGHTPATHSNVPROC glad_glWeightPathsNV; +PFNGLCOPYPATHNVPROC glad_glCopyPathNV; +PFNGLINTERPOLATEPATHSNVPROC glad_glInterpolatePathsNV; +PFNGLTRANSFORMPATHNVPROC glad_glTransformPathNV; +PFNGLPATHPARAMETERIVNVPROC glad_glPathParameterivNV; +PFNGLPATHPARAMETERINVPROC glad_glPathParameteriNV; +PFNGLPATHPARAMETERFVNVPROC glad_glPathParameterfvNV; +PFNGLPATHPARAMETERFNVPROC glad_glPathParameterfNV; +PFNGLPATHDASHARRAYNVPROC glad_glPathDashArrayNV; +PFNGLPATHSTENCILFUNCNVPROC glad_glPathStencilFuncNV; +PFNGLPATHSTENCILDEPTHOFFSETNVPROC glad_glPathStencilDepthOffsetNV; +PFNGLSTENCILFILLPATHNVPROC glad_glStencilFillPathNV; +PFNGLSTENCILSTROKEPATHNVPROC glad_glStencilStrokePathNV; +PFNGLSTENCILFILLPATHINSTANCEDNVPROC glad_glStencilFillPathInstancedNV; +PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC glad_glStencilStrokePathInstancedNV; +PFNGLPATHCOVERDEPTHFUNCNVPROC glad_glPathCoverDepthFuncNV; +PFNGLCOVERFILLPATHNVPROC glad_glCoverFillPathNV; +PFNGLCOVERSTROKEPATHNVPROC glad_glCoverStrokePathNV; +PFNGLCOVERFILLPATHINSTANCEDNVPROC glad_glCoverFillPathInstancedNV; +PFNGLCOVERSTROKEPATHINSTANCEDNVPROC glad_glCoverStrokePathInstancedNV; +PFNGLGETPATHPARAMETERIVNVPROC glad_glGetPathParameterivNV; +PFNGLGETPATHPARAMETERFVNVPROC glad_glGetPathParameterfvNV; +PFNGLGETPATHCOMMANDSNVPROC glad_glGetPathCommandsNV; +PFNGLGETPATHCOORDSNVPROC glad_glGetPathCoordsNV; +PFNGLGETPATHDASHARRAYNVPROC glad_glGetPathDashArrayNV; +PFNGLGETPATHMETRICSNVPROC glad_glGetPathMetricsNV; +PFNGLGETPATHMETRICRANGENVPROC glad_glGetPathMetricRangeNV; +PFNGLGETPATHSPACINGNVPROC glad_glGetPathSpacingNV; +PFNGLISPOINTINFILLPATHNVPROC glad_glIsPointInFillPathNV; +PFNGLISPOINTINSTROKEPATHNVPROC glad_glIsPointInStrokePathNV; +PFNGLGETPATHLENGTHNVPROC glad_glGetPathLengthNV; +PFNGLPOINTALONGPATHNVPROC glad_glPointAlongPathNV; +PFNGLMATRIXLOAD3X2FNVPROC glad_glMatrixLoad3x2fNV; +PFNGLMATRIXLOAD3X3FNVPROC glad_glMatrixLoad3x3fNV; +PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC glad_glMatrixLoadTranspose3x3fNV; +PFNGLMATRIXMULT3X2FNVPROC glad_glMatrixMult3x2fNV; +PFNGLMATRIXMULT3X3FNVPROC glad_glMatrixMult3x3fNV; +PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC glad_glMatrixMultTranspose3x3fNV; +PFNGLSTENCILTHENCOVERFILLPATHNVPROC glad_glStencilThenCoverFillPathNV; +PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC glad_glStencilThenCoverStrokePathNV; +PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC glad_glStencilThenCoverFillPathInstancedNV; +PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC glad_glStencilThenCoverStrokePathInstancedNV; +PFNGLPATHGLYPHINDEXRANGENVPROC glad_glPathGlyphIndexRangeNV; +PFNGLPATHGLYPHINDEXARRAYNVPROC glad_glPathGlyphIndexArrayNV; +PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC glad_glPathMemoryGlyphIndexArrayNV; +PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC glad_glProgramPathFragmentInputGenNV; +PFNGLGETPROGRAMRESOURCEFVNVPROC glad_glGetProgramResourcefvNV; +PFNGLPATHCOLORGENNVPROC glad_glPathColorGenNV; +PFNGLPATHTEXGENNVPROC glad_glPathTexGenNV; +PFNGLPATHFOGGENNVPROC glad_glPathFogGenNV; +PFNGLGETPATHCOLORGENIVNVPROC glad_glGetPathColorGenivNV; +PFNGLGETPATHCOLORGENFVNVPROC glad_glGetPathColorGenfvNV; +PFNGLGETPATHTEXGENIVNVPROC glad_glGetPathTexGenivNV; +PFNGLGETPATHTEXGENFVNVPROC glad_glGetPathTexGenfvNV; +PFNGLCONSERVATIVERASTERPARAMETERFNVPROC glad_glConservativeRasterParameterfNV; +PFNGLVERTEXSTREAM1SATIPROC glad_glVertexStream1sATI; +PFNGLVERTEXSTREAM1SVATIPROC glad_glVertexStream1svATI; +PFNGLVERTEXSTREAM1IATIPROC glad_glVertexStream1iATI; +PFNGLVERTEXSTREAM1IVATIPROC glad_glVertexStream1ivATI; +PFNGLVERTEXSTREAM1FATIPROC glad_glVertexStream1fATI; +PFNGLVERTEXSTREAM1FVATIPROC glad_glVertexStream1fvATI; +PFNGLVERTEXSTREAM1DATIPROC glad_glVertexStream1dATI; +PFNGLVERTEXSTREAM1DVATIPROC glad_glVertexStream1dvATI; +PFNGLVERTEXSTREAM2SATIPROC glad_glVertexStream2sATI; +PFNGLVERTEXSTREAM2SVATIPROC glad_glVertexStream2svATI; +PFNGLVERTEXSTREAM2IATIPROC glad_glVertexStream2iATI; +PFNGLVERTEXSTREAM2IVATIPROC glad_glVertexStream2ivATI; +PFNGLVERTEXSTREAM2FATIPROC glad_glVertexStream2fATI; +PFNGLVERTEXSTREAM2FVATIPROC glad_glVertexStream2fvATI; +PFNGLVERTEXSTREAM2DATIPROC glad_glVertexStream2dATI; +PFNGLVERTEXSTREAM2DVATIPROC glad_glVertexStream2dvATI; +PFNGLVERTEXSTREAM3SATIPROC glad_glVertexStream3sATI; +PFNGLVERTEXSTREAM3SVATIPROC glad_glVertexStream3svATI; +PFNGLVERTEXSTREAM3IATIPROC glad_glVertexStream3iATI; +PFNGLVERTEXSTREAM3IVATIPROC glad_glVertexStream3ivATI; +PFNGLVERTEXSTREAM3FATIPROC glad_glVertexStream3fATI; +PFNGLVERTEXSTREAM3FVATIPROC glad_glVertexStream3fvATI; +PFNGLVERTEXSTREAM3DATIPROC glad_glVertexStream3dATI; +PFNGLVERTEXSTREAM3DVATIPROC glad_glVertexStream3dvATI; +PFNGLVERTEXSTREAM4SATIPROC glad_glVertexStream4sATI; +PFNGLVERTEXSTREAM4SVATIPROC glad_glVertexStream4svATI; +PFNGLVERTEXSTREAM4IATIPROC glad_glVertexStream4iATI; +PFNGLVERTEXSTREAM4IVATIPROC glad_glVertexStream4ivATI; +PFNGLVERTEXSTREAM4FATIPROC glad_glVertexStream4fATI; +PFNGLVERTEXSTREAM4FVATIPROC glad_glVertexStream4fvATI; +PFNGLVERTEXSTREAM4DATIPROC glad_glVertexStream4dATI; +PFNGLVERTEXSTREAM4DVATIPROC glad_glVertexStream4dvATI; +PFNGLNORMALSTREAM3BATIPROC glad_glNormalStream3bATI; +PFNGLNORMALSTREAM3BVATIPROC glad_glNormalStream3bvATI; +PFNGLNORMALSTREAM3SATIPROC glad_glNormalStream3sATI; +PFNGLNORMALSTREAM3SVATIPROC glad_glNormalStream3svATI; +PFNGLNORMALSTREAM3IATIPROC glad_glNormalStream3iATI; +PFNGLNORMALSTREAM3IVATIPROC glad_glNormalStream3ivATI; +PFNGLNORMALSTREAM3FATIPROC glad_glNormalStream3fATI; +PFNGLNORMALSTREAM3FVATIPROC glad_glNormalStream3fvATI; +PFNGLNORMALSTREAM3DATIPROC glad_glNormalStream3dATI; +PFNGLNORMALSTREAM3DVATIPROC glad_glNormalStream3dvATI; +PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC glad_glClientActiveVertexStreamATI; +PFNGLVERTEXBLENDENVIATIPROC glad_glVertexBlendEnviATI; +PFNGLVERTEXBLENDENVFATIPROC glad_glVertexBlendEnvfATI; +PFNGLUNIFORM1I64ARBPROC glad_glUniform1i64ARB; +PFNGLUNIFORM2I64ARBPROC glad_glUniform2i64ARB; +PFNGLUNIFORM3I64ARBPROC glad_glUniform3i64ARB; +PFNGLUNIFORM4I64ARBPROC glad_glUniform4i64ARB; +PFNGLUNIFORM1I64VARBPROC glad_glUniform1i64vARB; +PFNGLUNIFORM2I64VARBPROC glad_glUniform2i64vARB; +PFNGLUNIFORM3I64VARBPROC glad_glUniform3i64vARB; +PFNGLUNIFORM4I64VARBPROC glad_glUniform4i64vARB; +PFNGLUNIFORM1UI64ARBPROC glad_glUniform1ui64ARB; +PFNGLUNIFORM2UI64ARBPROC glad_glUniform2ui64ARB; +PFNGLUNIFORM3UI64ARBPROC glad_glUniform3ui64ARB; +PFNGLUNIFORM4UI64ARBPROC glad_glUniform4ui64ARB; +PFNGLUNIFORM1UI64VARBPROC glad_glUniform1ui64vARB; +PFNGLUNIFORM2UI64VARBPROC glad_glUniform2ui64vARB; +PFNGLUNIFORM3UI64VARBPROC glad_glUniform3ui64vARB; +PFNGLUNIFORM4UI64VARBPROC glad_glUniform4ui64vARB; +PFNGLGETUNIFORMI64VARBPROC glad_glGetUniformi64vARB; +PFNGLGETUNIFORMUI64VARBPROC glad_glGetUniformui64vARB; +PFNGLGETNUNIFORMI64VARBPROC glad_glGetnUniformi64vARB; +PFNGLGETNUNIFORMUI64VARBPROC glad_glGetnUniformui64vARB; +PFNGLPROGRAMUNIFORM1I64ARBPROC glad_glProgramUniform1i64ARB; +PFNGLPROGRAMUNIFORM2I64ARBPROC glad_glProgramUniform2i64ARB; +PFNGLPROGRAMUNIFORM3I64ARBPROC glad_glProgramUniform3i64ARB; +PFNGLPROGRAMUNIFORM4I64ARBPROC glad_glProgramUniform4i64ARB; +PFNGLPROGRAMUNIFORM1I64VARBPROC glad_glProgramUniform1i64vARB; +PFNGLPROGRAMUNIFORM2I64VARBPROC glad_glProgramUniform2i64vARB; +PFNGLPROGRAMUNIFORM3I64VARBPROC glad_glProgramUniform3i64vARB; +PFNGLPROGRAMUNIFORM4I64VARBPROC glad_glProgramUniform4i64vARB; +PFNGLPROGRAMUNIFORM1UI64ARBPROC glad_glProgramUniform1ui64ARB; +PFNGLPROGRAMUNIFORM2UI64ARBPROC glad_glProgramUniform2ui64ARB; +PFNGLPROGRAMUNIFORM3UI64ARBPROC glad_glProgramUniform3ui64ARB; +PFNGLPROGRAMUNIFORM4UI64ARBPROC glad_glProgramUniform4ui64ARB; +PFNGLPROGRAMUNIFORM1UI64VARBPROC glad_glProgramUniform1ui64vARB; +PFNGLPROGRAMUNIFORM2UI64VARBPROC glad_glProgramUniform2ui64vARB; +PFNGLPROGRAMUNIFORM3UI64VARBPROC glad_glProgramUniform3ui64vARB; +PFNGLPROGRAMUNIFORM4UI64VARBPROC glad_glProgramUniform4ui64vARB; +PFNGLVDPAUINITNVPROC glad_glVDPAUInitNV; +PFNGLVDPAUFININVPROC glad_glVDPAUFiniNV; +PFNGLVDPAUREGISTERVIDEOSURFACENVPROC glad_glVDPAURegisterVideoSurfaceNV; +PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC glad_glVDPAURegisterOutputSurfaceNV; +PFNGLVDPAUISSURFACENVPROC glad_glVDPAUIsSurfaceNV; +PFNGLVDPAUUNREGISTERSURFACENVPROC glad_glVDPAUUnregisterSurfaceNV; +PFNGLVDPAUGETSURFACEIVNVPROC glad_glVDPAUGetSurfaceivNV; +PFNGLVDPAUSURFACEACCESSNVPROC glad_glVDPAUSurfaceAccessNV; +PFNGLVDPAUMAPSURFACESNVPROC glad_glVDPAUMapSurfacesNV; +PFNGLVDPAUUNMAPSURFACESNVPROC glad_glVDPAUUnmapSurfacesNV; +PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v; +PFNGLCOLOR4UBVERTEX2FSUNPROC glad_glColor4ubVertex2fSUN; +PFNGLCOLOR4UBVERTEX2FVSUNPROC glad_glColor4ubVertex2fvSUN; +PFNGLCOLOR4UBVERTEX3FSUNPROC glad_glColor4ubVertex3fSUN; +PFNGLCOLOR4UBVERTEX3FVSUNPROC glad_glColor4ubVertex3fvSUN; +PFNGLCOLOR3FVERTEX3FSUNPROC glad_glColor3fVertex3fSUN; +PFNGLCOLOR3FVERTEX3FVSUNPROC glad_glColor3fVertex3fvSUN; +PFNGLNORMAL3FVERTEX3FSUNPROC glad_glNormal3fVertex3fSUN; +PFNGLNORMAL3FVERTEX3FVSUNPROC glad_glNormal3fVertex3fvSUN; +PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC glad_glColor4fNormal3fVertex3fSUN; +PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC glad_glColor4fNormal3fVertex3fvSUN; +PFNGLTEXCOORD2FVERTEX3FSUNPROC glad_glTexCoord2fVertex3fSUN; +PFNGLTEXCOORD2FVERTEX3FVSUNPROC glad_glTexCoord2fVertex3fvSUN; +PFNGLTEXCOORD4FVERTEX4FSUNPROC glad_glTexCoord4fVertex4fSUN; +PFNGLTEXCOORD4FVERTEX4FVSUNPROC glad_glTexCoord4fVertex4fvSUN; +PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC glad_glTexCoord2fColor4ubVertex3fSUN; +PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC glad_glTexCoord2fColor4ubVertex3fvSUN; +PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC glad_glTexCoord2fColor3fVertex3fSUN; +PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC glad_glTexCoord2fColor3fVertex3fvSUN; +PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC glad_glTexCoord2fNormal3fVertex3fSUN; +PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC glad_glTexCoord2fNormal3fVertex3fvSUN; +PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC glad_glTexCoord2fColor4fNormal3fVertex3fSUN; +PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC glad_glTexCoord2fColor4fNormal3fVertex3fvSUN; +PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC glad_glTexCoord4fColor4fNormal3fVertex4fSUN; +PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC glad_glTexCoord4fColor4fNormal3fVertex4fvSUN; +PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC glad_glReplacementCodeuiVertex3fSUN; +PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC glad_glReplacementCodeuiVertex3fvSUN; +PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC glad_glReplacementCodeuiColor4ubVertex3fSUN; +PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC glad_glReplacementCodeuiColor4ubVertex3fvSUN; +PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC glad_glReplacementCodeuiColor3fVertex3fSUN; +PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC glad_glReplacementCodeuiColor3fVertex3fvSUN; +PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC glad_glReplacementCodeuiNormal3fVertex3fSUN; +PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC glad_glReplacementCodeuiNormal3fVertex3fvSUN; +PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC glad_glReplacementCodeuiColor4fNormal3fVertex3fSUN; +PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC glad_glReplacementCodeuiColor4fNormal3fVertex3fvSUN; +PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC glad_glReplacementCodeuiTexCoord2fVertex3fSUN; +PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC glad_glReplacementCodeuiTexCoord2fVertex3fvSUN; +PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC glad_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN; +PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC glad_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN; +PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC glad_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN; +PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC glad_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN; +PFNGLIGLOOINTERFACESGIXPROC glad_glIglooInterfaceSGIX; +PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect; +PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect; +PFNGLVERTEXATTRIBI1IEXTPROC glad_glVertexAttribI1iEXT; +PFNGLVERTEXATTRIBI2IEXTPROC glad_glVertexAttribI2iEXT; +PFNGLVERTEXATTRIBI3IEXTPROC glad_glVertexAttribI3iEXT; +PFNGLVERTEXATTRIBI4IEXTPROC glad_glVertexAttribI4iEXT; +PFNGLVERTEXATTRIBI1UIEXTPROC glad_glVertexAttribI1uiEXT; +PFNGLVERTEXATTRIBI2UIEXTPROC glad_glVertexAttribI2uiEXT; +PFNGLVERTEXATTRIBI3UIEXTPROC glad_glVertexAttribI3uiEXT; +PFNGLVERTEXATTRIBI4UIEXTPROC glad_glVertexAttribI4uiEXT; +PFNGLVERTEXATTRIBI1IVEXTPROC glad_glVertexAttribI1ivEXT; +PFNGLVERTEXATTRIBI2IVEXTPROC glad_glVertexAttribI2ivEXT; +PFNGLVERTEXATTRIBI3IVEXTPROC glad_glVertexAttribI3ivEXT; +PFNGLVERTEXATTRIBI4IVEXTPROC glad_glVertexAttribI4ivEXT; +PFNGLVERTEXATTRIBI1UIVEXTPROC glad_glVertexAttribI1uivEXT; +PFNGLVERTEXATTRIBI2UIVEXTPROC glad_glVertexAttribI2uivEXT; +PFNGLVERTEXATTRIBI3UIVEXTPROC glad_glVertexAttribI3uivEXT; +PFNGLVERTEXATTRIBI4UIVEXTPROC glad_glVertexAttribI4uivEXT; +PFNGLVERTEXATTRIBI4BVEXTPROC glad_glVertexAttribI4bvEXT; +PFNGLVERTEXATTRIBI4SVEXTPROC glad_glVertexAttribI4svEXT; +PFNGLVERTEXATTRIBI4UBVEXTPROC glad_glVertexAttribI4ubvEXT; +PFNGLVERTEXATTRIBI4USVEXTPROC glad_glVertexAttribI4usvEXT; +PFNGLVERTEXATTRIBIPOINTEREXTPROC glad_glVertexAttribIPointerEXT; +PFNGLGETVERTEXATTRIBIIVEXTPROC glad_glGetVertexAttribIivEXT; +PFNGLGETVERTEXATTRIBIUIVEXTPROC glad_glGetVertexAttribIuivEXT; +PFNGLFOGFUNCSGISPROC glad_glFogFuncSGIS; +PFNGLGETFOGFUNCSGISPROC glad_glGetFogFuncSGIS; +PFNGLIMPORTSYNCEXTPROC glad_glImportSyncEXT; +PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC glad_glFramebufferSampleLocationsfvNV; +PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC glad_glNamedFramebufferSampleLocationsfvNV; +PFNGLRESOLVEDEPTHVALUESNVPROC glad_glResolveDepthValuesNV; +PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC glad_glDispatchComputeGroupSizeARB; +PFNGLALPHAFUNCXOESPROC glad_glAlphaFuncxOES; +PFNGLCLEARCOLORXOESPROC glad_glClearColorxOES; +PFNGLCLEARDEPTHXOESPROC glad_glClearDepthxOES; +PFNGLCLIPPLANEXOESPROC glad_glClipPlanexOES; +PFNGLCOLOR4XOESPROC glad_glColor4xOES; +PFNGLDEPTHRANGEXOESPROC glad_glDepthRangexOES; +PFNGLFOGXOESPROC glad_glFogxOES; +PFNGLFOGXVOESPROC glad_glFogxvOES; +PFNGLFRUSTUMXOESPROC glad_glFrustumxOES; +PFNGLGETCLIPPLANEXOESPROC glad_glGetClipPlanexOES; +PFNGLGETFIXEDVOESPROC glad_glGetFixedvOES; +PFNGLGETTEXENVXVOESPROC glad_glGetTexEnvxvOES; +PFNGLGETTEXPARAMETERXVOESPROC glad_glGetTexParameterxvOES; +PFNGLLIGHTMODELXOESPROC glad_glLightModelxOES; +PFNGLLIGHTMODELXVOESPROC glad_glLightModelxvOES; +PFNGLLIGHTXOESPROC glad_glLightxOES; +PFNGLLIGHTXVOESPROC glad_glLightxvOES; +PFNGLLINEWIDTHXOESPROC glad_glLineWidthxOES; +PFNGLLOADMATRIXXOESPROC glad_glLoadMatrixxOES; +PFNGLMATERIALXOESPROC glad_glMaterialxOES; +PFNGLMATERIALXVOESPROC glad_glMaterialxvOES; +PFNGLMULTMATRIXXOESPROC glad_glMultMatrixxOES; +PFNGLMULTITEXCOORD4XOESPROC glad_glMultiTexCoord4xOES; +PFNGLNORMAL3XOESPROC glad_glNormal3xOES; +PFNGLORTHOXOESPROC glad_glOrthoxOES; +PFNGLPOINTPARAMETERXVOESPROC glad_glPointParameterxvOES; +PFNGLPOINTSIZEXOESPROC glad_glPointSizexOES; +PFNGLPOLYGONOFFSETXOESPROC glad_glPolygonOffsetxOES; +PFNGLROTATEXOESPROC glad_glRotatexOES; +PFNGLSCALEXOESPROC glad_glScalexOES; +PFNGLTEXENVXOESPROC glad_glTexEnvxOES; +PFNGLTEXENVXVOESPROC glad_glTexEnvxvOES; +PFNGLTEXPARAMETERXOESPROC glad_glTexParameterxOES; +PFNGLTEXPARAMETERXVOESPROC glad_glTexParameterxvOES; +PFNGLTRANSLATEXOESPROC glad_glTranslatexOES; +PFNGLGETLIGHTXVOESPROC glad_glGetLightxvOES; +PFNGLGETMATERIALXVOESPROC glad_glGetMaterialxvOES; +PFNGLPOINTPARAMETERXOESPROC glad_glPointParameterxOES; +PFNGLSAMPLECOVERAGEXOESPROC glad_glSampleCoveragexOES; +PFNGLACCUMXOESPROC glad_glAccumxOES; +PFNGLBITMAPXOESPROC glad_glBitmapxOES; +PFNGLBLENDCOLORXOESPROC glad_glBlendColorxOES; +PFNGLCLEARACCUMXOESPROC glad_glClearAccumxOES; +PFNGLCOLOR3XOESPROC glad_glColor3xOES; +PFNGLCOLOR3XVOESPROC glad_glColor3xvOES; +PFNGLCOLOR4XVOESPROC glad_glColor4xvOES; +PFNGLCONVOLUTIONPARAMETERXOESPROC glad_glConvolutionParameterxOES; +PFNGLCONVOLUTIONPARAMETERXVOESPROC glad_glConvolutionParameterxvOES; +PFNGLEVALCOORD1XOESPROC glad_glEvalCoord1xOES; +PFNGLEVALCOORD1XVOESPROC glad_glEvalCoord1xvOES; +PFNGLEVALCOORD2XOESPROC glad_glEvalCoord2xOES; +PFNGLEVALCOORD2XVOESPROC glad_glEvalCoord2xvOES; +PFNGLFEEDBACKBUFFERXOESPROC glad_glFeedbackBufferxOES; +PFNGLGETCONVOLUTIONPARAMETERXVOESPROC glad_glGetConvolutionParameterxvOES; +PFNGLGETHISTOGRAMPARAMETERXVOESPROC glad_glGetHistogramParameterxvOES; +PFNGLGETLIGHTXOESPROC glad_glGetLightxOES; +PFNGLGETMAPXVOESPROC glad_glGetMapxvOES; +PFNGLGETMATERIALXOESPROC glad_glGetMaterialxOES; +PFNGLGETPIXELMAPXVPROC glad_glGetPixelMapxv; +PFNGLGETTEXGENXVOESPROC glad_glGetTexGenxvOES; +PFNGLGETTEXLEVELPARAMETERXVOESPROC glad_glGetTexLevelParameterxvOES; +PFNGLINDEXXOESPROC glad_glIndexxOES; +PFNGLINDEXXVOESPROC glad_glIndexxvOES; +PFNGLLOADTRANSPOSEMATRIXXOESPROC glad_glLoadTransposeMatrixxOES; +PFNGLMAP1XOESPROC glad_glMap1xOES; +PFNGLMAP2XOESPROC glad_glMap2xOES; +PFNGLMAPGRID1XOESPROC glad_glMapGrid1xOES; +PFNGLMAPGRID2XOESPROC glad_glMapGrid2xOES; +PFNGLMULTTRANSPOSEMATRIXXOESPROC glad_glMultTransposeMatrixxOES; +PFNGLMULTITEXCOORD1XOESPROC glad_glMultiTexCoord1xOES; +PFNGLMULTITEXCOORD1XVOESPROC glad_glMultiTexCoord1xvOES; +PFNGLMULTITEXCOORD2XOESPROC glad_glMultiTexCoord2xOES; +PFNGLMULTITEXCOORD2XVOESPROC glad_glMultiTexCoord2xvOES; +PFNGLMULTITEXCOORD3XOESPROC glad_glMultiTexCoord3xOES; +PFNGLMULTITEXCOORD3XVOESPROC glad_glMultiTexCoord3xvOES; +PFNGLMULTITEXCOORD4XVOESPROC glad_glMultiTexCoord4xvOES; +PFNGLNORMAL3XVOESPROC glad_glNormal3xvOES; +PFNGLPASSTHROUGHXOESPROC glad_glPassThroughxOES; +PFNGLPIXELMAPXPROC glad_glPixelMapx; +PFNGLPIXELSTOREXPROC glad_glPixelStorex; +PFNGLPIXELTRANSFERXOESPROC glad_glPixelTransferxOES; +PFNGLPIXELZOOMXOESPROC glad_glPixelZoomxOES; +PFNGLPRIORITIZETEXTURESXOESPROC glad_glPrioritizeTexturesxOES; +PFNGLRASTERPOS2XOESPROC glad_glRasterPos2xOES; +PFNGLRASTERPOS2XVOESPROC glad_glRasterPos2xvOES; +PFNGLRASTERPOS3XOESPROC glad_glRasterPos3xOES; +PFNGLRASTERPOS3XVOESPROC glad_glRasterPos3xvOES; +PFNGLRASTERPOS4XOESPROC glad_glRasterPos4xOES; +PFNGLRASTERPOS4XVOESPROC glad_glRasterPos4xvOES; +PFNGLRECTXOESPROC glad_glRectxOES; +PFNGLRECTXVOESPROC glad_glRectxvOES; +PFNGLTEXCOORD1XOESPROC glad_glTexCoord1xOES; +PFNGLTEXCOORD1XVOESPROC glad_glTexCoord1xvOES; +PFNGLTEXCOORD2XOESPROC glad_glTexCoord2xOES; +PFNGLTEXCOORD2XVOESPROC glad_glTexCoord2xvOES; +PFNGLTEXCOORD3XOESPROC glad_glTexCoord3xOES; +PFNGLTEXCOORD3XVOESPROC glad_glTexCoord3xvOES; +PFNGLTEXCOORD4XOESPROC glad_glTexCoord4xOES; +PFNGLTEXCOORD4XVOESPROC glad_glTexCoord4xvOES; +PFNGLTEXGENXOESPROC glad_glTexGenxOES; +PFNGLTEXGENXVOESPROC glad_glTexGenxvOES; +PFNGLVERTEX2XOESPROC glad_glVertex2xOES; +PFNGLVERTEX2XVOESPROC glad_glVertex2xvOES; +PFNGLVERTEX3XOESPROC glad_glVertex3xOES; +PFNGLVERTEX3XVOESPROC glad_glVertex3xvOES; +PFNGLVERTEX4XOESPROC glad_glVertex4xOES; +PFNGLVERTEX4XVOESPROC glad_glVertex4xvOES; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT; +PFNGLTEXIMAGE4DSGISPROC glad_glTexImage4DSGIS; +PFNGLTEXSUBIMAGE4DSGISPROC glad_glTexSubImage4DSGIS; +PFNGLTEXIMAGE3DEXTPROC glad_glTexImage3DEXT; +PFNGLTEXSUBIMAGE3DEXTPROC glad_glTexSubImage3DEXT; +PFNGLSAMPLEMASKEXTPROC glad_glSampleMaskEXT; +PFNGLSAMPLEPATTERNEXTPROC glad_glSamplePatternEXT; +PFNGLSECONDARYCOLOR3BEXTPROC glad_glSecondaryColor3bEXT; +PFNGLSECONDARYCOLOR3BVEXTPROC glad_glSecondaryColor3bvEXT; +PFNGLSECONDARYCOLOR3DEXTPROC glad_glSecondaryColor3dEXT; +PFNGLSECONDARYCOLOR3DVEXTPROC glad_glSecondaryColor3dvEXT; +PFNGLSECONDARYCOLOR3FEXTPROC glad_glSecondaryColor3fEXT; +PFNGLSECONDARYCOLOR3FVEXTPROC glad_glSecondaryColor3fvEXT; +PFNGLSECONDARYCOLOR3IEXTPROC glad_glSecondaryColor3iEXT; +PFNGLSECONDARYCOLOR3IVEXTPROC glad_glSecondaryColor3ivEXT; +PFNGLSECONDARYCOLOR3SEXTPROC glad_glSecondaryColor3sEXT; +PFNGLSECONDARYCOLOR3SVEXTPROC glad_glSecondaryColor3svEXT; +PFNGLSECONDARYCOLOR3UBEXTPROC glad_glSecondaryColor3ubEXT; +PFNGLSECONDARYCOLOR3UBVEXTPROC glad_glSecondaryColor3ubvEXT; +PFNGLSECONDARYCOLOR3UIEXTPROC glad_glSecondaryColor3uiEXT; +PFNGLSECONDARYCOLOR3UIVEXTPROC glad_glSecondaryColor3uivEXT; +PFNGLSECONDARYCOLOR3USEXTPROC glad_glSecondaryColor3usEXT; +PFNGLSECONDARYCOLOR3USVEXTPROC glad_glSecondaryColor3usvEXT; +PFNGLSECONDARYCOLORPOINTEREXTPROC glad_glSecondaryColorPointerEXT; +PFNGLNEWOBJECTBUFFERATIPROC glad_glNewObjectBufferATI; +PFNGLISOBJECTBUFFERATIPROC glad_glIsObjectBufferATI; +PFNGLUPDATEOBJECTBUFFERATIPROC glad_glUpdateObjectBufferATI; +PFNGLGETOBJECTBUFFERFVATIPROC glad_glGetObjectBufferfvATI; +PFNGLGETOBJECTBUFFERIVATIPROC glad_glGetObjectBufferivATI; +PFNGLFREEOBJECTBUFFERATIPROC glad_glFreeObjectBufferATI; +PFNGLARRAYOBJECTATIPROC glad_glArrayObjectATI; +PFNGLGETARRAYOBJECTFVATIPROC glad_glGetArrayObjectfvATI; +PFNGLGETARRAYOBJECTIVATIPROC glad_glGetArrayObjectivATI; +PFNGLVARIANTARRAYOBJECTATIPROC glad_glVariantArrayObjectATI; +PFNGLGETVARIANTARRAYOBJECTFVATIPROC glad_glGetVariantArrayObjectfvATI; +PFNGLGETVARIANTARRAYOBJECTIVATIPROC glad_glGetVariantArrayObjectivATI; +PFNGLMAXSHADERCOMPILERTHREADSARBPROC glad_glMaxShaderCompilerThreadsARB; +PFNGLTEXPAGECOMMITMENTARBPROC glad_glTexPageCommitmentARB; +PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glFramebufferSampleLocationsfvARB; +PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glNamedFramebufferSampleLocationsfvARB; +PFNGLEVALUATEDEPTHVALUESARBPROC glad_glEvaluateDepthValuesARB; +PFNGLBUFFERPAGECOMMITMENTARBPROC glad_glBufferPageCommitmentARB; +PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC glad_glNamedBufferPageCommitmentEXT; +PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC glad_glNamedBufferPageCommitmentARB; +PFNGLDRAWRANGEELEMENTSEXTPROC glad_glDrawRangeElementsEXT; +static void load_GL_VERSION_1_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_0) return; + glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace"); + glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace"); + glad_glHint = (PFNGLHINTPROC)load("glHint"); + glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth"); + glad_glPointSize = (PFNGLPOINTSIZEPROC)load("glPointSize"); + glad_glPolygonMode = (PFNGLPOLYGONMODEPROC)load("glPolygonMode"); + glad_glScissor = (PFNGLSCISSORPROC)load("glScissor"); + glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf"); + glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv"); + glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri"); + glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv"); + glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC)load("glTexImage1D"); + glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D"); + glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC)load("glDrawBuffer"); + glad_glClear = (PFNGLCLEARPROC)load("glClear"); + glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor"); + glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil"); + glad_glClearDepth = (PFNGLCLEARDEPTHPROC)load("glClearDepth"); + glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask"); + glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask"); + glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask"); + glad_glDisable = (PFNGLDISABLEPROC)load("glDisable"); + glad_glEnable = (PFNGLENABLEPROC)load("glEnable"); + glad_glFinish = (PFNGLFINISHPROC)load("glFinish"); + glad_glFlush = (PFNGLFLUSHPROC)load("glFlush"); + glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc"); + glad_glLogicOp = (PFNGLLOGICOPPROC)load("glLogicOp"); + glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc"); + glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp"); + glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc"); + glad_glPixelStoref = (PFNGLPIXELSTOREFPROC)load("glPixelStoref"); + glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei"); + glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer"); + glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels"); + glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv"); + glad_glGetDoublev = (PFNGLGETDOUBLEVPROC)load("glGetDoublev"); + glad_glGetError = (PFNGLGETERRORPROC)load("glGetError"); + glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv"); + glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv"); + glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); + glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC)load("glGetTexImage"); + glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv"); + glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv"); + glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load("glGetTexLevelParameterfv"); + glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load("glGetTexLevelParameteriv"); + glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled"); + glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange"); + glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport"); +} +static void load_GL_VERSION_1_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_1) return; + glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays"); + glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements"); + glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset"); + glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D"); + glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D"); + glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)load("glCopyTexSubImage1D"); + glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D"); + glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)load("glTexSubImage1D"); + glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D"); + glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture"); + glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures"); + glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures"); + glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture"); +} +static void load_GL_VERSION_1_2(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_2) return; + glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements"); + glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D"); + glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D"); + glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D"); +} +static void load_GL_VERSION_1_3(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_3) return; + glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture"); + glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage"); + glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D"); + glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D"); + glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)load("glCompressedTexImage1D"); + glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D"); + glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D"); + glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D"); + glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage"); +} +static void load_GL_VERSION_1_4(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_4) return; + glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate"); + glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)load("glMultiDrawArrays"); + glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)load("glMultiDrawElements"); + glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load("glPointParameterf"); + glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv"); + glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri"); + glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv"); + glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor"); + glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation"); +} +static void load_GL_VERSION_1_5(GLADloadproc load) { + if(!GLAD_GL_VERSION_1_5) return; + glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries"); + glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries"); + glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery"); + glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery"); + glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery"); + glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv"); + glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)load("glGetQueryObjectiv"); + glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv"); + glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer"); + glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers"); + glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers"); + glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer"); + glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData"); + glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData"); + glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)load("glGetBufferSubData"); + glad_glMapBuffer = (PFNGLMAPBUFFERPROC)load("glMapBuffer"); + glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer"); + glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv"); + glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv"); +} +static void load_GL_VERSION_2_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_2_0) return; + glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate"); + glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers"); + glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate"); + glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate"); + glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate"); + glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader"); + glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load("glBindAttribLocation"); + glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load("glCompileShader"); + glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load("glCreateProgram"); + glad_glCreateShader = (PFNGLCREATESHADERPROC)load("glCreateShader"); + glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load("glDeleteProgram"); + glad_glDeleteShader = (PFNGLDELETESHADERPROC)load("glDeleteShader"); + glad_glDetachShader = (PFNGLDETACHSHADERPROC)load("glDetachShader"); + glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load("glDisableVertexAttribArray"); + glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load("glEnableVertexAttribArray"); + glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load("glGetActiveAttrib"); + glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load("glGetActiveUniform"); + glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load("glGetAttachedShaders"); + glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load("glGetAttribLocation"); + glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load("glGetProgramiv"); + glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load("glGetProgramInfoLog"); + glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load("glGetShaderiv"); + glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load("glGetShaderInfoLog"); + glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load("glGetShaderSource"); + glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load("glGetUniformLocation"); + glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load("glGetUniformfv"); + glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load("glGetUniformiv"); + glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)load("glGetVertexAttribdv"); + glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load("glGetVertexAttribfv"); + glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load("glGetVertexAttribiv"); + glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load("glGetVertexAttribPointerv"); + glad_glIsProgram = (PFNGLISPROGRAMPROC)load("glIsProgram"); + glad_glIsShader = (PFNGLISSHADERPROC)load("glIsShader"); + glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load("glLinkProgram"); + glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load("glShaderSource"); + glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load("glUseProgram"); + glad_glUniform1f = (PFNGLUNIFORM1FPROC)load("glUniform1f"); + glad_glUniform2f = (PFNGLUNIFORM2FPROC)load("glUniform2f"); + glad_glUniform3f = (PFNGLUNIFORM3FPROC)load("glUniform3f"); + glad_glUniform4f = (PFNGLUNIFORM4FPROC)load("glUniform4f"); + glad_glUniform1i = (PFNGLUNIFORM1IPROC)load("glUniform1i"); + glad_glUniform2i = (PFNGLUNIFORM2IPROC)load("glUniform2i"); + glad_glUniform3i = (PFNGLUNIFORM3IPROC)load("glUniform3i"); + glad_glUniform4i = (PFNGLUNIFORM4IPROC)load("glUniform4i"); + glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load("glUniform1fv"); + glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load("glUniform2fv"); + glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load("glUniform3fv"); + glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load("glUniform4fv"); + glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load("glUniform1iv"); + glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load("glUniform2iv"); + glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load("glUniform3iv"); + glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load("glUniform4iv"); + glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load("glUniformMatrix2fv"); + glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load("glUniformMatrix3fv"); + glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load("glUniformMatrix4fv"); + glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load("glValidateProgram"); + glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)load("glVertexAttrib1d"); + glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)load("glVertexAttrib1dv"); + glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load("glVertexAttrib1f"); + glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load("glVertexAttrib1fv"); + glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)load("glVertexAttrib1s"); + glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)load("glVertexAttrib1sv"); + glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)load("glVertexAttrib2d"); + glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)load("glVertexAttrib2dv"); + glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load("glVertexAttrib2f"); + glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load("glVertexAttrib2fv"); + glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)load("glVertexAttrib2s"); + glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)load("glVertexAttrib2sv"); + glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)load("glVertexAttrib3d"); + glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)load("glVertexAttrib3dv"); + glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load("glVertexAttrib3f"); + glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load("glVertexAttrib3fv"); + glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)load("glVertexAttrib3s"); + glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)load("glVertexAttrib3sv"); + glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)load("glVertexAttrib4Nbv"); + glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)load("glVertexAttrib4Niv"); + glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)load("glVertexAttrib4Nsv"); + glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)load("glVertexAttrib4Nub"); + glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)load("glVertexAttrib4Nubv"); + glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)load("glVertexAttrib4Nuiv"); + glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)load("glVertexAttrib4Nusv"); + glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)load("glVertexAttrib4bv"); + glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)load("glVertexAttrib4d"); + glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)load("glVertexAttrib4dv"); + glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load("glVertexAttrib4f"); + glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load("glVertexAttrib4fv"); + glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)load("glVertexAttrib4iv"); + glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)load("glVertexAttrib4s"); + glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)load("glVertexAttrib4sv"); + glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)load("glVertexAttrib4ubv"); + glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)load("glVertexAttrib4uiv"); + glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)load("glVertexAttrib4usv"); + glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load("glVertexAttribPointer"); +} +static void load_GL_VERSION_2_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_2_1) return; + glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load("glUniformMatrix2x3fv"); + glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load("glUniformMatrix3x2fv"); + glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load("glUniformMatrix2x4fv"); + glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load("glUniformMatrix4x2fv"); + glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load("glUniformMatrix3x4fv"); + glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load("glUniformMatrix4x3fv"); +} +static void load_GL_VERSION_3_0(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_0) return; + glad_glColorMaski = (PFNGLCOLORMASKIPROC)load("glColorMaski"); + glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load("glGetBooleani_v"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); + glad_glEnablei = (PFNGLENABLEIPROC)load("glEnablei"); + glad_glDisablei = (PFNGLDISABLEIPROC)load("glDisablei"); + glad_glIsEnabledi = (PFNGLISENABLEDIPROC)load("glIsEnabledi"); + glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load("glBeginTransformFeedback"); + glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load("glEndTransformFeedback"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); + glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load("glTransformFeedbackVaryings"); + glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load("glGetTransformFeedbackVarying"); + glad_glClampColor = (PFNGLCLAMPCOLORPROC)load("glClampColor"); + glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)load("glBeginConditionalRender"); + glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)load("glEndConditionalRender"); + glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load("glVertexAttribIPointer"); + glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load("glGetVertexAttribIiv"); + glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load("glGetVertexAttribIuiv"); + glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)load("glVertexAttribI1i"); + glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)load("glVertexAttribI2i"); + glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)load("glVertexAttribI3i"); + glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load("glVertexAttribI4i"); + glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)load("glVertexAttribI1ui"); + glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)load("glVertexAttribI2ui"); + glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)load("glVertexAttribI3ui"); + glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load("glVertexAttribI4ui"); + glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)load("glVertexAttribI1iv"); + glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)load("glVertexAttribI2iv"); + glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)load("glVertexAttribI3iv"); + glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load("glVertexAttribI4iv"); + glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)load("glVertexAttribI1uiv"); + glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)load("glVertexAttribI2uiv"); + glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)load("glVertexAttribI3uiv"); + glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load("glVertexAttribI4uiv"); + glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)load("glVertexAttribI4bv"); + glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)load("glVertexAttribI4sv"); + glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)load("glVertexAttribI4ubv"); + glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)load("glVertexAttribI4usv"); + glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load("glGetUniformuiv"); + glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)load("glBindFragDataLocation"); + glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load("glGetFragDataLocation"); + glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load("glUniform1ui"); + glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load("glUniform2ui"); + glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load("glUniform3ui"); + glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load("glUniform4ui"); + glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load("glUniform1uiv"); + glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load("glUniform2uiv"); + glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load("glUniform3uiv"); + glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load("glUniform4uiv"); + glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)load("glTexParameterIiv"); + glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)load("glTexParameterIuiv"); + glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)load("glGetTexParameterIiv"); + glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)load("glGetTexParameterIuiv"); + glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load("glClearBufferiv"); + glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load("glClearBufferuiv"); + glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load("glClearBufferfv"); + glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load("glClearBufferfi"); + glad_glGetStringi = (PFNGLGETSTRINGIPROC)load("glGetStringi"); + glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer"); + glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer"); + glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers"); + glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers"); + glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage"); + glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv"); + glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer"); + glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer"); + glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers"); + glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers"); + glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus"); + glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D"); + glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D"); + glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D"); + glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer"); + glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv"); + glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap"); + glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer"); + glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample"); + glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer"); + glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange"); + glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange"); + glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray"); + glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays"); + glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays"); + glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray"); +} +static void load_GL_VERSION_3_1(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_1) return; + glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load("glDrawArraysInstanced"); + glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load("glDrawElementsInstanced"); + glad_glTexBuffer = (PFNGLTEXBUFFERPROC)load("glTexBuffer"); + glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)load("glPrimitiveRestartIndex"); + glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData"); + glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices"); + glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv"); + glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName"); + glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex"); + glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv"); + glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName"); + glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); +} +static void load_GL_VERSION_3_2(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_2) return; + glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load("glDrawElementsBaseVertex"); + glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load("glDrawRangeElementsBaseVertex"); + glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load("glDrawElementsInstancedBaseVertex"); + glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load("glMultiDrawElementsBaseVertex"); + glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load("glProvokingVertex"); + glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync"); + glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync"); + glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync"); + glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync"); + glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync"); + glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v"); + glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv"); + glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load("glGetInteger64i_v"); + glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load("glGetBufferParameteri64v"); + glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)load("glFramebufferTexture"); + glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample"); + glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample"); + glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv"); + glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski"); +} +static void load_GL_VERSION_3_3(GLADloadproc load) { + if(!GLAD_GL_VERSION_3_3) return; + glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load("glBindFragDataLocationIndexed"); + glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load("glGetFragDataIndex"); + glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers"); + glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers"); + glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler"); + glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler"); + glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri"); + glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv"); + glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf"); + glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv"); + glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load("glSamplerParameterIiv"); + glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load("glSamplerParameterIuiv"); + glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv"); + glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load("glGetSamplerParameterIiv"); + glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv"); + glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load("glGetSamplerParameterIuiv"); + glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load("glQueryCounter"); + glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load("glGetQueryObjecti64v"); + glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load("glGetQueryObjectui64v"); + glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load("glVertexAttribDivisor"); + glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load("glVertexAttribP1ui"); + glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load("glVertexAttribP1uiv"); + glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load("glVertexAttribP2ui"); + glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load("glVertexAttribP2uiv"); + glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load("glVertexAttribP3ui"); + glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load("glVertexAttribP3uiv"); + glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load("glVertexAttribP4ui"); + glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load("glVertexAttribP4uiv"); + glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load("glVertexP2ui"); + glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load("glVertexP2uiv"); + glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load("glVertexP3ui"); + glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load("glVertexP3uiv"); + glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load("glVertexP4ui"); + glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load("glVertexP4uiv"); + glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load("glTexCoordP1ui"); + glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load("glTexCoordP1uiv"); + glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load("glTexCoordP2ui"); + glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load("glTexCoordP2uiv"); + glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load("glTexCoordP3ui"); + glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load("glTexCoordP3uiv"); + glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load("glTexCoordP4ui"); + glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load("glTexCoordP4uiv"); + glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load("glMultiTexCoordP1ui"); + glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load("glMultiTexCoordP1uiv"); + glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load("glMultiTexCoordP2ui"); + glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load("glMultiTexCoordP2uiv"); + glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load("glMultiTexCoordP3ui"); + glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load("glMultiTexCoordP3uiv"); + glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load("glMultiTexCoordP4ui"); + glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load("glMultiTexCoordP4uiv"); + glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load("glNormalP3ui"); + glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load("glNormalP3uiv"); + glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load("glColorP3ui"); + glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load("glColorP3uiv"); + glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load("glColorP4ui"); + glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load("glColorP4uiv"); + glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load("glSecondaryColorP3ui"); + glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load("glSecondaryColorP3uiv"); +} +static void load_GL_APPLE_element_array(GLADloadproc load) { + if(!GLAD_GL_APPLE_element_array) return; + glad_glElementPointerAPPLE = (PFNGLELEMENTPOINTERAPPLEPROC)load("glElementPointerAPPLE"); + glad_glDrawElementArrayAPPLE = (PFNGLDRAWELEMENTARRAYAPPLEPROC)load("glDrawElementArrayAPPLE"); + glad_glDrawRangeElementArrayAPPLE = (PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC)load("glDrawRangeElementArrayAPPLE"); + glad_glMultiDrawElementArrayAPPLE = (PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC)load("glMultiDrawElementArrayAPPLE"); + glad_glMultiDrawRangeElementArrayAPPLE = (PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC)load("glMultiDrawRangeElementArrayAPPLE"); +} +static void load_GL_AMD_multi_draw_indirect(GLADloadproc load) { + if(!GLAD_GL_AMD_multi_draw_indirect) return; + glad_glMultiDrawArraysIndirectAMD = (PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC)load("glMultiDrawArraysIndirectAMD"); + glad_glMultiDrawElementsIndirectAMD = (PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC)load("glMultiDrawElementsIndirectAMD"); +} +static void load_GL_SGIX_tag_sample_buffer(GLADloadproc load) { + if(!GLAD_GL_SGIX_tag_sample_buffer) return; + glad_glTagSampleBufferSGIX = (PFNGLTAGSAMPLEBUFFERSGIXPROC)load("glTagSampleBufferSGIX"); +} +static void load_GL_NV_point_sprite(GLADloadproc load) { + if(!GLAD_GL_NV_point_sprite) return; + glad_glPointParameteriNV = (PFNGLPOINTPARAMETERINVPROC)load("glPointParameteriNV"); + glad_glPointParameterivNV = (PFNGLPOINTPARAMETERIVNVPROC)load("glPointParameterivNV"); +} +static void load_GL_ATI_separate_stencil(GLADloadproc load) { + if(!GLAD_GL_ATI_separate_stencil) return; + glad_glStencilOpSeparateATI = (PFNGLSTENCILOPSEPARATEATIPROC)load("glStencilOpSeparateATI"); + glad_glStencilFuncSeparateATI = (PFNGLSTENCILFUNCSEPARATEATIPROC)load("glStencilFuncSeparateATI"); +} +static void load_GL_EXT_texture_buffer_object(GLADloadproc load) { + if(!GLAD_GL_EXT_texture_buffer_object) return; + glad_glTexBufferEXT = (PFNGLTEXBUFFEREXTPROC)load("glTexBufferEXT"); +} +static void load_GL_ARB_vertex_blend(GLADloadproc load) { + if(!GLAD_GL_ARB_vertex_blend) return; + glad_glWeightbvARB = (PFNGLWEIGHTBVARBPROC)load("glWeightbvARB"); + glad_glWeightsvARB = (PFNGLWEIGHTSVARBPROC)load("glWeightsvARB"); + glad_glWeightivARB = (PFNGLWEIGHTIVARBPROC)load("glWeightivARB"); + glad_glWeightfvARB = (PFNGLWEIGHTFVARBPROC)load("glWeightfvARB"); + glad_glWeightdvARB = (PFNGLWEIGHTDVARBPROC)load("glWeightdvARB"); + glad_glWeightubvARB = (PFNGLWEIGHTUBVARBPROC)load("glWeightubvARB"); + glad_glWeightusvARB = (PFNGLWEIGHTUSVARBPROC)load("glWeightusvARB"); + glad_glWeightuivARB = (PFNGLWEIGHTUIVARBPROC)load("glWeightuivARB"); + glad_glWeightPointerARB = (PFNGLWEIGHTPOINTERARBPROC)load("glWeightPointerARB"); + glad_glVertexBlendARB = (PFNGLVERTEXBLENDARBPROC)load("glVertexBlendARB"); +} +static void load_GL_OVR_multiview(GLADloadproc load) { + if(!GLAD_GL_OVR_multiview) return; + glad_glFramebufferTextureMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)load("glFramebufferTextureMultiviewOVR"); +} +static void load_GL_ARB_program_interface_query(GLADloadproc load) { + if(!GLAD_GL_ARB_program_interface_query) return; + glad_glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC)load("glGetProgramInterfaceiv"); + glad_glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC)load("glGetProgramResourceIndex"); + glad_glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC)load("glGetProgramResourceName"); + glad_glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC)load("glGetProgramResourceiv"); + glad_glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC)load("glGetProgramResourceLocation"); + glad_glGetProgramResourceLocationIndex = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)load("glGetProgramResourceLocationIndex"); +} +static void load_GL_EXT_index_func(GLADloadproc load) { + if(!GLAD_GL_EXT_index_func) return; + glad_glIndexFuncEXT = (PFNGLINDEXFUNCEXTPROC)load("glIndexFuncEXT"); +} +static void load_GL_NV_shader_buffer_load(GLADloadproc load) { + if(!GLAD_GL_NV_shader_buffer_load) return; + glad_glMakeBufferResidentNV = (PFNGLMAKEBUFFERRESIDENTNVPROC)load("glMakeBufferResidentNV"); + glad_glMakeBufferNonResidentNV = (PFNGLMAKEBUFFERNONRESIDENTNVPROC)load("glMakeBufferNonResidentNV"); + glad_glIsBufferResidentNV = (PFNGLISBUFFERRESIDENTNVPROC)load("glIsBufferResidentNV"); + glad_glMakeNamedBufferResidentNV = (PFNGLMAKENAMEDBUFFERRESIDENTNVPROC)load("glMakeNamedBufferResidentNV"); + glad_glMakeNamedBufferNonResidentNV = (PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC)load("glMakeNamedBufferNonResidentNV"); + glad_glIsNamedBufferResidentNV = (PFNGLISNAMEDBUFFERRESIDENTNVPROC)load("glIsNamedBufferResidentNV"); + glad_glGetBufferParameterui64vNV = (PFNGLGETBUFFERPARAMETERUI64VNVPROC)load("glGetBufferParameterui64vNV"); + glad_glGetNamedBufferParameterui64vNV = (PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC)load("glGetNamedBufferParameterui64vNV"); + glad_glGetIntegerui64vNV = (PFNGLGETINTEGERUI64VNVPROC)load("glGetIntegerui64vNV"); + glad_glUniformui64NV = (PFNGLUNIFORMUI64NVPROC)load("glUniformui64NV"); + glad_glUniformui64vNV = (PFNGLUNIFORMUI64VNVPROC)load("glUniformui64vNV"); + glad_glGetUniformui64vNV = (PFNGLGETUNIFORMUI64VNVPROC)load("glGetUniformui64vNV"); + glad_glProgramUniformui64NV = (PFNGLPROGRAMUNIFORMUI64NVPROC)load("glProgramUniformui64NV"); + glad_glProgramUniformui64vNV = (PFNGLPROGRAMUNIFORMUI64VNVPROC)load("glProgramUniformui64vNV"); +} +static void load_GL_EXT_color_subtable(GLADloadproc load) { + if(!GLAD_GL_EXT_color_subtable) return; + glad_glColorSubTableEXT = (PFNGLCOLORSUBTABLEEXTPROC)load("glColorSubTableEXT"); + glad_glCopyColorSubTableEXT = (PFNGLCOPYCOLORSUBTABLEEXTPROC)load("glCopyColorSubTableEXT"); +} +static void load_GL_SUNX_constant_data(GLADloadproc load) { + if(!GLAD_GL_SUNX_constant_data) return; + glad_glFinishTextureSUNX = (PFNGLFINISHTEXTURESUNXPROC)load("glFinishTextureSUNX"); +} +static void load_GL_EXT_multi_draw_arrays(GLADloadproc load) { + if(!GLAD_GL_EXT_multi_draw_arrays) return; + glad_glMultiDrawArraysEXT = (PFNGLMULTIDRAWARRAYSEXTPROC)load("glMultiDrawArraysEXT"); + glad_glMultiDrawElementsEXT = (PFNGLMULTIDRAWELEMENTSEXTPROC)load("glMultiDrawElementsEXT"); +} +static void load_GL_ARB_shader_atomic_counters(GLADloadproc load) { + if(!GLAD_GL_ARB_shader_atomic_counters) return; + glad_glGetActiveAtomicCounterBufferiv = (PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)load("glGetActiveAtomicCounterBufferiv"); +} +static void load_GL_NV_conditional_render(GLADloadproc load) { + if(!GLAD_GL_NV_conditional_render) return; + glad_glBeginConditionalRenderNV = (PFNGLBEGINCONDITIONALRENDERNVPROC)load("glBeginConditionalRenderNV"); + glad_glEndConditionalRenderNV = (PFNGLENDCONDITIONALRENDERNVPROC)load("glEndConditionalRenderNV"); +} +static void load_GL_MESA_resize_buffers(GLADloadproc load) { + if(!GLAD_GL_MESA_resize_buffers) return; + glad_glResizeBuffersMESA = (PFNGLRESIZEBUFFERSMESAPROC)load("glResizeBuffersMESA"); +} +static void load_GL_ARB_texture_view(GLADloadproc load) { + if(!GLAD_GL_ARB_texture_view) return; + glad_glTextureView = (PFNGLTEXTUREVIEWPROC)load("glTextureView"); +} +static void load_GL_ARB_map_buffer_range(GLADloadproc load) { + if(!GLAD_GL_ARB_map_buffer_range) return; + glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange"); + glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange"); +} +static void load_GL_EXT_convolution(GLADloadproc load) { + if(!GLAD_GL_EXT_convolution) return; + glad_glConvolutionFilter1DEXT = (PFNGLCONVOLUTIONFILTER1DEXTPROC)load("glConvolutionFilter1DEXT"); + glad_glConvolutionFilter2DEXT = (PFNGLCONVOLUTIONFILTER2DEXTPROC)load("glConvolutionFilter2DEXT"); + glad_glConvolutionParameterfEXT = (PFNGLCONVOLUTIONPARAMETERFEXTPROC)load("glConvolutionParameterfEXT"); + glad_glConvolutionParameterfvEXT = (PFNGLCONVOLUTIONPARAMETERFVEXTPROC)load("glConvolutionParameterfvEXT"); + glad_glConvolutionParameteriEXT = (PFNGLCONVOLUTIONPARAMETERIEXTPROC)load("glConvolutionParameteriEXT"); + glad_glConvolutionParameterivEXT = (PFNGLCONVOLUTIONPARAMETERIVEXTPROC)load("glConvolutionParameterivEXT"); + glad_glCopyConvolutionFilter1DEXT = (PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC)load("glCopyConvolutionFilter1DEXT"); + glad_glCopyConvolutionFilter2DEXT = (PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC)load("glCopyConvolutionFilter2DEXT"); + glad_glGetConvolutionFilterEXT = (PFNGLGETCONVOLUTIONFILTEREXTPROC)load("glGetConvolutionFilterEXT"); + glad_glGetConvolutionParameterfvEXT = (PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC)load("glGetConvolutionParameterfvEXT"); + glad_glGetConvolutionParameterivEXT = (PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC)load("glGetConvolutionParameterivEXT"); + glad_glGetSeparableFilterEXT = (PFNGLGETSEPARABLEFILTEREXTPROC)load("glGetSeparableFilterEXT"); + glad_glSeparableFilter2DEXT = (PFNGLSEPARABLEFILTER2DEXTPROC)load("glSeparableFilter2DEXT"); +} +static void load_GL_NV_vertex_attrib_integer_64bit(GLADloadproc load) { + if(!GLAD_GL_NV_vertex_attrib_integer_64bit) return; + glad_glVertexAttribL1i64NV = (PFNGLVERTEXATTRIBL1I64NVPROC)load("glVertexAttribL1i64NV"); + glad_glVertexAttribL2i64NV = (PFNGLVERTEXATTRIBL2I64NVPROC)load("glVertexAttribL2i64NV"); + glad_glVertexAttribL3i64NV = (PFNGLVERTEXATTRIBL3I64NVPROC)load("glVertexAttribL3i64NV"); + glad_glVertexAttribL4i64NV = (PFNGLVERTEXATTRIBL4I64NVPROC)load("glVertexAttribL4i64NV"); + glad_glVertexAttribL1i64vNV = (PFNGLVERTEXATTRIBL1I64VNVPROC)load("glVertexAttribL1i64vNV"); + glad_glVertexAttribL2i64vNV = (PFNGLVERTEXATTRIBL2I64VNVPROC)load("glVertexAttribL2i64vNV"); + glad_glVertexAttribL3i64vNV = (PFNGLVERTEXATTRIBL3I64VNVPROC)load("glVertexAttribL3i64vNV"); + glad_glVertexAttribL4i64vNV = (PFNGLVERTEXATTRIBL4I64VNVPROC)load("glVertexAttribL4i64vNV"); + glad_glVertexAttribL1ui64NV = (PFNGLVERTEXATTRIBL1UI64NVPROC)load("glVertexAttribL1ui64NV"); + glad_glVertexAttribL2ui64NV = (PFNGLVERTEXATTRIBL2UI64NVPROC)load("glVertexAttribL2ui64NV"); + glad_glVertexAttribL3ui64NV = (PFNGLVERTEXATTRIBL3UI64NVPROC)load("glVertexAttribL3ui64NV"); + glad_glVertexAttribL4ui64NV = (PFNGLVERTEXATTRIBL4UI64NVPROC)load("glVertexAttribL4ui64NV"); + glad_glVertexAttribL1ui64vNV = (PFNGLVERTEXATTRIBL1UI64VNVPROC)load("glVertexAttribL1ui64vNV"); + glad_glVertexAttribL2ui64vNV = (PFNGLVERTEXATTRIBL2UI64VNVPROC)load("glVertexAttribL2ui64vNV"); + glad_glVertexAttribL3ui64vNV = (PFNGLVERTEXATTRIBL3UI64VNVPROC)load("glVertexAttribL3ui64vNV"); + glad_glVertexAttribL4ui64vNV = (PFNGLVERTEXATTRIBL4UI64VNVPROC)load("glVertexAttribL4ui64vNV"); + glad_glGetVertexAttribLi64vNV = (PFNGLGETVERTEXATTRIBLI64VNVPROC)load("glGetVertexAttribLi64vNV"); + glad_glGetVertexAttribLui64vNV = (PFNGLGETVERTEXATTRIBLUI64VNVPROC)load("glGetVertexAttribLui64vNV"); + glad_glVertexAttribLFormatNV = (PFNGLVERTEXATTRIBLFORMATNVPROC)load("glVertexAttribLFormatNV"); +} +static void load_GL_EXT_paletted_texture(GLADloadproc load) { + if(!GLAD_GL_EXT_paletted_texture) return; + glad_glColorTableEXT = (PFNGLCOLORTABLEEXTPROC)load("glColorTableEXT"); + glad_glGetColorTableEXT = (PFNGLGETCOLORTABLEEXTPROC)load("glGetColorTableEXT"); + glad_glGetColorTableParameterivEXT = (PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)load("glGetColorTableParameterivEXT"); + glad_glGetColorTableParameterfvEXT = (PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)load("glGetColorTableParameterfvEXT"); +} +static void load_GL_ARB_texture_buffer_object(GLADloadproc load) { + if(!GLAD_GL_ARB_texture_buffer_object) return; + glad_glTexBufferARB = (PFNGLTEXBUFFERARBPROC)load("glTexBufferARB"); +} +static void load_GL_ATI_pn_triangles(GLADloadproc load) { + if(!GLAD_GL_ATI_pn_triangles) return; + glad_glPNTrianglesiATI = (PFNGLPNTRIANGLESIATIPROC)load("glPNTrianglesiATI"); + glad_glPNTrianglesfATI = (PFNGLPNTRIANGLESFATIPROC)load("glPNTrianglesfATI"); +} +static void load_GL_SGIX_flush_raster(GLADloadproc load) { + if(!GLAD_GL_SGIX_flush_raster) return; + glad_glFlushRasterSGIX = (PFNGLFLUSHRASTERSGIXPROC)load("glFlushRasterSGIX"); +} +static void load_GL_EXT_light_texture(GLADloadproc load) { + if(!GLAD_GL_EXT_light_texture) return; + glad_glApplyTextureEXT = (PFNGLAPPLYTEXTUREEXTPROC)load("glApplyTextureEXT"); + glad_glTextureLightEXT = (PFNGLTEXTURELIGHTEXTPROC)load("glTextureLightEXT"); + glad_glTextureMaterialEXT = (PFNGLTEXTUREMATERIALEXTPROC)load("glTextureMaterialEXT"); +} +static void load_GL_HP_image_transform(GLADloadproc load) { + if(!GLAD_GL_HP_image_transform) return; + glad_glImageTransformParameteriHP = (PFNGLIMAGETRANSFORMPARAMETERIHPPROC)load("glImageTransformParameteriHP"); + glad_glImageTransformParameterfHP = (PFNGLIMAGETRANSFORMPARAMETERFHPPROC)load("glImageTransformParameterfHP"); + glad_glImageTransformParameterivHP = (PFNGLIMAGETRANSFORMPARAMETERIVHPPROC)load("glImageTransformParameterivHP"); + glad_glImageTransformParameterfvHP = (PFNGLIMAGETRANSFORMPARAMETERFVHPPROC)load("glImageTransformParameterfvHP"); + glad_glGetImageTransformParameterivHP = (PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC)load("glGetImageTransformParameterivHP"); + glad_glGetImageTransformParameterfvHP = (PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC)load("glGetImageTransformParameterfvHP"); +} +static void load_GL_AMD_draw_buffers_blend(GLADloadproc load) { + if(!GLAD_GL_AMD_draw_buffers_blend) return; + glad_glBlendFuncIndexedAMD = (PFNGLBLENDFUNCINDEXEDAMDPROC)load("glBlendFuncIndexedAMD"); + glad_glBlendFuncSeparateIndexedAMD = (PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC)load("glBlendFuncSeparateIndexedAMD"); + glad_glBlendEquationIndexedAMD = (PFNGLBLENDEQUATIONINDEXEDAMDPROC)load("glBlendEquationIndexedAMD"); + glad_glBlendEquationSeparateIndexedAMD = (PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC)load("glBlendEquationSeparateIndexedAMD"); +} +static void load_GL_APPLE_texture_range(GLADloadproc load) { + if(!GLAD_GL_APPLE_texture_range) return; + glad_glTextureRangeAPPLE = (PFNGLTEXTURERANGEAPPLEPROC)load("glTextureRangeAPPLE"); + glad_glGetTexParameterPointervAPPLE = (PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC)load("glGetTexParameterPointervAPPLE"); +} +static void load_GL_EXT_texture_array(GLADloadproc load) { + if(!GLAD_GL_EXT_texture_array) return; + glad_glFramebufferTextureLayerEXT = (PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)load("glFramebufferTextureLayerEXT"); +} +static void load_GL_NV_texture_barrier(GLADloadproc load) { + if(!GLAD_GL_NV_texture_barrier) return; + glad_glTextureBarrierNV = (PFNGLTEXTUREBARRIERNVPROC)load("glTextureBarrierNV"); +} +static void load_GL_ARB_vertex_type_2_10_10_10_rev(GLADloadproc load) { + if(!GLAD_GL_ARB_vertex_type_2_10_10_10_rev) return; + glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load("glVertexAttribP1ui"); + glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load("glVertexAttribP1uiv"); + glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load("glVertexAttribP2ui"); + glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load("glVertexAttribP2uiv"); + glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load("glVertexAttribP3ui"); + glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load("glVertexAttribP3uiv"); + glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load("glVertexAttribP4ui"); + glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load("glVertexAttribP4uiv"); + glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load("glVertexP2ui"); + glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load("glVertexP2uiv"); + glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load("glVertexP3ui"); + glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load("glVertexP3uiv"); + glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load("glVertexP4ui"); + glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load("glVertexP4uiv"); + glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load("glTexCoordP1ui"); + glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load("glTexCoordP1uiv"); + glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load("glTexCoordP2ui"); + glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load("glTexCoordP2uiv"); + glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load("glTexCoordP3ui"); + glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load("glTexCoordP3uiv"); + glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load("glTexCoordP4ui"); + glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load("glTexCoordP4uiv"); + glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load("glMultiTexCoordP1ui"); + glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load("glMultiTexCoordP1uiv"); + glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load("glMultiTexCoordP2ui"); + glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load("glMultiTexCoordP2uiv"); + glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load("glMultiTexCoordP3ui"); + glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load("glMultiTexCoordP3uiv"); + glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load("glMultiTexCoordP4ui"); + glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load("glMultiTexCoordP4uiv"); + glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load("glNormalP3ui"); + glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load("glNormalP3uiv"); + glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load("glColorP3ui"); + glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load("glColorP3uiv"); + glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load("glColorP4ui"); + glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load("glColorP4uiv"); + glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load("glSecondaryColorP3ui"); + glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load("glSecondaryColorP3uiv"); +} +static void load_GL_3DFX_tbuffer(GLADloadproc load) { + if(!GLAD_GL_3DFX_tbuffer) return; + glad_glTbufferMask3DFX = (PFNGLTBUFFERMASK3DFXPROC)load("glTbufferMask3DFX"); +} +static void load_GL_GREMEDY_frame_terminator(GLADloadproc load) { + if(!GLAD_GL_GREMEDY_frame_terminator) return; + glad_glFrameTerminatorGREMEDY = (PFNGLFRAMETERMINATORGREMEDYPROC)load("glFrameTerminatorGREMEDY"); +} +static void load_GL_ARB_blend_func_extended(GLADloadproc load) { + if(!GLAD_GL_ARB_blend_func_extended) return; + glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load("glBindFragDataLocationIndexed"); + glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load("glGetFragDataIndex"); +} +static void load_GL_EXT_separate_shader_objects(GLADloadproc load) { + if(!GLAD_GL_EXT_separate_shader_objects) return; + glad_glUseShaderProgramEXT = (PFNGLUSESHADERPROGRAMEXTPROC)load("glUseShaderProgramEXT"); + glad_glActiveProgramEXT = (PFNGLACTIVEPROGRAMEXTPROC)load("glActiveProgramEXT"); + glad_glCreateShaderProgramEXT = (PFNGLCREATESHADERPROGRAMEXTPROC)load("glCreateShaderProgramEXT"); + glad_glActiveShaderProgramEXT = (PFNGLACTIVESHADERPROGRAMEXTPROC)load("glActiveShaderProgramEXT"); + glad_glBindProgramPipelineEXT = (PFNGLBINDPROGRAMPIPELINEEXTPROC)load("glBindProgramPipelineEXT"); + glad_glCreateShaderProgramvEXT = (PFNGLCREATESHADERPROGRAMVEXTPROC)load("glCreateShaderProgramvEXT"); + glad_glDeleteProgramPipelinesEXT = (PFNGLDELETEPROGRAMPIPELINESEXTPROC)load("glDeleteProgramPipelinesEXT"); + glad_glGenProgramPipelinesEXT = (PFNGLGENPROGRAMPIPELINESEXTPROC)load("glGenProgramPipelinesEXT"); + glad_glGetProgramPipelineInfoLogEXT = (PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC)load("glGetProgramPipelineInfoLogEXT"); + glad_glGetProgramPipelineivEXT = (PFNGLGETPROGRAMPIPELINEIVEXTPROC)load("glGetProgramPipelineivEXT"); + glad_glIsProgramPipelineEXT = (PFNGLISPROGRAMPIPELINEEXTPROC)load("glIsProgramPipelineEXT"); + glad_glProgramParameteriEXT = (PFNGLPROGRAMPARAMETERIEXTPROC)load("glProgramParameteriEXT"); + glad_glProgramUniform1fEXT = (PFNGLPROGRAMUNIFORM1FEXTPROC)load("glProgramUniform1fEXT"); + glad_glProgramUniform1fvEXT = (PFNGLPROGRAMUNIFORM1FVEXTPROC)load("glProgramUniform1fvEXT"); + glad_glProgramUniform1iEXT = (PFNGLPROGRAMUNIFORM1IEXTPROC)load("glProgramUniform1iEXT"); + glad_glProgramUniform1ivEXT = (PFNGLPROGRAMUNIFORM1IVEXTPROC)load("glProgramUniform1ivEXT"); + glad_glProgramUniform2fEXT = (PFNGLPROGRAMUNIFORM2FEXTPROC)load("glProgramUniform2fEXT"); + glad_glProgramUniform2fvEXT = (PFNGLPROGRAMUNIFORM2FVEXTPROC)load("glProgramUniform2fvEXT"); + glad_glProgramUniform2iEXT = (PFNGLPROGRAMUNIFORM2IEXTPROC)load("glProgramUniform2iEXT"); + glad_glProgramUniform2ivEXT = (PFNGLPROGRAMUNIFORM2IVEXTPROC)load("glProgramUniform2ivEXT"); + glad_glProgramUniform3fEXT = (PFNGLPROGRAMUNIFORM3FEXTPROC)load("glProgramUniform3fEXT"); + glad_glProgramUniform3fvEXT = (PFNGLPROGRAMUNIFORM3FVEXTPROC)load("glProgramUniform3fvEXT"); + glad_glProgramUniform3iEXT = (PFNGLPROGRAMUNIFORM3IEXTPROC)load("glProgramUniform3iEXT"); + glad_glProgramUniform3ivEXT = (PFNGLPROGRAMUNIFORM3IVEXTPROC)load("glProgramUniform3ivEXT"); + glad_glProgramUniform4fEXT = (PFNGLPROGRAMUNIFORM4FEXTPROC)load("glProgramUniform4fEXT"); + glad_glProgramUniform4fvEXT = (PFNGLPROGRAMUNIFORM4FVEXTPROC)load("glProgramUniform4fvEXT"); + glad_glProgramUniform4iEXT = (PFNGLPROGRAMUNIFORM4IEXTPROC)load("glProgramUniform4iEXT"); + glad_glProgramUniform4ivEXT = (PFNGLPROGRAMUNIFORM4IVEXTPROC)load("glProgramUniform4ivEXT"); + glad_glProgramUniformMatrix2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)load("glProgramUniformMatrix2fvEXT"); + glad_glProgramUniformMatrix3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)load("glProgramUniformMatrix3fvEXT"); + glad_glProgramUniformMatrix4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)load("glProgramUniformMatrix4fvEXT"); + glad_glUseProgramStagesEXT = (PFNGLUSEPROGRAMSTAGESEXTPROC)load("glUseProgramStagesEXT"); + glad_glValidateProgramPipelineEXT = (PFNGLVALIDATEPROGRAMPIPELINEEXTPROC)load("glValidateProgramPipelineEXT"); + glad_glProgramUniform1uiEXT = (PFNGLPROGRAMUNIFORM1UIEXTPROC)load("glProgramUniform1uiEXT"); + glad_glProgramUniform2uiEXT = (PFNGLPROGRAMUNIFORM2UIEXTPROC)load("glProgramUniform2uiEXT"); + glad_glProgramUniform3uiEXT = (PFNGLPROGRAMUNIFORM3UIEXTPROC)load("glProgramUniform3uiEXT"); + glad_glProgramUniform4uiEXT = (PFNGLPROGRAMUNIFORM4UIEXTPROC)load("glProgramUniform4uiEXT"); + glad_glProgramUniform1uivEXT = (PFNGLPROGRAMUNIFORM1UIVEXTPROC)load("glProgramUniform1uivEXT"); + glad_glProgramUniform2uivEXT = (PFNGLPROGRAMUNIFORM2UIVEXTPROC)load("glProgramUniform2uivEXT"); + glad_glProgramUniform3uivEXT = (PFNGLPROGRAMUNIFORM3UIVEXTPROC)load("glProgramUniform3uivEXT"); + glad_glProgramUniform4uivEXT = (PFNGLPROGRAMUNIFORM4UIVEXTPROC)load("glProgramUniform4uivEXT"); + glad_glProgramUniformMatrix4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)load("glProgramUniformMatrix4fvEXT"); + glad_glProgramUniformMatrix2x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)load("glProgramUniformMatrix2x3fvEXT"); + glad_glProgramUniformMatrix3x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)load("glProgramUniformMatrix3x2fvEXT"); + glad_glProgramUniformMatrix2x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)load("glProgramUniformMatrix2x4fvEXT"); + glad_glProgramUniformMatrix4x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)load("glProgramUniformMatrix4x2fvEXT"); + glad_glProgramUniformMatrix3x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)load("glProgramUniformMatrix3x4fvEXT"); + glad_glProgramUniformMatrix4x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)load("glProgramUniformMatrix4x3fvEXT"); +} +static void load_GL_NV_texture_multisample(GLADloadproc load) { + if(!GLAD_GL_NV_texture_multisample) return; + glad_glTexImage2DMultisampleCoverageNV = (PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC)load("glTexImage2DMultisampleCoverageNV"); + glad_glTexImage3DMultisampleCoverageNV = (PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC)load("glTexImage3DMultisampleCoverageNV"); + glad_glTextureImage2DMultisampleNV = (PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC)load("glTextureImage2DMultisampleNV"); + glad_glTextureImage3DMultisampleNV = (PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC)load("glTextureImage3DMultisampleNV"); + glad_glTextureImage2DMultisampleCoverageNV = (PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC)load("glTextureImage2DMultisampleCoverageNV"); + glad_glTextureImage3DMultisampleCoverageNV = (PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC)load("glTextureImage3DMultisampleCoverageNV"); +} +static void load_GL_ARB_shader_objects(GLADloadproc load) { + if(!GLAD_GL_ARB_shader_objects) return; + glad_glDeleteObjectARB = (PFNGLDELETEOBJECTARBPROC)load("glDeleteObjectARB"); + glad_glGetHandleARB = (PFNGLGETHANDLEARBPROC)load("glGetHandleARB"); + glad_glDetachObjectARB = (PFNGLDETACHOBJECTARBPROC)load("glDetachObjectARB"); + glad_glCreateShaderObjectARB = (PFNGLCREATESHADEROBJECTARBPROC)load("glCreateShaderObjectARB"); + glad_glShaderSourceARB = (PFNGLSHADERSOURCEARBPROC)load("glShaderSourceARB"); + glad_glCompileShaderARB = (PFNGLCOMPILESHADERARBPROC)load("glCompileShaderARB"); + glad_glCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC)load("glCreateProgramObjectARB"); + glad_glAttachObjectARB = (PFNGLATTACHOBJECTARBPROC)load("glAttachObjectARB"); + glad_glLinkProgramARB = (PFNGLLINKPROGRAMARBPROC)load("glLinkProgramARB"); + glad_glUseProgramObjectARB = (PFNGLUSEPROGRAMOBJECTARBPROC)load("glUseProgramObjectARB"); + glad_glValidateProgramARB = (PFNGLVALIDATEPROGRAMARBPROC)load("glValidateProgramARB"); + glad_glUniform1fARB = (PFNGLUNIFORM1FARBPROC)load("glUniform1fARB"); + glad_glUniform2fARB = (PFNGLUNIFORM2FARBPROC)load("glUniform2fARB"); + glad_glUniform3fARB = (PFNGLUNIFORM3FARBPROC)load("glUniform3fARB"); + glad_glUniform4fARB = (PFNGLUNIFORM4FARBPROC)load("glUniform4fARB"); + glad_glUniform1iARB = (PFNGLUNIFORM1IARBPROC)load("glUniform1iARB"); + glad_glUniform2iARB = (PFNGLUNIFORM2IARBPROC)load("glUniform2iARB"); + glad_glUniform3iARB = (PFNGLUNIFORM3IARBPROC)load("glUniform3iARB"); + glad_glUniform4iARB = (PFNGLUNIFORM4IARBPROC)load("glUniform4iARB"); + glad_glUniform1fvARB = (PFNGLUNIFORM1FVARBPROC)load("glUniform1fvARB"); + glad_glUniform2fvARB = (PFNGLUNIFORM2FVARBPROC)load("glUniform2fvARB"); + glad_glUniform3fvARB = (PFNGLUNIFORM3FVARBPROC)load("glUniform3fvARB"); + glad_glUniform4fvARB = (PFNGLUNIFORM4FVARBPROC)load("glUniform4fvARB"); + glad_glUniform1ivARB = (PFNGLUNIFORM1IVARBPROC)load("glUniform1ivARB"); + glad_glUniform2ivARB = (PFNGLUNIFORM2IVARBPROC)load("glUniform2ivARB"); + glad_glUniform3ivARB = (PFNGLUNIFORM3IVARBPROC)load("glUniform3ivARB"); + glad_glUniform4ivARB = (PFNGLUNIFORM4IVARBPROC)load("glUniform4ivARB"); + glad_glUniformMatrix2fvARB = (PFNGLUNIFORMMATRIX2FVARBPROC)load("glUniformMatrix2fvARB"); + glad_glUniformMatrix3fvARB = (PFNGLUNIFORMMATRIX3FVARBPROC)load("glUniformMatrix3fvARB"); + glad_glUniformMatrix4fvARB = (PFNGLUNIFORMMATRIX4FVARBPROC)load("glUniformMatrix4fvARB"); + glad_glGetObjectParameterfvARB = (PFNGLGETOBJECTPARAMETERFVARBPROC)load("glGetObjectParameterfvARB"); + glad_glGetObjectParameterivARB = (PFNGLGETOBJECTPARAMETERIVARBPROC)load("glGetObjectParameterivARB"); + glad_glGetInfoLogARB = (PFNGLGETINFOLOGARBPROC)load("glGetInfoLogARB"); + glad_glGetAttachedObjectsARB = (PFNGLGETATTACHEDOBJECTSARBPROC)load("glGetAttachedObjectsARB"); + glad_glGetUniformLocationARB = (PFNGLGETUNIFORMLOCATIONARBPROC)load("glGetUniformLocationARB"); + glad_glGetActiveUniformARB = (PFNGLGETACTIVEUNIFORMARBPROC)load("glGetActiveUniformARB"); + glad_glGetUniformfvARB = (PFNGLGETUNIFORMFVARBPROC)load("glGetUniformfvARB"); + glad_glGetUniformivARB = (PFNGLGETUNIFORMIVARBPROC)load("glGetUniformivARB"); + glad_glGetShaderSourceARB = (PFNGLGETSHADERSOURCEARBPROC)load("glGetShaderSourceARB"); +} +static void load_GL_ARB_framebuffer_object(GLADloadproc load) { + if(!GLAD_GL_ARB_framebuffer_object) return; + glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer"); + glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer"); + glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers"); + glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers"); + glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage"); + glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv"); + glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer"); + glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer"); + glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers"); + glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers"); + glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus"); + glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D"); + glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D"); + glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D"); + glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer"); + glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv"); + glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap"); + glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer"); + glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample"); + glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer"); +} +static void load_GL_ATI_envmap_bumpmap(GLADloadproc load) { + if(!GLAD_GL_ATI_envmap_bumpmap) return; + glad_glTexBumpParameterivATI = (PFNGLTEXBUMPPARAMETERIVATIPROC)load("glTexBumpParameterivATI"); + glad_glTexBumpParameterfvATI = (PFNGLTEXBUMPPARAMETERFVATIPROC)load("glTexBumpParameterfvATI"); + glad_glGetTexBumpParameterivATI = (PFNGLGETTEXBUMPPARAMETERIVATIPROC)load("glGetTexBumpParameterivATI"); + glad_glGetTexBumpParameterfvATI = (PFNGLGETTEXBUMPPARAMETERFVATIPROC)load("glGetTexBumpParameterfvATI"); +} +static void load_GL_ATI_map_object_buffer(GLADloadproc load) { + if(!GLAD_GL_ATI_map_object_buffer) return; + glad_glMapObjectBufferATI = (PFNGLMAPOBJECTBUFFERATIPROC)load("glMapObjectBufferATI"); + glad_glUnmapObjectBufferATI = (PFNGLUNMAPOBJECTBUFFERATIPROC)load("glUnmapObjectBufferATI"); +} +static void load_GL_ARB_robustness(GLADloadproc load) { + if(!GLAD_GL_ARB_robustness) return; + glad_glGetGraphicsResetStatusARB = (PFNGLGETGRAPHICSRESETSTATUSARBPROC)load("glGetGraphicsResetStatusARB"); + glad_glGetnTexImageARB = (PFNGLGETNTEXIMAGEARBPROC)load("glGetnTexImageARB"); + glad_glReadnPixelsARB = (PFNGLREADNPIXELSARBPROC)load("glReadnPixelsARB"); + glad_glGetnCompressedTexImageARB = (PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC)load("glGetnCompressedTexImageARB"); + glad_glGetnUniformfvARB = (PFNGLGETNUNIFORMFVARBPROC)load("glGetnUniformfvARB"); + glad_glGetnUniformivARB = (PFNGLGETNUNIFORMIVARBPROC)load("glGetnUniformivARB"); + glad_glGetnUniformuivARB = (PFNGLGETNUNIFORMUIVARBPROC)load("glGetnUniformuivARB"); + glad_glGetnUniformdvARB = (PFNGLGETNUNIFORMDVARBPROC)load("glGetnUniformdvARB"); + glad_glGetnMapdvARB = (PFNGLGETNMAPDVARBPROC)load("glGetnMapdvARB"); + glad_glGetnMapfvARB = (PFNGLGETNMAPFVARBPROC)load("glGetnMapfvARB"); + glad_glGetnMapivARB = (PFNGLGETNMAPIVARBPROC)load("glGetnMapivARB"); + glad_glGetnPixelMapfvARB = (PFNGLGETNPIXELMAPFVARBPROC)load("glGetnPixelMapfvARB"); + glad_glGetnPixelMapuivARB = (PFNGLGETNPIXELMAPUIVARBPROC)load("glGetnPixelMapuivARB"); + glad_glGetnPixelMapusvARB = (PFNGLGETNPIXELMAPUSVARBPROC)load("glGetnPixelMapusvARB"); + glad_glGetnPolygonStippleARB = (PFNGLGETNPOLYGONSTIPPLEARBPROC)load("glGetnPolygonStippleARB"); + glad_glGetnColorTableARB = (PFNGLGETNCOLORTABLEARBPROC)load("glGetnColorTableARB"); + glad_glGetnConvolutionFilterARB = (PFNGLGETNCONVOLUTIONFILTERARBPROC)load("glGetnConvolutionFilterARB"); + glad_glGetnSeparableFilterARB = (PFNGLGETNSEPARABLEFILTERARBPROC)load("glGetnSeparableFilterARB"); + glad_glGetnHistogramARB = (PFNGLGETNHISTOGRAMARBPROC)load("glGetnHistogramARB"); + glad_glGetnMinmaxARB = (PFNGLGETNMINMAXARBPROC)load("glGetnMinmaxARB"); +} +static void load_GL_NV_pixel_data_range(GLADloadproc load) { + if(!GLAD_GL_NV_pixel_data_range) return; + glad_glPixelDataRangeNV = (PFNGLPIXELDATARANGENVPROC)load("glPixelDataRangeNV"); + glad_glFlushPixelDataRangeNV = (PFNGLFLUSHPIXELDATARANGENVPROC)load("glFlushPixelDataRangeNV"); +} +static void load_GL_EXT_framebuffer_blit(GLADloadproc load) { + if(!GLAD_GL_EXT_framebuffer_blit) return; + glad_glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC)load("glBlitFramebufferEXT"); +} +static void load_GL_ARB_gpu_shader_fp64(GLADloadproc load) { + if(!GLAD_GL_ARB_gpu_shader_fp64) return; + glad_glUniform1d = (PFNGLUNIFORM1DPROC)load("glUniform1d"); + glad_glUniform2d = (PFNGLUNIFORM2DPROC)load("glUniform2d"); + glad_glUniform3d = (PFNGLUNIFORM3DPROC)load("glUniform3d"); + glad_glUniform4d = (PFNGLUNIFORM4DPROC)load("glUniform4d"); + glad_glUniform1dv = (PFNGLUNIFORM1DVPROC)load("glUniform1dv"); + glad_glUniform2dv = (PFNGLUNIFORM2DVPROC)load("glUniform2dv"); + glad_glUniform3dv = (PFNGLUNIFORM3DVPROC)load("glUniform3dv"); + glad_glUniform4dv = (PFNGLUNIFORM4DVPROC)load("glUniform4dv"); + glad_glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC)load("glUniformMatrix2dv"); + glad_glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC)load("glUniformMatrix3dv"); + glad_glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC)load("glUniformMatrix4dv"); + glad_glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC)load("glUniformMatrix2x3dv"); + glad_glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC)load("glUniformMatrix2x4dv"); + glad_glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC)load("glUniformMatrix3x2dv"); + glad_glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC)load("glUniformMatrix3x4dv"); + glad_glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC)load("glUniformMatrix4x2dv"); + glad_glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC)load("glUniformMatrix4x3dv"); + glad_glGetUniformdv = (PFNGLGETUNIFORMDVPROC)load("glGetUniformdv"); +} +static void load_GL_NV_command_list(GLADloadproc load) { + if(!GLAD_GL_NV_command_list) return; + glad_glCreateStatesNV = (PFNGLCREATESTATESNVPROC)load("glCreateStatesNV"); + glad_glDeleteStatesNV = (PFNGLDELETESTATESNVPROC)load("glDeleteStatesNV"); + glad_glIsStateNV = (PFNGLISSTATENVPROC)load("glIsStateNV"); + glad_glStateCaptureNV = (PFNGLSTATECAPTURENVPROC)load("glStateCaptureNV"); + glad_glGetCommandHeaderNV = (PFNGLGETCOMMANDHEADERNVPROC)load("glGetCommandHeaderNV"); + glad_glGetStageIndexNV = (PFNGLGETSTAGEINDEXNVPROC)load("glGetStageIndexNV"); + glad_glDrawCommandsNV = (PFNGLDRAWCOMMANDSNVPROC)load("glDrawCommandsNV"); + glad_glDrawCommandsAddressNV = (PFNGLDRAWCOMMANDSADDRESSNVPROC)load("glDrawCommandsAddressNV"); + glad_glDrawCommandsStatesNV = (PFNGLDRAWCOMMANDSSTATESNVPROC)load("glDrawCommandsStatesNV"); + glad_glDrawCommandsStatesAddressNV = (PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC)load("glDrawCommandsStatesAddressNV"); + glad_glCreateCommandListsNV = (PFNGLCREATECOMMANDLISTSNVPROC)load("glCreateCommandListsNV"); + glad_glDeleteCommandListsNV = (PFNGLDELETECOMMANDLISTSNVPROC)load("glDeleteCommandListsNV"); + glad_glIsCommandListNV = (PFNGLISCOMMANDLISTNVPROC)load("glIsCommandListNV"); + glad_glListDrawCommandsStatesClientNV = (PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC)load("glListDrawCommandsStatesClientNV"); + glad_glCommandListSegmentsNV = (PFNGLCOMMANDLISTSEGMENTSNVPROC)load("glCommandListSegmentsNV"); + glad_glCompileCommandListNV = (PFNGLCOMPILECOMMANDLISTNVPROC)load("glCompileCommandListNV"); + glad_glCallCommandListNV = (PFNGLCALLCOMMANDLISTNVPROC)load("glCallCommandListNV"); +} +static void load_GL_EXT_vertex_weighting(GLADloadproc load) { + if(!GLAD_GL_EXT_vertex_weighting) return; + glad_glVertexWeightfEXT = (PFNGLVERTEXWEIGHTFEXTPROC)load("glVertexWeightfEXT"); + glad_glVertexWeightfvEXT = (PFNGLVERTEXWEIGHTFVEXTPROC)load("glVertexWeightfvEXT"); + glad_glVertexWeightPointerEXT = (PFNGLVERTEXWEIGHTPOINTEREXTPROC)load("glVertexWeightPointerEXT"); +} +static void load_GL_GREMEDY_string_marker(GLADloadproc load) { + if(!GLAD_GL_GREMEDY_string_marker) return; + glad_glStringMarkerGREMEDY = (PFNGLSTRINGMARKERGREMEDYPROC)load("glStringMarkerGREMEDY"); +} +static void load_GL_EXT_subtexture(GLADloadproc load) { + if(!GLAD_GL_EXT_subtexture) return; + glad_glTexSubImage1DEXT = (PFNGLTEXSUBIMAGE1DEXTPROC)load("glTexSubImage1DEXT"); + glad_glTexSubImage2DEXT = (PFNGLTEXSUBIMAGE2DEXTPROC)load("glTexSubImage2DEXT"); +} +static void load_GL_EXT_gpu_program_parameters(GLADloadproc load) { + if(!GLAD_GL_EXT_gpu_program_parameters) return; + glad_glProgramEnvParameters4fvEXT = (PFNGLPROGRAMENVPARAMETERS4FVEXTPROC)load("glProgramEnvParameters4fvEXT"); + glad_glProgramLocalParameters4fvEXT = (PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC)load("glProgramLocalParameters4fvEXT"); +} +static void load_GL_NV_evaluators(GLADloadproc load) { + if(!GLAD_GL_NV_evaluators) return; + glad_glMapControlPointsNV = (PFNGLMAPCONTROLPOINTSNVPROC)load("glMapControlPointsNV"); + glad_glMapParameterivNV = (PFNGLMAPPARAMETERIVNVPROC)load("glMapParameterivNV"); + glad_glMapParameterfvNV = (PFNGLMAPPARAMETERFVNVPROC)load("glMapParameterfvNV"); + glad_glGetMapControlPointsNV = (PFNGLGETMAPCONTROLPOINTSNVPROC)load("glGetMapControlPointsNV"); + glad_glGetMapParameterivNV = (PFNGLGETMAPPARAMETERIVNVPROC)load("glGetMapParameterivNV"); + glad_glGetMapParameterfvNV = (PFNGLGETMAPPARAMETERFVNVPROC)load("glGetMapParameterfvNV"); + glad_glGetMapAttribParameterivNV = (PFNGLGETMAPATTRIBPARAMETERIVNVPROC)load("glGetMapAttribParameterivNV"); + glad_glGetMapAttribParameterfvNV = (PFNGLGETMAPATTRIBPARAMETERFVNVPROC)load("glGetMapAttribParameterfvNV"); + glad_glEvalMapsNV = (PFNGLEVALMAPSNVPROC)load("glEvalMapsNV"); +} +static void load_GL_SGIS_texture_filter4(GLADloadproc load) { + if(!GLAD_GL_SGIS_texture_filter4) return; + glad_glGetTexFilterFuncSGIS = (PFNGLGETTEXFILTERFUNCSGISPROC)load("glGetTexFilterFuncSGIS"); + glad_glTexFilterFuncSGIS = (PFNGLTEXFILTERFUNCSGISPROC)load("glTexFilterFuncSGIS"); +} +static void load_GL_AMD_performance_monitor(GLADloadproc load) { + if(!GLAD_GL_AMD_performance_monitor) return; + glad_glGetPerfMonitorGroupsAMD = (PFNGLGETPERFMONITORGROUPSAMDPROC)load("glGetPerfMonitorGroupsAMD"); + glad_glGetPerfMonitorCountersAMD = (PFNGLGETPERFMONITORCOUNTERSAMDPROC)load("glGetPerfMonitorCountersAMD"); + glad_glGetPerfMonitorGroupStringAMD = (PFNGLGETPERFMONITORGROUPSTRINGAMDPROC)load("glGetPerfMonitorGroupStringAMD"); + glad_glGetPerfMonitorCounterStringAMD = (PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC)load("glGetPerfMonitorCounterStringAMD"); + glad_glGetPerfMonitorCounterInfoAMD = (PFNGLGETPERFMONITORCOUNTERINFOAMDPROC)load("glGetPerfMonitorCounterInfoAMD"); + glad_glGenPerfMonitorsAMD = (PFNGLGENPERFMONITORSAMDPROC)load("glGenPerfMonitorsAMD"); + glad_glDeletePerfMonitorsAMD = (PFNGLDELETEPERFMONITORSAMDPROC)load("glDeletePerfMonitorsAMD"); + glad_glSelectPerfMonitorCountersAMD = (PFNGLSELECTPERFMONITORCOUNTERSAMDPROC)load("glSelectPerfMonitorCountersAMD"); + glad_glBeginPerfMonitorAMD = (PFNGLBEGINPERFMONITORAMDPROC)load("glBeginPerfMonitorAMD"); + glad_glEndPerfMonitorAMD = (PFNGLENDPERFMONITORAMDPROC)load("glEndPerfMonitorAMD"); + glad_glGetPerfMonitorCounterDataAMD = (PFNGLGETPERFMONITORCOUNTERDATAAMDPROC)load("glGetPerfMonitorCounterDataAMD"); +} +static void load_GL_EXT_stencil_clear_tag(GLADloadproc load) { + if(!GLAD_GL_EXT_stencil_clear_tag) return; + glad_glStencilClearTagEXT = (PFNGLSTENCILCLEARTAGEXTPROC)load("glStencilClearTagEXT"); +} +static void load_GL_NV_present_video(GLADloadproc load) { + if(!GLAD_GL_NV_present_video) return; + glad_glPresentFrameKeyedNV = (PFNGLPRESENTFRAMEKEYEDNVPROC)load("glPresentFrameKeyedNV"); + glad_glPresentFrameDualFillNV = (PFNGLPRESENTFRAMEDUALFILLNVPROC)load("glPresentFrameDualFillNV"); + glad_glGetVideoivNV = (PFNGLGETVIDEOIVNVPROC)load("glGetVideoivNV"); + glad_glGetVideouivNV = (PFNGLGETVIDEOUIVNVPROC)load("glGetVideouivNV"); + glad_glGetVideoi64vNV = (PFNGLGETVIDEOI64VNVPROC)load("glGetVideoi64vNV"); + glad_glGetVideoui64vNV = (PFNGLGETVIDEOUI64VNVPROC)load("glGetVideoui64vNV"); +} +static void load_GL_SGIX_framezoom(GLADloadproc load) { + if(!GLAD_GL_SGIX_framezoom) return; + glad_glFrameZoomSGIX = (PFNGLFRAMEZOOMSGIXPROC)load("glFrameZoomSGIX"); +} +static void load_GL_ARB_draw_elements_base_vertex(GLADloadproc load) { + if(!GLAD_GL_ARB_draw_elements_base_vertex) return; + glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load("glDrawElementsBaseVertex"); + glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load("glDrawRangeElementsBaseVertex"); + glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load("glDrawElementsInstancedBaseVertex"); + glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load("glMultiDrawElementsBaseVertex"); +} +static void load_GL_NV_transform_feedback(GLADloadproc load) { + if(!GLAD_GL_NV_transform_feedback) return; + glad_glBeginTransformFeedbackNV = (PFNGLBEGINTRANSFORMFEEDBACKNVPROC)load("glBeginTransformFeedbackNV"); + glad_glEndTransformFeedbackNV = (PFNGLENDTRANSFORMFEEDBACKNVPROC)load("glEndTransformFeedbackNV"); + glad_glTransformFeedbackAttribsNV = (PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC)load("glTransformFeedbackAttribsNV"); + glad_glBindBufferRangeNV = (PFNGLBINDBUFFERRANGENVPROC)load("glBindBufferRangeNV"); + glad_glBindBufferOffsetNV = (PFNGLBINDBUFFEROFFSETNVPROC)load("glBindBufferOffsetNV"); + glad_glBindBufferBaseNV = (PFNGLBINDBUFFERBASENVPROC)load("glBindBufferBaseNV"); + glad_glTransformFeedbackVaryingsNV = (PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC)load("glTransformFeedbackVaryingsNV"); + glad_glActiveVaryingNV = (PFNGLACTIVEVARYINGNVPROC)load("glActiveVaryingNV"); + glad_glGetVaryingLocationNV = (PFNGLGETVARYINGLOCATIONNVPROC)load("glGetVaryingLocationNV"); + glad_glGetActiveVaryingNV = (PFNGLGETACTIVEVARYINGNVPROC)load("glGetActiveVaryingNV"); + glad_glGetTransformFeedbackVaryingNV = (PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC)load("glGetTransformFeedbackVaryingNV"); + glad_glTransformFeedbackStreamAttribsNV = (PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC)load("glTransformFeedbackStreamAttribsNV"); +} +static void load_GL_NV_fragment_program(GLADloadproc load) { + if(!GLAD_GL_NV_fragment_program) return; + glad_glProgramNamedParameter4fNV = (PFNGLPROGRAMNAMEDPARAMETER4FNVPROC)load("glProgramNamedParameter4fNV"); + glad_glProgramNamedParameter4fvNV = (PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC)load("glProgramNamedParameter4fvNV"); + glad_glProgramNamedParameter4dNV = (PFNGLPROGRAMNAMEDPARAMETER4DNVPROC)load("glProgramNamedParameter4dNV"); + glad_glProgramNamedParameter4dvNV = (PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC)load("glProgramNamedParameter4dvNV"); + glad_glGetProgramNamedParameterfvNV = (PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC)load("glGetProgramNamedParameterfvNV"); + glad_glGetProgramNamedParameterdvNV = (PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC)load("glGetProgramNamedParameterdvNV"); +} +static void load_GL_AMD_stencil_operation_extended(GLADloadproc load) { + if(!GLAD_GL_AMD_stencil_operation_extended) return; + glad_glStencilOpValueAMD = (PFNGLSTENCILOPVALUEAMDPROC)load("glStencilOpValueAMD"); +} +static void load_GL_ARB_instanced_arrays(GLADloadproc load) { + if(!GLAD_GL_ARB_instanced_arrays) return; + glad_glVertexAttribDivisorARB = (PFNGLVERTEXATTRIBDIVISORARBPROC)load("glVertexAttribDivisorARB"); +} +static void load_GL_EXT_polygon_offset(GLADloadproc load) { + if(!GLAD_GL_EXT_polygon_offset) return; + glad_glPolygonOffsetEXT = (PFNGLPOLYGONOFFSETEXTPROC)load("glPolygonOffsetEXT"); +} +static void load_GL_KHR_robustness(GLADloadproc load) { + if(!GLAD_GL_KHR_robustness) return; + glad_glGetGraphicsResetStatus = (PFNGLGETGRAPHICSRESETSTATUSPROC)load("glGetGraphicsResetStatus"); + glad_glReadnPixels = (PFNGLREADNPIXELSPROC)load("glReadnPixels"); + glad_glGetnUniformfv = (PFNGLGETNUNIFORMFVPROC)load("glGetnUniformfv"); + glad_glGetnUniformiv = (PFNGLGETNUNIFORMIVPROC)load("glGetnUniformiv"); + glad_glGetnUniformuiv = (PFNGLGETNUNIFORMUIVPROC)load("glGetnUniformuiv"); + glad_glGetGraphicsResetStatusKHR = (PFNGLGETGRAPHICSRESETSTATUSKHRPROC)load("glGetGraphicsResetStatusKHR"); + glad_glReadnPixelsKHR = (PFNGLREADNPIXELSKHRPROC)load("glReadnPixelsKHR"); + glad_glGetnUniformfvKHR = (PFNGLGETNUNIFORMFVKHRPROC)load("glGetnUniformfvKHR"); + glad_glGetnUniformivKHR = (PFNGLGETNUNIFORMIVKHRPROC)load("glGetnUniformivKHR"); + glad_glGetnUniformuivKHR = (PFNGLGETNUNIFORMUIVKHRPROC)load("glGetnUniformuivKHR"); +} +static void load_GL_AMD_sparse_texture(GLADloadproc load) { + if(!GLAD_GL_AMD_sparse_texture) return; + glad_glTexStorageSparseAMD = (PFNGLTEXSTORAGESPARSEAMDPROC)load("glTexStorageSparseAMD"); + glad_glTextureStorageSparseAMD = (PFNGLTEXTURESTORAGESPARSEAMDPROC)load("glTextureStorageSparseAMD"); +} +static void load_GL_ARB_clip_control(GLADloadproc load) { + if(!GLAD_GL_ARB_clip_control) return; + glad_glClipControl = (PFNGLCLIPCONTROLPROC)load("glClipControl"); +} +static void load_GL_NV_fragment_coverage_to_color(GLADloadproc load) { + if(!GLAD_GL_NV_fragment_coverage_to_color) return; + glad_glFragmentCoverageColorNV = (PFNGLFRAGMENTCOVERAGECOLORNVPROC)load("glFragmentCoverageColorNV"); +} +static void load_GL_NV_fence(GLADloadproc load) { + if(!GLAD_GL_NV_fence) return; + glad_glDeleteFencesNV = (PFNGLDELETEFENCESNVPROC)load("glDeleteFencesNV"); + glad_glGenFencesNV = (PFNGLGENFENCESNVPROC)load("glGenFencesNV"); + glad_glIsFenceNV = (PFNGLISFENCENVPROC)load("glIsFenceNV"); + glad_glTestFenceNV = (PFNGLTESTFENCENVPROC)load("glTestFenceNV"); + glad_glGetFenceivNV = (PFNGLGETFENCEIVNVPROC)load("glGetFenceivNV"); + glad_glFinishFenceNV = (PFNGLFINISHFENCENVPROC)load("glFinishFenceNV"); + glad_glSetFenceNV = (PFNGLSETFENCENVPROC)load("glSetFenceNV"); +} +static void load_GL_ARB_texture_buffer_range(GLADloadproc load) { + if(!GLAD_GL_ARB_texture_buffer_range) return; + glad_glTexBufferRange = (PFNGLTEXBUFFERRANGEPROC)load("glTexBufferRange"); +} +static void load_GL_SUN_mesh_array(GLADloadproc load) { + if(!GLAD_GL_SUN_mesh_array) return; + glad_glDrawMeshArraysSUN = (PFNGLDRAWMESHARRAYSSUNPROC)load("glDrawMeshArraysSUN"); +} +static void load_GL_ARB_vertex_attrib_binding(GLADloadproc load) { + if(!GLAD_GL_ARB_vertex_attrib_binding) return; + glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC)load("glBindVertexBuffer"); + glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC)load("glVertexAttribFormat"); + glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC)load("glVertexAttribIFormat"); + glad_glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC)load("glVertexAttribLFormat"); + glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC)load("glVertexAttribBinding"); + glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC)load("glVertexBindingDivisor"); +} +static void load_GL_ARB_framebuffer_no_attachments(GLADloadproc load) { + if(!GLAD_GL_ARB_framebuffer_no_attachments) return; + glad_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC)load("glFramebufferParameteri"); + glad_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC)load("glGetFramebufferParameteriv"); +} +static void load_GL_ARB_cl_event(GLADloadproc load) { + if(!GLAD_GL_ARB_cl_event) return; + glad_glCreateSyncFromCLeventARB = (PFNGLCREATESYNCFROMCLEVENTARBPROC)load("glCreateSyncFromCLeventARB"); +} +static void load_GL_OES_single_precision(GLADloadproc load) { + if(!GLAD_GL_OES_single_precision) return; + glad_glClearDepthfOES = (PFNGLCLEARDEPTHFOESPROC)load("glClearDepthfOES"); + glad_glClipPlanefOES = (PFNGLCLIPPLANEFOESPROC)load("glClipPlanefOES"); + glad_glDepthRangefOES = (PFNGLDEPTHRANGEFOESPROC)load("glDepthRangefOES"); + glad_glFrustumfOES = (PFNGLFRUSTUMFOESPROC)load("glFrustumfOES"); + glad_glGetClipPlanefOES = (PFNGLGETCLIPPLANEFOESPROC)load("glGetClipPlanefOES"); + glad_glOrthofOES = (PFNGLORTHOFOESPROC)load("glOrthofOES"); +} +static void load_GL_NV_primitive_restart(GLADloadproc load) { + if(!GLAD_GL_NV_primitive_restart) return; + glad_glPrimitiveRestartNV = (PFNGLPRIMITIVERESTARTNVPROC)load("glPrimitiveRestartNV"); + glad_glPrimitiveRestartIndexNV = (PFNGLPRIMITIVERESTARTINDEXNVPROC)load("glPrimitiveRestartIndexNV"); +} +static void load_GL_SUN_global_alpha(GLADloadproc load) { + if(!GLAD_GL_SUN_global_alpha) return; + glad_glGlobalAlphaFactorbSUN = (PFNGLGLOBALALPHAFACTORBSUNPROC)load("glGlobalAlphaFactorbSUN"); + glad_glGlobalAlphaFactorsSUN = (PFNGLGLOBALALPHAFACTORSSUNPROC)load("glGlobalAlphaFactorsSUN"); + glad_glGlobalAlphaFactoriSUN = (PFNGLGLOBALALPHAFACTORISUNPROC)load("glGlobalAlphaFactoriSUN"); + glad_glGlobalAlphaFactorfSUN = (PFNGLGLOBALALPHAFACTORFSUNPROC)load("glGlobalAlphaFactorfSUN"); + glad_glGlobalAlphaFactordSUN = (PFNGLGLOBALALPHAFACTORDSUNPROC)load("glGlobalAlphaFactordSUN"); + glad_glGlobalAlphaFactorubSUN = (PFNGLGLOBALALPHAFACTORUBSUNPROC)load("glGlobalAlphaFactorubSUN"); + glad_glGlobalAlphaFactorusSUN = (PFNGLGLOBALALPHAFACTORUSSUNPROC)load("glGlobalAlphaFactorusSUN"); + glad_glGlobalAlphaFactoruiSUN = (PFNGLGLOBALALPHAFACTORUISUNPROC)load("glGlobalAlphaFactoruiSUN"); +} +static void load_GL_EXT_texture_object(GLADloadproc load) { + if(!GLAD_GL_EXT_texture_object) return; + glad_glAreTexturesResidentEXT = (PFNGLARETEXTURESRESIDENTEXTPROC)load("glAreTexturesResidentEXT"); + glad_glBindTextureEXT = (PFNGLBINDTEXTUREEXTPROC)load("glBindTextureEXT"); + glad_glDeleteTexturesEXT = (PFNGLDELETETEXTURESEXTPROC)load("glDeleteTexturesEXT"); + glad_glGenTexturesEXT = (PFNGLGENTEXTURESEXTPROC)load("glGenTexturesEXT"); + glad_glIsTextureEXT = (PFNGLISTEXTUREEXTPROC)load("glIsTextureEXT"); + glad_glPrioritizeTexturesEXT = (PFNGLPRIORITIZETEXTURESEXTPROC)load("glPrioritizeTexturesEXT"); +} +static void load_GL_AMD_name_gen_delete(GLADloadproc load) { + if(!GLAD_GL_AMD_name_gen_delete) return; + glad_glGenNamesAMD = (PFNGLGENNAMESAMDPROC)load("glGenNamesAMD"); + glad_glDeleteNamesAMD = (PFNGLDELETENAMESAMDPROC)load("glDeleteNamesAMD"); + glad_glIsNameAMD = (PFNGLISNAMEAMDPROC)load("glIsNameAMD"); +} +static void load_GL_ARB_buffer_storage(GLADloadproc load) { + if(!GLAD_GL_ARB_buffer_storage) return; + glad_glBufferStorage = (PFNGLBUFFERSTORAGEPROC)load("glBufferStorage"); +} +static void load_GL_APPLE_vertex_program_evaluators(GLADloadproc load) { + if(!GLAD_GL_APPLE_vertex_program_evaluators) return; + glad_glEnableVertexAttribAPPLE = (PFNGLENABLEVERTEXATTRIBAPPLEPROC)load("glEnableVertexAttribAPPLE"); + glad_glDisableVertexAttribAPPLE = (PFNGLDISABLEVERTEXATTRIBAPPLEPROC)load("glDisableVertexAttribAPPLE"); + glad_glIsVertexAttribEnabledAPPLE = (PFNGLISVERTEXATTRIBENABLEDAPPLEPROC)load("glIsVertexAttribEnabledAPPLE"); + glad_glMapVertexAttrib1dAPPLE = (PFNGLMAPVERTEXATTRIB1DAPPLEPROC)load("glMapVertexAttrib1dAPPLE"); + glad_glMapVertexAttrib1fAPPLE = (PFNGLMAPVERTEXATTRIB1FAPPLEPROC)load("glMapVertexAttrib1fAPPLE"); + glad_glMapVertexAttrib2dAPPLE = (PFNGLMAPVERTEXATTRIB2DAPPLEPROC)load("glMapVertexAttrib2dAPPLE"); + glad_glMapVertexAttrib2fAPPLE = (PFNGLMAPVERTEXATTRIB2FAPPLEPROC)load("glMapVertexAttrib2fAPPLE"); +} +static void load_GL_ARB_multi_bind(GLADloadproc load) { + if(!GLAD_GL_ARB_multi_bind) return; + glad_glBindBuffersBase = (PFNGLBINDBUFFERSBASEPROC)load("glBindBuffersBase"); + glad_glBindBuffersRange = (PFNGLBINDBUFFERSRANGEPROC)load("glBindBuffersRange"); + glad_glBindTextures = (PFNGLBINDTEXTURESPROC)load("glBindTextures"); + glad_glBindSamplers = (PFNGLBINDSAMPLERSPROC)load("glBindSamplers"); + glad_glBindImageTextures = (PFNGLBINDIMAGETEXTURESPROC)load("glBindImageTextures"); + glad_glBindVertexBuffers = (PFNGLBINDVERTEXBUFFERSPROC)load("glBindVertexBuffers"); +} +static void load_GL_SGIX_list_priority(GLADloadproc load) { + if(!GLAD_GL_SGIX_list_priority) return; + glad_glGetListParameterfvSGIX = (PFNGLGETLISTPARAMETERFVSGIXPROC)load("glGetListParameterfvSGIX"); + glad_glGetListParameterivSGIX = (PFNGLGETLISTPARAMETERIVSGIXPROC)load("glGetListParameterivSGIX"); + glad_glListParameterfSGIX = (PFNGLLISTPARAMETERFSGIXPROC)load("glListParameterfSGIX"); + glad_glListParameterfvSGIX = (PFNGLLISTPARAMETERFVSGIXPROC)load("glListParameterfvSGIX"); + glad_glListParameteriSGIX = (PFNGLLISTPARAMETERISGIXPROC)load("glListParameteriSGIX"); + glad_glListParameterivSGIX = (PFNGLLISTPARAMETERIVSGIXPROC)load("glListParameterivSGIX"); +} +static void load_GL_NV_vertex_buffer_unified_memory(GLADloadproc load) { + if(!GLAD_GL_NV_vertex_buffer_unified_memory) return; + glad_glBufferAddressRangeNV = (PFNGLBUFFERADDRESSRANGENVPROC)load("glBufferAddressRangeNV"); + glad_glVertexFormatNV = (PFNGLVERTEXFORMATNVPROC)load("glVertexFormatNV"); + glad_glNormalFormatNV = (PFNGLNORMALFORMATNVPROC)load("glNormalFormatNV"); + glad_glColorFormatNV = (PFNGLCOLORFORMATNVPROC)load("glColorFormatNV"); + glad_glIndexFormatNV = (PFNGLINDEXFORMATNVPROC)load("glIndexFormatNV"); + glad_glTexCoordFormatNV = (PFNGLTEXCOORDFORMATNVPROC)load("glTexCoordFormatNV"); + glad_glEdgeFlagFormatNV = (PFNGLEDGEFLAGFORMATNVPROC)load("glEdgeFlagFormatNV"); + glad_glSecondaryColorFormatNV = (PFNGLSECONDARYCOLORFORMATNVPROC)load("glSecondaryColorFormatNV"); + glad_glFogCoordFormatNV = (PFNGLFOGCOORDFORMATNVPROC)load("glFogCoordFormatNV"); + glad_glVertexAttribFormatNV = (PFNGLVERTEXATTRIBFORMATNVPROC)load("glVertexAttribFormatNV"); + glad_glVertexAttribIFormatNV = (PFNGLVERTEXATTRIBIFORMATNVPROC)load("glVertexAttribIFormatNV"); + glad_glGetIntegerui64i_vNV = (PFNGLGETINTEGERUI64I_VNVPROC)load("glGetIntegerui64i_vNV"); +} +static void load_GL_NV_blend_equation_advanced(GLADloadproc load) { + if(!GLAD_GL_NV_blend_equation_advanced) return; + glad_glBlendParameteriNV = (PFNGLBLENDPARAMETERINVPROC)load("glBlendParameteriNV"); + glad_glBlendBarrierNV = (PFNGLBLENDBARRIERNVPROC)load("glBlendBarrierNV"); +} +static void load_GL_SGIS_sharpen_texture(GLADloadproc load) { + if(!GLAD_GL_SGIS_sharpen_texture) return; + glad_glSharpenTexFuncSGIS = (PFNGLSHARPENTEXFUNCSGISPROC)load("glSharpenTexFuncSGIS"); + glad_glGetSharpenTexFuncSGIS = (PFNGLGETSHARPENTEXFUNCSGISPROC)load("glGetSharpenTexFuncSGIS"); +} +static void load_GL_ARB_vertex_program(GLADloadproc load) { + if(!GLAD_GL_ARB_vertex_program) return; + glad_glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC)load("glVertexAttrib1dARB"); + glad_glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC)load("glVertexAttrib1dvARB"); + glad_glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC)load("glVertexAttrib1fARB"); + glad_glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC)load("glVertexAttrib1fvARB"); + glad_glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC)load("glVertexAttrib1sARB"); + glad_glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC)load("glVertexAttrib1svARB"); + glad_glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC)load("glVertexAttrib2dARB"); + glad_glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC)load("glVertexAttrib2dvARB"); + glad_glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC)load("glVertexAttrib2fARB"); + glad_glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC)load("glVertexAttrib2fvARB"); + glad_glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC)load("glVertexAttrib2sARB"); + glad_glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC)load("glVertexAttrib2svARB"); + glad_glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC)load("glVertexAttrib3dARB"); + glad_glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC)load("glVertexAttrib3dvARB"); + glad_glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC)load("glVertexAttrib3fARB"); + glad_glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC)load("glVertexAttrib3fvARB"); + glad_glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC)load("glVertexAttrib3sARB"); + glad_glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC)load("glVertexAttrib3svARB"); + glad_glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC)load("glVertexAttrib4NbvARB"); + glad_glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC)load("glVertexAttrib4NivARB"); + glad_glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC)load("glVertexAttrib4NsvARB"); + glad_glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC)load("glVertexAttrib4NubARB"); + glad_glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC)load("glVertexAttrib4NubvARB"); + glad_glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC)load("glVertexAttrib4NuivARB"); + glad_glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC)load("glVertexAttrib4NusvARB"); + glad_glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC)load("glVertexAttrib4bvARB"); + glad_glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC)load("glVertexAttrib4dARB"); + glad_glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC)load("glVertexAttrib4dvARB"); + glad_glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC)load("glVertexAttrib4fARB"); + glad_glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC)load("glVertexAttrib4fvARB"); + glad_glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC)load("glVertexAttrib4ivARB"); + glad_glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC)load("glVertexAttrib4sARB"); + glad_glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC)load("glVertexAttrib4svARB"); + glad_glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC)load("glVertexAttrib4ubvARB"); + glad_glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC)load("glVertexAttrib4uivARB"); + glad_glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC)load("glVertexAttrib4usvARB"); + glad_glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC)load("glVertexAttribPointerARB"); + glad_glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC)load("glEnableVertexAttribArrayARB"); + glad_glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)load("glDisableVertexAttribArrayARB"); + glad_glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC)load("glProgramStringARB"); + glad_glBindProgramARB = (PFNGLBINDPROGRAMARBPROC)load("glBindProgramARB"); + glad_glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC)load("glDeleteProgramsARB"); + glad_glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC)load("glGenProgramsARB"); + glad_glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC)load("glProgramEnvParameter4dARB"); + glad_glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC)load("glProgramEnvParameter4dvARB"); + glad_glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC)load("glProgramEnvParameter4fARB"); + glad_glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC)load("glProgramEnvParameter4fvARB"); + glad_glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC)load("glProgramLocalParameter4dARB"); + glad_glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)load("glProgramLocalParameter4dvARB"); + glad_glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC)load("glProgramLocalParameter4fARB"); + glad_glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)load("glProgramLocalParameter4fvARB"); + glad_glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC)load("glGetProgramEnvParameterdvARB"); + glad_glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC)load("glGetProgramEnvParameterfvARB"); + glad_glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)load("glGetProgramLocalParameterdvARB"); + glad_glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)load("glGetProgramLocalParameterfvARB"); + glad_glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC)load("glGetProgramivARB"); + glad_glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC)load("glGetProgramStringARB"); + glad_glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC)load("glGetVertexAttribdvARB"); + glad_glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC)load("glGetVertexAttribfvARB"); + glad_glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC)load("glGetVertexAttribivARB"); + glad_glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC)load("glGetVertexAttribPointervARB"); + glad_glIsProgramARB = (PFNGLISPROGRAMARBPROC)load("glIsProgramARB"); +} +static void load_GL_ARB_vertex_buffer_object(GLADloadproc load) { + if(!GLAD_GL_ARB_vertex_buffer_object) return; + glad_glBindBufferARB = (PFNGLBINDBUFFERARBPROC)load("glBindBufferARB"); + glad_glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC)load("glDeleteBuffersARB"); + glad_glGenBuffersARB = (PFNGLGENBUFFERSARBPROC)load("glGenBuffersARB"); + glad_glIsBufferARB = (PFNGLISBUFFERARBPROC)load("glIsBufferARB"); + glad_glBufferDataARB = (PFNGLBUFFERDATAARBPROC)load("glBufferDataARB"); + glad_glBufferSubDataARB = (PFNGLBUFFERSUBDATAARBPROC)load("glBufferSubDataARB"); + glad_glGetBufferSubDataARB = (PFNGLGETBUFFERSUBDATAARBPROC)load("glGetBufferSubDataARB"); + glad_glMapBufferARB = (PFNGLMAPBUFFERARBPROC)load("glMapBufferARB"); + glad_glUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC)load("glUnmapBufferARB"); + glad_glGetBufferParameterivARB = (PFNGLGETBUFFERPARAMETERIVARBPROC)load("glGetBufferParameterivARB"); + glad_glGetBufferPointervARB = (PFNGLGETBUFFERPOINTERVARBPROC)load("glGetBufferPointervARB"); +} +static void load_GL_NV_vertex_array_range(GLADloadproc load) { + if(!GLAD_GL_NV_vertex_array_range) return; + glad_glFlushVertexArrayRangeNV = (PFNGLFLUSHVERTEXARRAYRANGENVPROC)load("glFlushVertexArrayRangeNV"); + glad_glVertexArrayRangeNV = (PFNGLVERTEXARRAYRANGENVPROC)load("glVertexArrayRangeNV"); +} +static void load_GL_SGIX_fragment_lighting(GLADloadproc load) { + if(!GLAD_GL_SGIX_fragment_lighting) return; + glad_glFragmentColorMaterialSGIX = (PFNGLFRAGMENTCOLORMATERIALSGIXPROC)load("glFragmentColorMaterialSGIX"); + glad_glFragmentLightfSGIX = (PFNGLFRAGMENTLIGHTFSGIXPROC)load("glFragmentLightfSGIX"); + glad_glFragmentLightfvSGIX = (PFNGLFRAGMENTLIGHTFVSGIXPROC)load("glFragmentLightfvSGIX"); + glad_glFragmentLightiSGIX = (PFNGLFRAGMENTLIGHTISGIXPROC)load("glFragmentLightiSGIX"); + glad_glFragmentLightivSGIX = (PFNGLFRAGMENTLIGHTIVSGIXPROC)load("glFragmentLightivSGIX"); + glad_glFragmentLightModelfSGIX = (PFNGLFRAGMENTLIGHTMODELFSGIXPROC)load("glFragmentLightModelfSGIX"); + glad_glFragmentLightModelfvSGIX = (PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)load("glFragmentLightModelfvSGIX"); + glad_glFragmentLightModeliSGIX = (PFNGLFRAGMENTLIGHTMODELISGIXPROC)load("glFragmentLightModeliSGIX"); + glad_glFragmentLightModelivSGIX = (PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)load("glFragmentLightModelivSGIX"); + glad_glFragmentMaterialfSGIX = (PFNGLFRAGMENTMATERIALFSGIXPROC)load("glFragmentMaterialfSGIX"); + glad_glFragmentMaterialfvSGIX = (PFNGLFRAGMENTMATERIALFVSGIXPROC)load("glFragmentMaterialfvSGIX"); + glad_glFragmentMaterialiSGIX = (PFNGLFRAGMENTMATERIALISGIXPROC)load("glFragmentMaterialiSGIX"); + glad_glFragmentMaterialivSGIX = (PFNGLFRAGMENTMATERIALIVSGIXPROC)load("glFragmentMaterialivSGIX"); + glad_glGetFragmentLightfvSGIX = (PFNGLGETFRAGMENTLIGHTFVSGIXPROC)load("glGetFragmentLightfvSGIX"); + glad_glGetFragmentLightivSGIX = (PFNGLGETFRAGMENTLIGHTIVSGIXPROC)load("glGetFragmentLightivSGIX"); + glad_glGetFragmentMaterialfvSGIX = (PFNGLGETFRAGMENTMATERIALFVSGIXPROC)load("glGetFragmentMaterialfvSGIX"); + glad_glGetFragmentMaterialivSGIX = (PFNGLGETFRAGMENTMATERIALIVSGIXPROC)load("glGetFragmentMaterialivSGIX"); + glad_glLightEnviSGIX = (PFNGLLIGHTENVISGIXPROC)load("glLightEnviSGIX"); +} +static void load_GL_NV_framebuffer_multisample_coverage(GLADloadproc load) { + if(!GLAD_GL_NV_framebuffer_multisample_coverage) return; + glad_glRenderbufferStorageMultisampleCoverageNV = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC)load("glRenderbufferStorageMultisampleCoverageNV"); +} +static void load_GL_EXT_timer_query(GLADloadproc load) { + if(!GLAD_GL_EXT_timer_query) return; + glad_glGetQueryObjecti64vEXT = (PFNGLGETQUERYOBJECTI64VEXTPROC)load("glGetQueryObjecti64vEXT"); + glad_glGetQueryObjectui64vEXT = (PFNGLGETQUERYOBJECTUI64VEXTPROC)load("glGetQueryObjectui64vEXT"); +} +static void load_GL_NV_bindless_texture(GLADloadproc load) { + if(!GLAD_GL_NV_bindless_texture) return; + glad_glGetTextureHandleNV = (PFNGLGETTEXTUREHANDLENVPROC)load("glGetTextureHandleNV"); + glad_glGetTextureSamplerHandleNV = (PFNGLGETTEXTURESAMPLERHANDLENVPROC)load("glGetTextureSamplerHandleNV"); + glad_glMakeTextureHandleResidentNV = (PFNGLMAKETEXTUREHANDLERESIDENTNVPROC)load("glMakeTextureHandleResidentNV"); + glad_glMakeTextureHandleNonResidentNV = (PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC)load("glMakeTextureHandleNonResidentNV"); + glad_glGetImageHandleNV = (PFNGLGETIMAGEHANDLENVPROC)load("glGetImageHandleNV"); + glad_glMakeImageHandleResidentNV = (PFNGLMAKEIMAGEHANDLERESIDENTNVPROC)load("glMakeImageHandleResidentNV"); + glad_glMakeImageHandleNonResidentNV = (PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC)load("glMakeImageHandleNonResidentNV"); + glad_glUniformHandleui64NV = (PFNGLUNIFORMHANDLEUI64NVPROC)load("glUniformHandleui64NV"); + glad_glUniformHandleui64vNV = (PFNGLUNIFORMHANDLEUI64VNVPROC)load("glUniformHandleui64vNV"); + glad_glProgramUniformHandleui64NV = (PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC)load("glProgramUniformHandleui64NV"); + glad_glProgramUniformHandleui64vNV = (PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC)load("glProgramUniformHandleui64vNV"); + glad_glIsTextureHandleResidentNV = (PFNGLISTEXTUREHANDLERESIDENTNVPROC)load("glIsTextureHandleResidentNV"); + glad_glIsImageHandleResidentNV = (PFNGLISIMAGEHANDLERESIDENTNVPROC)load("glIsImageHandleResidentNV"); +} +static void load_GL_KHR_debug(GLADloadproc load) { + if(!GLAD_GL_KHR_debug) return; + glad_glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC)load("glDebugMessageControl"); + glad_glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC)load("glDebugMessageInsert"); + glad_glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC)load("glDebugMessageCallback"); + glad_glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC)load("glGetDebugMessageLog"); + glad_glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC)load("glPushDebugGroup"); + glad_glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC)load("glPopDebugGroup"); + glad_glObjectLabel = (PFNGLOBJECTLABELPROC)load("glObjectLabel"); + glad_glGetObjectLabel = (PFNGLGETOBJECTLABELPROC)load("glGetObjectLabel"); + glad_glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC)load("glObjectPtrLabel"); + glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC)load("glGetObjectPtrLabel"); + glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv"); + glad_glDebugMessageControlKHR = (PFNGLDEBUGMESSAGECONTROLKHRPROC)load("glDebugMessageControlKHR"); + glad_glDebugMessageInsertKHR = (PFNGLDEBUGMESSAGEINSERTKHRPROC)load("glDebugMessageInsertKHR"); + glad_glDebugMessageCallbackKHR = (PFNGLDEBUGMESSAGECALLBACKKHRPROC)load("glDebugMessageCallbackKHR"); + glad_glGetDebugMessageLogKHR = (PFNGLGETDEBUGMESSAGELOGKHRPROC)load("glGetDebugMessageLogKHR"); + glad_glPushDebugGroupKHR = (PFNGLPUSHDEBUGGROUPKHRPROC)load("glPushDebugGroupKHR"); + glad_glPopDebugGroupKHR = (PFNGLPOPDEBUGGROUPKHRPROC)load("glPopDebugGroupKHR"); + glad_glObjectLabelKHR = (PFNGLOBJECTLABELKHRPROC)load("glObjectLabelKHR"); + glad_glGetObjectLabelKHR = (PFNGLGETOBJECTLABELKHRPROC)load("glGetObjectLabelKHR"); + glad_glObjectPtrLabelKHR = (PFNGLOBJECTPTRLABELKHRPROC)load("glObjectPtrLabelKHR"); + glad_glGetObjectPtrLabelKHR = (PFNGLGETOBJECTPTRLABELKHRPROC)load("glGetObjectPtrLabelKHR"); + glad_glGetPointervKHR = (PFNGLGETPOINTERVKHRPROC)load("glGetPointervKHR"); +} +static void load_GL_ATI_vertex_attrib_array_object(GLADloadproc load) { + if(!GLAD_GL_ATI_vertex_attrib_array_object) return; + glad_glVertexAttribArrayObjectATI = (PFNGLVERTEXATTRIBARRAYOBJECTATIPROC)load("glVertexAttribArrayObjectATI"); + glad_glGetVertexAttribArrayObjectfvATI = (PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC)load("glGetVertexAttribArrayObjectfvATI"); + glad_glGetVertexAttribArrayObjectivATI = (PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC)load("glGetVertexAttribArrayObjectivATI"); +} +static void load_GL_EXT_geometry_shader4(GLADloadproc load) { + if(!GLAD_GL_EXT_geometry_shader4) return; + glad_glProgramParameteriEXT = (PFNGLPROGRAMPARAMETERIEXTPROC)load("glProgramParameteriEXT"); +} +static void load_GL_EXT_bindable_uniform(GLADloadproc load) { + if(!GLAD_GL_EXT_bindable_uniform) return; + glad_glUniformBufferEXT = (PFNGLUNIFORMBUFFEREXTPROC)load("glUniformBufferEXT"); + glad_glGetUniformBufferSizeEXT = (PFNGLGETUNIFORMBUFFERSIZEEXTPROC)load("glGetUniformBufferSizeEXT"); + glad_glGetUniformOffsetEXT = (PFNGLGETUNIFORMOFFSETEXTPROC)load("glGetUniformOffsetEXT"); +} +static void load_GL_KHR_blend_equation_advanced(GLADloadproc load) { + if(!GLAD_GL_KHR_blend_equation_advanced) return; + glad_glBlendBarrierKHR = (PFNGLBLENDBARRIERKHRPROC)load("glBlendBarrierKHR"); +} +static void load_GL_ATI_element_array(GLADloadproc load) { + if(!GLAD_GL_ATI_element_array) return; + glad_glElementPointerATI = (PFNGLELEMENTPOINTERATIPROC)load("glElementPointerATI"); + glad_glDrawElementArrayATI = (PFNGLDRAWELEMENTARRAYATIPROC)load("glDrawElementArrayATI"); + glad_glDrawRangeElementArrayATI = (PFNGLDRAWRANGEELEMENTARRAYATIPROC)load("glDrawRangeElementArrayATI"); +} +static void load_GL_SGIX_reference_plane(GLADloadproc load) { + if(!GLAD_GL_SGIX_reference_plane) return; + glad_glReferencePlaneSGIX = (PFNGLREFERENCEPLANESGIXPROC)load("glReferencePlaneSGIX"); +} +static void load_GL_EXT_stencil_two_side(GLADloadproc load) { + if(!GLAD_GL_EXT_stencil_two_side) return; + glad_glActiveStencilFaceEXT = (PFNGLACTIVESTENCILFACEEXTPROC)load("glActiveStencilFaceEXT"); +} +static void load_GL_NV_explicit_multisample(GLADloadproc load) { + if(!GLAD_GL_NV_explicit_multisample) return; + glad_glGetMultisamplefvNV = (PFNGLGETMULTISAMPLEFVNVPROC)load("glGetMultisamplefvNV"); + glad_glSampleMaskIndexedNV = (PFNGLSAMPLEMASKINDEXEDNVPROC)load("glSampleMaskIndexedNV"); + glad_glTexRenderbufferNV = (PFNGLTEXRENDERBUFFERNVPROC)load("glTexRenderbufferNV"); +} +static void load_GL_IBM_static_data(GLADloadproc load) { + if(!GLAD_GL_IBM_static_data) return; + glad_glFlushStaticDataIBM = (PFNGLFLUSHSTATICDATAIBMPROC)load("glFlushStaticDataIBM"); +} +static void load_GL_EXT_texture_perturb_normal(GLADloadproc load) { + if(!GLAD_GL_EXT_texture_perturb_normal) return; + glad_glTextureNormalEXT = (PFNGLTEXTURENORMALEXTPROC)load("glTextureNormalEXT"); +} +static void load_GL_EXT_point_parameters(GLADloadproc load) { + if(!GLAD_GL_EXT_point_parameters) return; + glad_glPointParameterfEXT = (PFNGLPOINTPARAMETERFEXTPROC)load("glPointParameterfEXT"); + glad_glPointParameterfvEXT = (PFNGLPOINTPARAMETERFVEXTPROC)load("glPointParameterfvEXT"); +} +static void load_GL_PGI_misc_hints(GLADloadproc load) { + if(!GLAD_GL_PGI_misc_hints) return; + glad_glHintPGI = (PFNGLHINTPGIPROC)load("glHintPGI"); +} +static void load_GL_ARB_vertex_shader(GLADloadproc load) { + if(!GLAD_GL_ARB_vertex_shader) return; + glad_glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC)load("glVertexAttrib1fARB"); + glad_glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC)load("glVertexAttrib1sARB"); + glad_glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC)load("glVertexAttrib1dARB"); + glad_glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC)load("glVertexAttrib2fARB"); + glad_glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC)load("glVertexAttrib2sARB"); + glad_glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC)load("glVertexAttrib2dARB"); + glad_glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC)load("glVertexAttrib3fARB"); + glad_glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC)load("glVertexAttrib3sARB"); + glad_glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC)load("glVertexAttrib3dARB"); + glad_glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC)load("glVertexAttrib4fARB"); + glad_glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC)load("glVertexAttrib4sARB"); + glad_glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC)load("glVertexAttrib4dARB"); + glad_glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC)load("glVertexAttrib4NubARB"); + glad_glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC)load("glVertexAttrib1fvARB"); + glad_glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC)load("glVertexAttrib1svARB"); + glad_glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC)load("glVertexAttrib1dvARB"); + glad_glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC)load("glVertexAttrib2fvARB"); + glad_glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC)load("glVertexAttrib2svARB"); + glad_glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC)load("glVertexAttrib2dvARB"); + glad_glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC)load("glVertexAttrib3fvARB"); + glad_glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC)load("glVertexAttrib3svARB"); + glad_glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC)load("glVertexAttrib3dvARB"); + glad_glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC)load("glVertexAttrib4fvARB"); + glad_glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC)load("glVertexAttrib4svARB"); + glad_glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC)load("glVertexAttrib4dvARB"); + glad_glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC)load("glVertexAttrib4ivARB"); + glad_glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC)load("glVertexAttrib4bvARB"); + glad_glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC)load("glVertexAttrib4ubvARB"); + glad_glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC)load("glVertexAttrib4usvARB"); + glad_glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC)load("glVertexAttrib4uivARB"); + glad_glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC)load("glVertexAttrib4NbvARB"); + glad_glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC)load("glVertexAttrib4NsvARB"); + glad_glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC)load("glVertexAttrib4NivARB"); + glad_glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC)load("glVertexAttrib4NubvARB"); + glad_glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC)load("glVertexAttrib4NusvARB"); + glad_glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC)load("glVertexAttrib4NuivARB"); + glad_glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC)load("glVertexAttribPointerARB"); + glad_glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC)load("glEnableVertexAttribArrayARB"); + glad_glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)load("glDisableVertexAttribArrayARB"); + glad_glBindAttribLocationARB = (PFNGLBINDATTRIBLOCATIONARBPROC)load("glBindAttribLocationARB"); + glad_glGetActiveAttribARB = (PFNGLGETACTIVEATTRIBARBPROC)load("glGetActiveAttribARB"); + glad_glGetAttribLocationARB = (PFNGLGETATTRIBLOCATIONARBPROC)load("glGetAttribLocationARB"); + glad_glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC)load("glGetVertexAttribdvARB"); + glad_glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC)load("glGetVertexAttribfvARB"); + glad_glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC)load("glGetVertexAttribivARB"); + glad_glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC)load("glGetVertexAttribPointervARB"); +} +static void load_GL_ARB_tessellation_shader(GLADloadproc load) { + if(!GLAD_GL_ARB_tessellation_shader) return; + glad_glPatchParameteri = (PFNGLPATCHPARAMETERIPROC)load("glPatchParameteri"); + glad_glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC)load("glPatchParameterfv"); +} +static void load_GL_EXT_draw_buffers2(GLADloadproc load) { + if(!GLAD_GL_EXT_draw_buffers2) return; + glad_glColorMaskIndexedEXT = (PFNGLCOLORMASKINDEXEDEXTPROC)load("glColorMaskIndexedEXT"); + glad_glGetBooleanIndexedvEXT = (PFNGLGETBOOLEANINDEXEDVEXTPROC)load("glGetBooleanIndexedvEXT"); + glad_glGetIntegerIndexedvEXT = (PFNGLGETINTEGERINDEXEDVEXTPROC)load("glGetIntegerIndexedvEXT"); + glad_glEnableIndexedEXT = (PFNGLENABLEINDEXEDEXTPROC)load("glEnableIndexedEXT"); + glad_glDisableIndexedEXT = (PFNGLDISABLEINDEXEDEXTPROC)load("glDisableIndexedEXT"); + glad_glIsEnabledIndexedEXT = (PFNGLISENABLEDINDEXEDEXTPROC)load("glIsEnabledIndexedEXT"); +} +static void load_GL_ARB_vertex_attrib_64bit(GLADloadproc load) { + if(!GLAD_GL_ARB_vertex_attrib_64bit) return; + glad_glVertexAttribL1d = (PFNGLVERTEXATTRIBL1DPROC)load("glVertexAttribL1d"); + glad_glVertexAttribL2d = (PFNGLVERTEXATTRIBL2DPROC)load("glVertexAttribL2d"); + glad_glVertexAttribL3d = (PFNGLVERTEXATTRIBL3DPROC)load("glVertexAttribL3d"); + glad_glVertexAttribL4d = (PFNGLVERTEXATTRIBL4DPROC)load("glVertexAttribL4d"); + glad_glVertexAttribL1dv = (PFNGLVERTEXATTRIBL1DVPROC)load("glVertexAttribL1dv"); + glad_glVertexAttribL2dv = (PFNGLVERTEXATTRIBL2DVPROC)load("glVertexAttribL2dv"); + glad_glVertexAttribL3dv = (PFNGLVERTEXATTRIBL3DVPROC)load("glVertexAttribL3dv"); + glad_glVertexAttribL4dv = (PFNGLVERTEXATTRIBL4DVPROC)load("glVertexAttribL4dv"); + glad_glVertexAttribLPointer = (PFNGLVERTEXATTRIBLPOINTERPROC)load("glVertexAttribLPointer"); + glad_glGetVertexAttribLdv = (PFNGLGETVERTEXATTRIBLDVPROC)load("glGetVertexAttribLdv"); +} +static void load_GL_EXT_texture_filter_minmax(GLADloadproc load) { + if(!GLAD_GL_EXT_texture_filter_minmax) return; + glad_glRasterSamplesEXT = (PFNGLRASTERSAMPLESEXTPROC)load("glRasterSamplesEXT"); +} +static void load_GL_AMD_interleaved_elements(GLADloadproc load) { + if(!GLAD_GL_AMD_interleaved_elements) return; + glad_glVertexAttribParameteriAMD = (PFNGLVERTEXATTRIBPARAMETERIAMDPROC)load("glVertexAttribParameteriAMD"); +} +static void load_GL_ARB_fragment_program(GLADloadproc load) { + if(!GLAD_GL_ARB_fragment_program) return; + glad_glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC)load("glProgramStringARB"); + glad_glBindProgramARB = (PFNGLBINDPROGRAMARBPROC)load("glBindProgramARB"); + glad_glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC)load("glDeleteProgramsARB"); + glad_glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC)load("glGenProgramsARB"); + glad_glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC)load("glProgramEnvParameter4dARB"); + glad_glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC)load("glProgramEnvParameter4dvARB"); + glad_glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC)load("glProgramEnvParameter4fARB"); + glad_glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC)load("glProgramEnvParameter4fvARB"); + glad_glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC)load("glProgramLocalParameter4dARB"); + glad_glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)load("glProgramLocalParameter4dvARB"); + glad_glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC)load("glProgramLocalParameter4fARB"); + glad_glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)load("glProgramLocalParameter4fvARB"); + glad_glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC)load("glGetProgramEnvParameterdvARB"); + glad_glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC)load("glGetProgramEnvParameterfvARB"); + glad_glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)load("glGetProgramLocalParameterdvARB"); + glad_glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)load("glGetProgramLocalParameterfvARB"); + glad_glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC)load("glGetProgramivARB"); + glad_glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC)load("glGetProgramStringARB"); + glad_glIsProgramARB = (PFNGLISPROGRAMARBPROC)load("glIsProgramARB"); +} +static void load_GL_ARB_texture_storage(GLADloadproc load) { + if(!GLAD_GL_ARB_texture_storage) return; + glad_glTexStorage1D = (PFNGLTEXSTORAGE1DPROC)load("glTexStorage1D"); + glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)load("glTexStorage2D"); + glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)load("glTexStorage3D"); +} +static void load_GL_ARB_copy_image(GLADloadproc load) { + if(!GLAD_GL_ARB_copy_image) return; + glad_glCopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC)load("glCopyImageSubData"); +} +static void load_GL_SGIS_pixel_texture(GLADloadproc load) { + if(!GLAD_GL_SGIS_pixel_texture) return; + glad_glPixelTexGenParameteriSGIS = (PFNGLPIXELTEXGENPARAMETERISGISPROC)load("glPixelTexGenParameteriSGIS"); + glad_glPixelTexGenParameterivSGIS = (PFNGLPIXELTEXGENPARAMETERIVSGISPROC)load("glPixelTexGenParameterivSGIS"); + glad_glPixelTexGenParameterfSGIS = (PFNGLPIXELTEXGENPARAMETERFSGISPROC)load("glPixelTexGenParameterfSGIS"); + glad_glPixelTexGenParameterfvSGIS = (PFNGLPIXELTEXGENPARAMETERFVSGISPROC)load("glPixelTexGenParameterfvSGIS"); + glad_glGetPixelTexGenParameterivSGIS = (PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC)load("glGetPixelTexGenParameterivSGIS"); + glad_glGetPixelTexGenParameterfvSGIS = (PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC)load("glGetPixelTexGenParameterfvSGIS"); +} +static void load_GL_SGIX_instruments(GLADloadproc load) { + if(!GLAD_GL_SGIX_instruments) return; + glad_glGetInstrumentsSGIX = (PFNGLGETINSTRUMENTSSGIXPROC)load("glGetInstrumentsSGIX"); + glad_glInstrumentsBufferSGIX = (PFNGLINSTRUMENTSBUFFERSGIXPROC)load("glInstrumentsBufferSGIX"); + glad_glPollInstrumentsSGIX = (PFNGLPOLLINSTRUMENTSSGIXPROC)load("glPollInstrumentsSGIX"); + glad_glReadInstrumentsSGIX = (PFNGLREADINSTRUMENTSSGIXPROC)load("glReadInstrumentsSGIX"); + glad_glStartInstrumentsSGIX = (PFNGLSTARTINSTRUMENTSSGIXPROC)load("glStartInstrumentsSGIX"); + glad_glStopInstrumentsSGIX = (PFNGLSTOPINSTRUMENTSSGIXPROC)load("glStopInstrumentsSGIX"); +} +static void load_GL_ARB_shader_storage_buffer_object(GLADloadproc load) { + if(!GLAD_GL_ARB_shader_storage_buffer_object) return; + glad_glShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDINGPROC)load("glShaderStorageBlockBinding"); +} +static void load_GL_EXT_blend_minmax(GLADloadproc load) { + if(!GLAD_GL_EXT_blend_minmax) return; + glad_glBlendEquationEXT = (PFNGLBLENDEQUATIONEXTPROC)load("glBlendEquationEXT"); +} +static void load_GL_ARB_base_instance(GLADloadproc load) { + if(!GLAD_GL_ARB_base_instance) return; + glad_glDrawArraysInstancedBaseInstance = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)load("glDrawArraysInstancedBaseInstance"); + glad_glDrawElementsInstancedBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)load("glDrawElementsInstancedBaseInstance"); + glad_glDrawElementsInstancedBaseVertexBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)load("glDrawElementsInstancedBaseVertexBaseInstance"); +} +static void load_GL_ARB_ES3_1_compatibility(GLADloadproc load) { + if(!GLAD_GL_ARB_ES3_1_compatibility) return; + glad_glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC)load("glMemoryBarrierByRegion"); +} +static void load_GL_EXT_texture_integer(GLADloadproc load) { + if(!GLAD_GL_EXT_texture_integer) return; + glad_glTexParameterIivEXT = (PFNGLTEXPARAMETERIIVEXTPROC)load("glTexParameterIivEXT"); + glad_glTexParameterIuivEXT = (PFNGLTEXPARAMETERIUIVEXTPROC)load("glTexParameterIuivEXT"); + glad_glGetTexParameterIivEXT = (PFNGLGETTEXPARAMETERIIVEXTPROC)load("glGetTexParameterIivEXT"); + glad_glGetTexParameterIuivEXT = (PFNGLGETTEXPARAMETERIUIVEXTPROC)load("glGetTexParameterIuivEXT"); + glad_glClearColorIiEXT = (PFNGLCLEARCOLORIIEXTPROC)load("glClearColorIiEXT"); + glad_glClearColorIuiEXT = (PFNGLCLEARCOLORIUIEXTPROC)load("glClearColorIuiEXT"); +} +static void load_GL_ARB_texture_multisample(GLADloadproc load) { + if(!GLAD_GL_ARB_texture_multisample) return; + glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample"); + glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample"); + glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv"); + glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski"); +} +static void load_GL_AMD_gpu_shader_int64(GLADloadproc load) { + if(!GLAD_GL_AMD_gpu_shader_int64) return; + glad_glUniform1i64NV = (PFNGLUNIFORM1I64NVPROC)load("glUniform1i64NV"); + glad_glUniform2i64NV = (PFNGLUNIFORM2I64NVPROC)load("glUniform2i64NV"); + glad_glUniform3i64NV = (PFNGLUNIFORM3I64NVPROC)load("glUniform3i64NV"); + glad_glUniform4i64NV = (PFNGLUNIFORM4I64NVPROC)load("glUniform4i64NV"); + glad_glUniform1i64vNV = (PFNGLUNIFORM1I64VNVPROC)load("glUniform1i64vNV"); + glad_glUniform2i64vNV = (PFNGLUNIFORM2I64VNVPROC)load("glUniform2i64vNV"); + glad_glUniform3i64vNV = (PFNGLUNIFORM3I64VNVPROC)load("glUniform3i64vNV"); + glad_glUniform4i64vNV = (PFNGLUNIFORM4I64VNVPROC)load("glUniform4i64vNV"); + glad_glUniform1ui64NV = (PFNGLUNIFORM1UI64NVPROC)load("glUniform1ui64NV"); + glad_glUniform2ui64NV = (PFNGLUNIFORM2UI64NVPROC)load("glUniform2ui64NV"); + glad_glUniform3ui64NV = (PFNGLUNIFORM3UI64NVPROC)load("glUniform3ui64NV"); + glad_glUniform4ui64NV = (PFNGLUNIFORM4UI64NVPROC)load("glUniform4ui64NV"); + glad_glUniform1ui64vNV = (PFNGLUNIFORM1UI64VNVPROC)load("glUniform1ui64vNV"); + glad_glUniform2ui64vNV = (PFNGLUNIFORM2UI64VNVPROC)load("glUniform2ui64vNV"); + glad_glUniform3ui64vNV = (PFNGLUNIFORM3UI64VNVPROC)load("glUniform3ui64vNV"); + glad_glUniform4ui64vNV = (PFNGLUNIFORM4UI64VNVPROC)load("glUniform4ui64vNV"); + glad_glGetUniformi64vNV = (PFNGLGETUNIFORMI64VNVPROC)load("glGetUniformi64vNV"); + glad_glGetUniformui64vNV = (PFNGLGETUNIFORMUI64VNVPROC)load("glGetUniformui64vNV"); + glad_glProgramUniform1i64NV = (PFNGLPROGRAMUNIFORM1I64NVPROC)load("glProgramUniform1i64NV"); + glad_glProgramUniform2i64NV = (PFNGLPROGRAMUNIFORM2I64NVPROC)load("glProgramUniform2i64NV"); + glad_glProgramUniform3i64NV = (PFNGLPROGRAMUNIFORM3I64NVPROC)load("glProgramUniform3i64NV"); + glad_glProgramUniform4i64NV = (PFNGLPROGRAMUNIFORM4I64NVPROC)load("glProgramUniform4i64NV"); + glad_glProgramUniform1i64vNV = (PFNGLPROGRAMUNIFORM1I64VNVPROC)load("glProgramUniform1i64vNV"); + glad_glProgramUniform2i64vNV = (PFNGLPROGRAMUNIFORM2I64VNVPROC)load("glProgramUniform2i64vNV"); + glad_glProgramUniform3i64vNV = (PFNGLPROGRAMUNIFORM3I64VNVPROC)load("glProgramUniform3i64vNV"); + glad_glProgramUniform4i64vNV = (PFNGLPROGRAMUNIFORM4I64VNVPROC)load("glProgramUniform4i64vNV"); + glad_glProgramUniform1ui64NV = (PFNGLPROGRAMUNIFORM1UI64NVPROC)load("glProgramUniform1ui64NV"); + glad_glProgramUniform2ui64NV = (PFNGLPROGRAMUNIFORM2UI64NVPROC)load("glProgramUniform2ui64NV"); + glad_glProgramUniform3ui64NV = (PFNGLPROGRAMUNIFORM3UI64NVPROC)load("glProgramUniform3ui64NV"); + glad_glProgramUniform4ui64NV = (PFNGLPROGRAMUNIFORM4UI64NVPROC)load("glProgramUniform4ui64NV"); + glad_glProgramUniform1ui64vNV = (PFNGLPROGRAMUNIFORM1UI64VNVPROC)load("glProgramUniform1ui64vNV"); + glad_glProgramUniform2ui64vNV = (PFNGLPROGRAMUNIFORM2UI64VNVPROC)load("glProgramUniform2ui64vNV"); + glad_glProgramUniform3ui64vNV = (PFNGLPROGRAMUNIFORM3UI64VNVPROC)load("glProgramUniform3ui64vNV"); + glad_glProgramUniform4ui64vNV = (PFNGLPROGRAMUNIFORM4UI64VNVPROC)load("glProgramUniform4ui64vNV"); +} +static void load_GL_AMD_vertex_shader_tessellator(GLADloadproc load) { + if(!GLAD_GL_AMD_vertex_shader_tessellator) return; + glad_glTessellationFactorAMD = (PFNGLTESSELLATIONFACTORAMDPROC)load("glTessellationFactorAMD"); + glad_glTessellationModeAMD = (PFNGLTESSELLATIONMODEAMDPROC)load("glTessellationModeAMD"); +} +static void load_GL_ARB_invalidate_subdata(GLADloadproc load) { + if(!GLAD_GL_ARB_invalidate_subdata) return; + glad_glInvalidateTexSubImage = (PFNGLINVALIDATETEXSUBIMAGEPROC)load("glInvalidateTexSubImage"); + glad_glInvalidateTexImage = (PFNGLINVALIDATETEXIMAGEPROC)load("glInvalidateTexImage"); + glad_glInvalidateBufferSubData = (PFNGLINVALIDATEBUFFERSUBDATAPROC)load("glInvalidateBufferSubData"); + glad_glInvalidateBufferData = (PFNGLINVALIDATEBUFFERDATAPROC)load("glInvalidateBufferData"); + glad_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC)load("glInvalidateFramebuffer"); + glad_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC)load("glInvalidateSubFramebuffer"); +} +static void load_GL_EXT_index_material(GLADloadproc load) { + if(!GLAD_GL_EXT_index_material) return; + glad_glIndexMaterialEXT = (PFNGLINDEXMATERIALEXTPROC)load("glIndexMaterialEXT"); +} +static void load_GL_INTEL_parallel_arrays(GLADloadproc load) { + if(!GLAD_GL_INTEL_parallel_arrays) return; + glad_glVertexPointervINTEL = (PFNGLVERTEXPOINTERVINTELPROC)load("glVertexPointervINTEL"); + glad_glNormalPointervINTEL = (PFNGLNORMALPOINTERVINTELPROC)load("glNormalPointervINTEL"); + glad_glColorPointervINTEL = (PFNGLCOLORPOINTERVINTELPROC)load("glColorPointervINTEL"); + glad_glTexCoordPointervINTEL = (PFNGLTEXCOORDPOINTERVINTELPROC)load("glTexCoordPointervINTEL"); +} +static void load_GL_ATI_draw_buffers(GLADloadproc load) { + if(!GLAD_GL_ATI_draw_buffers) return; + glad_glDrawBuffersATI = (PFNGLDRAWBUFFERSATIPROC)load("glDrawBuffersATI"); +} +static void load_GL_SGIX_pixel_texture(GLADloadproc load) { + if(!GLAD_GL_SGIX_pixel_texture) return; + glad_glPixelTexGenSGIX = (PFNGLPIXELTEXGENSGIXPROC)load("glPixelTexGenSGIX"); +} +static void load_GL_ARB_timer_query(GLADloadproc load) { + if(!GLAD_GL_ARB_timer_query) return; + glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load("glQueryCounter"); + glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load("glGetQueryObjecti64v"); + glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load("glGetQueryObjectui64v"); +} +static void load_GL_NV_parameter_buffer_object(GLADloadproc load) { + if(!GLAD_GL_NV_parameter_buffer_object) return; + glad_glProgramBufferParametersfvNV = (PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC)load("glProgramBufferParametersfvNV"); + glad_glProgramBufferParametersIivNV = (PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC)load("glProgramBufferParametersIivNV"); + glad_glProgramBufferParametersIuivNV = (PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC)load("glProgramBufferParametersIuivNV"); +} +static void load_GL_ARB_direct_state_access(GLADloadproc load) { + if(!GLAD_GL_ARB_direct_state_access) return; + glad_glCreateTransformFeedbacks = (PFNGLCREATETRANSFORMFEEDBACKSPROC)load("glCreateTransformFeedbacks"); + glad_glTransformFeedbackBufferBase = (PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)load("glTransformFeedbackBufferBase"); + glad_glTransformFeedbackBufferRange = (PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)load("glTransformFeedbackBufferRange"); + glad_glGetTransformFeedbackiv = (PFNGLGETTRANSFORMFEEDBACKIVPROC)load("glGetTransformFeedbackiv"); + glad_glGetTransformFeedbacki_v = (PFNGLGETTRANSFORMFEEDBACKI_VPROC)load("glGetTransformFeedbacki_v"); + glad_glGetTransformFeedbacki64_v = (PFNGLGETTRANSFORMFEEDBACKI64_VPROC)load("glGetTransformFeedbacki64_v"); + glad_glCreateBuffers = (PFNGLCREATEBUFFERSPROC)load("glCreateBuffers"); + glad_glNamedBufferStorage = (PFNGLNAMEDBUFFERSTORAGEPROC)load("glNamedBufferStorage"); + glad_glNamedBufferData = (PFNGLNAMEDBUFFERDATAPROC)load("glNamedBufferData"); + glad_glNamedBufferSubData = (PFNGLNAMEDBUFFERSUBDATAPROC)load("glNamedBufferSubData"); + glad_glCopyNamedBufferSubData = (PFNGLCOPYNAMEDBUFFERSUBDATAPROC)load("glCopyNamedBufferSubData"); + glad_glClearNamedBufferData = (PFNGLCLEARNAMEDBUFFERDATAPROC)load("glClearNamedBufferData"); + glad_glClearNamedBufferSubData = (PFNGLCLEARNAMEDBUFFERSUBDATAPROC)load("glClearNamedBufferSubData"); + glad_glMapNamedBuffer = (PFNGLMAPNAMEDBUFFERPROC)load("glMapNamedBuffer"); + glad_glMapNamedBufferRange = (PFNGLMAPNAMEDBUFFERRANGEPROC)load("glMapNamedBufferRange"); + glad_glUnmapNamedBuffer = (PFNGLUNMAPNAMEDBUFFERPROC)load("glUnmapNamedBuffer"); + glad_glFlushMappedNamedBufferRange = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)load("glFlushMappedNamedBufferRange"); + glad_glGetNamedBufferParameteriv = (PFNGLGETNAMEDBUFFERPARAMETERIVPROC)load("glGetNamedBufferParameteriv"); + glad_glGetNamedBufferParameteri64v = (PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)load("glGetNamedBufferParameteri64v"); + glad_glGetNamedBufferPointerv = (PFNGLGETNAMEDBUFFERPOINTERVPROC)load("glGetNamedBufferPointerv"); + glad_glGetNamedBufferSubData = (PFNGLGETNAMEDBUFFERSUBDATAPROC)load("glGetNamedBufferSubData"); + glad_glCreateFramebuffers = (PFNGLCREATEFRAMEBUFFERSPROC)load("glCreateFramebuffers"); + glad_glNamedFramebufferRenderbuffer = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)load("glNamedFramebufferRenderbuffer"); + glad_glNamedFramebufferParameteri = (PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)load("glNamedFramebufferParameteri"); + glad_glNamedFramebufferTexture = (PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)load("glNamedFramebufferTexture"); + glad_glNamedFramebufferTextureLayer = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)load("glNamedFramebufferTextureLayer"); + glad_glNamedFramebufferDrawBuffer = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)load("glNamedFramebufferDrawBuffer"); + glad_glNamedFramebufferDrawBuffers = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)load("glNamedFramebufferDrawBuffers"); + glad_glNamedFramebufferReadBuffer = (PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)load("glNamedFramebufferReadBuffer"); + glad_glInvalidateNamedFramebufferData = (PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)load("glInvalidateNamedFramebufferData"); + glad_glInvalidateNamedFramebufferSubData = (PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)load("glInvalidateNamedFramebufferSubData"); + glad_glClearNamedFramebufferiv = (PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)load("glClearNamedFramebufferiv"); + glad_glClearNamedFramebufferuiv = (PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)load("glClearNamedFramebufferuiv"); + glad_glClearNamedFramebufferfv = (PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)load("glClearNamedFramebufferfv"); + glad_glClearNamedFramebufferfi = (PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)load("glClearNamedFramebufferfi"); + glad_glBlitNamedFramebuffer = (PFNGLBLITNAMEDFRAMEBUFFERPROC)load("glBlitNamedFramebuffer"); + glad_glCheckNamedFramebufferStatus = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)load("glCheckNamedFramebufferStatus"); + glad_glGetNamedFramebufferParameteriv = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)load("glGetNamedFramebufferParameteriv"); + glad_glGetNamedFramebufferAttachmentParameteriv = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetNamedFramebufferAttachmentParameteriv"); + glad_glCreateRenderbuffers = (PFNGLCREATERENDERBUFFERSPROC)load("glCreateRenderbuffers"); + glad_glNamedRenderbufferStorage = (PFNGLNAMEDRENDERBUFFERSTORAGEPROC)load("glNamedRenderbufferStorage"); + glad_glNamedRenderbufferStorageMultisample = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glNamedRenderbufferStorageMultisample"); + glad_glGetNamedRenderbufferParameteriv = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)load("glGetNamedRenderbufferParameteriv"); + glad_glCreateTextures = (PFNGLCREATETEXTURESPROC)load("glCreateTextures"); + glad_glTextureBuffer = (PFNGLTEXTUREBUFFERPROC)load("glTextureBuffer"); + glad_glTextureBufferRange = (PFNGLTEXTUREBUFFERRANGEPROC)load("glTextureBufferRange"); + glad_glTextureStorage1D = (PFNGLTEXTURESTORAGE1DPROC)load("glTextureStorage1D"); + glad_glTextureStorage2D = (PFNGLTEXTURESTORAGE2DPROC)load("glTextureStorage2D"); + glad_glTextureStorage3D = (PFNGLTEXTURESTORAGE3DPROC)load("glTextureStorage3D"); + glad_glTextureStorage2DMultisample = (PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)load("glTextureStorage2DMultisample"); + glad_glTextureStorage3DMultisample = (PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)load("glTextureStorage3DMultisample"); + glad_glTextureSubImage1D = (PFNGLTEXTURESUBIMAGE1DPROC)load("glTextureSubImage1D"); + glad_glTextureSubImage2D = (PFNGLTEXTURESUBIMAGE2DPROC)load("glTextureSubImage2D"); + glad_glTextureSubImage3D = (PFNGLTEXTURESUBIMAGE3DPROC)load("glTextureSubImage3D"); + glad_glCompressedTextureSubImage1D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)load("glCompressedTextureSubImage1D"); + glad_glCompressedTextureSubImage2D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)load("glCompressedTextureSubImage2D"); + glad_glCompressedTextureSubImage3D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)load("glCompressedTextureSubImage3D"); + glad_glCopyTextureSubImage1D = (PFNGLCOPYTEXTURESUBIMAGE1DPROC)load("glCopyTextureSubImage1D"); + glad_glCopyTextureSubImage2D = (PFNGLCOPYTEXTURESUBIMAGE2DPROC)load("glCopyTextureSubImage2D"); + glad_glCopyTextureSubImage3D = (PFNGLCOPYTEXTURESUBIMAGE3DPROC)load("glCopyTextureSubImage3D"); + glad_glTextureParameterf = (PFNGLTEXTUREPARAMETERFPROC)load("glTextureParameterf"); + glad_glTextureParameterfv = (PFNGLTEXTUREPARAMETERFVPROC)load("glTextureParameterfv"); + glad_glTextureParameteri = (PFNGLTEXTUREPARAMETERIPROC)load("glTextureParameteri"); + glad_glTextureParameterIiv = (PFNGLTEXTUREPARAMETERIIVPROC)load("glTextureParameterIiv"); + glad_glTextureParameterIuiv = (PFNGLTEXTUREPARAMETERIUIVPROC)load("glTextureParameterIuiv"); + glad_glTextureParameteriv = (PFNGLTEXTUREPARAMETERIVPROC)load("glTextureParameteriv"); + glad_glGenerateTextureMipmap = (PFNGLGENERATETEXTUREMIPMAPPROC)load("glGenerateTextureMipmap"); + glad_glBindTextureUnit = (PFNGLBINDTEXTUREUNITPROC)load("glBindTextureUnit"); + glad_glGetTextureImage = (PFNGLGETTEXTUREIMAGEPROC)load("glGetTextureImage"); + glad_glGetCompressedTextureImage = (PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)load("glGetCompressedTextureImage"); + glad_glGetTextureLevelParameterfv = (PFNGLGETTEXTURELEVELPARAMETERFVPROC)load("glGetTextureLevelParameterfv"); + glad_glGetTextureLevelParameteriv = (PFNGLGETTEXTURELEVELPARAMETERIVPROC)load("glGetTextureLevelParameteriv"); + glad_glGetTextureParameterfv = (PFNGLGETTEXTUREPARAMETERFVPROC)load("glGetTextureParameterfv"); + glad_glGetTextureParameterIiv = (PFNGLGETTEXTUREPARAMETERIIVPROC)load("glGetTextureParameterIiv"); + glad_glGetTextureParameterIuiv = (PFNGLGETTEXTUREPARAMETERIUIVPROC)load("glGetTextureParameterIuiv"); + glad_glGetTextureParameteriv = (PFNGLGETTEXTUREPARAMETERIVPROC)load("glGetTextureParameteriv"); + glad_glCreateVertexArrays = (PFNGLCREATEVERTEXARRAYSPROC)load("glCreateVertexArrays"); + glad_glDisableVertexArrayAttrib = (PFNGLDISABLEVERTEXARRAYATTRIBPROC)load("glDisableVertexArrayAttrib"); + glad_glEnableVertexArrayAttrib = (PFNGLENABLEVERTEXARRAYATTRIBPROC)load("glEnableVertexArrayAttrib"); + glad_glVertexArrayElementBuffer = (PFNGLVERTEXARRAYELEMENTBUFFERPROC)load("glVertexArrayElementBuffer"); + glad_glVertexArrayVertexBuffer = (PFNGLVERTEXARRAYVERTEXBUFFERPROC)load("glVertexArrayVertexBuffer"); + glad_glVertexArrayVertexBuffers = (PFNGLVERTEXARRAYVERTEXBUFFERSPROC)load("glVertexArrayVertexBuffers"); + glad_glVertexArrayAttribBinding = (PFNGLVERTEXARRAYATTRIBBINDINGPROC)load("glVertexArrayAttribBinding"); + glad_glVertexArrayAttribFormat = (PFNGLVERTEXARRAYATTRIBFORMATPROC)load("glVertexArrayAttribFormat"); + glad_glVertexArrayAttribIFormat = (PFNGLVERTEXARRAYATTRIBIFORMATPROC)load("glVertexArrayAttribIFormat"); + glad_glVertexArrayAttribLFormat = (PFNGLVERTEXARRAYATTRIBLFORMATPROC)load("glVertexArrayAttribLFormat"); + glad_glVertexArrayBindingDivisor = (PFNGLVERTEXARRAYBINDINGDIVISORPROC)load("glVertexArrayBindingDivisor"); + glad_glGetVertexArrayiv = (PFNGLGETVERTEXARRAYIVPROC)load("glGetVertexArrayiv"); + glad_glGetVertexArrayIndexediv = (PFNGLGETVERTEXARRAYINDEXEDIVPROC)load("glGetVertexArrayIndexediv"); + glad_glGetVertexArrayIndexed64iv = (PFNGLGETVERTEXARRAYINDEXED64IVPROC)load("glGetVertexArrayIndexed64iv"); + glad_glCreateSamplers = (PFNGLCREATESAMPLERSPROC)load("glCreateSamplers"); + glad_glCreateProgramPipelines = (PFNGLCREATEPROGRAMPIPELINESPROC)load("glCreateProgramPipelines"); + glad_glCreateQueries = (PFNGLCREATEQUERIESPROC)load("glCreateQueries"); + glad_glGetQueryBufferObjecti64v = (PFNGLGETQUERYBUFFEROBJECTI64VPROC)load("glGetQueryBufferObjecti64v"); + glad_glGetQueryBufferObjectiv = (PFNGLGETQUERYBUFFEROBJECTIVPROC)load("glGetQueryBufferObjectiv"); + glad_glGetQueryBufferObjectui64v = (PFNGLGETQUERYBUFFEROBJECTUI64VPROC)load("glGetQueryBufferObjectui64v"); + glad_glGetQueryBufferObjectuiv = (PFNGLGETQUERYBUFFEROBJECTUIVPROC)load("glGetQueryBufferObjectuiv"); +} +static void load_GL_ARB_uniform_buffer_object(GLADloadproc load) { + if(!GLAD_GL_ARB_uniform_buffer_object) return; + glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices"); + glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv"); + glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName"); + glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex"); + glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv"); + glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName"); + glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); +} +static void load_GL_NV_transform_feedback2(GLADloadproc load) { + if(!GLAD_GL_NV_transform_feedback2) return; + glad_glBindTransformFeedbackNV = (PFNGLBINDTRANSFORMFEEDBACKNVPROC)load("glBindTransformFeedbackNV"); + glad_glDeleteTransformFeedbacksNV = (PFNGLDELETETRANSFORMFEEDBACKSNVPROC)load("glDeleteTransformFeedbacksNV"); + glad_glGenTransformFeedbacksNV = (PFNGLGENTRANSFORMFEEDBACKSNVPROC)load("glGenTransformFeedbacksNV"); + glad_glIsTransformFeedbackNV = (PFNGLISTRANSFORMFEEDBACKNVPROC)load("glIsTransformFeedbackNV"); + glad_glPauseTransformFeedbackNV = (PFNGLPAUSETRANSFORMFEEDBACKNVPROC)load("glPauseTransformFeedbackNV"); + glad_glResumeTransformFeedbackNV = (PFNGLRESUMETRANSFORMFEEDBACKNVPROC)load("glResumeTransformFeedbackNV"); + glad_glDrawTransformFeedbackNV = (PFNGLDRAWTRANSFORMFEEDBACKNVPROC)load("glDrawTransformFeedbackNV"); +} +static void load_GL_EXT_blend_color(GLADloadproc load) { + if(!GLAD_GL_EXT_blend_color) return; + glad_glBlendColorEXT = (PFNGLBLENDCOLOREXTPROC)load("glBlendColorEXT"); +} +static void load_GL_EXT_histogram(GLADloadproc load) { + if(!GLAD_GL_EXT_histogram) return; + glad_glGetHistogramEXT = (PFNGLGETHISTOGRAMEXTPROC)load("glGetHistogramEXT"); + glad_glGetHistogramParameterfvEXT = (PFNGLGETHISTOGRAMPARAMETERFVEXTPROC)load("glGetHistogramParameterfvEXT"); + glad_glGetHistogramParameterivEXT = (PFNGLGETHISTOGRAMPARAMETERIVEXTPROC)load("glGetHistogramParameterivEXT"); + glad_glGetMinmaxEXT = (PFNGLGETMINMAXEXTPROC)load("glGetMinmaxEXT"); + glad_glGetMinmaxParameterfvEXT = (PFNGLGETMINMAXPARAMETERFVEXTPROC)load("glGetMinmaxParameterfvEXT"); + glad_glGetMinmaxParameterivEXT = (PFNGLGETMINMAXPARAMETERIVEXTPROC)load("glGetMinmaxParameterivEXT"); + glad_glHistogramEXT = (PFNGLHISTOGRAMEXTPROC)load("glHistogramEXT"); + glad_glMinmaxEXT = (PFNGLMINMAXEXTPROC)load("glMinmaxEXT"); + glad_glResetHistogramEXT = (PFNGLRESETHISTOGRAMEXTPROC)load("glResetHistogramEXT"); + glad_glResetMinmaxEXT = (PFNGLRESETMINMAXEXTPROC)load("glResetMinmaxEXT"); +} +static void load_GL_ARB_get_texture_sub_image(GLADloadproc load) { + if(!GLAD_GL_ARB_get_texture_sub_image) return; + glad_glGetTextureSubImage = (PFNGLGETTEXTURESUBIMAGEPROC)load("glGetTextureSubImage"); + glad_glGetCompressedTextureSubImage = (PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)load("glGetCompressedTextureSubImage"); +} +static void load_GL_SGIS_point_parameters(GLADloadproc load) { + if(!GLAD_GL_SGIS_point_parameters) return; + glad_glPointParameterfSGIS = (PFNGLPOINTPARAMETERFSGISPROC)load("glPointParameterfSGIS"); + glad_glPointParameterfvSGIS = (PFNGLPOINTPARAMETERFVSGISPROC)load("glPointParameterfvSGIS"); +} +static void load_GL_EXT_direct_state_access(GLADloadproc load) { + if(!GLAD_GL_EXT_direct_state_access) return; + glad_glMatrixLoadfEXT = (PFNGLMATRIXLOADFEXTPROC)load("glMatrixLoadfEXT"); + glad_glMatrixLoaddEXT = (PFNGLMATRIXLOADDEXTPROC)load("glMatrixLoaddEXT"); + glad_glMatrixMultfEXT = (PFNGLMATRIXMULTFEXTPROC)load("glMatrixMultfEXT"); + glad_glMatrixMultdEXT = (PFNGLMATRIXMULTDEXTPROC)load("glMatrixMultdEXT"); + glad_glMatrixLoadIdentityEXT = (PFNGLMATRIXLOADIDENTITYEXTPROC)load("glMatrixLoadIdentityEXT"); + glad_glMatrixRotatefEXT = (PFNGLMATRIXROTATEFEXTPROC)load("glMatrixRotatefEXT"); + glad_glMatrixRotatedEXT = (PFNGLMATRIXROTATEDEXTPROC)load("glMatrixRotatedEXT"); + glad_glMatrixScalefEXT = (PFNGLMATRIXSCALEFEXTPROC)load("glMatrixScalefEXT"); + glad_glMatrixScaledEXT = (PFNGLMATRIXSCALEDEXTPROC)load("glMatrixScaledEXT"); + glad_glMatrixTranslatefEXT = (PFNGLMATRIXTRANSLATEFEXTPROC)load("glMatrixTranslatefEXT"); + glad_glMatrixTranslatedEXT = (PFNGLMATRIXTRANSLATEDEXTPROC)load("glMatrixTranslatedEXT"); + glad_glMatrixFrustumEXT = (PFNGLMATRIXFRUSTUMEXTPROC)load("glMatrixFrustumEXT"); + glad_glMatrixOrthoEXT = (PFNGLMATRIXORTHOEXTPROC)load("glMatrixOrthoEXT"); + glad_glMatrixPopEXT = (PFNGLMATRIXPOPEXTPROC)load("glMatrixPopEXT"); + glad_glMatrixPushEXT = (PFNGLMATRIXPUSHEXTPROC)load("glMatrixPushEXT"); + glad_glClientAttribDefaultEXT = (PFNGLCLIENTATTRIBDEFAULTEXTPROC)load("glClientAttribDefaultEXT"); + glad_glPushClientAttribDefaultEXT = (PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC)load("glPushClientAttribDefaultEXT"); + glad_glTextureParameterfEXT = (PFNGLTEXTUREPARAMETERFEXTPROC)load("glTextureParameterfEXT"); + glad_glTextureParameterfvEXT = (PFNGLTEXTUREPARAMETERFVEXTPROC)load("glTextureParameterfvEXT"); + glad_glTextureParameteriEXT = (PFNGLTEXTUREPARAMETERIEXTPROC)load("glTextureParameteriEXT"); + glad_glTextureParameterivEXT = (PFNGLTEXTUREPARAMETERIVEXTPROC)load("glTextureParameterivEXT"); + glad_glTextureImage1DEXT = (PFNGLTEXTUREIMAGE1DEXTPROC)load("glTextureImage1DEXT"); + glad_glTextureImage2DEXT = (PFNGLTEXTUREIMAGE2DEXTPROC)load("glTextureImage2DEXT"); + glad_glTextureSubImage1DEXT = (PFNGLTEXTURESUBIMAGE1DEXTPROC)load("glTextureSubImage1DEXT"); + glad_glTextureSubImage2DEXT = (PFNGLTEXTURESUBIMAGE2DEXTPROC)load("glTextureSubImage2DEXT"); + glad_glCopyTextureImage1DEXT = (PFNGLCOPYTEXTUREIMAGE1DEXTPROC)load("glCopyTextureImage1DEXT"); + glad_glCopyTextureImage2DEXT = (PFNGLCOPYTEXTUREIMAGE2DEXTPROC)load("glCopyTextureImage2DEXT"); + glad_glCopyTextureSubImage1DEXT = (PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC)load("glCopyTextureSubImage1DEXT"); + glad_glCopyTextureSubImage2DEXT = (PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC)load("glCopyTextureSubImage2DEXT"); + glad_glGetTextureImageEXT = (PFNGLGETTEXTUREIMAGEEXTPROC)load("glGetTextureImageEXT"); + glad_glGetTextureParameterfvEXT = (PFNGLGETTEXTUREPARAMETERFVEXTPROC)load("glGetTextureParameterfvEXT"); + glad_glGetTextureParameterivEXT = (PFNGLGETTEXTUREPARAMETERIVEXTPROC)load("glGetTextureParameterivEXT"); + glad_glGetTextureLevelParameterfvEXT = (PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC)load("glGetTextureLevelParameterfvEXT"); + glad_glGetTextureLevelParameterivEXT = (PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC)load("glGetTextureLevelParameterivEXT"); + glad_glTextureImage3DEXT = (PFNGLTEXTUREIMAGE3DEXTPROC)load("glTextureImage3DEXT"); + glad_glTextureSubImage3DEXT = (PFNGLTEXTURESUBIMAGE3DEXTPROC)load("glTextureSubImage3DEXT"); + glad_glCopyTextureSubImage3DEXT = (PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC)load("glCopyTextureSubImage3DEXT"); + glad_glBindMultiTextureEXT = (PFNGLBINDMULTITEXTUREEXTPROC)load("glBindMultiTextureEXT"); + glad_glMultiTexCoordPointerEXT = (PFNGLMULTITEXCOORDPOINTEREXTPROC)load("glMultiTexCoordPointerEXT"); + glad_glMultiTexEnvfEXT = (PFNGLMULTITEXENVFEXTPROC)load("glMultiTexEnvfEXT"); + glad_glMultiTexEnvfvEXT = (PFNGLMULTITEXENVFVEXTPROC)load("glMultiTexEnvfvEXT"); + glad_glMultiTexEnviEXT = (PFNGLMULTITEXENVIEXTPROC)load("glMultiTexEnviEXT"); + glad_glMultiTexEnvivEXT = (PFNGLMULTITEXENVIVEXTPROC)load("glMultiTexEnvivEXT"); + glad_glMultiTexGendEXT = (PFNGLMULTITEXGENDEXTPROC)load("glMultiTexGendEXT"); + glad_glMultiTexGendvEXT = (PFNGLMULTITEXGENDVEXTPROC)load("glMultiTexGendvEXT"); + glad_glMultiTexGenfEXT = (PFNGLMULTITEXGENFEXTPROC)load("glMultiTexGenfEXT"); + glad_glMultiTexGenfvEXT = (PFNGLMULTITEXGENFVEXTPROC)load("glMultiTexGenfvEXT"); + glad_glMultiTexGeniEXT = (PFNGLMULTITEXGENIEXTPROC)load("glMultiTexGeniEXT"); + glad_glMultiTexGenivEXT = (PFNGLMULTITEXGENIVEXTPROC)load("glMultiTexGenivEXT"); + glad_glGetMultiTexEnvfvEXT = (PFNGLGETMULTITEXENVFVEXTPROC)load("glGetMultiTexEnvfvEXT"); + glad_glGetMultiTexEnvivEXT = (PFNGLGETMULTITEXENVIVEXTPROC)load("glGetMultiTexEnvivEXT"); + glad_glGetMultiTexGendvEXT = (PFNGLGETMULTITEXGENDVEXTPROC)load("glGetMultiTexGendvEXT"); + glad_glGetMultiTexGenfvEXT = (PFNGLGETMULTITEXGENFVEXTPROC)load("glGetMultiTexGenfvEXT"); + glad_glGetMultiTexGenivEXT = (PFNGLGETMULTITEXGENIVEXTPROC)load("glGetMultiTexGenivEXT"); + glad_glMultiTexParameteriEXT = (PFNGLMULTITEXPARAMETERIEXTPROC)load("glMultiTexParameteriEXT"); + glad_glMultiTexParameterivEXT = (PFNGLMULTITEXPARAMETERIVEXTPROC)load("glMultiTexParameterivEXT"); + glad_glMultiTexParameterfEXT = (PFNGLMULTITEXPARAMETERFEXTPROC)load("glMultiTexParameterfEXT"); + glad_glMultiTexParameterfvEXT = (PFNGLMULTITEXPARAMETERFVEXTPROC)load("glMultiTexParameterfvEXT"); + glad_glMultiTexImage1DEXT = (PFNGLMULTITEXIMAGE1DEXTPROC)load("glMultiTexImage1DEXT"); + glad_glMultiTexImage2DEXT = (PFNGLMULTITEXIMAGE2DEXTPROC)load("glMultiTexImage2DEXT"); + glad_glMultiTexSubImage1DEXT = (PFNGLMULTITEXSUBIMAGE1DEXTPROC)load("glMultiTexSubImage1DEXT"); + glad_glMultiTexSubImage2DEXT = (PFNGLMULTITEXSUBIMAGE2DEXTPROC)load("glMultiTexSubImage2DEXT"); + glad_glCopyMultiTexImage1DEXT = (PFNGLCOPYMULTITEXIMAGE1DEXTPROC)load("glCopyMultiTexImage1DEXT"); + glad_glCopyMultiTexImage2DEXT = (PFNGLCOPYMULTITEXIMAGE2DEXTPROC)load("glCopyMultiTexImage2DEXT"); + glad_glCopyMultiTexSubImage1DEXT = (PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC)load("glCopyMultiTexSubImage1DEXT"); + glad_glCopyMultiTexSubImage2DEXT = (PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC)load("glCopyMultiTexSubImage2DEXT"); + glad_glGetMultiTexImageEXT = (PFNGLGETMULTITEXIMAGEEXTPROC)load("glGetMultiTexImageEXT"); + glad_glGetMultiTexParameterfvEXT = (PFNGLGETMULTITEXPARAMETERFVEXTPROC)load("glGetMultiTexParameterfvEXT"); + glad_glGetMultiTexParameterivEXT = (PFNGLGETMULTITEXPARAMETERIVEXTPROC)load("glGetMultiTexParameterivEXT"); + glad_glGetMultiTexLevelParameterfvEXT = (PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC)load("glGetMultiTexLevelParameterfvEXT"); + glad_glGetMultiTexLevelParameterivEXT = (PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC)load("glGetMultiTexLevelParameterivEXT"); + glad_glMultiTexImage3DEXT = (PFNGLMULTITEXIMAGE3DEXTPROC)load("glMultiTexImage3DEXT"); + glad_glMultiTexSubImage3DEXT = (PFNGLMULTITEXSUBIMAGE3DEXTPROC)load("glMultiTexSubImage3DEXT"); + glad_glCopyMultiTexSubImage3DEXT = (PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC)load("glCopyMultiTexSubImage3DEXT"); + glad_glEnableClientStateIndexedEXT = (PFNGLENABLECLIENTSTATEINDEXEDEXTPROC)load("glEnableClientStateIndexedEXT"); + glad_glDisableClientStateIndexedEXT = (PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC)load("glDisableClientStateIndexedEXT"); + glad_glGetFloatIndexedvEXT = (PFNGLGETFLOATINDEXEDVEXTPROC)load("glGetFloatIndexedvEXT"); + glad_glGetDoubleIndexedvEXT = (PFNGLGETDOUBLEINDEXEDVEXTPROC)load("glGetDoubleIndexedvEXT"); + glad_glGetPointerIndexedvEXT = (PFNGLGETPOINTERINDEXEDVEXTPROC)load("glGetPointerIndexedvEXT"); + glad_glEnableIndexedEXT = (PFNGLENABLEINDEXEDEXTPROC)load("glEnableIndexedEXT"); + glad_glDisableIndexedEXT = (PFNGLDISABLEINDEXEDEXTPROC)load("glDisableIndexedEXT"); + glad_glIsEnabledIndexedEXT = (PFNGLISENABLEDINDEXEDEXTPROC)load("glIsEnabledIndexedEXT"); + glad_glGetIntegerIndexedvEXT = (PFNGLGETINTEGERINDEXEDVEXTPROC)load("glGetIntegerIndexedvEXT"); + glad_glGetBooleanIndexedvEXT = (PFNGLGETBOOLEANINDEXEDVEXTPROC)load("glGetBooleanIndexedvEXT"); + glad_glCompressedTextureImage3DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC)load("glCompressedTextureImage3DEXT"); + glad_glCompressedTextureImage2DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC)load("glCompressedTextureImage2DEXT"); + glad_glCompressedTextureImage1DEXT = (PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC)load("glCompressedTextureImage1DEXT"); + glad_glCompressedTextureSubImage3DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC)load("glCompressedTextureSubImage3DEXT"); + glad_glCompressedTextureSubImage2DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC)load("glCompressedTextureSubImage2DEXT"); + glad_glCompressedTextureSubImage1DEXT = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC)load("glCompressedTextureSubImage1DEXT"); + glad_glGetCompressedTextureImageEXT = (PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC)load("glGetCompressedTextureImageEXT"); + glad_glCompressedMultiTexImage3DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC)load("glCompressedMultiTexImage3DEXT"); + glad_glCompressedMultiTexImage2DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC)load("glCompressedMultiTexImage2DEXT"); + glad_glCompressedMultiTexImage1DEXT = (PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC)load("glCompressedMultiTexImage1DEXT"); + glad_glCompressedMultiTexSubImage3DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC)load("glCompressedMultiTexSubImage3DEXT"); + glad_glCompressedMultiTexSubImage2DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC)load("glCompressedMultiTexSubImage2DEXT"); + glad_glCompressedMultiTexSubImage1DEXT = (PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC)load("glCompressedMultiTexSubImage1DEXT"); + glad_glGetCompressedMultiTexImageEXT = (PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC)load("glGetCompressedMultiTexImageEXT"); + glad_glMatrixLoadTransposefEXT = (PFNGLMATRIXLOADTRANSPOSEFEXTPROC)load("glMatrixLoadTransposefEXT"); + glad_glMatrixLoadTransposedEXT = (PFNGLMATRIXLOADTRANSPOSEDEXTPROC)load("glMatrixLoadTransposedEXT"); + glad_glMatrixMultTransposefEXT = (PFNGLMATRIXMULTTRANSPOSEFEXTPROC)load("glMatrixMultTransposefEXT"); + glad_glMatrixMultTransposedEXT = (PFNGLMATRIXMULTTRANSPOSEDEXTPROC)load("glMatrixMultTransposedEXT"); + glad_glNamedBufferDataEXT = (PFNGLNAMEDBUFFERDATAEXTPROC)load("glNamedBufferDataEXT"); + glad_glNamedBufferSubDataEXT = (PFNGLNAMEDBUFFERSUBDATAEXTPROC)load("glNamedBufferSubDataEXT"); + glad_glMapNamedBufferEXT = (PFNGLMAPNAMEDBUFFEREXTPROC)load("glMapNamedBufferEXT"); + glad_glUnmapNamedBufferEXT = (PFNGLUNMAPNAMEDBUFFEREXTPROC)load("glUnmapNamedBufferEXT"); + glad_glGetNamedBufferParameterivEXT = (PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC)load("glGetNamedBufferParameterivEXT"); + glad_glGetNamedBufferPointervEXT = (PFNGLGETNAMEDBUFFERPOINTERVEXTPROC)load("glGetNamedBufferPointervEXT"); + glad_glGetNamedBufferSubDataEXT = (PFNGLGETNAMEDBUFFERSUBDATAEXTPROC)load("glGetNamedBufferSubDataEXT"); + glad_glProgramUniform1fEXT = (PFNGLPROGRAMUNIFORM1FEXTPROC)load("glProgramUniform1fEXT"); + glad_glProgramUniform2fEXT = (PFNGLPROGRAMUNIFORM2FEXTPROC)load("glProgramUniform2fEXT"); + glad_glProgramUniform3fEXT = (PFNGLPROGRAMUNIFORM3FEXTPROC)load("glProgramUniform3fEXT"); + glad_glProgramUniform4fEXT = (PFNGLPROGRAMUNIFORM4FEXTPROC)load("glProgramUniform4fEXT"); + glad_glProgramUniform1iEXT = (PFNGLPROGRAMUNIFORM1IEXTPROC)load("glProgramUniform1iEXT"); + glad_glProgramUniform2iEXT = (PFNGLPROGRAMUNIFORM2IEXTPROC)load("glProgramUniform2iEXT"); + glad_glProgramUniform3iEXT = (PFNGLPROGRAMUNIFORM3IEXTPROC)load("glProgramUniform3iEXT"); + glad_glProgramUniform4iEXT = (PFNGLPROGRAMUNIFORM4IEXTPROC)load("glProgramUniform4iEXT"); + glad_glProgramUniform1fvEXT = (PFNGLPROGRAMUNIFORM1FVEXTPROC)load("glProgramUniform1fvEXT"); + glad_glProgramUniform2fvEXT = (PFNGLPROGRAMUNIFORM2FVEXTPROC)load("glProgramUniform2fvEXT"); + glad_glProgramUniform3fvEXT = (PFNGLPROGRAMUNIFORM3FVEXTPROC)load("glProgramUniform3fvEXT"); + glad_glProgramUniform4fvEXT = (PFNGLPROGRAMUNIFORM4FVEXTPROC)load("glProgramUniform4fvEXT"); + glad_glProgramUniform1ivEXT = (PFNGLPROGRAMUNIFORM1IVEXTPROC)load("glProgramUniform1ivEXT"); + glad_glProgramUniform2ivEXT = (PFNGLPROGRAMUNIFORM2IVEXTPROC)load("glProgramUniform2ivEXT"); + glad_glProgramUniform3ivEXT = (PFNGLPROGRAMUNIFORM3IVEXTPROC)load("glProgramUniform3ivEXT"); + glad_glProgramUniform4ivEXT = (PFNGLPROGRAMUNIFORM4IVEXTPROC)load("glProgramUniform4ivEXT"); + glad_glProgramUniformMatrix2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)load("glProgramUniformMatrix2fvEXT"); + glad_glProgramUniformMatrix3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)load("glProgramUniformMatrix3fvEXT"); + glad_glProgramUniformMatrix4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)load("glProgramUniformMatrix4fvEXT"); + glad_glProgramUniformMatrix2x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)load("glProgramUniformMatrix2x3fvEXT"); + glad_glProgramUniformMatrix3x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)load("glProgramUniformMatrix3x2fvEXT"); + glad_glProgramUniformMatrix2x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)load("glProgramUniformMatrix2x4fvEXT"); + glad_glProgramUniformMatrix4x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)load("glProgramUniformMatrix4x2fvEXT"); + glad_glProgramUniformMatrix3x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)load("glProgramUniformMatrix3x4fvEXT"); + glad_glProgramUniformMatrix4x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)load("glProgramUniformMatrix4x3fvEXT"); + glad_glTextureBufferEXT = (PFNGLTEXTUREBUFFEREXTPROC)load("glTextureBufferEXT"); + glad_glMultiTexBufferEXT = (PFNGLMULTITEXBUFFEREXTPROC)load("glMultiTexBufferEXT"); + glad_glTextureParameterIivEXT = (PFNGLTEXTUREPARAMETERIIVEXTPROC)load("glTextureParameterIivEXT"); + glad_glTextureParameterIuivEXT = (PFNGLTEXTUREPARAMETERIUIVEXTPROC)load("glTextureParameterIuivEXT"); + glad_glGetTextureParameterIivEXT = (PFNGLGETTEXTUREPARAMETERIIVEXTPROC)load("glGetTextureParameterIivEXT"); + glad_glGetTextureParameterIuivEXT = (PFNGLGETTEXTUREPARAMETERIUIVEXTPROC)load("glGetTextureParameterIuivEXT"); + glad_glMultiTexParameterIivEXT = (PFNGLMULTITEXPARAMETERIIVEXTPROC)load("glMultiTexParameterIivEXT"); + glad_glMultiTexParameterIuivEXT = (PFNGLMULTITEXPARAMETERIUIVEXTPROC)load("glMultiTexParameterIuivEXT"); + glad_glGetMultiTexParameterIivEXT = (PFNGLGETMULTITEXPARAMETERIIVEXTPROC)load("glGetMultiTexParameterIivEXT"); + glad_glGetMultiTexParameterIuivEXT = (PFNGLGETMULTITEXPARAMETERIUIVEXTPROC)load("glGetMultiTexParameterIuivEXT"); + glad_glProgramUniform1uiEXT = (PFNGLPROGRAMUNIFORM1UIEXTPROC)load("glProgramUniform1uiEXT"); + glad_glProgramUniform2uiEXT = (PFNGLPROGRAMUNIFORM2UIEXTPROC)load("glProgramUniform2uiEXT"); + glad_glProgramUniform3uiEXT = (PFNGLPROGRAMUNIFORM3UIEXTPROC)load("glProgramUniform3uiEXT"); + glad_glProgramUniform4uiEXT = (PFNGLPROGRAMUNIFORM4UIEXTPROC)load("glProgramUniform4uiEXT"); + glad_glProgramUniform1uivEXT = (PFNGLPROGRAMUNIFORM1UIVEXTPROC)load("glProgramUniform1uivEXT"); + glad_glProgramUniform2uivEXT = (PFNGLPROGRAMUNIFORM2UIVEXTPROC)load("glProgramUniform2uivEXT"); + glad_glProgramUniform3uivEXT = (PFNGLPROGRAMUNIFORM3UIVEXTPROC)load("glProgramUniform3uivEXT"); + glad_glProgramUniform4uivEXT = (PFNGLPROGRAMUNIFORM4UIVEXTPROC)load("glProgramUniform4uivEXT"); + glad_glNamedProgramLocalParameters4fvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC)load("glNamedProgramLocalParameters4fvEXT"); + glad_glNamedProgramLocalParameterI4iEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC)load("glNamedProgramLocalParameterI4iEXT"); + glad_glNamedProgramLocalParameterI4ivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC)load("glNamedProgramLocalParameterI4ivEXT"); + glad_glNamedProgramLocalParametersI4ivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC)load("glNamedProgramLocalParametersI4ivEXT"); + glad_glNamedProgramLocalParameterI4uiEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC)load("glNamedProgramLocalParameterI4uiEXT"); + glad_glNamedProgramLocalParameterI4uivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC)load("glNamedProgramLocalParameterI4uivEXT"); + glad_glNamedProgramLocalParametersI4uivEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC)load("glNamedProgramLocalParametersI4uivEXT"); + glad_glGetNamedProgramLocalParameterIivEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC)load("glGetNamedProgramLocalParameterIivEXT"); + glad_glGetNamedProgramLocalParameterIuivEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC)load("glGetNamedProgramLocalParameterIuivEXT"); + glad_glEnableClientStateiEXT = (PFNGLENABLECLIENTSTATEIEXTPROC)load("glEnableClientStateiEXT"); + glad_glDisableClientStateiEXT = (PFNGLDISABLECLIENTSTATEIEXTPROC)load("glDisableClientStateiEXT"); + glad_glGetFloati_vEXT = (PFNGLGETFLOATI_VEXTPROC)load("glGetFloati_vEXT"); + glad_glGetDoublei_vEXT = (PFNGLGETDOUBLEI_VEXTPROC)load("glGetDoublei_vEXT"); + glad_glGetPointeri_vEXT = (PFNGLGETPOINTERI_VEXTPROC)load("glGetPointeri_vEXT"); + glad_glNamedProgramStringEXT = (PFNGLNAMEDPROGRAMSTRINGEXTPROC)load("glNamedProgramStringEXT"); + glad_glNamedProgramLocalParameter4dEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC)load("glNamedProgramLocalParameter4dEXT"); + glad_glNamedProgramLocalParameter4dvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC)load("glNamedProgramLocalParameter4dvEXT"); + glad_glNamedProgramLocalParameter4fEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC)load("glNamedProgramLocalParameter4fEXT"); + glad_glNamedProgramLocalParameter4fvEXT = (PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC)load("glNamedProgramLocalParameter4fvEXT"); + glad_glGetNamedProgramLocalParameterdvEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC)load("glGetNamedProgramLocalParameterdvEXT"); + glad_glGetNamedProgramLocalParameterfvEXT = (PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC)load("glGetNamedProgramLocalParameterfvEXT"); + glad_glGetNamedProgramivEXT = (PFNGLGETNAMEDPROGRAMIVEXTPROC)load("glGetNamedProgramivEXT"); + glad_glGetNamedProgramStringEXT = (PFNGLGETNAMEDPROGRAMSTRINGEXTPROC)load("glGetNamedProgramStringEXT"); + glad_glNamedRenderbufferStorageEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC)load("glNamedRenderbufferStorageEXT"); + glad_glGetNamedRenderbufferParameterivEXT = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC)load("glGetNamedRenderbufferParameterivEXT"); + glad_glNamedRenderbufferStorageMultisampleEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)load("glNamedRenderbufferStorageMultisampleEXT"); + glad_glNamedRenderbufferStorageMultisampleCoverageEXT = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC)load("glNamedRenderbufferStorageMultisampleCoverageEXT"); + glad_glCheckNamedFramebufferStatusEXT = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC)load("glCheckNamedFramebufferStatusEXT"); + glad_glNamedFramebufferTexture1DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC)load("glNamedFramebufferTexture1DEXT"); + glad_glNamedFramebufferTexture2DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC)load("glNamedFramebufferTexture2DEXT"); + glad_glNamedFramebufferTexture3DEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC)load("glNamedFramebufferTexture3DEXT"); + glad_glNamedFramebufferRenderbufferEXT = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC)load("glNamedFramebufferRenderbufferEXT"); + glad_glGetNamedFramebufferAttachmentParameterivEXT = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)load("glGetNamedFramebufferAttachmentParameterivEXT"); + glad_glGenerateTextureMipmapEXT = (PFNGLGENERATETEXTUREMIPMAPEXTPROC)load("glGenerateTextureMipmapEXT"); + glad_glGenerateMultiTexMipmapEXT = (PFNGLGENERATEMULTITEXMIPMAPEXTPROC)load("glGenerateMultiTexMipmapEXT"); + glad_glFramebufferDrawBufferEXT = (PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC)load("glFramebufferDrawBufferEXT"); + glad_glFramebufferDrawBuffersEXT = (PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC)load("glFramebufferDrawBuffersEXT"); + glad_glFramebufferReadBufferEXT = (PFNGLFRAMEBUFFERREADBUFFEREXTPROC)load("glFramebufferReadBufferEXT"); + glad_glGetFramebufferParameterivEXT = (PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC)load("glGetFramebufferParameterivEXT"); + glad_glNamedCopyBufferSubDataEXT = (PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC)load("glNamedCopyBufferSubDataEXT"); + glad_glNamedFramebufferTextureEXT = (PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC)load("glNamedFramebufferTextureEXT"); + glad_glNamedFramebufferTextureLayerEXT = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC)load("glNamedFramebufferTextureLayerEXT"); + glad_glNamedFramebufferTextureFaceEXT = (PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC)load("glNamedFramebufferTextureFaceEXT"); + glad_glTextureRenderbufferEXT = (PFNGLTEXTURERENDERBUFFEREXTPROC)load("glTextureRenderbufferEXT"); + glad_glMultiTexRenderbufferEXT = (PFNGLMULTITEXRENDERBUFFEREXTPROC)load("glMultiTexRenderbufferEXT"); + glad_glVertexArrayVertexOffsetEXT = (PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC)load("glVertexArrayVertexOffsetEXT"); + glad_glVertexArrayColorOffsetEXT = (PFNGLVERTEXARRAYCOLOROFFSETEXTPROC)load("glVertexArrayColorOffsetEXT"); + glad_glVertexArrayEdgeFlagOffsetEXT = (PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC)load("glVertexArrayEdgeFlagOffsetEXT"); + glad_glVertexArrayIndexOffsetEXT = (PFNGLVERTEXARRAYINDEXOFFSETEXTPROC)load("glVertexArrayIndexOffsetEXT"); + glad_glVertexArrayNormalOffsetEXT = (PFNGLVERTEXARRAYNORMALOFFSETEXTPROC)load("glVertexArrayNormalOffsetEXT"); + glad_glVertexArrayTexCoordOffsetEXT = (PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC)load("glVertexArrayTexCoordOffsetEXT"); + glad_glVertexArrayMultiTexCoordOffsetEXT = (PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC)load("glVertexArrayMultiTexCoordOffsetEXT"); + glad_glVertexArrayFogCoordOffsetEXT = (PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC)load("glVertexArrayFogCoordOffsetEXT"); + glad_glVertexArraySecondaryColorOffsetEXT = (PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC)load("glVertexArraySecondaryColorOffsetEXT"); + glad_glVertexArrayVertexAttribOffsetEXT = (PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC)load("glVertexArrayVertexAttribOffsetEXT"); + glad_glVertexArrayVertexAttribIOffsetEXT = (PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC)load("glVertexArrayVertexAttribIOffsetEXT"); + glad_glEnableVertexArrayEXT = (PFNGLENABLEVERTEXARRAYEXTPROC)load("glEnableVertexArrayEXT"); + glad_glDisableVertexArrayEXT = (PFNGLDISABLEVERTEXARRAYEXTPROC)load("glDisableVertexArrayEXT"); + glad_glEnableVertexArrayAttribEXT = (PFNGLENABLEVERTEXARRAYATTRIBEXTPROC)load("glEnableVertexArrayAttribEXT"); + glad_glDisableVertexArrayAttribEXT = (PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC)load("glDisableVertexArrayAttribEXT"); + glad_glGetVertexArrayIntegervEXT = (PFNGLGETVERTEXARRAYINTEGERVEXTPROC)load("glGetVertexArrayIntegervEXT"); + glad_glGetVertexArrayPointervEXT = (PFNGLGETVERTEXARRAYPOINTERVEXTPROC)load("glGetVertexArrayPointervEXT"); + glad_glGetVertexArrayIntegeri_vEXT = (PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC)load("glGetVertexArrayIntegeri_vEXT"); + glad_glGetVertexArrayPointeri_vEXT = (PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC)load("glGetVertexArrayPointeri_vEXT"); + glad_glMapNamedBufferRangeEXT = (PFNGLMAPNAMEDBUFFERRANGEEXTPROC)load("glMapNamedBufferRangeEXT"); + glad_glFlushMappedNamedBufferRangeEXT = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC)load("glFlushMappedNamedBufferRangeEXT"); + glad_glNamedBufferStorageEXT = (PFNGLNAMEDBUFFERSTORAGEEXTPROC)load("glNamedBufferStorageEXT"); + glad_glClearNamedBufferDataEXT = (PFNGLCLEARNAMEDBUFFERDATAEXTPROC)load("glClearNamedBufferDataEXT"); + glad_glClearNamedBufferSubDataEXT = (PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC)load("glClearNamedBufferSubDataEXT"); + glad_glNamedFramebufferParameteriEXT = (PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC)load("glNamedFramebufferParameteriEXT"); + glad_glGetNamedFramebufferParameterivEXT = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC)load("glGetNamedFramebufferParameterivEXT"); + glad_glProgramUniform1dEXT = (PFNGLPROGRAMUNIFORM1DEXTPROC)load("glProgramUniform1dEXT"); + glad_glProgramUniform2dEXT = (PFNGLPROGRAMUNIFORM2DEXTPROC)load("glProgramUniform2dEXT"); + glad_glProgramUniform3dEXT = (PFNGLPROGRAMUNIFORM3DEXTPROC)load("glProgramUniform3dEXT"); + glad_glProgramUniform4dEXT = (PFNGLPROGRAMUNIFORM4DEXTPROC)load("glProgramUniform4dEXT"); + glad_glProgramUniform1dvEXT = (PFNGLPROGRAMUNIFORM1DVEXTPROC)load("glProgramUniform1dvEXT"); + glad_glProgramUniform2dvEXT = (PFNGLPROGRAMUNIFORM2DVEXTPROC)load("glProgramUniform2dvEXT"); + glad_glProgramUniform3dvEXT = (PFNGLPROGRAMUNIFORM3DVEXTPROC)load("glProgramUniform3dvEXT"); + glad_glProgramUniform4dvEXT = (PFNGLPROGRAMUNIFORM4DVEXTPROC)load("glProgramUniform4dvEXT"); + glad_glProgramUniformMatrix2dvEXT = (PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC)load("glProgramUniformMatrix2dvEXT"); + glad_glProgramUniformMatrix3dvEXT = (PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC)load("glProgramUniformMatrix3dvEXT"); + glad_glProgramUniformMatrix4dvEXT = (PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC)load("glProgramUniformMatrix4dvEXT"); + glad_glProgramUniformMatrix2x3dvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC)load("glProgramUniformMatrix2x3dvEXT"); + glad_glProgramUniformMatrix2x4dvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC)load("glProgramUniformMatrix2x4dvEXT"); + glad_glProgramUniformMatrix3x2dvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC)load("glProgramUniformMatrix3x2dvEXT"); + glad_glProgramUniformMatrix3x4dvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC)load("glProgramUniformMatrix3x4dvEXT"); + glad_glProgramUniformMatrix4x2dvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC)load("glProgramUniformMatrix4x2dvEXT"); + glad_glProgramUniformMatrix4x3dvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC)load("glProgramUniformMatrix4x3dvEXT"); + glad_glTextureBufferRangeEXT = (PFNGLTEXTUREBUFFERRANGEEXTPROC)load("glTextureBufferRangeEXT"); + glad_glTextureStorage1DEXT = (PFNGLTEXTURESTORAGE1DEXTPROC)load("glTextureStorage1DEXT"); + glad_glTextureStorage2DEXT = (PFNGLTEXTURESTORAGE2DEXTPROC)load("glTextureStorage2DEXT"); + glad_glTextureStorage3DEXT = (PFNGLTEXTURESTORAGE3DEXTPROC)load("glTextureStorage3DEXT"); + glad_glTextureStorage2DMultisampleEXT = (PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC)load("glTextureStorage2DMultisampleEXT"); + glad_glTextureStorage3DMultisampleEXT = (PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC)load("glTextureStorage3DMultisampleEXT"); + glad_glVertexArrayBindVertexBufferEXT = (PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC)load("glVertexArrayBindVertexBufferEXT"); + glad_glVertexArrayVertexAttribFormatEXT = (PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC)load("glVertexArrayVertexAttribFormatEXT"); + glad_glVertexArrayVertexAttribIFormatEXT = (PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC)load("glVertexArrayVertexAttribIFormatEXT"); + glad_glVertexArrayVertexAttribLFormatEXT = (PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC)load("glVertexArrayVertexAttribLFormatEXT"); + glad_glVertexArrayVertexAttribBindingEXT = (PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC)load("glVertexArrayVertexAttribBindingEXT"); + glad_glVertexArrayVertexBindingDivisorEXT = (PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC)load("glVertexArrayVertexBindingDivisorEXT"); + glad_glVertexArrayVertexAttribLOffsetEXT = (PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC)load("glVertexArrayVertexAttribLOffsetEXT"); + glad_glTexturePageCommitmentEXT = (PFNGLTEXTUREPAGECOMMITMENTEXTPROC)load("glTexturePageCommitmentEXT"); + glad_glVertexArrayVertexAttribDivisorEXT = (PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC)load("glVertexArrayVertexAttribDivisorEXT"); +} +static void load_GL_AMD_sample_positions(GLADloadproc load) { + if(!GLAD_GL_AMD_sample_positions) return; + glad_glSetMultisamplefvAMD = (PFNGLSETMULTISAMPLEFVAMDPROC)load("glSetMultisamplefvAMD"); +} +static void load_GL_NV_vertex_program(GLADloadproc load) { + if(!GLAD_GL_NV_vertex_program) return; + glad_glAreProgramsResidentNV = (PFNGLAREPROGRAMSRESIDENTNVPROC)load("glAreProgramsResidentNV"); + glad_glBindProgramNV = (PFNGLBINDPROGRAMNVPROC)load("glBindProgramNV"); + glad_glDeleteProgramsNV = (PFNGLDELETEPROGRAMSNVPROC)load("glDeleteProgramsNV"); + glad_glExecuteProgramNV = (PFNGLEXECUTEPROGRAMNVPROC)load("glExecuteProgramNV"); + glad_glGenProgramsNV = (PFNGLGENPROGRAMSNVPROC)load("glGenProgramsNV"); + glad_glGetProgramParameterdvNV = (PFNGLGETPROGRAMPARAMETERDVNVPROC)load("glGetProgramParameterdvNV"); + glad_glGetProgramParameterfvNV = (PFNGLGETPROGRAMPARAMETERFVNVPROC)load("glGetProgramParameterfvNV"); + glad_glGetProgramivNV = (PFNGLGETPROGRAMIVNVPROC)load("glGetProgramivNV"); + glad_glGetProgramStringNV = (PFNGLGETPROGRAMSTRINGNVPROC)load("glGetProgramStringNV"); + glad_glGetTrackMatrixivNV = (PFNGLGETTRACKMATRIXIVNVPROC)load("glGetTrackMatrixivNV"); + glad_glGetVertexAttribdvNV = (PFNGLGETVERTEXATTRIBDVNVPROC)load("glGetVertexAttribdvNV"); + glad_glGetVertexAttribfvNV = (PFNGLGETVERTEXATTRIBFVNVPROC)load("glGetVertexAttribfvNV"); + glad_glGetVertexAttribivNV = (PFNGLGETVERTEXATTRIBIVNVPROC)load("glGetVertexAttribivNV"); + glad_glGetVertexAttribPointervNV = (PFNGLGETVERTEXATTRIBPOINTERVNVPROC)load("glGetVertexAttribPointervNV"); + glad_glIsProgramNV = (PFNGLISPROGRAMNVPROC)load("glIsProgramNV"); + glad_glLoadProgramNV = (PFNGLLOADPROGRAMNVPROC)load("glLoadProgramNV"); + glad_glProgramParameter4dNV = (PFNGLPROGRAMPARAMETER4DNVPROC)load("glProgramParameter4dNV"); + glad_glProgramParameter4dvNV = (PFNGLPROGRAMPARAMETER4DVNVPROC)load("glProgramParameter4dvNV"); + glad_glProgramParameter4fNV = (PFNGLPROGRAMPARAMETER4FNVPROC)load("glProgramParameter4fNV"); + glad_glProgramParameter4fvNV = (PFNGLPROGRAMPARAMETER4FVNVPROC)load("glProgramParameter4fvNV"); + glad_glProgramParameters4dvNV = (PFNGLPROGRAMPARAMETERS4DVNVPROC)load("glProgramParameters4dvNV"); + glad_glProgramParameters4fvNV = (PFNGLPROGRAMPARAMETERS4FVNVPROC)load("glProgramParameters4fvNV"); + glad_glRequestResidentProgramsNV = (PFNGLREQUESTRESIDENTPROGRAMSNVPROC)load("glRequestResidentProgramsNV"); + glad_glTrackMatrixNV = (PFNGLTRACKMATRIXNVPROC)load("glTrackMatrixNV"); + glad_glVertexAttribPointerNV = (PFNGLVERTEXATTRIBPOINTERNVPROC)load("glVertexAttribPointerNV"); + glad_glVertexAttrib1dNV = (PFNGLVERTEXATTRIB1DNVPROC)load("glVertexAttrib1dNV"); + glad_glVertexAttrib1dvNV = (PFNGLVERTEXATTRIB1DVNVPROC)load("glVertexAttrib1dvNV"); + glad_glVertexAttrib1fNV = (PFNGLVERTEXATTRIB1FNVPROC)load("glVertexAttrib1fNV"); + glad_glVertexAttrib1fvNV = (PFNGLVERTEXATTRIB1FVNVPROC)load("glVertexAttrib1fvNV"); + glad_glVertexAttrib1sNV = (PFNGLVERTEXATTRIB1SNVPROC)load("glVertexAttrib1sNV"); + glad_glVertexAttrib1svNV = (PFNGLVERTEXATTRIB1SVNVPROC)load("glVertexAttrib1svNV"); + glad_glVertexAttrib2dNV = (PFNGLVERTEXATTRIB2DNVPROC)load("glVertexAttrib2dNV"); + glad_glVertexAttrib2dvNV = (PFNGLVERTEXATTRIB2DVNVPROC)load("glVertexAttrib2dvNV"); + glad_glVertexAttrib2fNV = (PFNGLVERTEXATTRIB2FNVPROC)load("glVertexAttrib2fNV"); + glad_glVertexAttrib2fvNV = (PFNGLVERTEXATTRIB2FVNVPROC)load("glVertexAttrib2fvNV"); + glad_glVertexAttrib2sNV = (PFNGLVERTEXATTRIB2SNVPROC)load("glVertexAttrib2sNV"); + glad_glVertexAttrib2svNV = (PFNGLVERTEXATTRIB2SVNVPROC)load("glVertexAttrib2svNV"); + glad_glVertexAttrib3dNV = (PFNGLVERTEXATTRIB3DNVPROC)load("glVertexAttrib3dNV"); + glad_glVertexAttrib3dvNV = (PFNGLVERTEXATTRIB3DVNVPROC)load("glVertexAttrib3dvNV"); + glad_glVertexAttrib3fNV = (PFNGLVERTEXATTRIB3FNVPROC)load("glVertexAttrib3fNV"); + glad_glVertexAttrib3fvNV = (PFNGLVERTEXATTRIB3FVNVPROC)load("glVertexAttrib3fvNV"); + glad_glVertexAttrib3sNV = (PFNGLVERTEXATTRIB3SNVPROC)load("glVertexAttrib3sNV"); + glad_glVertexAttrib3svNV = (PFNGLVERTEXATTRIB3SVNVPROC)load("glVertexAttrib3svNV"); + glad_glVertexAttrib4dNV = (PFNGLVERTEXATTRIB4DNVPROC)load("glVertexAttrib4dNV"); + glad_glVertexAttrib4dvNV = (PFNGLVERTEXATTRIB4DVNVPROC)load("glVertexAttrib4dvNV"); + glad_glVertexAttrib4fNV = (PFNGLVERTEXATTRIB4FNVPROC)load("glVertexAttrib4fNV"); + glad_glVertexAttrib4fvNV = (PFNGLVERTEXATTRIB4FVNVPROC)load("glVertexAttrib4fvNV"); + glad_glVertexAttrib4sNV = (PFNGLVERTEXATTRIB4SNVPROC)load("glVertexAttrib4sNV"); + glad_glVertexAttrib4svNV = (PFNGLVERTEXATTRIB4SVNVPROC)load("glVertexAttrib4svNV"); + glad_glVertexAttrib4ubNV = (PFNGLVERTEXATTRIB4UBNVPROC)load("glVertexAttrib4ubNV"); + glad_glVertexAttrib4ubvNV = (PFNGLVERTEXATTRIB4UBVNVPROC)load("glVertexAttrib4ubvNV"); + glad_glVertexAttribs1dvNV = (PFNGLVERTEXATTRIBS1DVNVPROC)load("glVertexAttribs1dvNV"); + glad_glVertexAttribs1fvNV = (PFNGLVERTEXATTRIBS1FVNVPROC)load("glVertexAttribs1fvNV"); + glad_glVertexAttribs1svNV = (PFNGLVERTEXATTRIBS1SVNVPROC)load("glVertexAttribs1svNV"); + glad_glVertexAttribs2dvNV = (PFNGLVERTEXATTRIBS2DVNVPROC)load("glVertexAttribs2dvNV"); + glad_glVertexAttribs2fvNV = (PFNGLVERTEXATTRIBS2FVNVPROC)load("glVertexAttribs2fvNV"); + glad_glVertexAttribs2svNV = (PFNGLVERTEXATTRIBS2SVNVPROC)load("glVertexAttribs2svNV"); + glad_glVertexAttribs3dvNV = (PFNGLVERTEXATTRIBS3DVNVPROC)load("glVertexAttribs3dvNV"); + glad_glVertexAttribs3fvNV = (PFNGLVERTEXATTRIBS3FVNVPROC)load("glVertexAttribs3fvNV"); + glad_glVertexAttribs3svNV = (PFNGLVERTEXATTRIBS3SVNVPROC)load("glVertexAttribs3svNV"); + glad_glVertexAttribs4dvNV = (PFNGLVERTEXATTRIBS4DVNVPROC)load("glVertexAttribs4dvNV"); + glad_glVertexAttribs4fvNV = (PFNGLVERTEXATTRIBS4FVNVPROC)load("glVertexAttribs4fvNV"); + glad_glVertexAttribs4svNV = (PFNGLVERTEXATTRIBS4SVNVPROC)load("glVertexAttribs4svNV"); + glad_glVertexAttribs4ubvNV = (PFNGLVERTEXATTRIBS4UBVNVPROC)load("glVertexAttribs4ubvNV"); +} +static void load_GL_EXT_vertex_shader(GLADloadproc load) { + if(!GLAD_GL_EXT_vertex_shader) return; + glad_glBeginVertexShaderEXT = (PFNGLBEGINVERTEXSHADEREXTPROC)load("glBeginVertexShaderEXT"); + glad_glEndVertexShaderEXT = (PFNGLENDVERTEXSHADEREXTPROC)load("glEndVertexShaderEXT"); + glad_glBindVertexShaderEXT = (PFNGLBINDVERTEXSHADEREXTPROC)load("glBindVertexShaderEXT"); + glad_glGenVertexShadersEXT = (PFNGLGENVERTEXSHADERSEXTPROC)load("glGenVertexShadersEXT"); + glad_glDeleteVertexShaderEXT = (PFNGLDELETEVERTEXSHADEREXTPROC)load("glDeleteVertexShaderEXT"); + glad_glShaderOp1EXT = (PFNGLSHADEROP1EXTPROC)load("glShaderOp1EXT"); + glad_glShaderOp2EXT = (PFNGLSHADEROP2EXTPROC)load("glShaderOp2EXT"); + glad_glShaderOp3EXT = (PFNGLSHADEROP3EXTPROC)load("glShaderOp3EXT"); + glad_glSwizzleEXT = (PFNGLSWIZZLEEXTPROC)load("glSwizzleEXT"); + glad_glWriteMaskEXT = (PFNGLWRITEMASKEXTPROC)load("glWriteMaskEXT"); + glad_glInsertComponentEXT = (PFNGLINSERTCOMPONENTEXTPROC)load("glInsertComponentEXT"); + glad_glExtractComponentEXT = (PFNGLEXTRACTCOMPONENTEXTPROC)load("glExtractComponentEXT"); + glad_glGenSymbolsEXT = (PFNGLGENSYMBOLSEXTPROC)load("glGenSymbolsEXT"); + glad_glSetInvariantEXT = (PFNGLSETINVARIANTEXTPROC)load("glSetInvariantEXT"); + glad_glSetLocalConstantEXT = (PFNGLSETLOCALCONSTANTEXTPROC)load("glSetLocalConstantEXT"); + glad_glVariantbvEXT = (PFNGLVARIANTBVEXTPROC)load("glVariantbvEXT"); + glad_glVariantsvEXT = (PFNGLVARIANTSVEXTPROC)load("glVariantsvEXT"); + glad_glVariantivEXT = (PFNGLVARIANTIVEXTPROC)load("glVariantivEXT"); + glad_glVariantfvEXT = (PFNGLVARIANTFVEXTPROC)load("glVariantfvEXT"); + glad_glVariantdvEXT = (PFNGLVARIANTDVEXTPROC)load("glVariantdvEXT"); + glad_glVariantubvEXT = (PFNGLVARIANTUBVEXTPROC)load("glVariantubvEXT"); + glad_glVariantusvEXT = (PFNGLVARIANTUSVEXTPROC)load("glVariantusvEXT"); + glad_glVariantuivEXT = (PFNGLVARIANTUIVEXTPROC)load("glVariantuivEXT"); + glad_glVariantPointerEXT = (PFNGLVARIANTPOINTEREXTPROC)load("glVariantPointerEXT"); + glad_glEnableVariantClientStateEXT = (PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)load("glEnableVariantClientStateEXT"); + glad_glDisableVariantClientStateEXT = (PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)load("glDisableVariantClientStateEXT"); + glad_glBindLightParameterEXT = (PFNGLBINDLIGHTPARAMETEREXTPROC)load("glBindLightParameterEXT"); + glad_glBindMaterialParameterEXT = (PFNGLBINDMATERIALPARAMETEREXTPROC)load("glBindMaterialParameterEXT"); + glad_glBindTexGenParameterEXT = (PFNGLBINDTEXGENPARAMETEREXTPROC)load("glBindTexGenParameterEXT"); + glad_glBindTextureUnitParameterEXT = (PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)load("glBindTextureUnitParameterEXT"); + glad_glBindParameterEXT = (PFNGLBINDPARAMETEREXTPROC)load("glBindParameterEXT"); + glad_glIsVariantEnabledEXT = (PFNGLISVARIANTENABLEDEXTPROC)load("glIsVariantEnabledEXT"); + glad_glGetVariantBooleanvEXT = (PFNGLGETVARIANTBOOLEANVEXTPROC)load("glGetVariantBooleanvEXT"); + glad_glGetVariantIntegervEXT = (PFNGLGETVARIANTINTEGERVEXTPROC)load("glGetVariantIntegervEXT"); + glad_glGetVariantFloatvEXT = (PFNGLGETVARIANTFLOATVEXTPROC)load("glGetVariantFloatvEXT"); + glad_glGetVariantPointervEXT = (PFNGLGETVARIANTPOINTERVEXTPROC)load("glGetVariantPointervEXT"); + glad_glGetInvariantBooleanvEXT = (PFNGLGETINVARIANTBOOLEANVEXTPROC)load("glGetInvariantBooleanvEXT"); + glad_glGetInvariantIntegervEXT = (PFNGLGETINVARIANTINTEGERVEXTPROC)load("glGetInvariantIntegervEXT"); + glad_glGetInvariantFloatvEXT = (PFNGLGETINVARIANTFLOATVEXTPROC)load("glGetInvariantFloatvEXT"); + glad_glGetLocalConstantBooleanvEXT = (PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)load("glGetLocalConstantBooleanvEXT"); + glad_glGetLocalConstantIntegervEXT = (PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)load("glGetLocalConstantIntegervEXT"); + glad_glGetLocalConstantFloatvEXT = (PFNGLGETLOCALCONSTANTFLOATVEXTPROC)load("glGetLocalConstantFloatvEXT"); +} +static void load_GL_EXT_blend_func_separate(GLADloadproc load) { + if(!GLAD_GL_EXT_blend_func_separate) return; + glad_glBlendFuncSeparateEXT = (PFNGLBLENDFUNCSEPARATEEXTPROC)load("glBlendFuncSeparateEXT"); +} +static void load_GL_APPLE_fence(GLADloadproc load) { + if(!GLAD_GL_APPLE_fence) return; + glad_glGenFencesAPPLE = (PFNGLGENFENCESAPPLEPROC)load("glGenFencesAPPLE"); + glad_glDeleteFencesAPPLE = (PFNGLDELETEFENCESAPPLEPROC)load("glDeleteFencesAPPLE"); + glad_glSetFenceAPPLE = (PFNGLSETFENCEAPPLEPROC)load("glSetFenceAPPLE"); + glad_glIsFenceAPPLE = (PFNGLISFENCEAPPLEPROC)load("glIsFenceAPPLE"); + glad_glTestFenceAPPLE = (PFNGLTESTFENCEAPPLEPROC)load("glTestFenceAPPLE"); + glad_glFinishFenceAPPLE = (PFNGLFINISHFENCEAPPLEPROC)load("glFinishFenceAPPLE"); + glad_glTestObjectAPPLE = (PFNGLTESTOBJECTAPPLEPROC)load("glTestObjectAPPLE"); + glad_glFinishObjectAPPLE = (PFNGLFINISHOBJECTAPPLEPROC)load("glFinishObjectAPPLE"); +} +static void load_GL_OES_byte_coordinates(GLADloadproc load) { + if(!GLAD_GL_OES_byte_coordinates) return; + glad_glMultiTexCoord1bOES = (PFNGLMULTITEXCOORD1BOESPROC)load("glMultiTexCoord1bOES"); + glad_glMultiTexCoord1bvOES = (PFNGLMULTITEXCOORD1BVOESPROC)load("glMultiTexCoord1bvOES"); + glad_glMultiTexCoord2bOES = (PFNGLMULTITEXCOORD2BOESPROC)load("glMultiTexCoord2bOES"); + glad_glMultiTexCoord2bvOES = (PFNGLMULTITEXCOORD2BVOESPROC)load("glMultiTexCoord2bvOES"); + glad_glMultiTexCoord3bOES = (PFNGLMULTITEXCOORD3BOESPROC)load("glMultiTexCoord3bOES"); + glad_glMultiTexCoord3bvOES = (PFNGLMULTITEXCOORD3BVOESPROC)load("glMultiTexCoord3bvOES"); + glad_glMultiTexCoord4bOES = (PFNGLMULTITEXCOORD4BOESPROC)load("glMultiTexCoord4bOES"); + glad_glMultiTexCoord4bvOES = (PFNGLMULTITEXCOORD4BVOESPROC)load("glMultiTexCoord4bvOES"); + glad_glTexCoord1bOES = (PFNGLTEXCOORD1BOESPROC)load("glTexCoord1bOES"); + glad_glTexCoord1bvOES = (PFNGLTEXCOORD1BVOESPROC)load("glTexCoord1bvOES"); + glad_glTexCoord2bOES = (PFNGLTEXCOORD2BOESPROC)load("glTexCoord2bOES"); + glad_glTexCoord2bvOES = (PFNGLTEXCOORD2BVOESPROC)load("glTexCoord2bvOES"); + glad_glTexCoord3bOES = (PFNGLTEXCOORD3BOESPROC)load("glTexCoord3bOES"); + glad_glTexCoord3bvOES = (PFNGLTEXCOORD3BVOESPROC)load("glTexCoord3bvOES"); + glad_glTexCoord4bOES = (PFNGLTEXCOORD4BOESPROC)load("glTexCoord4bOES"); + glad_glTexCoord4bvOES = (PFNGLTEXCOORD4BVOESPROC)load("glTexCoord4bvOES"); + glad_glVertex2bOES = (PFNGLVERTEX2BOESPROC)load("glVertex2bOES"); + glad_glVertex2bvOES = (PFNGLVERTEX2BVOESPROC)load("glVertex2bvOES"); + glad_glVertex3bOES = (PFNGLVERTEX3BOESPROC)load("glVertex3bOES"); + glad_glVertex3bvOES = (PFNGLVERTEX3BVOESPROC)load("glVertex3bvOES"); + glad_glVertex4bOES = (PFNGLVERTEX4BOESPROC)load("glVertex4bOES"); + glad_glVertex4bvOES = (PFNGLVERTEX4BVOESPROC)load("glVertex4bvOES"); +} +static void load_GL_ARB_transpose_matrix(GLADloadproc load) { + if(!GLAD_GL_ARB_transpose_matrix) return; + glad_glLoadTransposeMatrixfARB = (PFNGLLOADTRANSPOSEMATRIXFARBPROC)load("glLoadTransposeMatrixfARB"); + glad_glLoadTransposeMatrixdARB = (PFNGLLOADTRANSPOSEMATRIXDARBPROC)load("glLoadTransposeMatrixdARB"); + glad_glMultTransposeMatrixfARB = (PFNGLMULTTRANSPOSEMATRIXFARBPROC)load("glMultTransposeMatrixfARB"); + glad_glMultTransposeMatrixdARB = (PFNGLMULTTRANSPOSEMATRIXDARBPROC)load("glMultTransposeMatrixdARB"); +} +static void load_GL_ARB_provoking_vertex(GLADloadproc load) { + if(!GLAD_GL_ARB_provoking_vertex) return; + glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load("glProvokingVertex"); +} +static void load_GL_EXT_fog_coord(GLADloadproc load) { + if(!GLAD_GL_EXT_fog_coord) return; + glad_glFogCoordfEXT = (PFNGLFOGCOORDFEXTPROC)load("glFogCoordfEXT"); + glad_glFogCoordfvEXT = (PFNGLFOGCOORDFVEXTPROC)load("glFogCoordfvEXT"); + glad_glFogCoorddEXT = (PFNGLFOGCOORDDEXTPROC)load("glFogCoorddEXT"); + glad_glFogCoorddvEXT = (PFNGLFOGCOORDDVEXTPROC)load("glFogCoorddvEXT"); + glad_glFogCoordPointerEXT = (PFNGLFOGCOORDPOINTEREXTPROC)load("glFogCoordPointerEXT"); +} +static void load_GL_EXT_vertex_array(GLADloadproc load) { + if(!GLAD_GL_EXT_vertex_array) return; + glad_glArrayElementEXT = (PFNGLARRAYELEMENTEXTPROC)load("glArrayElementEXT"); + glad_glColorPointerEXT = (PFNGLCOLORPOINTEREXTPROC)load("glColorPointerEXT"); + glad_glDrawArraysEXT = (PFNGLDRAWARRAYSEXTPROC)load("glDrawArraysEXT"); + glad_glEdgeFlagPointerEXT = (PFNGLEDGEFLAGPOINTEREXTPROC)load("glEdgeFlagPointerEXT"); + glad_glGetPointervEXT = (PFNGLGETPOINTERVEXTPROC)load("glGetPointervEXT"); + glad_glIndexPointerEXT = (PFNGLINDEXPOINTEREXTPROC)load("glIndexPointerEXT"); + glad_glNormalPointerEXT = (PFNGLNORMALPOINTEREXTPROC)load("glNormalPointerEXT"); + glad_glTexCoordPointerEXT = (PFNGLTEXCOORDPOINTEREXTPROC)load("glTexCoordPointerEXT"); + glad_glVertexPointerEXT = (PFNGLVERTEXPOINTEREXTPROC)load("glVertexPointerEXT"); +} +static void load_GL_EXT_blend_equation_separate(GLADloadproc load) { + if(!GLAD_GL_EXT_blend_equation_separate) return; + glad_glBlendEquationSeparateEXT = (PFNGLBLENDEQUATIONSEPARATEEXTPROC)load("glBlendEquationSeparateEXT"); +} +static void load_GL_NV_framebuffer_mixed_samples(GLADloadproc load) { + if(!GLAD_GL_NV_framebuffer_mixed_samples) return; + glad_glRasterSamplesEXT = (PFNGLRASTERSAMPLESEXTPROC)load("glRasterSamplesEXT"); + glad_glCoverageModulationTableNV = (PFNGLCOVERAGEMODULATIONTABLENVPROC)load("glCoverageModulationTableNV"); + glad_glGetCoverageModulationTableNV = (PFNGLGETCOVERAGEMODULATIONTABLENVPROC)load("glGetCoverageModulationTableNV"); + glad_glCoverageModulationNV = (PFNGLCOVERAGEMODULATIONNVPROC)load("glCoverageModulationNV"); +} +static void load_GL_NVX_conditional_render(GLADloadproc load) { + if(!GLAD_GL_NVX_conditional_render) return; + glad_glBeginConditionalRenderNVX = (PFNGLBEGINCONDITIONALRENDERNVXPROC)load("glBeginConditionalRenderNVX"); + glad_glEndConditionalRenderNVX = (PFNGLENDCONDITIONALRENDERNVXPROC)load("glEndConditionalRenderNVX"); +} +static void load_GL_ARB_multi_draw_indirect(GLADloadproc load) { + if(!GLAD_GL_ARB_multi_draw_indirect) return; + glad_glMultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECTPROC)load("glMultiDrawArraysIndirect"); + glad_glMultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECTPROC)load("glMultiDrawElementsIndirect"); +} +static void load_GL_EXT_raster_multisample(GLADloadproc load) { + if(!GLAD_GL_EXT_raster_multisample) return; + glad_glRasterSamplesEXT = (PFNGLRASTERSAMPLESEXTPROC)load("glRasterSamplesEXT"); +} +static void load_GL_NV_copy_image(GLADloadproc load) { + if(!GLAD_GL_NV_copy_image) return; + glad_glCopyImageSubDataNV = (PFNGLCOPYIMAGESUBDATANVPROC)load("glCopyImageSubDataNV"); +} +static void load_GL_INTEL_framebuffer_CMAA(GLADloadproc load) { + if(!GLAD_GL_INTEL_framebuffer_CMAA) return; + glad_glApplyFramebufferAttachmentCMAAINTEL = (PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC)load("glApplyFramebufferAttachmentCMAAINTEL"); +} +static void load_GL_ARB_transform_feedback2(GLADloadproc load) { + if(!GLAD_GL_ARB_transform_feedback2) return; + glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)load("glBindTransformFeedback"); + glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)load("glDeleteTransformFeedbacks"); + glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)load("glGenTransformFeedbacks"); + glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)load("glIsTransformFeedback"); + glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)load("glPauseTransformFeedback"); + glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)load("glResumeTransformFeedback"); + glad_glDrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACKPROC)load("glDrawTransformFeedback"); +} +static void load_GL_ARB_transform_feedback3(GLADloadproc load) { + if(!GLAD_GL_ARB_transform_feedback3) return; + glad_glDrawTransformFeedbackStream = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)load("glDrawTransformFeedbackStream"); + glad_glBeginQueryIndexed = (PFNGLBEGINQUERYINDEXEDPROC)load("glBeginQueryIndexed"); + glad_glEndQueryIndexed = (PFNGLENDQUERYINDEXEDPROC)load("glEndQueryIndexed"); + glad_glGetQueryIndexediv = (PFNGLGETQUERYINDEXEDIVPROC)load("glGetQueryIndexediv"); +} +static void load_GL_EXT_debug_marker(GLADloadproc load) { + if(!GLAD_GL_EXT_debug_marker) return; + glad_glInsertEventMarkerEXT = (PFNGLINSERTEVENTMARKEREXTPROC)load("glInsertEventMarkerEXT"); + glad_glPushGroupMarkerEXT = (PFNGLPUSHGROUPMARKEREXTPROC)load("glPushGroupMarkerEXT"); + glad_glPopGroupMarkerEXT = (PFNGLPOPGROUPMARKEREXTPROC)load("glPopGroupMarkerEXT"); +} +static void load_GL_EXT_pixel_transform(GLADloadproc load) { + if(!GLAD_GL_EXT_pixel_transform) return; + glad_glPixelTransformParameteriEXT = (PFNGLPIXELTRANSFORMPARAMETERIEXTPROC)load("glPixelTransformParameteriEXT"); + glad_glPixelTransformParameterfEXT = (PFNGLPIXELTRANSFORMPARAMETERFEXTPROC)load("glPixelTransformParameterfEXT"); + glad_glPixelTransformParameterivEXT = (PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC)load("glPixelTransformParameterivEXT"); + glad_glPixelTransformParameterfvEXT = (PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC)load("glPixelTransformParameterfvEXT"); + glad_glGetPixelTransformParameterivEXT = (PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC)load("glGetPixelTransformParameterivEXT"); + glad_glGetPixelTransformParameterfvEXT = (PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC)load("glGetPixelTransformParameterfvEXT"); +} +static void load_GL_ATI_fragment_shader(GLADloadproc load) { + if(!GLAD_GL_ATI_fragment_shader) return; + glad_glGenFragmentShadersATI = (PFNGLGENFRAGMENTSHADERSATIPROC)load("glGenFragmentShadersATI"); + glad_glBindFragmentShaderATI = (PFNGLBINDFRAGMENTSHADERATIPROC)load("glBindFragmentShaderATI"); + glad_glDeleteFragmentShaderATI = (PFNGLDELETEFRAGMENTSHADERATIPROC)load("glDeleteFragmentShaderATI"); + glad_glBeginFragmentShaderATI = (PFNGLBEGINFRAGMENTSHADERATIPROC)load("glBeginFragmentShaderATI"); + glad_glEndFragmentShaderATI = (PFNGLENDFRAGMENTSHADERATIPROC)load("glEndFragmentShaderATI"); + glad_glPassTexCoordATI = (PFNGLPASSTEXCOORDATIPROC)load("glPassTexCoordATI"); + glad_glSampleMapATI = (PFNGLSAMPLEMAPATIPROC)load("glSampleMapATI"); + glad_glColorFragmentOp1ATI = (PFNGLCOLORFRAGMENTOP1ATIPROC)load("glColorFragmentOp1ATI"); + glad_glColorFragmentOp2ATI = (PFNGLCOLORFRAGMENTOP2ATIPROC)load("glColorFragmentOp2ATI"); + glad_glColorFragmentOp3ATI = (PFNGLCOLORFRAGMENTOP3ATIPROC)load("glColorFragmentOp3ATI"); + glad_glAlphaFragmentOp1ATI = (PFNGLALPHAFRAGMENTOP1ATIPROC)load("glAlphaFragmentOp1ATI"); + glad_glAlphaFragmentOp2ATI = (PFNGLALPHAFRAGMENTOP2ATIPROC)load("glAlphaFragmentOp2ATI"); + glad_glAlphaFragmentOp3ATI = (PFNGLALPHAFRAGMENTOP3ATIPROC)load("glAlphaFragmentOp3ATI"); + glad_glSetFragmentShaderConstantATI = (PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)load("glSetFragmentShaderConstantATI"); +} +static void load_GL_ARB_vertex_array_object(GLADloadproc load) { + if(!GLAD_GL_ARB_vertex_array_object) return; + glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray"); + glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays"); + glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays"); + glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray"); +} +static void load_GL_SUN_triangle_list(GLADloadproc load) { + if(!GLAD_GL_SUN_triangle_list) return; + glad_glReplacementCodeuiSUN = (PFNGLREPLACEMENTCODEUISUNPROC)load("glReplacementCodeuiSUN"); + glad_glReplacementCodeusSUN = (PFNGLREPLACEMENTCODEUSSUNPROC)load("glReplacementCodeusSUN"); + glad_glReplacementCodeubSUN = (PFNGLREPLACEMENTCODEUBSUNPROC)load("glReplacementCodeubSUN"); + glad_glReplacementCodeuivSUN = (PFNGLREPLACEMENTCODEUIVSUNPROC)load("glReplacementCodeuivSUN"); + glad_glReplacementCodeusvSUN = (PFNGLREPLACEMENTCODEUSVSUNPROC)load("glReplacementCodeusvSUN"); + glad_glReplacementCodeubvSUN = (PFNGLREPLACEMENTCODEUBVSUNPROC)load("glReplacementCodeubvSUN"); + glad_glReplacementCodePointerSUN = (PFNGLREPLACEMENTCODEPOINTERSUNPROC)load("glReplacementCodePointerSUN"); +} +static void load_GL_ARB_transform_feedback_instanced(GLADloadproc load) { + if(!GLAD_GL_ARB_transform_feedback_instanced) return; + glad_glDrawTransformFeedbackInstanced = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)load("glDrawTransformFeedbackInstanced"); + glad_glDrawTransformFeedbackStreamInstanced = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)load("glDrawTransformFeedbackStreamInstanced"); +} +static void load_GL_SGIX_async(GLADloadproc load) { + if(!GLAD_GL_SGIX_async) return; + glad_glAsyncMarkerSGIX = (PFNGLASYNCMARKERSGIXPROC)load("glAsyncMarkerSGIX"); + glad_glFinishAsyncSGIX = (PFNGLFINISHASYNCSGIXPROC)load("glFinishAsyncSGIX"); + glad_glPollAsyncSGIX = (PFNGLPOLLASYNCSGIXPROC)load("glPollAsyncSGIX"); + glad_glGenAsyncMarkersSGIX = (PFNGLGENASYNCMARKERSSGIXPROC)load("glGenAsyncMarkersSGIX"); + glad_glDeleteAsyncMarkersSGIX = (PFNGLDELETEASYNCMARKERSSGIXPROC)load("glDeleteAsyncMarkersSGIX"); + glad_glIsAsyncMarkerSGIX = (PFNGLISASYNCMARKERSGIXPROC)load("glIsAsyncMarkerSGIX"); +} +static void load_GL_INTEL_performance_query(GLADloadproc load) { + if(!GLAD_GL_INTEL_performance_query) return; + glad_glBeginPerfQueryINTEL = (PFNGLBEGINPERFQUERYINTELPROC)load("glBeginPerfQueryINTEL"); + glad_glCreatePerfQueryINTEL = (PFNGLCREATEPERFQUERYINTELPROC)load("glCreatePerfQueryINTEL"); + glad_glDeletePerfQueryINTEL = (PFNGLDELETEPERFQUERYINTELPROC)load("glDeletePerfQueryINTEL"); + glad_glEndPerfQueryINTEL = (PFNGLENDPERFQUERYINTELPROC)load("glEndPerfQueryINTEL"); + glad_glGetFirstPerfQueryIdINTEL = (PFNGLGETFIRSTPERFQUERYIDINTELPROC)load("glGetFirstPerfQueryIdINTEL"); + glad_glGetNextPerfQueryIdINTEL = (PFNGLGETNEXTPERFQUERYIDINTELPROC)load("glGetNextPerfQueryIdINTEL"); + glad_glGetPerfCounterInfoINTEL = (PFNGLGETPERFCOUNTERINFOINTELPROC)load("glGetPerfCounterInfoINTEL"); + glad_glGetPerfQueryDataINTEL = (PFNGLGETPERFQUERYDATAINTELPROC)load("glGetPerfQueryDataINTEL"); + glad_glGetPerfQueryIdByNameINTEL = (PFNGLGETPERFQUERYIDBYNAMEINTELPROC)load("glGetPerfQueryIdByNameINTEL"); + glad_glGetPerfQueryInfoINTEL = (PFNGLGETPERFQUERYINFOINTELPROC)load("glGetPerfQueryInfoINTEL"); +} +static void load_GL_NV_gpu_shader5(GLADloadproc load) { + if(!GLAD_GL_NV_gpu_shader5) return; + glad_glUniform1i64NV = (PFNGLUNIFORM1I64NVPROC)load("glUniform1i64NV"); + glad_glUniform2i64NV = (PFNGLUNIFORM2I64NVPROC)load("glUniform2i64NV"); + glad_glUniform3i64NV = (PFNGLUNIFORM3I64NVPROC)load("glUniform3i64NV"); + glad_glUniform4i64NV = (PFNGLUNIFORM4I64NVPROC)load("glUniform4i64NV"); + glad_glUniform1i64vNV = (PFNGLUNIFORM1I64VNVPROC)load("glUniform1i64vNV"); + glad_glUniform2i64vNV = (PFNGLUNIFORM2I64VNVPROC)load("glUniform2i64vNV"); + glad_glUniform3i64vNV = (PFNGLUNIFORM3I64VNVPROC)load("glUniform3i64vNV"); + glad_glUniform4i64vNV = (PFNGLUNIFORM4I64VNVPROC)load("glUniform4i64vNV"); + glad_glUniform1ui64NV = (PFNGLUNIFORM1UI64NVPROC)load("glUniform1ui64NV"); + glad_glUniform2ui64NV = (PFNGLUNIFORM2UI64NVPROC)load("glUniform2ui64NV"); + glad_glUniform3ui64NV = (PFNGLUNIFORM3UI64NVPROC)load("glUniform3ui64NV"); + glad_glUniform4ui64NV = (PFNGLUNIFORM4UI64NVPROC)load("glUniform4ui64NV"); + glad_glUniform1ui64vNV = (PFNGLUNIFORM1UI64VNVPROC)load("glUniform1ui64vNV"); + glad_glUniform2ui64vNV = (PFNGLUNIFORM2UI64VNVPROC)load("glUniform2ui64vNV"); + glad_glUniform3ui64vNV = (PFNGLUNIFORM3UI64VNVPROC)load("glUniform3ui64vNV"); + glad_glUniform4ui64vNV = (PFNGLUNIFORM4UI64VNVPROC)load("glUniform4ui64vNV"); + glad_glGetUniformi64vNV = (PFNGLGETUNIFORMI64VNVPROC)load("glGetUniformi64vNV"); + glad_glProgramUniform1i64NV = (PFNGLPROGRAMUNIFORM1I64NVPROC)load("glProgramUniform1i64NV"); + glad_glProgramUniform2i64NV = (PFNGLPROGRAMUNIFORM2I64NVPROC)load("glProgramUniform2i64NV"); + glad_glProgramUniform3i64NV = (PFNGLPROGRAMUNIFORM3I64NVPROC)load("glProgramUniform3i64NV"); + glad_glProgramUniform4i64NV = (PFNGLPROGRAMUNIFORM4I64NVPROC)load("glProgramUniform4i64NV"); + glad_glProgramUniform1i64vNV = (PFNGLPROGRAMUNIFORM1I64VNVPROC)load("glProgramUniform1i64vNV"); + glad_glProgramUniform2i64vNV = (PFNGLPROGRAMUNIFORM2I64VNVPROC)load("glProgramUniform2i64vNV"); + glad_glProgramUniform3i64vNV = (PFNGLPROGRAMUNIFORM3I64VNVPROC)load("glProgramUniform3i64vNV"); + glad_glProgramUniform4i64vNV = (PFNGLPROGRAMUNIFORM4I64VNVPROC)load("glProgramUniform4i64vNV"); + glad_glProgramUniform1ui64NV = (PFNGLPROGRAMUNIFORM1UI64NVPROC)load("glProgramUniform1ui64NV"); + glad_glProgramUniform2ui64NV = (PFNGLPROGRAMUNIFORM2UI64NVPROC)load("glProgramUniform2ui64NV"); + glad_glProgramUniform3ui64NV = (PFNGLPROGRAMUNIFORM3UI64NVPROC)load("glProgramUniform3ui64NV"); + glad_glProgramUniform4ui64NV = (PFNGLPROGRAMUNIFORM4UI64NVPROC)load("glProgramUniform4ui64NV"); + glad_glProgramUniform1ui64vNV = (PFNGLPROGRAMUNIFORM1UI64VNVPROC)load("glProgramUniform1ui64vNV"); + glad_glProgramUniform2ui64vNV = (PFNGLPROGRAMUNIFORM2UI64VNVPROC)load("glProgramUniform2ui64vNV"); + glad_glProgramUniform3ui64vNV = (PFNGLPROGRAMUNIFORM3UI64VNVPROC)load("glProgramUniform3ui64vNV"); + glad_glProgramUniform4ui64vNV = (PFNGLPROGRAMUNIFORM4UI64VNVPROC)load("glProgramUniform4ui64vNV"); +} +static void load_GL_NV_bindless_multi_draw_indirect_count(GLADloadproc load) { + if(!GLAD_GL_NV_bindless_multi_draw_indirect_count) return; + glad_glMultiDrawArraysIndirectBindlessCountNV = (PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC)load("glMultiDrawArraysIndirectBindlessCountNV"); + glad_glMultiDrawElementsIndirectBindlessCountNV = (PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC)load("glMultiDrawElementsIndirectBindlessCountNV"); +} +static void load_GL_ARB_ES2_compatibility(GLADloadproc load) { + if(!GLAD_GL_ARB_ES2_compatibility) return; + glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)load("glReleaseShaderCompiler"); + glad_glShaderBinary = (PFNGLSHADERBINARYPROC)load("glShaderBinary"); + glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)load("glGetShaderPrecisionFormat"); + glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC)load("glDepthRangef"); + glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC)load("glClearDepthf"); +} +static void load_GL_ARB_indirect_parameters(GLADloadproc load) { + if(!GLAD_GL_ARB_indirect_parameters) return; + glad_glMultiDrawArraysIndirectCountARB = (PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC)load("glMultiDrawArraysIndirectCountARB"); + glad_glMultiDrawElementsIndirectCountARB = (PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC)load("glMultiDrawElementsIndirectCountARB"); +} +static void load_GL_NV_half_float(GLADloadproc load) { + if(!GLAD_GL_NV_half_float) return; + glad_glVertex2hNV = (PFNGLVERTEX2HNVPROC)load("glVertex2hNV"); + glad_glVertex2hvNV = (PFNGLVERTEX2HVNVPROC)load("glVertex2hvNV"); + glad_glVertex3hNV = (PFNGLVERTEX3HNVPROC)load("glVertex3hNV"); + glad_glVertex3hvNV = (PFNGLVERTEX3HVNVPROC)load("glVertex3hvNV"); + glad_glVertex4hNV = (PFNGLVERTEX4HNVPROC)load("glVertex4hNV"); + glad_glVertex4hvNV = (PFNGLVERTEX4HVNVPROC)load("glVertex4hvNV"); + glad_glNormal3hNV = (PFNGLNORMAL3HNVPROC)load("glNormal3hNV"); + glad_glNormal3hvNV = (PFNGLNORMAL3HVNVPROC)load("glNormal3hvNV"); + glad_glColor3hNV = (PFNGLCOLOR3HNVPROC)load("glColor3hNV"); + glad_glColor3hvNV = (PFNGLCOLOR3HVNVPROC)load("glColor3hvNV"); + glad_glColor4hNV = (PFNGLCOLOR4HNVPROC)load("glColor4hNV"); + glad_glColor4hvNV = (PFNGLCOLOR4HVNVPROC)load("glColor4hvNV"); + glad_glTexCoord1hNV = (PFNGLTEXCOORD1HNVPROC)load("glTexCoord1hNV"); + glad_glTexCoord1hvNV = (PFNGLTEXCOORD1HVNVPROC)load("glTexCoord1hvNV"); + glad_glTexCoord2hNV = (PFNGLTEXCOORD2HNVPROC)load("glTexCoord2hNV"); + glad_glTexCoord2hvNV = (PFNGLTEXCOORD2HVNVPROC)load("glTexCoord2hvNV"); + glad_glTexCoord3hNV = (PFNGLTEXCOORD3HNVPROC)load("glTexCoord3hNV"); + glad_glTexCoord3hvNV = (PFNGLTEXCOORD3HVNVPROC)load("glTexCoord3hvNV"); + glad_glTexCoord4hNV = (PFNGLTEXCOORD4HNVPROC)load("glTexCoord4hNV"); + glad_glTexCoord4hvNV = (PFNGLTEXCOORD4HVNVPROC)load("glTexCoord4hvNV"); + glad_glMultiTexCoord1hNV = (PFNGLMULTITEXCOORD1HNVPROC)load("glMultiTexCoord1hNV"); + glad_glMultiTexCoord1hvNV = (PFNGLMULTITEXCOORD1HVNVPROC)load("glMultiTexCoord1hvNV"); + glad_glMultiTexCoord2hNV = (PFNGLMULTITEXCOORD2HNVPROC)load("glMultiTexCoord2hNV"); + glad_glMultiTexCoord2hvNV = (PFNGLMULTITEXCOORD2HVNVPROC)load("glMultiTexCoord2hvNV"); + glad_glMultiTexCoord3hNV = (PFNGLMULTITEXCOORD3HNVPROC)load("glMultiTexCoord3hNV"); + glad_glMultiTexCoord3hvNV = (PFNGLMULTITEXCOORD3HVNVPROC)load("glMultiTexCoord3hvNV"); + glad_glMultiTexCoord4hNV = (PFNGLMULTITEXCOORD4HNVPROC)load("glMultiTexCoord4hNV"); + glad_glMultiTexCoord4hvNV = (PFNGLMULTITEXCOORD4HVNVPROC)load("glMultiTexCoord4hvNV"); + glad_glFogCoordhNV = (PFNGLFOGCOORDHNVPROC)load("glFogCoordhNV"); + glad_glFogCoordhvNV = (PFNGLFOGCOORDHVNVPROC)load("glFogCoordhvNV"); + glad_glSecondaryColor3hNV = (PFNGLSECONDARYCOLOR3HNVPROC)load("glSecondaryColor3hNV"); + glad_glSecondaryColor3hvNV = (PFNGLSECONDARYCOLOR3HVNVPROC)load("glSecondaryColor3hvNV"); + glad_glVertexWeighthNV = (PFNGLVERTEXWEIGHTHNVPROC)load("glVertexWeighthNV"); + glad_glVertexWeighthvNV = (PFNGLVERTEXWEIGHTHVNVPROC)load("glVertexWeighthvNV"); + glad_glVertexAttrib1hNV = (PFNGLVERTEXATTRIB1HNVPROC)load("glVertexAttrib1hNV"); + glad_glVertexAttrib1hvNV = (PFNGLVERTEXATTRIB1HVNVPROC)load("glVertexAttrib1hvNV"); + glad_glVertexAttrib2hNV = (PFNGLVERTEXATTRIB2HNVPROC)load("glVertexAttrib2hNV"); + glad_glVertexAttrib2hvNV = (PFNGLVERTEXATTRIB2HVNVPROC)load("glVertexAttrib2hvNV"); + glad_glVertexAttrib3hNV = (PFNGLVERTEXATTRIB3HNVPROC)load("glVertexAttrib3hNV"); + glad_glVertexAttrib3hvNV = (PFNGLVERTEXATTRIB3HVNVPROC)load("glVertexAttrib3hvNV"); + glad_glVertexAttrib4hNV = (PFNGLVERTEXATTRIB4HNVPROC)load("glVertexAttrib4hNV"); + glad_glVertexAttrib4hvNV = (PFNGLVERTEXATTRIB4HVNVPROC)load("glVertexAttrib4hvNV"); + glad_glVertexAttribs1hvNV = (PFNGLVERTEXATTRIBS1HVNVPROC)load("glVertexAttribs1hvNV"); + glad_glVertexAttribs2hvNV = (PFNGLVERTEXATTRIBS2HVNVPROC)load("glVertexAttribs2hvNV"); + glad_glVertexAttribs3hvNV = (PFNGLVERTEXATTRIBS3HVNVPROC)load("glVertexAttribs3hvNV"); + glad_glVertexAttribs4hvNV = (PFNGLVERTEXATTRIBS4HVNVPROC)load("glVertexAttribs4hvNV"); +} +static void load_GL_ARB_ES3_2_compatibility(GLADloadproc load) { + if(!GLAD_GL_ARB_ES3_2_compatibility) return; + glad_glPrimitiveBoundingBoxARB = (PFNGLPRIMITIVEBOUNDINGBOXARBPROC)load("glPrimitiveBoundingBoxARB"); +} +static void load_GL_EXT_polygon_offset_clamp(GLADloadproc load) { + if(!GLAD_GL_EXT_polygon_offset_clamp) return; + glad_glPolygonOffsetClampEXT = (PFNGLPOLYGONOFFSETCLAMPEXTPROC)load("glPolygonOffsetClampEXT"); +} +static void load_GL_EXT_compiled_vertex_array(GLADloadproc load) { + if(!GLAD_GL_EXT_compiled_vertex_array) return; + glad_glLockArraysEXT = (PFNGLLOCKARRAYSEXTPROC)load("glLockArraysEXT"); + glad_glUnlockArraysEXT = (PFNGLUNLOCKARRAYSEXTPROC)load("glUnlockArraysEXT"); +} +static void load_GL_NV_depth_buffer_float(GLADloadproc load) { + if(!GLAD_GL_NV_depth_buffer_float) return; + glad_glDepthRangedNV = (PFNGLDEPTHRANGEDNVPROC)load("glDepthRangedNV"); + glad_glClearDepthdNV = (PFNGLCLEARDEPTHDNVPROC)load("glClearDepthdNV"); + glad_glDepthBoundsdNV = (PFNGLDEPTHBOUNDSDNVPROC)load("glDepthBoundsdNV"); +} +static void load_GL_NV_occlusion_query(GLADloadproc load) { + if(!GLAD_GL_NV_occlusion_query) return; + glad_glGenOcclusionQueriesNV = (PFNGLGENOCCLUSIONQUERIESNVPROC)load("glGenOcclusionQueriesNV"); + glad_glDeleteOcclusionQueriesNV = (PFNGLDELETEOCCLUSIONQUERIESNVPROC)load("glDeleteOcclusionQueriesNV"); + glad_glIsOcclusionQueryNV = (PFNGLISOCCLUSIONQUERYNVPROC)load("glIsOcclusionQueryNV"); + glad_glBeginOcclusionQueryNV = (PFNGLBEGINOCCLUSIONQUERYNVPROC)load("glBeginOcclusionQueryNV"); + glad_glEndOcclusionQueryNV = (PFNGLENDOCCLUSIONQUERYNVPROC)load("glEndOcclusionQueryNV"); + glad_glGetOcclusionQueryivNV = (PFNGLGETOCCLUSIONQUERYIVNVPROC)load("glGetOcclusionQueryivNV"); + glad_glGetOcclusionQueryuivNV = (PFNGLGETOCCLUSIONQUERYUIVNVPROC)load("glGetOcclusionQueryuivNV"); +} +static void load_GL_APPLE_flush_buffer_range(GLADloadproc load) { + if(!GLAD_GL_APPLE_flush_buffer_range) return; + glad_glBufferParameteriAPPLE = (PFNGLBUFFERPARAMETERIAPPLEPROC)load("glBufferParameteriAPPLE"); + glad_glFlushMappedBufferRangeAPPLE = (PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC)load("glFlushMappedBufferRangeAPPLE"); +} +static void load_GL_ARB_imaging(GLADloadproc load) { + if(!GLAD_GL_ARB_imaging) return; + glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor"); + glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation"); + glad_glColorTable = (PFNGLCOLORTABLEPROC)load("glColorTable"); + glad_glColorTableParameterfv = (PFNGLCOLORTABLEPARAMETERFVPROC)load("glColorTableParameterfv"); + glad_glColorTableParameteriv = (PFNGLCOLORTABLEPARAMETERIVPROC)load("glColorTableParameteriv"); + glad_glCopyColorTable = (PFNGLCOPYCOLORTABLEPROC)load("glCopyColorTable"); + glad_glGetColorTable = (PFNGLGETCOLORTABLEPROC)load("glGetColorTable"); + glad_glGetColorTableParameterfv = (PFNGLGETCOLORTABLEPARAMETERFVPROC)load("glGetColorTableParameterfv"); + glad_glGetColorTableParameteriv = (PFNGLGETCOLORTABLEPARAMETERIVPROC)load("glGetColorTableParameteriv"); + glad_glColorSubTable = (PFNGLCOLORSUBTABLEPROC)load("glColorSubTable"); + glad_glCopyColorSubTable = (PFNGLCOPYCOLORSUBTABLEPROC)load("glCopyColorSubTable"); + glad_glConvolutionFilter1D = (PFNGLCONVOLUTIONFILTER1DPROC)load("glConvolutionFilter1D"); + glad_glConvolutionFilter2D = (PFNGLCONVOLUTIONFILTER2DPROC)load("glConvolutionFilter2D"); + glad_glConvolutionParameterf = (PFNGLCONVOLUTIONPARAMETERFPROC)load("glConvolutionParameterf"); + glad_glConvolutionParameterfv = (PFNGLCONVOLUTIONPARAMETERFVPROC)load("glConvolutionParameterfv"); + glad_glConvolutionParameteri = (PFNGLCONVOLUTIONPARAMETERIPROC)load("glConvolutionParameteri"); + glad_glConvolutionParameteriv = (PFNGLCONVOLUTIONPARAMETERIVPROC)load("glConvolutionParameteriv"); + glad_glCopyConvolutionFilter1D = (PFNGLCOPYCONVOLUTIONFILTER1DPROC)load("glCopyConvolutionFilter1D"); + glad_glCopyConvolutionFilter2D = (PFNGLCOPYCONVOLUTIONFILTER2DPROC)load("glCopyConvolutionFilter2D"); + glad_glGetConvolutionFilter = (PFNGLGETCONVOLUTIONFILTERPROC)load("glGetConvolutionFilter"); + glad_glGetConvolutionParameterfv = (PFNGLGETCONVOLUTIONPARAMETERFVPROC)load("glGetConvolutionParameterfv"); + glad_glGetConvolutionParameteriv = (PFNGLGETCONVOLUTIONPARAMETERIVPROC)load("glGetConvolutionParameteriv"); + glad_glGetSeparableFilter = (PFNGLGETSEPARABLEFILTERPROC)load("glGetSeparableFilter"); + glad_glSeparableFilter2D = (PFNGLSEPARABLEFILTER2DPROC)load("glSeparableFilter2D"); + glad_glGetHistogram = (PFNGLGETHISTOGRAMPROC)load("glGetHistogram"); + glad_glGetHistogramParameterfv = (PFNGLGETHISTOGRAMPARAMETERFVPROC)load("glGetHistogramParameterfv"); + glad_glGetHistogramParameteriv = (PFNGLGETHISTOGRAMPARAMETERIVPROC)load("glGetHistogramParameteriv"); + glad_glGetMinmax = (PFNGLGETMINMAXPROC)load("glGetMinmax"); + glad_glGetMinmaxParameterfv = (PFNGLGETMINMAXPARAMETERFVPROC)load("glGetMinmaxParameterfv"); + glad_glGetMinmaxParameteriv = (PFNGLGETMINMAXPARAMETERIVPROC)load("glGetMinmaxParameteriv"); + glad_glHistogram = (PFNGLHISTOGRAMPROC)load("glHistogram"); + glad_glMinmax = (PFNGLMINMAXPROC)load("glMinmax"); + glad_glResetHistogram = (PFNGLRESETHISTOGRAMPROC)load("glResetHistogram"); + glad_glResetMinmax = (PFNGLRESETMINMAXPROC)load("glResetMinmax"); +} +static void load_GL_ARB_draw_buffers_blend(GLADloadproc load) { + if(!GLAD_GL_ARB_draw_buffers_blend) return; + glad_glBlendEquationiARB = (PFNGLBLENDEQUATIONIARBPROC)load("glBlendEquationiARB"); + glad_glBlendEquationSeparateiARB = (PFNGLBLENDEQUATIONSEPARATEIARBPROC)load("glBlendEquationSeparateiARB"); + glad_glBlendFunciARB = (PFNGLBLENDFUNCIARBPROC)load("glBlendFunciARB"); + glad_glBlendFuncSeparateiARB = (PFNGLBLENDFUNCSEPARATEIARBPROC)load("glBlendFuncSeparateiARB"); +} +static void load_GL_ARB_clear_buffer_object(GLADloadproc load) { + if(!GLAD_GL_ARB_clear_buffer_object) return; + glad_glClearBufferData = (PFNGLCLEARBUFFERDATAPROC)load("glClearBufferData"); + glad_glClearBufferSubData = (PFNGLCLEARBUFFERSUBDATAPROC)load("glClearBufferSubData"); +} +static void load_GL_ARB_multisample(GLADloadproc load) { + if(!GLAD_GL_ARB_multisample) return; + glad_glSampleCoverageARB = (PFNGLSAMPLECOVERAGEARBPROC)load("glSampleCoverageARB"); +} +static void load_GL_EXT_debug_label(GLADloadproc load) { + if(!GLAD_GL_EXT_debug_label) return; + glad_glLabelObjectEXT = (PFNGLLABELOBJECTEXTPROC)load("glLabelObjectEXT"); + glad_glGetObjectLabelEXT = (PFNGLGETOBJECTLABELEXTPROC)load("glGetObjectLabelEXT"); +} +static void load_GL_ARB_sample_shading(GLADloadproc load) { + if(!GLAD_GL_ARB_sample_shading) return; + glad_glMinSampleShadingARB = (PFNGLMINSAMPLESHADINGARBPROC)load("glMinSampleShadingARB"); +} +static void load_GL_NV_internalformat_sample_query(GLADloadproc load) { + if(!GLAD_GL_NV_internalformat_sample_query) return; + glad_glGetInternalformatSampleivNV = (PFNGLGETINTERNALFORMATSAMPLEIVNVPROC)load("glGetInternalformatSampleivNV"); +} +static void load_GL_INTEL_map_texture(GLADloadproc load) { + if(!GLAD_GL_INTEL_map_texture) return; + glad_glSyncTextureINTEL = (PFNGLSYNCTEXTUREINTELPROC)load("glSyncTextureINTEL"); + glad_glUnmapTexture2DINTEL = (PFNGLUNMAPTEXTURE2DINTELPROC)load("glUnmapTexture2DINTEL"); + glad_glMapTexture2DINTEL = (PFNGLMAPTEXTURE2DINTELPROC)load("glMapTexture2DINTEL"); +} +static void load_GL_ARB_compute_shader(GLADloadproc load) { + if(!GLAD_GL_ARB_compute_shader) return; + glad_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC)load("glDispatchCompute"); + glad_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC)load("glDispatchComputeIndirect"); +} +static void load_GL_IBM_vertex_array_lists(GLADloadproc load) { + if(!GLAD_GL_IBM_vertex_array_lists) return; + glad_glColorPointerListIBM = (PFNGLCOLORPOINTERLISTIBMPROC)load("glColorPointerListIBM"); + glad_glSecondaryColorPointerListIBM = (PFNGLSECONDARYCOLORPOINTERLISTIBMPROC)load("glSecondaryColorPointerListIBM"); + glad_glEdgeFlagPointerListIBM = (PFNGLEDGEFLAGPOINTERLISTIBMPROC)load("glEdgeFlagPointerListIBM"); + glad_glFogCoordPointerListIBM = (PFNGLFOGCOORDPOINTERLISTIBMPROC)load("glFogCoordPointerListIBM"); + glad_glIndexPointerListIBM = (PFNGLINDEXPOINTERLISTIBMPROC)load("glIndexPointerListIBM"); + glad_glNormalPointerListIBM = (PFNGLNORMALPOINTERLISTIBMPROC)load("glNormalPointerListIBM"); + glad_glTexCoordPointerListIBM = (PFNGLTEXCOORDPOINTERLISTIBMPROC)load("glTexCoordPointerListIBM"); + glad_glVertexPointerListIBM = (PFNGLVERTEXPOINTERLISTIBMPROC)load("glVertexPointerListIBM"); +} +static void load_GL_ARB_color_buffer_float(GLADloadproc load) { + if(!GLAD_GL_ARB_color_buffer_float) return; + glad_glClampColorARB = (PFNGLCLAMPCOLORARBPROC)load("glClampColorARB"); +} +static void load_GL_ARB_bindless_texture(GLADloadproc load) { + if(!GLAD_GL_ARB_bindless_texture) return; + glad_glGetTextureHandleARB = (PFNGLGETTEXTUREHANDLEARBPROC)load("glGetTextureHandleARB"); + glad_glGetTextureSamplerHandleARB = (PFNGLGETTEXTURESAMPLERHANDLEARBPROC)load("glGetTextureSamplerHandleARB"); + glad_glMakeTextureHandleResidentARB = (PFNGLMAKETEXTUREHANDLERESIDENTARBPROC)load("glMakeTextureHandleResidentARB"); + glad_glMakeTextureHandleNonResidentARB = (PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC)load("glMakeTextureHandleNonResidentARB"); + glad_glGetImageHandleARB = (PFNGLGETIMAGEHANDLEARBPROC)load("glGetImageHandleARB"); + glad_glMakeImageHandleResidentARB = (PFNGLMAKEIMAGEHANDLERESIDENTARBPROC)load("glMakeImageHandleResidentARB"); + glad_glMakeImageHandleNonResidentARB = (PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC)load("glMakeImageHandleNonResidentARB"); + glad_glUniformHandleui64ARB = (PFNGLUNIFORMHANDLEUI64ARBPROC)load("glUniformHandleui64ARB"); + glad_glUniformHandleui64vARB = (PFNGLUNIFORMHANDLEUI64VARBPROC)load("glUniformHandleui64vARB"); + glad_glProgramUniformHandleui64ARB = (PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC)load("glProgramUniformHandleui64ARB"); + glad_glProgramUniformHandleui64vARB = (PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC)load("glProgramUniformHandleui64vARB"); + glad_glIsTextureHandleResidentARB = (PFNGLISTEXTUREHANDLERESIDENTARBPROC)load("glIsTextureHandleResidentARB"); + glad_glIsImageHandleResidentARB = (PFNGLISIMAGEHANDLERESIDENTARBPROC)load("glIsImageHandleResidentARB"); + glad_glVertexAttribL1ui64ARB = (PFNGLVERTEXATTRIBL1UI64ARBPROC)load("glVertexAttribL1ui64ARB"); + glad_glVertexAttribL1ui64vARB = (PFNGLVERTEXATTRIBL1UI64VARBPROC)load("glVertexAttribL1ui64vARB"); + glad_glGetVertexAttribLui64vARB = (PFNGLGETVERTEXATTRIBLUI64VARBPROC)load("glGetVertexAttribLui64vARB"); +} +static void load_GL_ARB_window_pos(GLADloadproc load) { + if(!GLAD_GL_ARB_window_pos) return; + glad_glWindowPos2dARB = (PFNGLWINDOWPOS2DARBPROC)load("glWindowPos2dARB"); + glad_glWindowPos2dvARB = (PFNGLWINDOWPOS2DVARBPROC)load("glWindowPos2dvARB"); + glad_glWindowPos2fARB = (PFNGLWINDOWPOS2FARBPROC)load("glWindowPos2fARB"); + glad_glWindowPos2fvARB = (PFNGLWINDOWPOS2FVARBPROC)load("glWindowPos2fvARB"); + glad_glWindowPos2iARB = (PFNGLWINDOWPOS2IARBPROC)load("glWindowPos2iARB"); + glad_glWindowPos2ivARB = (PFNGLWINDOWPOS2IVARBPROC)load("glWindowPos2ivARB"); + glad_glWindowPos2sARB = (PFNGLWINDOWPOS2SARBPROC)load("glWindowPos2sARB"); + glad_glWindowPos2svARB = (PFNGLWINDOWPOS2SVARBPROC)load("glWindowPos2svARB"); + glad_glWindowPos3dARB = (PFNGLWINDOWPOS3DARBPROC)load("glWindowPos3dARB"); + glad_glWindowPos3dvARB = (PFNGLWINDOWPOS3DVARBPROC)load("glWindowPos3dvARB"); + glad_glWindowPos3fARB = (PFNGLWINDOWPOS3FARBPROC)load("glWindowPos3fARB"); + glad_glWindowPos3fvARB = (PFNGLWINDOWPOS3FVARBPROC)load("glWindowPos3fvARB"); + glad_glWindowPos3iARB = (PFNGLWINDOWPOS3IARBPROC)load("glWindowPos3iARB"); + glad_glWindowPos3ivARB = (PFNGLWINDOWPOS3IVARBPROC)load("glWindowPos3ivARB"); + glad_glWindowPos3sARB = (PFNGLWINDOWPOS3SARBPROC)load("glWindowPos3sARB"); + glad_glWindowPos3svARB = (PFNGLWINDOWPOS3SVARBPROC)load("glWindowPos3svARB"); +} +static void load_GL_ARB_internalformat_query(GLADloadproc load) { + if(!GLAD_GL_ARB_internalformat_query) return; + glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)load("glGetInternalformativ"); +} +static void load_GL_EXT_shader_image_load_store(GLADloadproc load) { + if(!GLAD_GL_EXT_shader_image_load_store) return; + glad_glBindImageTextureEXT = (PFNGLBINDIMAGETEXTUREEXTPROC)load("glBindImageTextureEXT"); + glad_glMemoryBarrierEXT = (PFNGLMEMORYBARRIEREXTPROC)load("glMemoryBarrierEXT"); +} +static void load_GL_EXT_copy_texture(GLADloadproc load) { + if(!GLAD_GL_EXT_copy_texture) return; + glad_glCopyTexImage1DEXT = (PFNGLCOPYTEXIMAGE1DEXTPROC)load("glCopyTexImage1DEXT"); + glad_glCopyTexImage2DEXT = (PFNGLCOPYTEXIMAGE2DEXTPROC)load("glCopyTexImage2DEXT"); + glad_glCopyTexSubImage1DEXT = (PFNGLCOPYTEXSUBIMAGE1DEXTPROC)load("glCopyTexSubImage1DEXT"); + glad_glCopyTexSubImage2DEXT = (PFNGLCOPYTEXSUBIMAGE2DEXTPROC)load("glCopyTexSubImage2DEXT"); + glad_glCopyTexSubImage3DEXT = (PFNGLCOPYTEXSUBIMAGE3DEXTPROC)load("glCopyTexSubImage3DEXT"); +} +static void load_GL_NV_register_combiners2(GLADloadproc load) { + if(!GLAD_GL_NV_register_combiners2) return; + glad_glCombinerStageParameterfvNV = (PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)load("glCombinerStageParameterfvNV"); + glad_glGetCombinerStageParameterfvNV = (PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)load("glGetCombinerStageParameterfvNV"); +} +static void load_GL_NV_draw_texture(GLADloadproc load) { + if(!GLAD_GL_NV_draw_texture) return; + glad_glDrawTextureNV = (PFNGLDRAWTEXTURENVPROC)load("glDrawTextureNV"); +} +static void load_GL_EXT_draw_instanced(GLADloadproc load) { + if(!GLAD_GL_EXT_draw_instanced) return; + glad_glDrawArraysInstancedEXT = (PFNGLDRAWARRAYSINSTANCEDEXTPROC)load("glDrawArraysInstancedEXT"); + glad_glDrawElementsInstancedEXT = (PFNGLDRAWELEMENTSINSTANCEDEXTPROC)load("glDrawElementsInstancedEXT"); +} +static void load_GL_ARB_viewport_array(GLADloadproc load) { + if(!GLAD_GL_ARB_viewport_array) return; + glad_glViewportArrayv = (PFNGLVIEWPORTARRAYVPROC)load("glViewportArrayv"); + glad_glViewportIndexedf = (PFNGLVIEWPORTINDEXEDFPROC)load("glViewportIndexedf"); + glad_glViewportIndexedfv = (PFNGLVIEWPORTINDEXEDFVPROC)load("glViewportIndexedfv"); + glad_glScissorArrayv = (PFNGLSCISSORARRAYVPROC)load("glScissorArrayv"); + glad_glScissorIndexed = (PFNGLSCISSORINDEXEDPROC)load("glScissorIndexed"); + glad_glScissorIndexedv = (PFNGLSCISSORINDEXEDVPROC)load("glScissorIndexedv"); + glad_glDepthRangeArrayv = (PFNGLDEPTHRANGEARRAYVPROC)load("glDepthRangeArrayv"); + glad_glDepthRangeIndexed = (PFNGLDEPTHRANGEINDEXEDPROC)load("glDepthRangeIndexed"); + glad_glGetFloati_v = (PFNGLGETFLOATI_VPROC)load("glGetFloati_v"); + glad_glGetDoublei_v = (PFNGLGETDOUBLEI_VPROC)load("glGetDoublei_v"); +} +static void load_GL_ARB_separate_shader_objects(GLADloadproc load) { + if(!GLAD_GL_ARB_separate_shader_objects) return; + glad_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC)load("glUseProgramStages"); + glad_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC)load("glActiveShaderProgram"); + glad_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC)load("glCreateShaderProgramv"); + glad_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC)load("glBindProgramPipeline"); + glad_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC)load("glDeleteProgramPipelines"); + glad_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC)load("glGenProgramPipelines"); + glad_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC)load("glIsProgramPipeline"); + glad_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC)load("glGetProgramPipelineiv"); + glad_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC)load("glProgramUniform1i"); + glad_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC)load("glProgramUniform1iv"); + glad_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC)load("glProgramUniform1f"); + glad_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC)load("glProgramUniform1fv"); + glad_glProgramUniform1d = (PFNGLPROGRAMUNIFORM1DPROC)load("glProgramUniform1d"); + glad_glProgramUniform1dv = (PFNGLPROGRAMUNIFORM1DVPROC)load("glProgramUniform1dv"); + glad_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC)load("glProgramUniform1ui"); + glad_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC)load("glProgramUniform1uiv"); + glad_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC)load("glProgramUniform2i"); + glad_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC)load("glProgramUniform2iv"); + glad_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC)load("glProgramUniform2f"); + glad_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC)load("glProgramUniform2fv"); + glad_glProgramUniform2d = (PFNGLPROGRAMUNIFORM2DPROC)load("glProgramUniform2d"); + glad_glProgramUniform2dv = (PFNGLPROGRAMUNIFORM2DVPROC)load("glProgramUniform2dv"); + glad_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC)load("glProgramUniform2ui"); + glad_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC)load("glProgramUniform2uiv"); + glad_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC)load("glProgramUniform3i"); + glad_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC)load("glProgramUniform3iv"); + glad_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC)load("glProgramUniform3f"); + glad_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC)load("glProgramUniform3fv"); + glad_glProgramUniform3d = (PFNGLPROGRAMUNIFORM3DPROC)load("glProgramUniform3d"); + glad_glProgramUniform3dv = (PFNGLPROGRAMUNIFORM3DVPROC)load("glProgramUniform3dv"); + glad_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC)load("glProgramUniform3ui"); + glad_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC)load("glProgramUniform3uiv"); + glad_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC)load("glProgramUniform4i"); + glad_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC)load("glProgramUniform4iv"); + glad_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC)load("glProgramUniform4f"); + glad_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC)load("glProgramUniform4fv"); + glad_glProgramUniform4d = (PFNGLPROGRAMUNIFORM4DPROC)load("glProgramUniform4d"); + glad_glProgramUniform4dv = (PFNGLPROGRAMUNIFORM4DVPROC)load("glProgramUniform4dv"); + glad_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC)load("glProgramUniform4ui"); + glad_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC)load("glProgramUniform4uiv"); + glad_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC)load("glProgramUniformMatrix2fv"); + glad_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC)load("glProgramUniformMatrix3fv"); + glad_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC)load("glProgramUniformMatrix4fv"); + glad_glProgramUniformMatrix2dv = (PFNGLPROGRAMUNIFORMMATRIX2DVPROC)load("glProgramUniformMatrix2dv"); + glad_glProgramUniformMatrix3dv = (PFNGLPROGRAMUNIFORMMATRIX3DVPROC)load("glProgramUniformMatrix3dv"); + glad_glProgramUniformMatrix4dv = (PFNGLPROGRAMUNIFORMMATRIX4DVPROC)load("glProgramUniformMatrix4dv"); + glad_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)load("glProgramUniformMatrix2x3fv"); + glad_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)load("glProgramUniformMatrix3x2fv"); + glad_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)load("glProgramUniformMatrix2x4fv"); + glad_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)load("glProgramUniformMatrix4x2fv"); + glad_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)load("glProgramUniformMatrix3x4fv"); + glad_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)load("glProgramUniformMatrix4x3fv"); + glad_glProgramUniformMatrix2x3dv = (PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)load("glProgramUniformMatrix2x3dv"); + glad_glProgramUniformMatrix3x2dv = (PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)load("glProgramUniformMatrix3x2dv"); + glad_glProgramUniformMatrix2x4dv = (PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)load("glProgramUniformMatrix2x4dv"); + glad_glProgramUniformMatrix4x2dv = (PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)load("glProgramUniformMatrix4x2dv"); + glad_glProgramUniformMatrix3x4dv = (PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)load("glProgramUniformMatrix3x4dv"); + glad_glProgramUniformMatrix4x3dv = (PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)load("glProgramUniformMatrix4x3dv"); + glad_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC)load("glValidateProgramPipeline"); + glad_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC)load("glGetProgramPipelineInfoLog"); +} +static void load_GL_EXT_depth_bounds_test(GLADloadproc load) { + if(!GLAD_GL_EXT_depth_bounds_test) return; + glad_glDepthBoundsEXT = (PFNGLDEPTHBOUNDSEXTPROC)load("glDepthBoundsEXT"); +} +static void load_GL_NV_video_capture(GLADloadproc load) { + if(!GLAD_GL_NV_video_capture) return; + glad_glBeginVideoCaptureNV = (PFNGLBEGINVIDEOCAPTURENVPROC)load("glBeginVideoCaptureNV"); + glad_glBindVideoCaptureStreamBufferNV = (PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC)load("glBindVideoCaptureStreamBufferNV"); + glad_glBindVideoCaptureStreamTextureNV = (PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC)load("glBindVideoCaptureStreamTextureNV"); + glad_glEndVideoCaptureNV = (PFNGLENDVIDEOCAPTURENVPROC)load("glEndVideoCaptureNV"); + glad_glGetVideoCaptureivNV = (PFNGLGETVIDEOCAPTUREIVNVPROC)load("glGetVideoCaptureivNV"); + glad_glGetVideoCaptureStreamivNV = (PFNGLGETVIDEOCAPTURESTREAMIVNVPROC)load("glGetVideoCaptureStreamivNV"); + glad_glGetVideoCaptureStreamfvNV = (PFNGLGETVIDEOCAPTURESTREAMFVNVPROC)load("glGetVideoCaptureStreamfvNV"); + glad_glGetVideoCaptureStreamdvNV = (PFNGLGETVIDEOCAPTURESTREAMDVNVPROC)load("glGetVideoCaptureStreamdvNV"); + glad_glVideoCaptureNV = (PFNGLVIDEOCAPTURENVPROC)load("glVideoCaptureNV"); + glad_glVideoCaptureStreamParameterivNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC)load("glVideoCaptureStreamParameterivNV"); + glad_glVideoCaptureStreamParameterfvNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC)load("glVideoCaptureStreamParameterfvNV"); + glad_glVideoCaptureStreamParameterdvNV = (PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC)load("glVideoCaptureStreamParameterdvNV"); +} +static void load_GL_ARB_sampler_objects(GLADloadproc load) { + if(!GLAD_GL_ARB_sampler_objects) return; + glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers"); + glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers"); + glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler"); + glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler"); + glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri"); + glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv"); + glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf"); + glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv"); + glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load("glSamplerParameterIiv"); + glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load("glSamplerParameterIuiv"); + glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv"); + glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load("glGetSamplerParameterIiv"); + glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv"); + glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load("glGetSamplerParameterIuiv"); +} +static void load_GL_ARB_matrix_palette(GLADloadproc load) { + if(!GLAD_GL_ARB_matrix_palette) return; + glad_glCurrentPaletteMatrixARB = (PFNGLCURRENTPALETTEMATRIXARBPROC)load("glCurrentPaletteMatrixARB"); + glad_glMatrixIndexubvARB = (PFNGLMATRIXINDEXUBVARBPROC)load("glMatrixIndexubvARB"); + glad_glMatrixIndexusvARB = (PFNGLMATRIXINDEXUSVARBPROC)load("glMatrixIndexusvARB"); + glad_glMatrixIndexuivARB = (PFNGLMATRIXINDEXUIVARBPROC)load("glMatrixIndexuivARB"); + glad_glMatrixIndexPointerARB = (PFNGLMATRIXINDEXPOINTERARBPROC)load("glMatrixIndexPointerARB"); +} +static void load_GL_SGIS_texture_color_mask(GLADloadproc load) { + if(!GLAD_GL_SGIS_texture_color_mask) return; + glad_glTextureColorMaskSGIS = (PFNGLTEXTURECOLORMASKSGISPROC)load("glTextureColorMaskSGIS"); +} +static void load_GL_EXT_coordinate_frame(GLADloadproc load) { + if(!GLAD_GL_EXT_coordinate_frame) return; + glad_glTangent3bEXT = (PFNGLTANGENT3BEXTPROC)load("glTangent3bEXT"); + glad_glTangent3bvEXT = (PFNGLTANGENT3BVEXTPROC)load("glTangent3bvEXT"); + glad_glTangent3dEXT = (PFNGLTANGENT3DEXTPROC)load("glTangent3dEXT"); + glad_glTangent3dvEXT = (PFNGLTANGENT3DVEXTPROC)load("glTangent3dvEXT"); + glad_glTangent3fEXT = (PFNGLTANGENT3FEXTPROC)load("glTangent3fEXT"); + glad_glTangent3fvEXT = (PFNGLTANGENT3FVEXTPROC)load("glTangent3fvEXT"); + glad_glTangent3iEXT = (PFNGLTANGENT3IEXTPROC)load("glTangent3iEXT"); + glad_glTangent3ivEXT = (PFNGLTANGENT3IVEXTPROC)load("glTangent3ivEXT"); + glad_glTangent3sEXT = (PFNGLTANGENT3SEXTPROC)load("glTangent3sEXT"); + glad_glTangent3svEXT = (PFNGLTANGENT3SVEXTPROC)load("glTangent3svEXT"); + glad_glBinormal3bEXT = (PFNGLBINORMAL3BEXTPROC)load("glBinormal3bEXT"); + glad_glBinormal3bvEXT = (PFNGLBINORMAL3BVEXTPROC)load("glBinormal3bvEXT"); + glad_glBinormal3dEXT = (PFNGLBINORMAL3DEXTPROC)load("glBinormal3dEXT"); + glad_glBinormal3dvEXT = (PFNGLBINORMAL3DVEXTPROC)load("glBinormal3dvEXT"); + glad_glBinormal3fEXT = (PFNGLBINORMAL3FEXTPROC)load("glBinormal3fEXT"); + glad_glBinormal3fvEXT = (PFNGLBINORMAL3FVEXTPROC)load("glBinormal3fvEXT"); + glad_glBinormal3iEXT = (PFNGLBINORMAL3IEXTPROC)load("glBinormal3iEXT"); + glad_glBinormal3ivEXT = (PFNGLBINORMAL3IVEXTPROC)load("glBinormal3ivEXT"); + glad_glBinormal3sEXT = (PFNGLBINORMAL3SEXTPROC)load("glBinormal3sEXT"); + glad_glBinormal3svEXT = (PFNGLBINORMAL3SVEXTPROC)load("glBinormal3svEXT"); + glad_glTangentPointerEXT = (PFNGLTANGENTPOINTEREXTPROC)load("glTangentPointerEXT"); + glad_glBinormalPointerEXT = (PFNGLBINORMALPOINTEREXTPROC)load("glBinormalPointerEXT"); +} +static void load_GL_ARB_texture_compression(GLADloadproc load) { + if(!GLAD_GL_ARB_texture_compression) return; + glad_glCompressedTexImage3DARB = (PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)load("glCompressedTexImage3DARB"); + glad_glCompressedTexImage2DARB = (PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)load("glCompressedTexImage2DARB"); + glad_glCompressedTexImage1DARB = (PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)load("glCompressedTexImage1DARB"); + glad_glCompressedTexSubImage3DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)load("glCompressedTexSubImage3DARB"); + glad_glCompressedTexSubImage2DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)load("glCompressedTexSubImage2DARB"); + glad_glCompressedTexSubImage1DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)load("glCompressedTexSubImage1DARB"); + glad_glGetCompressedTexImageARB = (PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)load("glGetCompressedTexImageARB"); +} +static void load_GL_ARB_shader_subroutine(GLADloadproc load) { + if(!GLAD_GL_ARB_shader_subroutine) return; + glad_glGetSubroutineUniformLocation = (PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)load("glGetSubroutineUniformLocation"); + glad_glGetSubroutineIndex = (PFNGLGETSUBROUTINEINDEXPROC)load("glGetSubroutineIndex"); + glad_glGetActiveSubroutineUniformiv = (PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)load("glGetActiveSubroutineUniformiv"); + glad_glGetActiveSubroutineUniformName = (PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)load("glGetActiveSubroutineUniformName"); + glad_glGetActiveSubroutineName = (PFNGLGETACTIVESUBROUTINENAMEPROC)load("glGetActiveSubroutineName"); + glad_glUniformSubroutinesuiv = (PFNGLUNIFORMSUBROUTINESUIVPROC)load("glUniformSubroutinesuiv"); + glad_glGetUniformSubroutineuiv = (PFNGLGETUNIFORMSUBROUTINEUIVPROC)load("glGetUniformSubroutineuiv"); + glad_glGetProgramStageiv = (PFNGLGETPROGRAMSTAGEIVPROC)load("glGetProgramStageiv"); +} +static void load_GL_ARB_texture_storage_multisample(GLADloadproc load) { + if(!GLAD_GL_ARB_texture_storage_multisample) return; + glad_glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC)load("glTexStorage2DMultisample"); + glad_glTexStorage3DMultisample = (PFNGLTEXSTORAGE3DMULTISAMPLEPROC)load("glTexStorage3DMultisample"); +} +static void load_GL_EXT_vertex_attrib_64bit(GLADloadproc load) { + if(!GLAD_GL_EXT_vertex_attrib_64bit) return; + glad_glVertexAttribL1dEXT = (PFNGLVERTEXATTRIBL1DEXTPROC)load("glVertexAttribL1dEXT"); + glad_glVertexAttribL2dEXT = (PFNGLVERTEXATTRIBL2DEXTPROC)load("glVertexAttribL2dEXT"); + glad_glVertexAttribL3dEXT = (PFNGLVERTEXATTRIBL3DEXTPROC)load("glVertexAttribL3dEXT"); + glad_glVertexAttribL4dEXT = (PFNGLVERTEXATTRIBL4DEXTPROC)load("glVertexAttribL4dEXT"); + glad_glVertexAttribL1dvEXT = (PFNGLVERTEXATTRIBL1DVEXTPROC)load("glVertexAttribL1dvEXT"); + glad_glVertexAttribL2dvEXT = (PFNGLVERTEXATTRIBL2DVEXTPROC)load("glVertexAttribL2dvEXT"); + glad_glVertexAttribL3dvEXT = (PFNGLVERTEXATTRIBL3DVEXTPROC)load("glVertexAttribL3dvEXT"); + glad_glVertexAttribL4dvEXT = (PFNGLVERTEXATTRIBL4DVEXTPROC)load("glVertexAttribL4dvEXT"); + glad_glVertexAttribLPointerEXT = (PFNGLVERTEXATTRIBLPOINTEREXTPROC)load("glVertexAttribLPointerEXT"); + glad_glGetVertexAttribLdvEXT = (PFNGLGETVERTEXATTRIBLDVEXTPROC)load("glGetVertexAttribLdvEXT"); +} +static void load_GL_OES_query_matrix(GLADloadproc load) { + if(!GLAD_GL_OES_query_matrix) return; + glad_glQueryMatrixxOES = (PFNGLQUERYMATRIXXOESPROC)load("glQueryMatrixxOES"); +} +static void load_GL_MESA_window_pos(GLADloadproc load) { + if(!GLAD_GL_MESA_window_pos) return; + glad_glWindowPos2dMESA = (PFNGLWINDOWPOS2DMESAPROC)load("glWindowPos2dMESA"); + glad_glWindowPos2dvMESA = (PFNGLWINDOWPOS2DVMESAPROC)load("glWindowPos2dvMESA"); + glad_glWindowPos2fMESA = (PFNGLWINDOWPOS2FMESAPROC)load("glWindowPos2fMESA"); + glad_glWindowPos2fvMESA = (PFNGLWINDOWPOS2FVMESAPROC)load("glWindowPos2fvMESA"); + glad_glWindowPos2iMESA = (PFNGLWINDOWPOS2IMESAPROC)load("glWindowPos2iMESA"); + glad_glWindowPos2ivMESA = (PFNGLWINDOWPOS2IVMESAPROC)load("glWindowPos2ivMESA"); + glad_glWindowPos2sMESA = (PFNGLWINDOWPOS2SMESAPROC)load("glWindowPos2sMESA"); + glad_glWindowPos2svMESA = (PFNGLWINDOWPOS2SVMESAPROC)load("glWindowPos2svMESA"); + glad_glWindowPos3dMESA = (PFNGLWINDOWPOS3DMESAPROC)load("glWindowPos3dMESA"); + glad_glWindowPos3dvMESA = (PFNGLWINDOWPOS3DVMESAPROC)load("glWindowPos3dvMESA"); + glad_glWindowPos3fMESA = (PFNGLWINDOWPOS3FMESAPROC)load("glWindowPos3fMESA"); + glad_glWindowPos3fvMESA = (PFNGLWINDOWPOS3FVMESAPROC)load("glWindowPos3fvMESA"); + glad_glWindowPos3iMESA = (PFNGLWINDOWPOS3IMESAPROC)load("glWindowPos3iMESA"); + glad_glWindowPos3ivMESA = (PFNGLWINDOWPOS3IVMESAPROC)load("glWindowPos3ivMESA"); + glad_glWindowPos3sMESA = (PFNGLWINDOWPOS3SMESAPROC)load("glWindowPos3sMESA"); + glad_glWindowPos3svMESA = (PFNGLWINDOWPOS3SVMESAPROC)load("glWindowPos3svMESA"); + glad_glWindowPos4dMESA = (PFNGLWINDOWPOS4DMESAPROC)load("glWindowPos4dMESA"); + glad_glWindowPos4dvMESA = (PFNGLWINDOWPOS4DVMESAPROC)load("glWindowPos4dvMESA"); + glad_glWindowPos4fMESA = (PFNGLWINDOWPOS4FMESAPROC)load("glWindowPos4fMESA"); + glad_glWindowPos4fvMESA = (PFNGLWINDOWPOS4FVMESAPROC)load("glWindowPos4fvMESA"); + glad_glWindowPos4iMESA = (PFNGLWINDOWPOS4IMESAPROC)load("glWindowPos4iMESA"); + glad_glWindowPos4ivMESA = (PFNGLWINDOWPOS4IVMESAPROC)load("glWindowPos4ivMESA"); + glad_glWindowPos4sMESA = (PFNGLWINDOWPOS4SMESAPROC)load("glWindowPos4sMESA"); + glad_glWindowPos4svMESA = (PFNGLWINDOWPOS4SVMESAPROC)load("glWindowPos4svMESA"); +} +static void load_GL_ARB_copy_buffer(GLADloadproc load) { + if(!GLAD_GL_ARB_copy_buffer) return; + glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData"); +} +static void load_GL_APPLE_object_purgeable(GLADloadproc load) { + if(!GLAD_GL_APPLE_object_purgeable) return; + glad_glObjectPurgeableAPPLE = (PFNGLOBJECTPURGEABLEAPPLEPROC)load("glObjectPurgeableAPPLE"); + glad_glObjectUnpurgeableAPPLE = (PFNGLOBJECTUNPURGEABLEAPPLEPROC)load("glObjectUnpurgeableAPPLE"); + glad_glGetObjectParameterivAPPLE = (PFNGLGETOBJECTPARAMETERIVAPPLEPROC)load("glGetObjectParameterivAPPLE"); +} +static void load_GL_ARB_occlusion_query(GLADloadproc load) { + if(!GLAD_GL_ARB_occlusion_query) return; + glad_glGenQueriesARB = (PFNGLGENQUERIESARBPROC)load("glGenQueriesARB"); + glad_glDeleteQueriesARB = (PFNGLDELETEQUERIESARBPROC)load("glDeleteQueriesARB"); + glad_glIsQueryARB = (PFNGLISQUERYARBPROC)load("glIsQueryARB"); + glad_glBeginQueryARB = (PFNGLBEGINQUERYARBPROC)load("glBeginQueryARB"); + glad_glEndQueryARB = (PFNGLENDQUERYARBPROC)load("glEndQueryARB"); + glad_glGetQueryivARB = (PFNGLGETQUERYIVARBPROC)load("glGetQueryivARB"); + glad_glGetQueryObjectivARB = (PFNGLGETQUERYOBJECTIVARBPROC)load("glGetQueryObjectivARB"); + glad_glGetQueryObjectuivARB = (PFNGLGETQUERYOBJECTUIVARBPROC)load("glGetQueryObjectuivARB"); +} +static void load_GL_SGI_color_table(GLADloadproc load) { + if(!GLAD_GL_SGI_color_table) return; + glad_glColorTableSGI = (PFNGLCOLORTABLESGIPROC)load("glColorTableSGI"); + glad_glColorTableParameterfvSGI = (PFNGLCOLORTABLEPARAMETERFVSGIPROC)load("glColorTableParameterfvSGI"); + glad_glColorTableParameterivSGI = (PFNGLCOLORTABLEPARAMETERIVSGIPROC)load("glColorTableParameterivSGI"); + glad_glCopyColorTableSGI = (PFNGLCOPYCOLORTABLESGIPROC)load("glCopyColorTableSGI"); + glad_glGetColorTableSGI = (PFNGLGETCOLORTABLESGIPROC)load("glGetColorTableSGI"); + glad_glGetColorTableParameterfvSGI = (PFNGLGETCOLORTABLEPARAMETERFVSGIPROC)load("glGetColorTableParameterfvSGI"); + glad_glGetColorTableParameterivSGI = (PFNGLGETCOLORTABLEPARAMETERIVSGIPROC)load("glGetColorTableParameterivSGI"); +} +static void load_GL_EXT_gpu_shader4(GLADloadproc load) { + if(!GLAD_GL_EXT_gpu_shader4) return; + glad_glGetUniformuivEXT = (PFNGLGETUNIFORMUIVEXTPROC)load("glGetUniformuivEXT"); + glad_glBindFragDataLocationEXT = (PFNGLBINDFRAGDATALOCATIONEXTPROC)load("glBindFragDataLocationEXT"); + glad_glGetFragDataLocationEXT = (PFNGLGETFRAGDATALOCATIONEXTPROC)load("glGetFragDataLocationEXT"); + glad_glUniform1uiEXT = (PFNGLUNIFORM1UIEXTPROC)load("glUniform1uiEXT"); + glad_glUniform2uiEXT = (PFNGLUNIFORM2UIEXTPROC)load("glUniform2uiEXT"); + glad_glUniform3uiEXT = (PFNGLUNIFORM3UIEXTPROC)load("glUniform3uiEXT"); + glad_glUniform4uiEXT = (PFNGLUNIFORM4UIEXTPROC)load("glUniform4uiEXT"); + glad_glUniform1uivEXT = (PFNGLUNIFORM1UIVEXTPROC)load("glUniform1uivEXT"); + glad_glUniform2uivEXT = (PFNGLUNIFORM2UIVEXTPROC)load("glUniform2uivEXT"); + glad_glUniform3uivEXT = (PFNGLUNIFORM3UIVEXTPROC)load("glUniform3uivEXT"); + glad_glUniform4uivEXT = (PFNGLUNIFORM4UIVEXTPROC)load("glUniform4uivEXT"); +} +static void load_GL_NV_geometry_program4(GLADloadproc load) { + if(!GLAD_GL_NV_geometry_program4) return; + glad_glProgramVertexLimitNV = (PFNGLPROGRAMVERTEXLIMITNVPROC)load("glProgramVertexLimitNV"); + glad_glFramebufferTextureEXT = (PFNGLFRAMEBUFFERTEXTUREEXTPROC)load("glFramebufferTextureEXT"); + glad_glFramebufferTextureLayerEXT = (PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)load("glFramebufferTextureLayerEXT"); + glad_glFramebufferTextureFaceEXT = (PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC)load("glFramebufferTextureFaceEXT"); +} +static void load_GL_AMD_debug_output(GLADloadproc load) { + if(!GLAD_GL_AMD_debug_output) return; + glad_glDebugMessageEnableAMD = (PFNGLDEBUGMESSAGEENABLEAMDPROC)load("glDebugMessageEnableAMD"); + glad_glDebugMessageInsertAMD = (PFNGLDEBUGMESSAGEINSERTAMDPROC)load("glDebugMessageInsertAMD"); + glad_glDebugMessageCallbackAMD = (PFNGLDEBUGMESSAGECALLBACKAMDPROC)load("glDebugMessageCallbackAMD"); + glad_glGetDebugMessageLogAMD = (PFNGLGETDEBUGMESSAGELOGAMDPROC)load("glGetDebugMessageLogAMD"); +} +static void load_GL_ARB_multitexture(GLADloadproc load) { + if(!GLAD_GL_ARB_multitexture) return; + glad_glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC)load("glActiveTextureARB"); + glad_glClientActiveTextureARB = (PFNGLCLIENTACTIVETEXTUREARBPROC)load("glClientActiveTextureARB"); + glad_glMultiTexCoord1dARB = (PFNGLMULTITEXCOORD1DARBPROC)load("glMultiTexCoord1dARB"); + glad_glMultiTexCoord1dvARB = (PFNGLMULTITEXCOORD1DVARBPROC)load("glMultiTexCoord1dvARB"); + glad_glMultiTexCoord1fARB = (PFNGLMULTITEXCOORD1FARBPROC)load("glMultiTexCoord1fARB"); + glad_glMultiTexCoord1fvARB = (PFNGLMULTITEXCOORD1FVARBPROC)load("glMultiTexCoord1fvARB"); + glad_glMultiTexCoord1iARB = (PFNGLMULTITEXCOORD1IARBPROC)load("glMultiTexCoord1iARB"); + glad_glMultiTexCoord1ivARB = (PFNGLMULTITEXCOORD1IVARBPROC)load("glMultiTexCoord1ivARB"); + glad_glMultiTexCoord1sARB = (PFNGLMULTITEXCOORD1SARBPROC)load("glMultiTexCoord1sARB"); + glad_glMultiTexCoord1svARB = (PFNGLMULTITEXCOORD1SVARBPROC)load("glMultiTexCoord1svARB"); + glad_glMultiTexCoord2dARB = (PFNGLMULTITEXCOORD2DARBPROC)load("glMultiTexCoord2dARB"); + glad_glMultiTexCoord2dvARB = (PFNGLMULTITEXCOORD2DVARBPROC)load("glMultiTexCoord2dvARB"); + glad_glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC)load("glMultiTexCoord2fARB"); + glad_glMultiTexCoord2fvARB = (PFNGLMULTITEXCOORD2FVARBPROC)load("glMultiTexCoord2fvARB"); + glad_glMultiTexCoord2iARB = (PFNGLMULTITEXCOORD2IARBPROC)load("glMultiTexCoord2iARB"); + glad_glMultiTexCoord2ivARB = (PFNGLMULTITEXCOORD2IVARBPROC)load("glMultiTexCoord2ivARB"); + glad_glMultiTexCoord2sARB = (PFNGLMULTITEXCOORD2SARBPROC)load("glMultiTexCoord2sARB"); + glad_glMultiTexCoord2svARB = (PFNGLMULTITEXCOORD2SVARBPROC)load("glMultiTexCoord2svARB"); + glad_glMultiTexCoord3dARB = (PFNGLMULTITEXCOORD3DARBPROC)load("glMultiTexCoord3dARB"); + glad_glMultiTexCoord3dvARB = (PFNGLMULTITEXCOORD3DVARBPROC)load("glMultiTexCoord3dvARB"); + glad_glMultiTexCoord3fARB = (PFNGLMULTITEXCOORD3FARBPROC)load("glMultiTexCoord3fARB"); + glad_glMultiTexCoord3fvARB = (PFNGLMULTITEXCOORD3FVARBPROC)load("glMultiTexCoord3fvARB"); + glad_glMultiTexCoord3iARB = (PFNGLMULTITEXCOORD3IARBPROC)load("glMultiTexCoord3iARB"); + glad_glMultiTexCoord3ivARB = (PFNGLMULTITEXCOORD3IVARBPROC)load("glMultiTexCoord3ivARB"); + glad_glMultiTexCoord3sARB = (PFNGLMULTITEXCOORD3SARBPROC)load("glMultiTexCoord3sARB"); + glad_glMultiTexCoord3svARB = (PFNGLMULTITEXCOORD3SVARBPROC)load("glMultiTexCoord3svARB"); + glad_glMultiTexCoord4dARB = (PFNGLMULTITEXCOORD4DARBPROC)load("glMultiTexCoord4dARB"); + glad_glMultiTexCoord4dvARB = (PFNGLMULTITEXCOORD4DVARBPROC)load("glMultiTexCoord4dvARB"); + glad_glMultiTexCoord4fARB = (PFNGLMULTITEXCOORD4FARBPROC)load("glMultiTexCoord4fARB"); + glad_glMultiTexCoord4fvARB = (PFNGLMULTITEXCOORD4FVARBPROC)load("glMultiTexCoord4fvARB"); + glad_glMultiTexCoord4iARB = (PFNGLMULTITEXCOORD4IARBPROC)load("glMultiTexCoord4iARB"); + glad_glMultiTexCoord4ivARB = (PFNGLMULTITEXCOORD4IVARBPROC)load("glMultiTexCoord4ivARB"); + glad_glMultiTexCoord4sARB = (PFNGLMULTITEXCOORD4SARBPROC)load("glMultiTexCoord4sARB"); + glad_glMultiTexCoord4svARB = (PFNGLMULTITEXCOORD4SVARBPROC)load("glMultiTexCoord4svARB"); +} +static void load_GL_SGIX_polynomial_ffd(GLADloadproc load) { + if(!GLAD_GL_SGIX_polynomial_ffd) return; + glad_glDeformationMap3dSGIX = (PFNGLDEFORMATIONMAP3DSGIXPROC)load("glDeformationMap3dSGIX"); + glad_glDeformationMap3fSGIX = (PFNGLDEFORMATIONMAP3FSGIXPROC)load("glDeformationMap3fSGIX"); + glad_glDeformSGIX = (PFNGLDEFORMSGIXPROC)load("glDeformSGIX"); + glad_glLoadIdentityDeformationMapSGIX = (PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC)load("glLoadIdentityDeformationMapSGIX"); +} +static void load_GL_EXT_provoking_vertex(GLADloadproc load) { + if(!GLAD_GL_EXT_provoking_vertex) return; + glad_glProvokingVertexEXT = (PFNGLPROVOKINGVERTEXEXTPROC)load("glProvokingVertexEXT"); +} +static void load_GL_ARB_point_parameters(GLADloadproc load) { + if(!GLAD_GL_ARB_point_parameters) return; + glad_glPointParameterfARB = (PFNGLPOINTPARAMETERFARBPROC)load("glPointParameterfARB"); + glad_glPointParameterfvARB = (PFNGLPOINTPARAMETERFVARBPROC)load("glPointParameterfvARB"); +} +static void load_GL_ARB_shader_image_load_store(GLADloadproc load) { + if(!GLAD_GL_ARB_shader_image_load_store) return; + glad_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC)load("glBindImageTexture"); + glad_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC)load("glMemoryBarrier"); +} +static void load_GL_ARB_texture_barrier(GLADloadproc load) { + if(!GLAD_GL_ARB_texture_barrier) return; + glad_glTextureBarrier = (PFNGLTEXTUREBARRIERPROC)load("glTextureBarrier"); +} +static void load_GL_NV_bindless_multi_draw_indirect(GLADloadproc load) { + if(!GLAD_GL_NV_bindless_multi_draw_indirect) return; + glad_glMultiDrawArraysIndirectBindlessNV = (PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC)load("glMultiDrawArraysIndirectBindlessNV"); + glad_glMultiDrawElementsIndirectBindlessNV = (PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC)load("glMultiDrawElementsIndirectBindlessNV"); +} +static void load_GL_EXT_transform_feedback(GLADloadproc load) { + if(!GLAD_GL_EXT_transform_feedback) return; + glad_glBeginTransformFeedbackEXT = (PFNGLBEGINTRANSFORMFEEDBACKEXTPROC)load("glBeginTransformFeedbackEXT"); + glad_glEndTransformFeedbackEXT = (PFNGLENDTRANSFORMFEEDBACKEXTPROC)load("glEndTransformFeedbackEXT"); + glad_glBindBufferRangeEXT = (PFNGLBINDBUFFERRANGEEXTPROC)load("glBindBufferRangeEXT"); + glad_glBindBufferOffsetEXT = (PFNGLBINDBUFFEROFFSETEXTPROC)load("glBindBufferOffsetEXT"); + glad_glBindBufferBaseEXT = (PFNGLBINDBUFFERBASEEXTPROC)load("glBindBufferBaseEXT"); + glad_glTransformFeedbackVaryingsEXT = (PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC)load("glTransformFeedbackVaryingsEXT"); + glad_glGetTransformFeedbackVaryingEXT = (PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC)load("glGetTransformFeedbackVaryingEXT"); +} +static void load_GL_NV_gpu_program4(GLADloadproc load) { + if(!GLAD_GL_NV_gpu_program4) return; + glad_glProgramLocalParameterI4iNV = (PFNGLPROGRAMLOCALPARAMETERI4INVPROC)load("glProgramLocalParameterI4iNV"); + glad_glProgramLocalParameterI4ivNV = (PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC)load("glProgramLocalParameterI4ivNV"); + glad_glProgramLocalParametersI4ivNV = (PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC)load("glProgramLocalParametersI4ivNV"); + glad_glProgramLocalParameterI4uiNV = (PFNGLPROGRAMLOCALPARAMETERI4UINVPROC)load("glProgramLocalParameterI4uiNV"); + glad_glProgramLocalParameterI4uivNV = (PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC)load("glProgramLocalParameterI4uivNV"); + glad_glProgramLocalParametersI4uivNV = (PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC)load("glProgramLocalParametersI4uivNV"); + glad_glProgramEnvParameterI4iNV = (PFNGLPROGRAMENVPARAMETERI4INVPROC)load("glProgramEnvParameterI4iNV"); + glad_glProgramEnvParameterI4ivNV = (PFNGLPROGRAMENVPARAMETERI4IVNVPROC)load("glProgramEnvParameterI4ivNV"); + glad_glProgramEnvParametersI4ivNV = (PFNGLPROGRAMENVPARAMETERSI4IVNVPROC)load("glProgramEnvParametersI4ivNV"); + glad_glProgramEnvParameterI4uiNV = (PFNGLPROGRAMENVPARAMETERI4UINVPROC)load("glProgramEnvParameterI4uiNV"); + glad_glProgramEnvParameterI4uivNV = (PFNGLPROGRAMENVPARAMETERI4UIVNVPROC)load("glProgramEnvParameterI4uivNV"); + glad_glProgramEnvParametersI4uivNV = (PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC)load("glProgramEnvParametersI4uivNV"); + glad_glGetProgramLocalParameterIivNV = (PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC)load("glGetProgramLocalParameterIivNV"); + glad_glGetProgramLocalParameterIuivNV = (PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC)load("glGetProgramLocalParameterIuivNV"); + glad_glGetProgramEnvParameterIivNV = (PFNGLGETPROGRAMENVPARAMETERIIVNVPROC)load("glGetProgramEnvParameterIivNV"); + glad_glGetProgramEnvParameterIuivNV = (PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC)load("glGetProgramEnvParameterIuivNV"); +} +static void load_GL_NV_gpu_program5(GLADloadproc load) { + if(!GLAD_GL_NV_gpu_program5) return; + glad_glProgramSubroutineParametersuivNV = (PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC)load("glProgramSubroutineParametersuivNV"); + glad_glGetProgramSubroutineParameteruivNV = (PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC)load("glGetProgramSubroutineParameteruivNV"); +} +static void load_GL_ARB_geometry_shader4(GLADloadproc load) { + if(!GLAD_GL_ARB_geometry_shader4) return; + glad_glProgramParameteriARB = (PFNGLPROGRAMPARAMETERIARBPROC)load("glProgramParameteriARB"); + glad_glFramebufferTextureARB = (PFNGLFRAMEBUFFERTEXTUREARBPROC)load("glFramebufferTextureARB"); + glad_glFramebufferTextureLayerARB = (PFNGLFRAMEBUFFERTEXTURELAYERARBPROC)load("glFramebufferTextureLayerARB"); + glad_glFramebufferTextureFaceARB = (PFNGLFRAMEBUFFERTEXTUREFACEARBPROC)load("glFramebufferTextureFaceARB"); +} +static void load_GL_NV_conservative_raster(GLADloadproc load) { + if(!GLAD_GL_NV_conservative_raster) return; + glad_glSubpixelPrecisionBiasNV = (PFNGLSUBPIXELPRECISIONBIASNVPROC)load("glSubpixelPrecisionBiasNV"); +} +static void load_GL_SGIX_sprite(GLADloadproc load) { + if(!GLAD_GL_SGIX_sprite) return; + glad_glSpriteParameterfSGIX = (PFNGLSPRITEPARAMETERFSGIXPROC)load("glSpriteParameterfSGIX"); + glad_glSpriteParameterfvSGIX = (PFNGLSPRITEPARAMETERFVSGIXPROC)load("glSpriteParameterfvSGIX"); + glad_glSpriteParameteriSGIX = (PFNGLSPRITEPARAMETERISGIXPROC)load("glSpriteParameteriSGIX"); + glad_glSpriteParameterivSGIX = (PFNGLSPRITEPARAMETERIVSGIXPROC)load("glSpriteParameterivSGIX"); +} +static void load_GL_ARB_get_program_binary(GLADloadproc load) { + if(!GLAD_GL_ARB_get_program_binary) return; + glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)load("glGetProgramBinary"); + glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC)load("glProgramBinary"); + glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)load("glProgramParameteri"); +} +static void load_GL_AMD_occlusion_query_event(GLADloadproc load) { + if(!GLAD_GL_AMD_occlusion_query_event) return; + glad_glQueryObjectParameteruiAMD = (PFNGLQUERYOBJECTPARAMETERUIAMDPROC)load("glQueryObjectParameteruiAMD"); +} +static void load_GL_SGIS_multisample(GLADloadproc load) { + if(!GLAD_GL_SGIS_multisample) return; + glad_glSampleMaskSGIS = (PFNGLSAMPLEMASKSGISPROC)load("glSampleMaskSGIS"); + glad_glSamplePatternSGIS = (PFNGLSAMPLEPATTERNSGISPROC)load("glSamplePatternSGIS"); +} +static void load_GL_EXT_framebuffer_object(GLADloadproc load) { + if(!GLAD_GL_EXT_framebuffer_object) return; + glad_glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC)load("glIsRenderbufferEXT"); + glad_glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC)load("glBindRenderbufferEXT"); + glad_glDeleteRenderbuffersEXT = (PFNGLDELETERENDERBUFFERSEXTPROC)load("glDeleteRenderbuffersEXT"); + glad_glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC)load("glGenRenderbuffersEXT"); + glad_glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC)load("glRenderbufferStorageEXT"); + glad_glGetRenderbufferParameterivEXT = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)load("glGetRenderbufferParameterivEXT"); + glad_glIsFramebufferEXT = (PFNGLISFRAMEBUFFEREXTPROC)load("glIsFramebufferEXT"); + glad_glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC)load("glBindFramebufferEXT"); + glad_glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC)load("glDeleteFramebuffersEXT"); + glad_glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC)load("glGenFramebuffersEXT"); + glad_glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)load("glCheckFramebufferStatusEXT"); + glad_glFramebufferTexture1DEXT = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)load("glFramebufferTexture1DEXT"); + glad_glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)load("glFramebufferTexture2DEXT"); + glad_glFramebufferTexture3DEXT = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)load("glFramebufferTexture3DEXT"); + glad_glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)load("glFramebufferRenderbufferEXT"); + glad_glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)load("glGetFramebufferAttachmentParameterivEXT"); + glad_glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC)load("glGenerateMipmapEXT"); +} +static void load_GL_APPLE_vertex_array_range(GLADloadproc load) { + if(!GLAD_GL_APPLE_vertex_array_range) return; + glad_glVertexArrayRangeAPPLE = (PFNGLVERTEXARRAYRANGEAPPLEPROC)load("glVertexArrayRangeAPPLE"); + glad_glFlushVertexArrayRangeAPPLE = (PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC)load("glFlushVertexArrayRangeAPPLE"); + glad_glVertexArrayParameteriAPPLE = (PFNGLVERTEXARRAYPARAMETERIAPPLEPROC)load("glVertexArrayParameteriAPPLE"); +} +static void load_GL_NV_register_combiners(GLADloadproc load) { + if(!GLAD_GL_NV_register_combiners) return; + glad_glCombinerParameterfvNV = (PFNGLCOMBINERPARAMETERFVNVPROC)load("glCombinerParameterfvNV"); + glad_glCombinerParameterfNV = (PFNGLCOMBINERPARAMETERFNVPROC)load("glCombinerParameterfNV"); + glad_glCombinerParameterivNV = (PFNGLCOMBINERPARAMETERIVNVPROC)load("glCombinerParameterivNV"); + glad_glCombinerParameteriNV = (PFNGLCOMBINERPARAMETERINVPROC)load("glCombinerParameteriNV"); + glad_glCombinerInputNV = (PFNGLCOMBINERINPUTNVPROC)load("glCombinerInputNV"); + glad_glCombinerOutputNV = (PFNGLCOMBINEROUTPUTNVPROC)load("glCombinerOutputNV"); + glad_glFinalCombinerInputNV = (PFNGLFINALCOMBINERINPUTNVPROC)load("glFinalCombinerInputNV"); + glad_glGetCombinerInputParameterfvNV = (PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)load("glGetCombinerInputParameterfvNV"); + glad_glGetCombinerInputParameterivNV = (PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)load("glGetCombinerInputParameterivNV"); + glad_glGetCombinerOutputParameterfvNV = (PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)load("glGetCombinerOutputParameterfvNV"); + glad_glGetCombinerOutputParameterivNV = (PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)load("glGetCombinerOutputParameterivNV"); + glad_glGetFinalCombinerInputParameterfvNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)load("glGetFinalCombinerInputParameterfvNV"); + glad_glGetFinalCombinerInputParameterivNV = (PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)load("glGetFinalCombinerInputParameterivNV"); +} +static void load_GL_ARB_draw_buffers(GLADloadproc load) { + if(!GLAD_GL_ARB_draw_buffers) return; + glad_glDrawBuffersARB = (PFNGLDRAWBUFFERSARBPROC)load("glDrawBuffersARB"); +} +static void load_GL_ARB_clear_texture(GLADloadproc load) { + if(!GLAD_GL_ARB_clear_texture) return; + glad_glClearTexImage = (PFNGLCLEARTEXIMAGEPROC)load("glClearTexImage"); + glad_glClearTexSubImage = (PFNGLCLEARTEXSUBIMAGEPROC)load("glClearTexSubImage"); +} +static void load_GL_ARB_debug_output(GLADloadproc load) { + if(!GLAD_GL_ARB_debug_output) return; + glad_glDebugMessageControlARB = (PFNGLDEBUGMESSAGECONTROLARBPROC)load("glDebugMessageControlARB"); + glad_glDebugMessageInsertARB = (PFNGLDEBUGMESSAGEINSERTARBPROC)load("glDebugMessageInsertARB"); + glad_glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC)load("glDebugMessageCallbackARB"); + glad_glGetDebugMessageLogARB = (PFNGLGETDEBUGMESSAGELOGARBPROC)load("glGetDebugMessageLogARB"); +} +static void load_GL_EXT_cull_vertex(GLADloadproc load) { + if(!GLAD_GL_EXT_cull_vertex) return; + glad_glCullParameterdvEXT = (PFNGLCULLPARAMETERDVEXTPROC)load("glCullParameterdvEXT"); + glad_glCullParameterfvEXT = (PFNGLCULLPARAMETERFVEXTPROC)load("glCullParameterfvEXT"); +} +static void load_GL_IBM_multimode_draw_arrays(GLADloadproc load) { + if(!GLAD_GL_IBM_multimode_draw_arrays) return; + glad_glMultiModeDrawArraysIBM = (PFNGLMULTIMODEDRAWARRAYSIBMPROC)load("glMultiModeDrawArraysIBM"); + glad_glMultiModeDrawElementsIBM = (PFNGLMULTIMODEDRAWELEMENTSIBMPROC)load("glMultiModeDrawElementsIBM"); +} +static void load_GL_APPLE_vertex_array_object(GLADloadproc load) { + if(!GLAD_GL_APPLE_vertex_array_object) return; + glad_glBindVertexArrayAPPLE = (PFNGLBINDVERTEXARRAYAPPLEPROC)load("glBindVertexArrayAPPLE"); + glad_glDeleteVertexArraysAPPLE = (PFNGLDELETEVERTEXARRAYSAPPLEPROC)load("glDeleteVertexArraysAPPLE"); + glad_glGenVertexArraysAPPLE = (PFNGLGENVERTEXARRAYSAPPLEPROC)load("glGenVertexArraysAPPLE"); + glad_glIsVertexArrayAPPLE = (PFNGLISVERTEXARRAYAPPLEPROC)load("glIsVertexArrayAPPLE"); +} +static void load_GL_SGIS_detail_texture(GLADloadproc load) { + if(!GLAD_GL_SGIS_detail_texture) return; + glad_glDetailTexFuncSGIS = (PFNGLDETAILTEXFUNCSGISPROC)load("glDetailTexFuncSGIS"); + glad_glGetDetailTexFuncSGIS = (PFNGLGETDETAILTEXFUNCSGISPROC)load("glGetDetailTexFuncSGIS"); +} +static void load_GL_ARB_draw_instanced(GLADloadproc load) { + if(!GLAD_GL_ARB_draw_instanced) return; + glad_glDrawArraysInstancedARB = (PFNGLDRAWARRAYSINSTANCEDARBPROC)load("glDrawArraysInstancedARB"); + glad_glDrawElementsInstancedARB = (PFNGLDRAWELEMENTSINSTANCEDARBPROC)load("glDrawElementsInstancedARB"); +} +static void load_GL_ARB_shading_language_include(GLADloadproc load) { + if(!GLAD_GL_ARB_shading_language_include) return; + glad_glNamedStringARB = (PFNGLNAMEDSTRINGARBPROC)load("glNamedStringARB"); + glad_glDeleteNamedStringARB = (PFNGLDELETENAMEDSTRINGARBPROC)load("glDeleteNamedStringARB"); + glad_glCompileShaderIncludeARB = (PFNGLCOMPILESHADERINCLUDEARBPROC)load("glCompileShaderIncludeARB"); + glad_glIsNamedStringARB = (PFNGLISNAMEDSTRINGARBPROC)load("glIsNamedStringARB"); + glad_glGetNamedStringARB = (PFNGLGETNAMEDSTRINGARBPROC)load("glGetNamedStringARB"); + glad_glGetNamedStringivARB = (PFNGLGETNAMEDSTRINGIVARBPROC)load("glGetNamedStringivARB"); +} +static void load_GL_INGR_blend_func_separate(GLADloadproc load) { + if(!GLAD_GL_INGR_blend_func_separate) return; + glad_glBlendFuncSeparateINGR = (PFNGLBLENDFUNCSEPARATEINGRPROC)load("glBlendFuncSeparateINGR"); +} +static void load_GL_NV_path_rendering(GLADloadproc load) { + if(!GLAD_GL_NV_path_rendering) return; + glad_glGenPathsNV = (PFNGLGENPATHSNVPROC)load("glGenPathsNV"); + glad_glDeletePathsNV = (PFNGLDELETEPATHSNVPROC)load("glDeletePathsNV"); + glad_glIsPathNV = (PFNGLISPATHNVPROC)load("glIsPathNV"); + glad_glPathCommandsNV = (PFNGLPATHCOMMANDSNVPROC)load("glPathCommandsNV"); + glad_glPathCoordsNV = (PFNGLPATHCOORDSNVPROC)load("glPathCoordsNV"); + glad_glPathSubCommandsNV = (PFNGLPATHSUBCOMMANDSNVPROC)load("glPathSubCommandsNV"); + glad_glPathSubCoordsNV = (PFNGLPATHSUBCOORDSNVPROC)load("glPathSubCoordsNV"); + glad_glPathStringNV = (PFNGLPATHSTRINGNVPROC)load("glPathStringNV"); + glad_glPathGlyphsNV = (PFNGLPATHGLYPHSNVPROC)load("glPathGlyphsNV"); + glad_glPathGlyphRangeNV = (PFNGLPATHGLYPHRANGENVPROC)load("glPathGlyphRangeNV"); + glad_glWeightPathsNV = (PFNGLWEIGHTPATHSNVPROC)load("glWeightPathsNV"); + glad_glCopyPathNV = (PFNGLCOPYPATHNVPROC)load("glCopyPathNV"); + glad_glInterpolatePathsNV = (PFNGLINTERPOLATEPATHSNVPROC)load("glInterpolatePathsNV"); + glad_glTransformPathNV = (PFNGLTRANSFORMPATHNVPROC)load("glTransformPathNV"); + glad_glPathParameterivNV = (PFNGLPATHPARAMETERIVNVPROC)load("glPathParameterivNV"); + glad_glPathParameteriNV = (PFNGLPATHPARAMETERINVPROC)load("glPathParameteriNV"); + glad_glPathParameterfvNV = (PFNGLPATHPARAMETERFVNVPROC)load("glPathParameterfvNV"); + glad_glPathParameterfNV = (PFNGLPATHPARAMETERFNVPROC)load("glPathParameterfNV"); + glad_glPathDashArrayNV = (PFNGLPATHDASHARRAYNVPROC)load("glPathDashArrayNV"); + glad_glPathStencilFuncNV = (PFNGLPATHSTENCILFUNCNVPROC)load("glPathStencilFuncNV"); + glad_glPathStencilDepthOffsetNV = (PFNGLPATHSTENCILDEPTHOFFSETNVPROC)load("glPathStencilDepthOffsetNV"); + glad_glStencilFillPathNV = (PFNGLSTENCILFILLPATHNVPROC)load("glStencilFillPathNV"); + glad_glStencilStrokePathNV = (PFNGLSTENCILSTROKEPATHNVPROC)load("glStencilStrokePathNV"); + glad_glStencilFillPathInstancedNV = (PFNGLSTENCILFILLPATHINSTANCEDNVPROC)load("glStencilFillPathInstancedNV"); + glad_glStencilStrokePathInstancedNV = (PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC)load("glStencilStrokePathInstancedNV"); + glad_glPathCoverDepthFuncNV = (PFNGLPATHCOVERDEPTHFUNCNVPROC)load("glPathCoverDepthFuncNV"); + glad_glCoverFillPathNV = (PFNGLCOVERFILLPATHNVPROC)load("glCoverFillPathNV"); + glad_glCoverStrokePathNV = (PFNGLCOVERSTROKEPATHNVPROC)load("glCoverStrokePathNV"); + glad_glCoverFillPathInstancedNV = (PFNGLCOVERFILLPATHINSTANCEDNVPROC)load("glCoverFillPathInstancedNV"); + glad_glCoverStrokePathInstancedNV = (PFNGLCOVERSTROKEPATHINSTANCEDNVPROC)load("glCoverStrokePathInstancedNV"); + glad_glGetPathParameterivNV = (PFNGLGETPATHPARAMETERIVNVPROC)load("glGetPathParameterivNV"); + glad_glGetPathParameterfvNV = (PFNGLGETPATHPARAMETERFVNVPROC)load("glGetPathParameterfvNV"); + glad_glGetPathCommandsNV = (PFNGLGETPATHCOMMANDSNVPROC)load("glGetPathCommandsNV"); + glad_glGetPathCoordsNV = (PFNGLGETPATHCOORDSNVPROC)load("glGetPathCoordsNV"); + glad_glGetPathDashArrayNV = (PFNGLGETPATHDASHARRAYNVPROC)load("glGetPathDashArrayNV"); + glad_glGetPathMetricsNV = (PFNGLGETPATHMETRICSNVPROC)load("glGetPathMetricsNV"); + glad_glGetPathMetricRangeNV = (PFNGLGETPATHMETRICRANGENVPROC)load("glGetPathMetricRangeNV"); + glad_glGetPathSpacingNV = (PFNGLGETPATHSPACINGNVPROC)load("glGetPathSpacingNV"); + glad_glIsPointInFillPathNV = (PFNGLISPOINTINFILLPATHNVPROC)load("glIsPointInFillPathNV"); + glad_glIsPointInStrokePathNV = (PFNGLISPOINTINSTROKEPATHNVPROC)load("glIsPointInStrokePathNV"); + glad_glGetPathLengthNV = (PFNGLGETPATHLENGTHNVPROC)load("glGetPathLengthNV"); + glad_glPointAlongPathNV = (PFNGLPOINTALONGPATHNVPROC)load("glPointAlongPathNV"); + glad_glMatrixLoad3x2fNV = (PFNGLMATRIXLOAD3X2FNVPROC)load("glMatrixLoad3x2fNV"); + glad_glMatrixLoad3x3fNV = (PFNGLMATRIXLOAD3X3FNVPROC)load("glMatrixLoad3x3fNV"); + glad_glMatrixLoadTranspose3x3fNV = (PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC)load("glMatrixLoadTranspose3x3fNV"); + glad_glMatrixMult3x2fNV = (PFNGLMATRIXMULT3X2FNVPROC)load("glMatrixMult3x2fNV"); + glad_glMatrixMult3x3fNV = (PFNGLMATRIXMULT3X3FNVPROC)load("glMatrixMult3x3fNV"); + glad_glMatrixMultTranspose3x3fNV = (PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC)load("glMatrixMultTranspose3x3fNV"); + glad_glStencilThenCoverFillPathNV = (PFNGLSTENCILTHENCOVERFILLPATHNVPROC)load("glStencilThenCoverFillPathNV"); + glad_glStencilThenCoverStrokePathNV = (PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC)load("glStencilThenCoverStrokePathNV"); + glad_glStencilThenCoverFillPathInstancedNV = (PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC)load("glStencilThenCoverFillPathInstancedNV"); + glad_glStencilThenCoverStrokePathInstancedNV = (PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC)load("glStencilThenCoverStrokePathInstancedNV"); + glad_glPathGlyphIndexRangeNV = (PFNGLPATHGLYPHINDEXRANGENVPROC)load("glPathGlyphIndexRangeNV"); + glad_glPathGlyphIndexArrayNV = (PFNGLPATHGLYPHINDEXARRAYNVPROC)load("glPathGlyphIndexArrayNV"); + glad_glPathMemoryGlyphIndexArrayNV = (PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC)load("glPathMemoryGlyphIndexArrayNV"); + glad_glProgramPathFragmentInputGenNV = (PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC)load("glProgramPathFragmentInputGenNV"); + glad_glGetProgramResourcefvNV = (PFNGLGETPROGRAMRESOURCEFVNVPROC)load("glGetProgramResourcefvNV"); + glad_glPathColorGenNV = (PFNGLPATHCOLORGENNVPROC)load("glPathColorGenNV"); + glad_glPathTexGenNV = (PFNGLPATHTEXGENNVPROC)load("glPathTexGenNV"); + glad_glPathFogGenNV = (PFNGLPATHFOGGENNVPROC)load("glPathFogGenNV"); + glad_glGetPathColorGenivNV = (PFNGLGETPATHCOLORGENIVNVPROC)load("glGetPathColorGenivNV"); + glad_glGetPathColorGenfvNV = (PFNGLGETPATHCOLORGENFVNVPROC)load("glGetPathColorGenfvNV"); + glad_glGetPathTexGenivNV = (PFNGLGETPATHTEXGENIVNVPROC)load("glGetPathTexGenivNV"); + glad_glGetPathTexGenfvNV = (PFNGLGETPATHTEXGENFVNVPROC)load("glGetPathTexGenfvNV"); +} +static void load_GL_NV_conservative_raster_dilate(GLADloadproc load) { + if(!GLAD_GL_NV_conservative_raster_dilate) return; + glad_glConservativeRasterParameterfNV = (PFNGLCONSERVATIVERASTERPARAMETERFNVPROC)load("glConservativeRasterParameterfNV"); +} +static void load_GL_ATI_vertex_streams(GLADloadproc load) { + if(!GLAD_GL_ATI_vertex_streams) return; + glad_glVertexStream1sATI = (PFNGLVERTEXSTREAM1SATIPROC)load("glVertexStream1sATI"); + glad_glVertexStream1svATI = (PFNGLVERTEXSTREAM1SVATIPROC)load("glVertexStream1svATI"); + glad_glVertexStream1iATI = (PFNGLVERTEXSTREAM1IATIPROC)load("glVertexStream1iATI"); + glad_glVertexStream1ivATI = (PFNGLVERTEXSTREAM1IVATIPROC)load("glVertexStream1ivATI"); + glad_glVertexStream1fATI = (PFNGLVERTEXSTREAM1FATIPROC)load("glVertexStream1fATI"); + glad_glVertexStream1fvATI = (PFNGLVERTEXSTREAM1FVATIPROC)load("glVertexStream1fvATI"); + glad_glVertexStream1dATI = (PFNGLVERTEXSTREAM1DATIPROC)load("glVertexStream1dATI"); + glad_glVertexStream1dvATI = (PFNGLVERTEXSTREAM1DVATIPROC)load("glVertexStream1dvATI"); + glad_glVertexStream2sATI = (PFNGLVERTEXSTREAM2SATIPROC)load("glVertexStream2sATI"); + glad_glVertexStream2svATI = (PFNGLVERTEXSTREAM2SVATIPROC)load("glVertexStream2svATI"); + glad_glVertexStream2iATI = (PFNGLVERTEXSTREAM2IATIPROC)load("glVertexStream2iATI"); + glad_glVertexStream2ivATI = (PFNGLVERTEXSTREAM2IVATIPROC)load("glVertexStream2ivATI"); + glad_glVertexStream2fATI = (PFNGLVERTEXSTREAM2FATIPROC)load("glVertexStream2fATI"); + glad_glVertexStream2fvATI = (PFNGLVERTEXSTREAM2FVATIPROC)load("glVertexStream2fvATI"); + glad_glVertexStream2dATI = (PFNGLVERTEXSTREAM2DATIPROC)load("glVertexStream2dATI"); + glad_glVertexStream2dvATI = (PFNGLVERTEXSTREAM2DVATIPROC)load("glVertexStream2dvATI"); + glad_glVertexStream3sATI = (PFNGLVERTEXSTREAM3SATIPROC)load("glVertexStream3sATI"); + glad_glVertexStream3svATI = (PFNGLVERTEXSTREAM3SVATIPROC)load("glVertexStream3svATI"); + glad_glVertexStream3iATI = (PFNGLVERTEXSTREAM3IATIPROC)load("glVertexStream3iATI"); + glad_glVertexStream3ivATI = (PFNGLVERTEXSTREAM3IVATIPROC)load("glVertexStream3ivATI"); + glad_glVertexStream3fATI = (PFNGLVERTEXSTREAM3FATIPROC)load("glVertexStream3fATI"); + glad_glVertexStream3fvATI = (PFNGLVERTEXSTREAM3FVATIPROC)load("glVertexStream3fvATI"); + glad_glVertexStream3dATI = (PFNGLVERTEXSTREAM3DATIPROC)load("glVertexStream3dATI"); + glad_glVertexStream3dvATI = (PFNGLVERTEXSTREAM3DVATIPROC)load("glVertexStream3dvATI"); + glad_glVertexStream4sATI = (PFNGLVERTEXSTREAM4SATIPROC)load("glVertexStream4sATI"); + glad_glVertexStream4svATI = (PFNGLVERTEXSTREAM4SVATIPROC)load("glVertexStream4svATI"); + glad_glVertexStream4iATI = (PFNGLVERTEXSTREAM4IATIPROC)load("glVertexStream4iATI"); + glad_glVertexStream4ivATI = (PFNGLVERTEXSTREAM4IVATIPROC)load("glVertexStream4ivATI"); + glad_glVertexStream4fATI = (PFNGLVERTEXSTREAM4FATIPROC)load("glVertexStream4fATI"); + glad_glVertexStream4fvATI = (PFNGLVERTEXSTREAM4FVATIPROC)load("glVertexStream4fvATI"); + glad_glVertexStream4dATI = (PFNGLVERTEXSTREAM4DATIPROC)load("glVertexStream4dATI"); + glad_glVertexStream4dvATI = (PFNGLVERTEXSTREAM4DVATIPROC)load("glVertexStream4dvATI"); + glad_glNormalStream3bATI = (PFNGLNORMALSTREAM3BATIPROC)load("glNormalStream3bATI"); + glad_glNormalStream3bvATI = (PFNGLNORMALSTREAM3BVATIPROC)load("glNormalStream3bvATI"); + glad_glNormalStream3sATI = (PFNGLNORMALSTREAM3SATIPROC)load("glNormalStream3sATI"); + glad_glNormalStream3svATI = (PFNGLNORMALSTREAM3SVATIPROC)load("glNormalStream3svATI"); + glad_glNormalStream3iATI = (PFNGLNORMALSTREAM3IATIPROC)load("glNormalStream3iATI"); + glad_glNormalStream3ivATI = (PFNGLNORMALSTREAM3IVATIPROC)load("glNormalStream3ivATI"); + glad_glNormalStream3fATI = (PFNGLNORMALSTREAM3FATIPROC)load("glNormalStream3fATI"); + glad_glNormalStream3fvATI = (PFNGLNORMALSTREAM3FVATIPROC)load("glNormalStream3fvATI"); + glad_glNormalStream3dATI = (PFNGLNORMALSTREAM3DATIPROC)load("glNormalStream3dATI"); + glad_glNormalStream3dvATI = (PFNGLNORMALSTREAM3DVATIPROC)load("glNormalStream3dvATI"); + glad_glClientActiveVertexStreamATI = (PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC)load("glClientActiveVertexStreamATI"); + glad_glVertexBlendEnviATI = (PFNGLVERTEXBLENDENVIATIPROC)load("glVertexBlendEnviATI"); + glad_glVertexBlendEnvfATI = (PFNGLVERTEXBLENDENVFATIPROC)load("glVertexBlendEnvfATI"); +} +static void load_GL_ARB_gpu_shader_int64(GLADloadproc load) { + if(!GLAD_GL_ARB_gpu_shader_int64) return; + glad_glUniform1i64ARB = (PFNGLUNIFORM1I64ARBPROC)load("glUniform1i64ARB"); + glad_glUniform2i64ARB = (PFNGLUNIFORM2I64ARBPROC)load("glUniform2i64ARB"); + glad_glUniform3i64ARB = (PFNGLUNIFORM3I64ARBPROC)load("glUniform3i64ARB"); + glad_glUniform4i64ARB = (PFNGLUNIFORM4I64ARBPROC)load("glUniform4i64ARB"); + glad_glUniform1i64vARB = (PFNGLUNIFORM1I64VARBPROC)load("glUniform1i64vARB"); + glad_glUniform2i64vARB = (PFNGLUNIFORM2I64VARBPROC)load("glUniform2i64vARB"); + glad_glUniform3i64vARB = (PFNGLUNIFORM3I64VARBPROC)load("glUniform3i64vARB"); + glad_glUniform4i64vARB = (PFNGLUNIFORM4I64VARBPROC)load("glUniform4i64vARB"); + glad_glUniform1ui64ARB = (PFNGLUNIFORM1UI64ARBPROC)load("glUniform1ui64ARB"); + glad_glUniform2ui64ARB = (PFNGLUNIFORM2UI64ARBPROC)load("glUniform2ui64ARB"); + glad_glUniform3ui64ARB = (PFNGLUNIFORM3UI64ARBPROC)load("glUniform3ui64ARB"); + glad_glUniform4ui64ARB = (PFNGLUNIFORM4UI64ARBPROC)load("glUniform4ui64ARB"); + glad_glUniform1ui64vARB = (PFNGLUNIFORM1UI64VARBPROC)load("glUniform1ui64vARB"); + glad_glUniform2ui64vARB = (PFNGLUNIFORM2UI64VARBPROC)load("glUniform2ui64vARB"); + glad_glUniform3ui64vARB = (PFNGLUNIFORM3UI64VARBPROC)load("glUniform3ui64vARB"); + glad_glUniform4ui64vARB = (PFNGLUNIFORM4UI64VARBPROC)load("glUniform4ui64vARB"); + glad_glGetUniformi64vARB = (PFNGLGETUNIFORMI64VARBPROC)load("glGetUniformi64vARB"); + glad_glGetUniformui64vARB = (PFNGLGETUNIFORMUI64VARBPROC)load("glGetUniformui64vARB"); + glad_glGetnUniformi64vARB = (PFNGLGETNUNIFORMI64VARBPROC)load("glGetnUniformi64vARB"); + glad_glGetnUniformui64vARB = (PFNGLGETNUNIFORMUI64VARBPROC)load("glGetnUniformui64vARB"); + glad_glProgramUniform1i64ARB = (PFNGLPROGRAMUNIFORM1I64ARBPROC)load("glProgramUniform1i64ARB"); + glad_glProgramUniform2i64ARB = (PFNGLPROGRAMUNIFORM2I64ARBPROC)load("glProgramUniform2i64ARB"); + glad_glProgramUniform3i64ARB = (PFNGLPROGRAMUNIFORM3I64ARBPROC)load("glProgramUniform3i64ARB"); + glad_glProgramUniform4i64ARB = (PFNGLPROGRAMUNIFORM4I64ARBPROC)load("glProgramUniform4i64ARB"); + glad_glProgramUniform1i64vARB = (PFNGLPROGRAMUNIFORM1I64VARBPROC)load("glProgramUniform1i64vARB"); + glad_glProgramUniform2i64vARB = (PFNGLPROGRAMUNIFORM2I64VARBPROC)load("glProgramUniform2i64vARB"); + glad_glProgramUniform3i64vARB = (PFNGLPROGRAMUNIFORM3I64VARBPROC)load("glProgramUniform3i64vARB"); + glad_glProgramUniform4i64vARB = (PFNGLPROGRAMUNIFORM4I64VARBPROC)load("glProgramUniform4i64vARB"); + glad_glProgramUniform1ui64ARB = (PFNGLPROGRAMUNIFORM1UI64ARBPROC)load("glProgramUniform1ui64ARB"); + glad_glProgramUniform2ui64ARB = (PFNGLPROGRAMUNIFORM2UI64ARBPROC)load("glProgramUniform2ui64ARB"); + glad_glProgramUniform3ui64ARB = (PFNGLPROGRAMUNIFORM3UI64ARBPROC)load("glProgramUniform3ui64ARB"); + glad_glProgramUniform4ui64ARB = (PFNGLPROGRAMUNIFORM4UI64ARBPROC)load("glProgramUniform4ui64ARB"); + glad_glProgramUniform1ui64vARB = (PFNGLPROGRAMUNIFORM1UI64VARBPROC)load("glProgramUniform1ui64vARB"); + glad_glProgramUniform2ui64vARB = (PFNGLPROGRAMUNIFORM2UI64VARBPROC)load("glProgramUniform2ui64vARB"); + glad_glProgramUniform3ui64vARB = (PFNGLPROGRAMUNIFORM3UI64VARBPROC)load("glProgramUniform3ui64vARB"); + glad_glProgramUniform4ui64vARB = (PFNGLPROGRAMUNIFORM4UI64VARBPROC)load("glProgramUniform4ui64vARB"); +} +static void load_GL_NV_vdpau_interop(GLADloadproc load) { + if(!GLAD_GL_NV_vdpau_interop) return; + glad_glVDPAUInitNV = (PFNGLVDPAUINITNVPROC)load("glVDPAUInitNV"); + glad_glVDPAUFiniNV = (PFNGLVDPAUFININVPROC)load("glVDPAUFiniNV"); + glad_glVDPAURegisterVideoSurfaceNV = (PFNGLVDPAUREGISTERVIDEOSURFACENVPROC)load("glVDPAURegisterVideoSurfaceNV"); + glad_glVDPAURegisterOutputSurfaceNV = (PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC)load("glVDPAURegisterOutputSurfaceNV"); + glad_glVDPAUIsSurfaceNV = (PFNGLVDPAUISSURFACENVPROC)load("glVDPAUIsSurfaceNV"); + glad_glVDPAUUnregisterSurfaceNV = (PFNGLVDPAUUNREGISTERSURFACENVPROC)load("glVDPAUUnregisterSurfaceNV"); + glad_glVDPAUGetSurfaceivNV = (PFNGLVDPAUGETSURFACEIVNVPROC)load("glVDPAUGetSurfaceivNV"); + glad_glVDPAUSurfaceAccessNV = (PFNGLVDPAUSURFACEACCESSNVPROC)load("glVDPAUSurfaceAccessNV"); + glad_glVDPAUMapSurfacesNV = (PFNGLVDPAUMAPSURFACESNVPROC)load("glVDPAUMapSurfacesNV"); + glad_glVDPAUUnmapSurfacesNV = (PFNGLVDPAUUNMAPSURFACESNVPROC)load("glVDPAUUnmapSurfacesNV"); +} +static void load_GL_ARB_internalformat_query2(GLADloadproc load) { + if(!GLAD_GL_ARB_internalformat_query2) return; + glad_glGetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC)load("glGetInternalformati64v"); +} +static void load_GL_SUN_vertex(GLADloadproc load) { + if(!GLAD_GL_SUN_vertex) return; + glad_glColor4ubVertex2fSUN = (PFNGLCOLOR4UBVERTEX2FSUNPROC)load("glColor4ubVertex2fSUN"); + glad_glColor4ubVertex2fvSUN = (PFNGLCOLOR4UBVERTEX2FVSUNPROC)load("glColor4ubVertex2fvSUN"); + glad_glColor4ubVertex3fSUN = (PFNGLCOLOR4UBVERTEX3FSUNPROC)load("glColor4ubVertex3fSUN"); + glad_glColor4ubVertex3fvSUN = (PFNGLCOLOR4UBVERTEX3FVSUNPROC)load("glColor4ubVertex3fvSUN"); + glad_glColor3fVertex3fSUN = (PFNGLCOLOR3FVERTEX3FSUNPROC)load("glColor3fVertex3fSUN"); + glad_glColor3fVertex3fvSUN = (PFNGLCOLOR3FVERTEX3FVSUNPROC)load("glColor3fVertex3fvSUN"); + glad_glNormal3fVertex3fSUN = (PFNGLNORMAL3FVERTEX3FSUNPROC)load("glNormal3fVertex3fSUN"); + glad_glNormal3fVertex3fvSUN = (PFNGLNORMAL3FVERTEX3FVSUNPROC)load("glNormal3fVertex3fvSUN"); + glad_glColor4fNormal3fVertex3fSUN = (PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC)load("glColor4fNormal3fVertex3fSUN"); + glad_glColor4fNormal3fVertex3fvSUN = (PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC)load("glColor4fNormal3fVertex3fvSUN"); + glad_glTexCoord2fVertex3fSUN = (PFNGLTEXCOORD2FVERTEX3FSUNPROC)load("glTexCoord2fVertex3fSUN"); + glad_glTexCoord2fVertex3fvSUN = (PFNGLTEXCOORD2FVERTEX3FVSUNPROC)load("glTexCoord2fVertex3fvSUN"); + glad_glTexCoord4fVertex4fSUN = (PFNGLTEXCOORD4FVERTEX4FSUNPROC)load("glTexCoord4fVertex4fSUN"); + glad_glTexCoord4fVertex4fvSUN = (PFNGLTEXCOORD4FVERTEX4FVSUNPROC)load("glTexCoord4fVertex4fvSUN"); + glad_glTexCoord2fColor4ubVertex3fSUN = (PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC)load("glTexCoord2fColor4ubVertex3fSUN"); + glad_glTexCoord2fColor4ubVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC)load("glTexCoord2fColor4ubVertex3fvSUN"); + glad_glTexCoord2fColor3fVertex3fSUN = (PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC)load("glTexCoord2fColor3fVertex3fSUN"); + glad_glTexCoord2fColor3fVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC)load("glTexCoord2fColor3fVertex3fvSUN"); + glad_glTexCoord2fNormal3fVertex3fSUN = (PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC)load("glTexCoord2fNormal3fVertex3fSUN"); + glad_glTexCoord2fNormal3fVertex3fvSUN = (PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)load("glTexCoord2fNormal3fVertex3fvSUN"); + glad_glTexCoord2fColor4fNormal3fVertex3fSUN = (PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)load("glTexCoord2fColor4fNormal3fVertex3fSUN"); + glad_glTexCoord2fColor4fNormal3fVertex3fvSUN = (PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)load("glTexCoord2fColor4fNormal3fVertex3fvSUN"); + glad_glTexCoord4fColor4fNormal3fVertex4fSUN = (PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC)load("glTexCoord4fColor4fNormal3fVertex4fSUN"); + glad_glTexCoord4fColor4fNormal3fVertex4fvSUN = (PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC)load("glTexCoord4fColor4fNormal3fVertex4fvSUN"); + glad_glReplacementCodeuiVertex3fSUN = (PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC)load("glReplacementCodeuiVertex3fSUN"); + glad_glReplacementCodeuiVertex3fvSUN = (PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC)load("glReplacementCodeuiVertex3fvSUN"); + glad_glReplacementCodeuiColor4ubVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC)load("glReplacementCodeuiColor4ubVertex3fSUN"); + glad_glReplacementCodeuiColor4ubVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC)load("glReplacementCodeuiColor4ubVertex3fvSUN"); + glad_glReplacementCodeuiColor3fVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC)load("glReplacementCodeuiColor3fVertex3fSUN"); + glad_glReplacementCodeuiColor3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC)load("glReplacementCodeuiColor3fVertex3fvSUN"); + glad_glReplacementCodeuiNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC)load("glReplacementCodeuiNormal3fVertex3fSUN"); + glad_glReplacementCodeuiNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC)load("glReplacementCodeuiNormal3fVertex3fvSUN"); + glad_glReplacementCodeuiColor4fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC)load("glReplacementCodeuiColor4fNormal3fVertex3fSUN"); + glad_glReplacementCodeuiColor4fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC)load("glReplacementCodeuiColor4fNormal3fVertex3fvSUN"); + glad_glReplacementCodeuiTexCoord2fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC)load("glReplacementCodeuiTexCoord2fVertex3fSUN"); + glad_glReplacementCodeuiTexCoord2fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC)load("glReplacementCodeuiTexCoord2fVertex3fvSUN"); + glad_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC)load("glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN"); + glad_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)load("glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN"); + glad_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)load("glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN"); + glad_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN = (PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)load("glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN"); +} +static void load_GL_SGIX_igloo_interface(GLADloadproc load) { + if(!GLAD_GL_SGIX_igloo_interface) return; + glad_glIglooInterfaceSGIX = (PFNGLIGLOOINTERFACESGIXPROC)load("glIglooInterfaceSGIX"); +} +static void load_GL_ARB_draw_indirect(GLADloadproc load) { + if(!GLAD_GL_ARB_draw_indirect) return; + glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC)load("glDrawArraysIndirect"); + glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC)load("glDrawElementsIndirect"); +} +static void load_GL_NV_vertex_program4(GLADloadproc load) { + if(!GLAD_GL_NV_vertex_program4) return; + glad_glVertexAttribI1iEXT = (PFNGLVERTEXATTRIBI1IEXTPROC)load("glVertexAttribI1iEXT"); + glad_glVertexAttribI2iEXT = (PFNGLVERTEXATTRIBI2IEXTPROC)load("glVertexAttribI2iEXT"); + glad_glVertexAttribI3iEXT = (PFNGLVERTEXATTRIBI3IEXTPROC)load("glVertexAttribI3iEXT"); + glad_glVertexAttribI4iEXT = (PFNGLVERTEXATTRIBI4IEXTPROC)load("glVertexAttribI4iEXT"); + glad_glVertexAttribI1uiEXT = (PFNGLVERTEXATTRIBI1UIEXTPROC)load("glVertexAttribI1uiEXT"); + glad_glVertexAttribI2uiEXT = (PFNGLVERTEXATTRIBI2UIEXTPROC)load("glVertexAttribI2uiEXT"); + glad_glVertexAttribI3uiEXT = (PFNGLVERTEXATTRIBI3UIEXTPROC)load("glVertexAttribI3uiEXT"); + glad_glVertexAttribI4uiEXT = (PFNGLVERTEXATTRIBI4UIEXTPROC)load("glVertexAttribI4uiEXT"); + glad_glVertexAttribI1ivEXT = (PFNGLVERTEXATTRIBI1IVEXTPROC)load("glVertexAttribI1ivEXT"); + glad_glVertexAttribI2ivEXT = (PFNGLVERTEXATTRIBI2IVEXTPROC)load("glVertexAttribI2ivEXT"); + glad_glVertexAttribI3ivEXT = (PFNGLVERTEXATTRIBI3IVEXTPROC)load("glVertexAttribI3ivEXT"); + glad_glVertexAttribI4ivEXT = (PFNGLVERTEXATTRIBI4IVEXTPROC)load("glVertexAttribI4ivEXT"); + glad_glVertexAttribI1uivEXT = (PFNGLVERTEXATTRIBI1UIVEXTPROC)load("glVertexAttribI1uivEXT"); + glad_glVertexAttribI2uivEXT = (PFNGLVERTEXATTRIBI2UIVEXTPROC)load("glVertexAttribI2uivEXT"); + glad_glVertexAttribI3uivEXT = (PFNGLVERTEXATTRIBI3UIVEXTPROC)load("glVertexAttribI3uivEXT"); + glad_glVertexAttribI4uivEXT = (PFNGLVERTEXATTRIBI4UIVEXTPROC)load("glVertexAttribI4uivEXT"); + glad_glVertexAttribI4bvEXT = (PFNGLVERTEXATTRIBI4BVEXTPROC)load("glVertexAttribI4bvEXT"); + glad_glVertexAttribI4svEXT = (PFNGLVERTEXATTRIBI4SVEXTPROC)load("glVertexAttribI4svEXT"); + glad_glVertexAttribI4ubvEXT = (PFNGLVERTEXATTRIBI4UBVEXTPROC)load("glVertexAttribI4ubvEXT"); + glad_glVertexAttribI4usvEXT = (PFNGLVERTEXATTRIBI4USVEXTPROC)load("glVertexAttribI4usvEXT"); + glad_glVertexAttribIPointerEXT = (PFNGLVERTEXATTRIBIPOINTEREXTPROC)load("glVertexAttribIPointerEXT"); + glad_glGetVertexAttribIivEXT = (PFNGLGETVERTEXATTRIBIIVEXTPROC)load("glGetVertexAttribIivEXT"); + glad_glGetVertexAttribIuivEXT = (PFNGLGETVERTEXATTRIBIUIVEXTPROC)load("glGetVertexAttribIuivEXT"); +} +static void load_GL_SGIS_fog_function(GLADloadproc load) { + if(!GLAD_GL_SGIS_fog_function) return; + glad_glFogFuncSGIS = (PFNGLFOGFUNCSGISPROC)load("glFogFuncSGIS"); + glad_glGetFogFuncSGIS = (PFNGLGETFOGFUNCSGISPROC)load("glGetFogFuncSGIS"); +} +static void load_GL_EXT_x11_sync_object(GLADloadproc load) { + if(!GLAD_GL_EXT_x11_sync_object) return; + glad_glImportSyncEXT = (PFNGLIMPORTSYNCEXTPROC)load("glImportSyncEXT"); +} +static void load_GL_ARB_sync(GLADloadproc load) { + if(!GLAD_GL_ARB_sync) return; + glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync"); + glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync"); + glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync"); + glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync"); + glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync"); + glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v"); + glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv"); +} +static void load_GL_NV_sample_locations(GLADloadproc load) { + if(!GLAD_GL_NV_sample_locations) return; + glad_glFramebufferSampleLocationsfvNV = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)load("glFramebufferSampleLocationsfvNV"); + glad_glNamedFramebufferSampleLocationsfvNV = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)load("glNamedFramebufferSampleLocationsfvNV"); + glad_glResolveDepthValuesNV = (PFNGLRESOLVEDEPTHVALUESNVPROC)load("glResolveDepthValuesNV"); +} +static void load_GL_ARB_compute_variable_group_size(GLADloadproc load) { + if(!GLAD_GL_ARB_compute_variable_group_size) return; + glad_glDispatchComputeGroupSizeARB = (PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC)load("glDispatchComputeGroupSizeARB"); +} +static void load_GL_OES_fixed_point(GLADloadproc load) { + if(!GLAD_GL_OES_fixed_point) return; + glad_glAlphaFuncxOES = (PFNGLALPHAFUNCXOESPROC)load("glAlphaFuncxOES"); + glad_glClearColorxOES = (PFNGLCLEARCOLORXOESPROC)load("glClearColorxOES"); + glad_glClearDepthxOES = (PFNGLCLEARDEPTHXOESPROC)load("glClearDepthxOES"); + glad_glClipPlanexOES = (PFNGLCLIPPLANEXOESPROC)load("glClipPlanexOES"); + glad_glColor4xOES = (PFNGLCOLOR4XOESPROC)load("glColor4xOES"); + glad_glDepthRangexOES = (PFNGLDEPTHRANGEXOESPROC)load("glDepthRangexOES"); + glad_glFogxOES = (PFNGLFOGXOESPROC)load("glFogxOES"); + glad_glFogxvOES = (PFNGLFOGXVOESPROC)load("glFogxvOES"); + glad_glFrustumxOES = (PFNGLFRUSTUMXOESPROC)load("glFrustumxOES"); + glad_glGetClipPlanexOES = (PFNGLGETCLIPPLANEXOESPROC)load("glGetClipPlanexOES"); + glad_glGetFixedvOES = (PFNGLGETFIXEDVOESPROC)load("glGetFixedvOES"); + glad_glGetTexEnvxvOES = (PFNGLGETTEXENVXVOESPROC)load("glGetTexEnvxvOES"); + glad_glGetTexParameterxvOES = (PFNGLGETTEXPARAMETERXVOESPROC)load("glGetTexParameterxvOES"); + glad_glLightModelxOES = (PFNGLLIGHTMODELXOESPROC)load("glLightModelxOES"); + glad_glLightModelxvOES = (PFNGLLIGHTMODELXVOESPROC)load("glLightModelxvOES"); + glad_glLightxOES = (PFNGLLIGHTXOESPROC)load("glLightxOES"); + glad_glLightxvOES = (PFNGLLIGHTXVOESPROC)load("glLightxvOES"); + glad_glLineWidthxOES = (PFNGLLINEWIDTHXOESPROC)load("glLineWidthxOES"); + glad_glLoadMatrixxOES = (PFNGLLOADMATRIXXOESPROC)load("glLoadMatrixxOES"); + glad_glMaterialxOES = (PFNGLMATERIALXOESPROC)load("glMaterialxOES"); + glad_glMaterialxvOES = (PFNGLMATERIALXVOESPROC)load("glMaterialxvOES"); + glad_glMultMatrixxOES = (PFNGLMULTMATRIXXOESPROC)load("glMultMatrixxOES"); + glad_glMultiTexCoord4xOES = (PFNGLMULTITEXCOORD4XOESPROC)load("glMultiTexCoord4xOES"); + glad_glNormal3xOES = (PFNGLNORMAL3XOESPROC)load("glNormal3xOES"); + glad_glOrthoxOES = (PFNGLORTHOXOESPROC)load("glOrthoxOES"); + glad_glPointParameterxvOES = (PFNGLPOINTPARAMETERXVOESPROC)load("glPointParameterxvOES"); + glad_glPointSizexOES = (PFNGLPOINTSIZEXOESPROC)load("glPointSizexOES"); + glad_glPolygonOffsetxOES = (PFNGLPOLYGONOFFSETXOESPROC)load("glPolygonOffsetxOES"); + glad_glRotatexOES = (PFNGLROTATEXOESPROC)load("glRotatexOES"); + glad_glScalexOES = (PFNGLSCALEXOESPROC)load("glScalexOES"); + glad_glTexEnvxOES = (PFNGLTEXENVXOESPROC)load("glTexEnvxOES"); + glad_glTexEnvxvOES = (PFNGLTEXENVXVOESPROC)load("glTexEnvxvOES"); + glad_glTexParameterxOES = (PFNGLTEXPARAMETERXOESPROC)load("glTexParameterxOES"); + glad_glTexParameterxvOES = (PFNGLTEXPARAMETERXVOESPROC)load("glTexParameterxvOES"); + glad_glTranslatexOES = (PFNGLTRANSLATEXOESPROC)load("glTranslatexOES"); + glad_glGetLightxvOES = (PFNGLGETLIGHTXVOESPROC)load("glGetLightxvOES"); + glad_glGetMaterialxvOES = (PFNGLGETMATERIALXVOESPROC)load("glGetMaterialxvOES"); + glad_glPointParameterxOES = (PFNGLPOINTPARAMETERXOESPROC)load("glPointParameterxOES"); + glad_glSampleCoveragexOES = (PFNGLSAMPLECOVERAGEXOESPROC)load("glSampleCoveragexOES"); + glad_glAccumxOES = (PFNGLACCUMXOESPROC)load("glAccumxOES"); + glad_glBitmapxOES = (PFNGLBITMAPXOESPROC)load("glBitmapxOES"); + glad_glBlendColorxOES = (PFNGLBLENDCOLORXOESPROC)load("glBlendColorxOES"); + glad_glClearAccumxOES = (PFNGLCLEARACCUMXOESPROC)load("glClearAccumxOES"); + glad_glColor3xOES = (PFNGLCOLOR3XOESPROC)load("glColor3xOES"); + glad_glColor3xvOES = (PFNGLCOLOR3XVOESPROC)load("glColor3xvOES"); + glad_glColor4xvOES = (PFNGLCOLOR4XVOESPROC)load("glColor4xvOES"); + glad_glConvolutionParameterxOES = (PFNGLCONVOLUTIONPARAMETERXOESPROC)load("glConvolutionParameterxOES"); + glad_glConvolutionParameterxvOES = (PFNGLCONVOLUTIONPARAMETERXVOESPROC)load("glConvolutionParameterxvOES"); + glad_glEvalCoord1xOES = (PFNGLEVALCOORD1XOESPROC)load("glEvalCoord1xOES"); + glad_glEvalCoord1xvOES = (PFNGLEVALCOORD1XVOESPROC)load("glEvalCoord1xvOES"); + glad_glEvalCoord2xOES = (PFNGLEVALCOORD2XOESPROC)load("glEvalCoord2xOES"); + glad_glEvalCoord2xvOES = (PFNGLEVALCOORD2XVOESPROC)load("glEvalCoord2xvOES"); + glad_glFeedbackBufferxOES = (PFNGLFEEDBACKBUFFERXOESPROC)load("glFeedbackBufferxOES"); + glad_glGetConvolutionParameterxvOES = (PFNGLGETCONVOLUTIONPARAMETERXVOESPROC)load("glGetConvolutionParameterxvOES"); + glad_glGetHistogramParameterxvOES = (PFNGLGETHISTOGRAMPARAMETERXVOESPROC)load("glGetHistogramParameterxvOES"); + glad_glGetLightxOES = (PFNGLGETLIGHTXOESPROC)load("glGetLightxOES"); + glad_glGetMapxvOES = (PFNGLGETMAPXVOESPROC)load("glGetMapxvOES"); + glad_glGetMaterialxOES = (PFNGLGETMATERIALXOESPROC)load("glGetMaterialxOES"); + glad_glGetPixelMapxv = (PFNGLGETPIXELMAPXVPROC)load("glGetPixelMapxv"); + glad_glGetTexGenxvOES = (PFNGLGETTEXGENXVOESPROC)load("glGetTexGenxvOES"); + glad_glGetTexLevelParameterxvOES = (PFNGLGETTEXLEVELPARAMETERXVOESPROC)load("glGetTexLevelParameterxvOES"); + glad_glIndexxOES = (PFNGLINDEXXOESPROC)load("glIndexxOES"); + glad_glIndexxvOES = (PFNGLINDEXXVOESPROC)load("glIndexxvOES"); + glad_glLoadTransposeMatrixxOES = (PFNGLLOADTRANSPOSEMATRIXXOESPROC)load("glLoadTransposeMatrixxOES"); + glad_glMap1xOES = (PFNGLMAP1XOESPROC)load("glMap1xOES"); + glad_glMap2xOES = (PFNGLMAP2XOESPROC)load("glMap2xOES"); + glad_glMapGrid1xOES = (PFNGLMAPGRID1XOESPROC)load("glMapGrid1xOES"); + glad_glMapGrid2xOES = (PFNGLMAPGRID2XOESPROC)load("glMapGrid2xOES"); + glad_glMultTransposeMatrixxOES = (PFNGLMULTTRANSPOSEMATRIXXOESPROC)load("glMultTransposeMatrixxOES"); + glad_glMultiTexCoord1xOES = (PFNGLMULTITEXCOORD1XOESPROC)load("glMultiTexCoord1xOES"); + glad_glMultiTexCoord1xvOES = (PFNGLMULTITEXCOORD1XVOESPROC)load("glMultiTexCoord1xvOES"); + glad_glMultiTexCoord2xOES = (PFNGLMULTITEXCOORD2XOESPROC)load("glMultiTexCoord2xOES"); + glad_glMultiTexCoord2xvOES = (PFNGLMULTITEXCOORD2XVOESPROC)load("glMultiTexCoord2xvOES"); + glad_glMultiTexCoord3xOES = (PFNGLMULTITEXCOORD3XOESPROC)load("glMultiTexCoord3xOES"); + glad_glMultiTexCoord3xvOES = (PFNGLMULTITEXCOORD3XVOESPROC)load("glMultiTexCoord3xvOES"); + glad_glMultiTexCoord4xvOES = (PFNGLMULTITEXCOORD4XVOESPROC)load("glMultiTexCoord4xvOES"); + glad_glNormal3xvOES = (PFNGLNORMAL3XVOESPROC)load("glNormal3xvOES"); + glad_glPassThroughxOES = (PFNGLPASSTHROUGHXOESPROC)load("glPassThroughxOES"); + glad_glPixelMapx = (PFNGLPIXELMAPXPROC)load("glPixelMapx"); + glad_glPixelStorex = (PFNGLPIXELSTOREXPROC)load("glPixelStorex"); + glad_glPixelTransferxOES = (PFNGLPIXELTRANSFERXOESPROC)load("glPixelTransferxOES"); + glad_glPixelZoomxOES = (PFNGLPIXELZOOMXOESPROC)load("glPixelZoomxOES"); + glad_glPrioritizeTexturesxOES = (PFNGLPRIORITIZETEXTURESXOESPROC)load("glPrioritizeTexturesxOES"); + glad_glRasterPos2xOES = (PFNGLRASTERPOS2XOESPROC)load("glRasterPos2xOES"); + glad_glRasterPos2xvOES = (PFNGLRASTERPOS2XVOESPROC)load("glRasterPos2xvOES"); + glad_glRasterPos3xOES = (PFNGLRASTERPOS3XOESPROC)load("glRasterPos3xOES"); + glad_glRasterPos3xvOES = (PFNGLRASTERPOS3XVOESPROC)load("glRasterPos3xvOES"); + glad_glRasterPos4xOES = (PFNGLRASTERPOS4XOESPROC)load("glRasterPos4xOES"); + glad_glRasterPos4xvOES = (PFNGLRASTERPOS4XVOESPROC)load("glRasterPos4xvOES"); + glad_glRectxOES = (PFNGLRECTXOESPROC)load("glRectxOES"); + glad_glRectxvOES = (PFNGLRECTXVOESPROC)load("glRectxvOES"); + glad_glTexCoord1xOES = (PFNGLTEXCOORD1XOESPROC)load("glTexCoord1xOES"); + glad_glTexCoord1xvOES = (PFNGLTEXCOORD1XVOESPROC)load("glTexCoord1xvOES"); + glad_glTexCoord2xOES = (PFNGLTEXCOORD2XOESPROC)load("glTexCoord2xOES"); + glad_glTexCoord2xvOES = (PFNGLTEXCOORD2XVOESPROC)load("glTexCoord2xvOES"); + glad_glTexCoord3xOES = (PFNGLTEXCOORD3XOESPROC)load("glTexCoord3xOES"); + glad_glTexCoord3xvOES = (PFNGLTEXCOORD3XVOESPROC)load("glTexCoord3xvOES"); + glad_glTexCoord4xOES = (PFNGLTEXCOORD4XOESPROC)load("glTexCoord4xOES"); + glad_glTexCoord4xvOES = (PFNGLTEXCOORD4XVOESPROC)load("glTexCoord4xvOES"); + glad_glTexGenxOES = (PFNGLTEXGENXOESPROC)load("glTexGenxOES"); + glad_glTexGenxvOES = (PFNGLTEXGENXVOESPROC)load("glTexGenxvOES"); + glad_glVertex2xOES = (PFNGLVERTEX2XOESPROC)load("glVertex2xOES"); + glad_glVertex2xvOES = (PFNGLVERTEX2XVOESPROC)load("glVertex2xvOES"); + glad_glVertex3xOES = (PFNGLVERTEX3XOESPROC)load("glVertex3xOES"); + glad_glVertex3xvOES = (PFNGLVERTEX3XVOESPROC)load("glVertex3xvOES"); + glad_glVertex4xOES = (PFNGLVERTEX4XOESPROC)load("glVertex4xOES"); + glad_glVertex4xvOES = (PFNGLVERTEX4XVOESPROC)load("glVertex4xvOES"); +} +static void load_GL_EXT_framebuffer_multisample(GLADloadproc load) { + if(!GLAD_GL_EXT_framebuffer_multisample) return; + glad_glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)load("glRenderbufferStorageMultisampleEXT"); +} +static void load_GL_SGIS_texture4D(GLADloadproc load) { + if(!GLAD_GL_SGIS_texture4D) return; + glad_glTexImage4DSGIS = (PFNGLTEXIMAGE4DSGISPROC)load("glTexImage4DSGIS"); + glad_glTexSubImage4DSGIS = (PFNGLTEXSUBIMAGE4DSGISPROC)load("glTexSubImage4DSGIS"); +} +static void load_GL_EXT_texture3D(GLADloadproc load) { + if(!GLAD_GL_EXT_texture3D) return; + glad_glTexImage3DEXT = (PFNGLTEXIMAGE3DEXTPROC)load("glTexImage3DEXT"); + glad_glTexSubImage3DEXT = (PFNGLTEXSUBIMAGE3DEXTPROC)load("glTexSubImage3DEXT"); +} +static void load_GL_EXT_multisample(GLADloadproc load) { + if(!GLAD_GL_EXT_multisample) return; + glad_glSampleMaskEXT = (PFNGLSAMPLEMASKEXTPROC)load("glSampleMaskEXT"); + glad_glSamplePatternEXT = (PFNGLSAMPLEPATTERNEXTPROC)load("glSamplePatternEXT"); +} +static void load_GL_EXT_secondary_color(GLADloadproc load) { + if(!GLAD_GL_EXT_secondary_color) return; + glad_glSecondaryColor3bEXT = (PFNGLSECONDARYCOLOR3BEXTPROC)load("glSecondaryColor3bEXT"); + glad_glSecondaryColor3bvEXT = (PFNGLSECONDARYCOLOR3BVEXTPROC)load("glSecondaryColor3bvEXT"); + glad_glSecondaryColor3dEXT = (PFNGLSECONDARYCOLOR3DEXTPROC)load("glSecondaryColor3dEXT"); + glad_glSecondaryColor3dvEXT = (PFNGLSECONDARYCOLOR3DVEXTPROC)load("glSecondaryColor3dvEXT"); + glad_glSecondaryColor3fEXT = (PFNGLSECONDARYCOLOR3FEXTPROC)load("glSecondaryColor3fEXT"); + glad_glSecondaryColor3fvEXT = (PFNGLSECONDARYCOLOR3FVEXTPROC)load("glSecondaryColor3fvEXT"); + glad_glSecondaryColor3iEXT = (PFNGLSECONDARYCOLOR3IEXTPROC)load("glSecondaryColor3iEXT"); + glad_glSecondaryColor3ivEXT = (PFNGLSECONDARYCOLOR3IVEXTPROC)load("glSecondaryColor3ivEXT"); + glad_glSecondaryColor3sEXT = (PFNGLSECONDARYCOLOR3SEXTPROC)load("glSecondaryColor3sEXT"); + glad_glSecondaryColor3svEXT = (PFNGLSECONDARYCOLOR3SVEXTPROC)load("glSecondaryColor3svEXT"); + glad_glSecondaryColor3ubEXT = (PFNGLSECONDARYCOLOR3UBEXTPROC)load("glSecondaryColor3ubEXT"); + glad_glSecondaryColor3ubvEXT = (PFNGLSECONDARYCOLOR3UBVEXTPROC)load("glSecondaryColor3ubvEXT"); + glad_glSecondaryColor3uiEXT = (PFNGLSECONDARYCOLOR3UIEXTPROC)load("glSecondaryColor3uiEXT"); + glad_glSecondaryColor3uivEXT = (PFNGLSECONDARYCOLOR3UIVEXTPROC)load("glSecondaryColor3uivEXT"); + glad_glSecondaryColor3usEXT = (PFNGLSECONDARYCOLOR3USEXTPROC)load("glSecondaryColor3usEXT"); + glad_glSecondaryColor3usvEXT = (PFNGLSECONDARYCOLOR3USVEXTPROC)load("glSecondaryColor3usvEXT"); + glad_glSecondaryColorPointerEXT = (PFNGLSECONDARYCOLORPOINTEREXTPROC)load("glSecondaryColorPointerEXT"); +} +static void load_GL_ATI_vertex_array_object(GLADloadproc load) { + if(!GLAD_GL_ATI_vertex_array_object) return; + glad_glNewObjectBufferATI = (PFNGLNEWOBJECTBUFFERATIPROC)load("glNewObjectBufferATI"); + glad_glIsObjectBufferATI = (PFNGLISOBJECTBUFFERATIPROC)load("glIsObjectBufferATI"); + glad_glUpdateObjectBufferATI = (PFNGLUPDATEOBJECTBUFFERATIPROC)load("glUpdateObjectBufferATI"); + glad_glGetObjectBufferfvATI = (PFNGLGETOBJECTBUFFERFVATIPROC)load("glGetObjectBufferfvATI"); + glad_glGetObjectBufferivATI = (PFNGLGETOBJECTBUFFERIVATIPROC)load("glGetObjectBufferivATI"); + glad_glFreeObjectBufferATI = (PFNGLFREEOBJECTBUFFERATIPROC)load("glFreeObjectBufferATI"); + glad_glArrayObjectATI = (PFNGLARRAYOBJECTATIPROC)load("glArrayObjectATI"); + glad_glGetArrayObjectfvATI = (PFNGLGETARRAYOBJECTFVATIPROC)load("glGetArrayObjectfvATI"); + glad_glGetArrayObjectivATI = (PFNGLGETARRAYOBJECTIVATIPROC)load("glGetArrayObjectivATI"); + glad_glVariantArrayObjectATI = (PFNGLVARIANTARRAYOBJECTATIPROC)load("glVariantArrayObjectATI"); + glad_glGetVariantArrayObjectfvATI = (PFNGLGETVARIANTARRAYOBJECTFVATIPROC)load("glGetVariantArrayObjectfvATI"); + glad_glGetVariantArrayObjectivATI = (PFNGLGETVARIANTARRAYOBJECTIVATIPROC)load("glGetVariantArrayObjectivATI"); +} +static void load_GL_ARB_parallel_shader_compile(GLADloadproc load) { + if(!GLAD_GL_ARB_parallel_shader_compile) return; + glad_glMaxShaderCompilerThreadsARB = (PFNGLMAXSHADERCOMPILERTHREADSARBPROC)load("glMaxShaderCompilerThreadsARB"); +} +static void load_GL_ARB_sparse_texture(GLADloadproc load) { + if(!GLAD_GL_ARB_sparse_texture) return; + glad_glTexPageCommitmentARB = (PFNGLTEXPAGECOMMITMENTARBPROC)load("glTexPageCommitmentARB"); +} +static void load_GL_ARB_sample_locations(GLADloadproc load) { + if(!GLAD_GL_ARB_sample_locations) return; + glad_glFramebufferSampleLocationsfvARB = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)load("glFramebufferSampleLocationsfvARB"); + glad_glNamedFramebufferSampleLocationsfvARB = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)load("glNamedFramebufferSampleLocationsfvARB"); + glad_glEvaluateDepthValuesARB = (PFNGLEVALUATEDEPTHVALUESARBPROC)load("glEvaluateDepthValuesARB"); +} +static void load_GL_ARB_sparse_buffer(GLADloadproc load) { + if(!GLAD_GL_ARB_sparse_buffer) return; + glad_glBufferPageCommitmentARB = (PFNGLBUFFERPAGECOMMITMENTARBPROC)load("glBufferPageCommitmentARB"); + glad_glNamedBufferPageCommitmentEXT = (PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC)load("glNamedBufferPageCommitmentEXT"); + glad_glNamedBufferPageCommitmentARB = (PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC)load("glNamedBufferPageCommitmentARB"); +} +static void load_GL_EXT_draw_range_elements(GLADloadproc load) { + if(!GLAD_GL_EXT_draw_range_elements) return; + glad_glDrawRangeElementsEXT = (PFNGLDRAWRANGEELEMENTSEXTPROC)load("glDrawRangeElementsEXT"); +} +static int find_extensionsGL(void) { + if (!get_exts()) return 0; + GLAD_GL_SGIX_pixel_tiles = has_ext("GL_SGIX_pixel_tiles"); + GLAD_GL_EXT_post_depth_coverage = has_ext("GL_EXT_post_depth_coverage"); + GLAD_GL_APPLE_element_array = has_ext("GL_APPLE_element_array"); + GLAD_GL_AMD_multi_draw_indirect = has_ext("GL_AMD_multi_draw_indirect"); + GLAD_GL_EXT_blend_subtract = has_ext("GL_EXT_blend_subtract"); + GLAD_GL_SGIX_tag_sample_buffer = has_ext("GL_SGIX_tag_sample_buffer"); + GLAD_GL_NV_point_sprite = has_ext("GL_NV_point_sprite"); + GLAD_GL_IBM_texture_mirrored_repeat = has_ext("GL_IBM_texture_mirrored_repeat"); + GLAD_GL_APPLE_transform_hint = has_ext("GL_APPLE_transform_hint"); + GLAD_GL_ATI_separate_stencil = has_ext("GL_ATI_separate_stencil"); + GLAD_GL_NV_shader_atomic_int64 = has_ext("GL_NV_shader_atomic_int64"); + GLAD_GL_NV_vertex_program2_option = has_ext("GL_NV_vertex_program2_option"); + GLAD_GL_EXT_texture_buffer_object = has_ext("GL_EXT_texture_buffer_object"); + GLAD_GL_ARB_vertex_blend = has_ext("GL_ARB_vertex_blend"); + GLAD_GL_OVR_multiview = has_ext("GL_OVR_multiview"); + GLAD_GL_NV_vertex_program2 = has_ext("GL_NV_vertex_program2"); + GLAD_GL_ARB_program_interface_query = has_ext("GL_ARB_program_interface_query"); + GLAD_GL_EXT_misc_attribute = has_ext("GL_EXT_misc_attribute"); + GLAD_GL_NV_multisample_coverage = has_ext("GL_NV_multisample_coverage"); + GLAD_GL_ARB_shading_language_packing = has_ext("GL_ARB_shading_language_packing"); + GLAD_GL_EXT_texture_cube_map = has_ext("GL_EXT_texture_cube_map"); + GLAD_GL_NV_viewport_array2 = has_ext("GL_NV_viewport_array2"); + GLAD_GL_ARB_texture_stencil8 = has_ext("GL_ARB_texture_stencil8"); + GLAD_GL_EXT_index_func = has_ext("GL_EXT_index_func"); + GLAD_GL_OES_compressed_paletted_texture = has_ext("GL_OES_compressed_paletted_texture"); + GLAD_GL_NV_depth_clamp = has_ext("GL_NV_depth_clamp"); + GLAD_GL_NV_shader_buffer_load = has_ext("GL_NV_shader_buffer_load"); + GLAD_GL_EXT_color_subtable = has_ext("GL_EXT_color_subtable"); + GLAD_GL_SUNX_constant_data = has_ext("GL_SUNX_constant_data"); + GLAD_GL_EXT_texture_compression_s3tc = has_ext("GL_EXT_texture_compression_s3tc"); + GLAD_GL_EXT_multi_draw_arrays = has_ext("GL_EXT_multi_draw_arrays"); + GLAD_GL_ARB_shader_atomic_counters = has_ext("GL_ARB_shader_atomic_counters"); + GLAD_GL_ARB_arrays_of_arrays = has_ext("GL_ARB_arrays_of_arrays"); + GLAD_GL_NV_conditional_render = has_ext("GL_NV_conditional_render"); + GLAD_GL_EXT_texture_env_combine = has_ext("GL_EXT_texture_env_combine"); + GLAD_GL_NV_fog_distance = has_ext("GL_NV_fog_distance"); + GLAD_GL_SGIX_async_histogram = has_ext("GL_SGIX_async_histogram"); + GLAD_GL_MESA_resize_buffers = has_ext("GL_MESA_resize_buffers"); + GLAD_GL_NV_light_max_exponent = has_ext("GL_NV_light_max_exponent"); + GLAD_GL_NV_texture_env_combine4 = has_ext("GL_NV_texture_env_combine4"); + GLAD_GL_ARB_texture_view = has_ext("GL_ARB_texture_view"); + GLAD_GL_ARB_texture_env_combine = has_ext("GL_ARB_texture_env_combine"); + GLAD_GL_ARB_map_buffer_range = has_ext("GL_ARB_map_buffer_range"); + GLAD_GL_EXT_convolution = has_ext("GL_EXT_convolution"); + GLAD_GL_NV_compute_program5 = has_ext("GL_NV_compute_program5"); + GLAD_GL_NV_vertex_attrib_integer_64bit = has_ext("GL_NV_vertex_attrib_integer_64bit"); + GLAD_GL_EXT_paletted_texture = has_ext("GL_EXT_paletted_texture"); + GLAD_GL_ARB_texture_buffer_object = has_ext("GL_ARB_texture_buffer_object"); + GLAD_GL_ATI_pn_triangles = has_ext("GL_ATI_pn_triangles"); + GLAD_GL_SGIX_resample = has_ext("GL_SGIX_resample"); + GLAD_GL_SGIX_flush_raster = has_ext("GL_SGIX_flush_raster"); + GLAD_GL_EXT_light_texture = has_ext("GL_EXT_light_texture"); + GLAD_GL_ARB_point_sprite = has_ext("GL_ARB_point_sprite"); + GLAD_GL_SUN_convolution_border_modes = has_ext("GL_SUN_convolution_border_modes"); + GLAD_GL_NV_parameter_buffer_object2 = has_ext("GL_NV_parameter_buffer_object2"); + GLAD_GL_ARB_half_float_pixel = has_ext("GL_ARB_half_float_pixel"); + GLAD_GL_NV_tessellation_program5 = has_ext("GL_NV_tessellation_program5"); + GLAD_GL_REND_screen_coordinates = has_ext("GL_REND_screen_coordinates"); + GLAD_GL_HP_image_transform = has_ext("GL_HP_image_transform"); + GLAD_GL_EXT_packed_float = has_ext("GL_EXT_packed_float"); + GLAD_GL_OML_subsample = has_ext("GL_OML_subsample"); + GLAD_GL_SGIX_vertex_preclip = has_ext("GL_SGIX_vertex_preclip"); + GLAD_GL_SGIX_texture_scale_bias = has_ext("GL_SGIX_texture_scale_bias"); + GLAD_GL_AMD_draw_buffers_blend = has_ext("GL_AMD_draw_buffers_blend"); + GLAD_GL_APPLE_texture_range = has_ext("GL_APPLE_texture_range"); + GLAD_GL_EXT_texture_array = has_ext("GL_EXT_texture_array"); + GLAD_GL_NV_texture_barrier = has_ext("GL_NV_texture_barrier"); + GLAD_GL_ARB_texture_query_levels = has_ext("GL_ARB_texture_query_levels"); + GLAD_GL_NV_texgen_emboss = has_ext("GL_NV_texgen_emboss"); + GLAD_GL_EXT_texture_swizzle = has_ext("GL_EXT_texture_swizzle"); + GLAD_GL_ARB_texture_rg = has_ext("GL_ARB_texture_rg"); + GLAD_GL_ARB_vertex_type_2_10_10_10_rev = has_ext("GL_ARB_vertex_type_2_10_10_10_rev"); + GLAD_GL_ARB_fragment_shader = has_ext("GL_ARB_fragment_shader"); + GLAD_GL_3DFX_tbuffer = has_ext("GL_3DFX_tbuffer"); + GLAD_GL_GREMEDY_frame_terminator = has_ext("GL_GREMEDY_frame_terminator"); + GLAD_GL_ARB_blend_func_extended = has_ext("GL_ARB_blend_func_extended"); + GLAD_GL_EXT_separate_shader_objects = has_ext("GL_EXT_separate_shader_objects"); + GLAD_GL_NV_texture_multisample = has_ext("GL_NV_texture_multisample"); + GLAD_GL_ARB_shader_objects = has_ext("GL_ARB_shader_objects"); + GLAD_GL_ARB_framebuffer_object = has_ext("GL_ARB_framebuffer_object"); + GLAD_GL_ATI_envmap_bumpmap = has_ext("GL_ATI_envmap_bumpmap"); + GLAD_GL_ARB_robust_buffer_access_behavior = has_ext("GL_ARB_robust_buffer_access_behavior"); + GLAD_GL_ARB_shader_stencil_export = has_ext("GL_ARB_shader_stencil_export"); + GLAD_GL_NV_texture_rectangle = has_ext("GL_NV_texture_rectangle"); + GLAD_GL_ARB_enhanced_layouts = has_ext("GL_ARB_enhanced_layouts"); + GLAD_GL_ARB_texture_rectangle = has_ext("GL_ARB_texture_rectangle"); + GLAD_GL_SGI_texture_color_table = has_ext("GL_SGI_texture_color_table"); + GLAD_GL_ATI_map_object_buffer = has_ext("GL_ATI_map_object_buffer"); + GLAD_GL_ARB_robustness = has_ext("GL_ARB_robustness"); + GLAD_GL_NV_pixel_data_range = has_ext("GL_NV_pixel_data_range"); + GLAD_GL_EXT_framebuffer_blit = has_ext("GL_EXT_framebuffer_blit"); + GLAD_GL_ARB_gpu_shader_fp64 = has_ext("GL_ARB_gpu_shader_fp64"); + GLAD_GL_NV_command_list = has_ext("GL_NV_command_list"); + GLAD_GL_SGIX_depth_texture = has_ext("GL_SGIX_depth_texture"); + GLAD_GL_EXT_vertex_weighting = has_ext("GL_EXT_vertex_weighting"); + GLAD_GL_GREMEDY_string_marker = has_ext("GL_GREMEDY_string_marker"); + GLAD_GL_ARB_texture_compression_bptc = has_ext("GL_ARB_texture_compression_bptc"); + GLAD_GL_EXT_subtexture = has_ext("GL_EXT_subtexture"); + GLAD_GL_EXT_pixel_transform_color_table = has_ext("GL_EXT_pixel_transform_color_table"); + GLAD_GL_EXT_texture_compression_rgtc = has_ext("GL_EXT_texture_compression_rgtc"); + GLAD_GL_ARB_shader_atomic_counter_ops = has_ext("GL_ARB_shader_atomic_counter_ops"); + GLAD_GL_SGIX_depth_pass_instrument = has_ext("GL_SGIX_depth_pass_instrument"); + GLAD_GL_EXT_gpu_program_parameters = has_ext("GL_EXT_gpu_program_parameters"); + GLAD_GL_NV_evaluators = has_ext("GL_NV_evaluators"); + GLAD_GL_SGIS_texture_filter4 = has_ext("GL_SGIS_texture_filter4"); + GLAD_GL_AMD_performance_monitor = has_ext("GL_AMD_performance_monitor"); + GLAD_GL_NV_geometry_shader4 = has_ext("GL_NV_geometry_shader4"); + GLAD_GL_EXT_stencil_clear_tag = has_ext("GL_EXT_stencil_clear_tag"); + GLAD_GL_NV_vertex_program1_1 = has_ext("GL_NV_vertex_program1_1"); + GLAD_GL_NV_present_video = has_ext("GL_NV_present_video"); + GLAD_GL_ARB_texture_compression_rgtc = has_ext("GL_ARB_texture_compression_rgtc"); + GLAD_GL_HP_convolution_border_modes = has_ext("GL_HP_convolution_border_modes"); + GLAD_GL_EXT_shader_integer_mix = has_ext("GL_EXT_shader_integer_mix"); + GLAD_GL_SGIX_framezoom = has_ext("GL_SGIX_framezoom"); + GLAD_GL_ARB_stencil_texturing = has_ext("GL_ARB_stencil_texturing"); + GLAD_GL_ARB_shader_clock = has_ext("GL_ARB_shader_clock"); + GLAD_GL_NV_shader_atomic_fp16_vector = has_ext("GL_NV_shader_atomic_fp16_vector"); + GLAD_GL_SGIX_fog_offset = has_ext("GL_SGIX_fog_offset"); + GLAD_GL_ARB_draw_elements_base_vertex = has_ext("GL_ARB_draw_elements_base_vertex"); + GLAD_GL_INGR_interlace_read = has_ext("GL_INGR_interlace_read"); + GLAD_GL_NV_transform_feedback = has_ext("GL_NV_transform_feedback"); + GLAD_GL_NV_fragment_program = has_ext("GL_NV_fragment_program"); + GLAD_GL_AMD_stencil_operation_extended = has_ext("GL_AMD_stencil_operation_extended"); + GLAD_GL_ARB_seamless_cubemap_per_texture = has_ext("GL_ARB_seamless_cubemap_per_texture"); + GLAD_GL_ARB_instanced_arrays = has_ext("GL_ARB_instanced_arrays"); + GLAD_GL_EXT_polygon_offset = has_ext("GL_EXT_polygon_offset"); + GLAD_GL_NV_vertex_array_range2 = has_ext("GL_NV_vertex_array_range2"); + GLAD_GL_KHR_robustness = has_ext("GL_KHR_robustness"); + GLAD_GL_AMD_sparse_texture = has_ext("GL_AMD_sparse_texture"); + GLAD_GL_ARB_clip_control = has_ext("GL_ARB_clip_control"); + GLAD_GL_NV_fragment_coverage_to_color = has_ext("GL_NV_fragment_coverage_to_color"); + GLAD_GL_NV_fence = has_ext("GL_NV_fence"); + GLAD_GL_ARB_texture_buffer_range = has_ext("GL_ARB_texture_buffer_range"); + GLAD_GL_SUN_mesh_array = has_ext("GL_SUN_mesh_array"); + GLAD_GL_ARB_vertex_attrib_binding = has_ext("GL_ARB_vertex_attrib_binding"); + GLAD_GL_ARB_framebuffer_no_attachments = has_ext("GL_ARB_framebuffer_no_attachments"); + GLAD_GL_ARB_cl_event = has_ext("GL_ARB_cl_event"); + GLAD_GL_ARB_derivative_control = has_ext("GL_ARB_derivative_control"); + GLAD_GL_NV_packed_depth_stencil = has_ext("GL_NV_packed_depth_stencil"); + GLAD_GL_OES_single_precision = has_ext("GL_OES_single_precision"); + GLAD_GL_NV_primitive_restart = has_ext("GL_NV_primitive_restart"); + GLAD_GL_SUN_global_alpha = has_ext("GL_SUN_global_alpha"); + GLAD_GL_ARB_fragment_shader_interlock = has_ext("GL_ARB_fragment_shader_interlock"); + GLAD_GL_EXT_texture_object = has_ext("GL_EXT_texture_object"); + GLAD_GL_AMD_name_gen_delete = has_ext("GL_AMD_name_gen_delete"); + GLAD_GL_NV_texture_compression_vtc = has_ext("GL_NV_texture_compression_vtc"); + GLAD_GL_NV_sample_mask_override_coverage = has_ext("GL_NV_sample_mask_override_coverage"); + GLAD_GL_NV_texture_shader3 = has_ext("GL_NV_texture_shader3"); + GLAD_GL_NV_texture_shader2 = has_ext("GL_NV_texture_shader2"); + GLAD_GL_EXT_texture = has_ext("GL_EXT_texture"); + GLAD_GL_ARB_buffer_storage = has_ext("GL_ARB_buffer_storage"); + GLAD_GL_AMD_shader_atomic_counter_ops = has_ext("GL_AMD_shader_atomic_counter_ops"); + GLAD_GL_APPLE_vertex_program_evaluators = has_ext("GL_APPLE_vertex_program_evaluators"); + GLAD_GL_ARB_multi_bind = has_ext("GL_ARB_multi_bind"); + GLAD_GL_ARB_explicit_uniform_location = has_ext("GL_ARB_explicit_uniform_location"); + GLAD_GL_ARB_depth_buffer_float = has_ext("GL_ARB_depth_buffer_float"); + GLAD_GL_NV_path_rendering_shared_edge = has_ext("GL_NV_path_rendering_shared_edge"); + GLAD_GL_SGIX_shadow_ambient = has_ext("GL_SGIX_shadow_ambient"); + GLAD_GL_ARB_texture_cube_map = has_ext("GL_ARB_texture_cube_map"); + GLAD_GL_AMD_vertex_shader_viewport_index = has_ext("GL_AMD_vertex_shader_viewport_index"); + GLAD_GL_SGIX_list_priority = has_ext("GL_SGIX_list_priority"); + GLAD_GL_NV_vertex_buffer_unified_memory = has_ext("GL_NV_vertex_buffer_unified_memory"); + GLAD_GL_NV_uniform_buffer_unified_memory = has_ext("GL_NV_uniform_buffer_unified_memory"); + GLAD_GL_EXT_texture_env_dot3 = has_ext("GL_EXT_texture_env_dot3"); + GLAD_GL_ATI_texture_env_combine3 = has_ext("GL_ATI_texture_env_combine3"); + GLAD_GL_ARB_map_buffer_alignment = has_ext("GL_ARB_map_buffer_alignment"); + GLAD_GL_NV_blend_equation_advanced = has_ext("GL_NV_blend_equation_advanced"); + GLAD_GL_SGIS_sharpen_texture = has_ext("GL_SGIS_sharpen_texture"); + GLAD_GL_KHR_robust_buffer_access_behavior = has_ext("GL_KHR_robust_buffer_access_behavior"); + GLAD_GL_ARB_pipeline_statistics_query = has_ext("GL_ARB_pipeline_statistics_query"); + GLAD_GL_ARB_vertex_program = has_ext("GL_ARB_vertex_program"); + GLAD_GL_ARB_texture_rgb10_a2ui = has_ext("GL_ARB_texture_rgb10_a2ui"); + GLAD_GL_OML_interlace = has_ext("GL_OML_interlace"); + GLAD_GL_ATI_pixel_format_float = has_ext("GL_ATI_pixel_format_float"); + GLAD_GL_NV_geometry_shader_passthrough = has_ext("GL_NV_geometry_shader_passthrough"); + GLAD_GL_ARB_vertex_buffer_object = has_ext("GL_ARB_vertex_buffer_object"); + GLAD_GL_EXT_shadow_funcs = has_ext("GL_EXT_shadow_funcs"); + GLAD_GL_ATI_text_fragment_shader = has_ext("GL_ATI_text_fragment_shader"); + GLAD_GL_NV_vertex_array_range = has_ext("GL_NV_vertex_array_range"); + GLAD_GL_SGIX_fragment_lighting = has_ext("GL_SGIX_fragment_lighting"); + GLAD_GL_NV_texture_expand_normal = has_ext("GL_NV_texture_expand_normal"); + GLAD_GL_NV_framebuffer_multisample_coverage = has_ext("GL_NV_framebuffer_multisample_coverage"); + GLAD_GL_EXT_timer_query = has_ext("GL_EXT_timer_query"); + GLAD_GL_EXT_vertex_array_bgra = has_ext("GL_EXT_vertex_array_bgra"); + GLAD_GL_NV_bindless_texture = has_ext("GL_NV_bindless_texture"); + GLAD_GL_KHR_debug = has_ext("GL_KHR_debug"); + GLAD_GL_SGIS_texture_border_clamp = has_ext("GL_SGIS_texture_border_clamp"); + GLAD_GL_ATI_vertex_attrib_array_object = has_ext("GL_ATI_vertex_attrib_array_object"); + GLAD_GL_SGIX_clipmap = has_ext("GL_SGIX_clipmap"); + GLAD_GL_EXT_geometry_shader4 = has_ext("GL_EXT_geometry_shader4"); + GLAD_GL_ARB_shader_texture_image_samples = has_ext("GL_ARB_shader_texture_image_samples"); + GLAD_GL_MESA_ycbcr_texture = has_ext("GL_MESA_ycbcr_texture"); + GLAD_GL_MESAX_texture_stack = has_ext("GL_MESAX_texture_stack"); + GLAD_GL_AMD_seamless_cubemap_per_texture = has_ext("GL_AMD_seamless_cubemap_per_texture"); + GLAD_GL_EXT_bindable_uniform = has_ext("GL_EXT_bindable_uniform"); + GLAD_GL_KHR_texture_compression_astc_hdr = has_ext("GL_KHR_texture_compression_astc_hdr"); + GLAD_GL_ARB_shader_ballot = has_ext("GL_ARB_shader_ballot"); + GLAD_GL_KHR_blend_equation_advanced = has_ext("GL_KHR_blend_equation_advanced"); + GLAD_GL_ARB_fragment_program_shadow = has_ext("GL_ARB_fragment_program_shadow"); + GLAD_GL_ATI_element_array = has_ext("GL_ATI_element_array"); + GLAD_GL_AMD_texture_texture4 = has_ext("GL_AMD_texture_texture4"); + GLAD_GL_SGIX_reference_plane = has_ext("GL_SGIX_reference_plane"); + GLAD_GL_EXT_stencil_two_side = has_ext("GL_EXT_stencil_two_side"); + GLAD_GL_ARB_transform_feedback_overflow_query = has_ext("GL_ARB_transform_feedback_overflow_query"); + GLAD_GL_SGIX_texture_lod_bias = has_ext("GL_SGIX_texture_lod_bias"); + GLAD_GL_KHR_no_error = has_ext("GL_KHR_no_error"); + GLAD_GL_NV_explicit_multisample = has_ext("GL_NV_explicit_multisample"); + GLAD_GL_IBM_static_data = has_ext("GL_IBM_static_data"); + GLAD_GL_EXT_clip_volume_hint = has_ext("GL_EXT_clip_volume_hint"); + GLAD_GL_EXT_texture_perturb_normal = has_ext("GL_EXT_texture_perturb_normal"); + GLAD_GL_NV_fragment_program2 = has_ext("GL_NV_fragment_program2"); + GLAD_GL_NV_fragment_program4 = has_ext("GL_NV_fragment_program4"); + GLAD_GL_EXT_point_parameters = has_ext("GL_EXT_point_parameters"); + GLAD_GL_PGI_misc_hints = has_ext("GL_PGI_misc_hints"); + GLAD_GL_SGIX_subsample = has_ext("GL_SGIX_subsample"); + GLAD_GL_AMD_shader_stencil_export = has_ext("GL_AMD_shader_stencil_export"); + GLAD_GL_ARB_shader_texture_lod = has_ext("GL_ARB_shader_texture_lod"); + GLAD_GL_ARB_vertex_shader = has_ext("GL_ARB_vertex_shader"); + GLAD_GL_ARB_depth_clamp = has_ext("GL_ARB_depth_clamp"); + GLAD_GL_SGIS_texture_select = has_ext("GL_SGIS_texture_select"); + GLAD_GL_NV_texture_shader = has_ext("GL_NV_texture_shader"); + GLAD_GL_ARB_tessellation_shader = has_ext("GL_ARB_tessellation_shader"); + GLAD_GL_EXT_draw_buffers2 = has_ext("GL_EXT_draw_buffers2"); + GLAD_GL_ARB_vertex_attrib_64bit = has_ext("GL_ARB_vertex_attrib_64bit"); + GLAD_GL_EXT_texture_filter_minmax = has_ext("GL_EXT_texture_filter_minmax"); + GLAD_GL_WIN_specular_fog = has_ext("GL_WIN_specular_fog"); + GLAD_GL_AMD_interleaved_elements = has_ext("GL_AMD_interleaved_elements"); + GLAD_GL_ARB_fragment_program = has_ext("GL_ARB_fragment_program"); + GLAD_GL_OML_resample = has_ext("GL_OML_resample"); + GLAD_GL_APPLE_ycbcr_422 = has_ext("GL_APPLE_ycbcr_422"); + GLAD_GL_SGIX_texture_add_env = has_ext("GL_SGIX_texture_add_env"); + GLAD_GL_ARB_shadow_ambient = has_ext("GL_ARB_shadow_ambient"); + GLAD_GL_ARB_texture_storage = has_ext("GL_ARB_texture_storage"); + GLAD_GL_EXT_pixel_buffer_object = has_ext("GL_EXT_pixel_buffer_object"); + GLAD_GL_ARB_copy_image = has_ext("GL_ARB_copy_image"); + GLAD_GL_SGIS_pixel_texture = has_ext("GL_SGIS_pixel_texture"); + GLAD_GL_SGIS_generate_mipmap = has_ext("GL_SGIS_generate_mipmap"); + GLAD_GL_SGIX_instruments = has_ext("GL_SGIX_instruments"); + GLAD_GL_HP_texture_lighting = has_ext("GL_HP_texture_lighting"); + GLAD_GL_ARB_shader_storage_buffer_object = has_ext("GL_ARB_shader_storage_buffer_object"); + GLAD_GL_EXT_sparse_texture2 = has_ext("GL_EXT_sparse_texture2"); + GLAD_GL_EXT_blend_minmax = has_ext("GL_EXT_blend_minmax"); + GLAD_GL_MESA_pack_invert = has_ext("GL_MESA_pack_invert"); + GLAD_GL_ARB_base_instance = has_ext("GL_ARB_base_instance"); + GLAD_GL_SGIX_convolution_accuracy = has_ext("GL_SGIX_convolution_accuracy"); + GLAD_GL_PGI_vertex_hints = has_ext("GL_PGI_vertex_hints"); + GLAD_GL_AMD_transform_feedback4 = has_ext("GL_AMD_transform_feedback4"); + GLAD_GL_ARB_ES3_1_compatibility = has_ext("GL_ARB_ES3_1_compatibility"); + GLAD_GL_EXT_texture_integer = has_ext("GL_EXT_texture_integer"); + GLAD_GL_ARB_texture_multisample = has_ext("GL_ARB_texture_multisample"); + GLAD_GL_AMD_gpu_shader_int64 = has_ext("GL_AMD_gpu_shader_int64"); + GLAD_GL_S3_s3tc = has_ext("GL_S3_s3tc"); + GLAD_GL_ARB_query_buffer_object = has_ext("GL_ARB_query_buffer_object"); + GLAD_GL_AMD_vertex_shader_tessellator = has_ext("GL_AMD_vertex_shader_tessellator"); + GLAD_GL_ARB_invalidate_subdata = has_ext("GL_ARB_invalidate_subdata"); + GLAD_GL_EXT_index_material = has_ext("GL_EXT_index_material"); + GLAD_GL_NV_blend_equation_advanced_coherent = has_ext("GL_NV_blend_equation_advanced_coherent"); + GLAD_GL_KHR_texture_compression_astc_sliced_3d = has_ext("GL_KHR_texture_compression_astc_sliced_3d"); + GLAD_GL_INTEL_parallel_arrays = has_ext("GL_INTEL_parallel_arrays"); + GLAD_GL_ATI_draw_buffers = has_ext("GL_ATI_draw_buffers"); + GLAD_GL_EXT_cmyka = has_ext("GL_EXT_cmyka"); + GLAD_GL_SGIX_pixel_texture = has_ext("GL_SGIX_pixel_texture"); + GLAD_GL_APPLE_specular_vector = has_ext("GL_APPLE_specular_vector"); + GLAD_GL_ARB_compatibility = has_ext("GL_ARB_compatibility"); + GLAD_GL_ARB_timer_query = has_ext("GL_ARB_timer_query"); + GLAD_GL_SGIX_interlace = has_ext("GL_SGIX_interlace"); + GLAD_GL_NV_parameter_buffer_object = has_ext("GL_NV_parameter_buffer_object"); + GLAD_GL_AMD_shader_trinary_minmax = has_ext("GL_AMD_shader_trinary_minmax"); + GLAD_GL_ARB_direct_state_access = has_ext("GL_ARB_direct_state_access"); + GLAD_GL_EXT_rescale_normal = has_ext("GL_EXT_rescale_normal"); + GLAD_GL_ARB_pixel_buffer_object = has_ext("GL_ARB_pixel_buffer_object"); + GLAD_GL_ARB_uniform_buffer_object = has_ext("GL_ARB_uniform_buffer_object"); + GLAD_GL_ARB_vertex_type_10f_11f_11f_rev = has_ext("GL_ARB_vertex_type_10f_11f_11f_rev"); + GLAD_GL_ARB_texture_swizzle = has_ext("GL_ARB_texture_swizzle"); + GLAD_GL_NV_transform_feedback2 = has_ext("GL_NV_transform_feedback2"); + GLAD_GL_SGIX_async_pixel = has_ext("GL_SGIX_async_pixel"); + GLAD_GL_NV_fragment_program_option = has_ext("GL_NV_fragment_program_option"); + GLAD_GL_ARB_explicit_attrib_location = has_ext("GL_ARB_explicit_attrib_location"); + GLAD_GL_EXT_blend_color = has_ext("GL_EXT_blend_color"); + GLAD_GL_NV_shader_thread_group = has_ext("GL_NV_shader_thread_group"); + GLAD_GL_EXT_stencil_wrap = has_ext("GL_EXT_stencil_wrap"); + GLAD_GL_EXT_index_array_formats = has_ext("GL_EXT_index_array_formats"); + GLAD_GL_OVR_multiview2 = has_ext("GL_OVR_multiview2"); + GLAD_GL_EXT_histogram = has_ext("GL_EXT_histogram"); + GLAD_GL_ARB_get_texture_sub_image = has_ext("GL_ARB_get_texture_sub_image"); + GLAD_GL_SGIS_point_parameters = has_ext("GL_SGIS_point_parameters"); + GLAD_GL_SGIX_ycrcb = has_ext("GL_SGIX_ycrcb"); + GLAD_GL_EXT_direct_state_access = has_ext("GL_EXT_direct_state_access"); + GLAD_GL_ARB_cull_distance = has_ext("GL_ARB_cull_distance"); + GLAD_GL_AMD_sample_positions = has_ext("GL_AMD_sample_positions"); + GLAD_GL_NV_vertex_program = has_ext("GL_NV_vertex_program"); + GLAD_GL_NV_shader_thread_shuffle = has_ext("GL_NV_shader_thread_shuffle"); + GLAD_GL_ARB_shader_precision = has_ext("GL_ARB_shader_precision"); + GLAD_GL_EXT_vertex_shader = has_ext("GL_EXT_vertex_shader"); + GLAD_GL_EXT_blend_func_separate = has_ext("GL_EXT_blend_func_separate"); + GLAD_GL_APPLE_fence = has_ext("GL_APPLE_fence"); + GLAD_GL_OES_byte_coordinates = has_ext("GL_OES_byte_coordinates"); + GLAD_GL_ARB_transpose_matrix = has_ext("GL_ARB_transpose_matrix"); + GLAD_GL_ARB_provoking_vertex = has_ext("GL_ARB_provoking_vertex"); + GLAD_GL_EXT_fog_coord = has_ext("GL_EXT_fog_coord"); + GLAD_GL_EXT_vertex_array = has_ext("GL_EXT_vertex_array"); + GLAD_GL_ARB_half_float_vertex = has_ext("GL_ARB_half_float_vertex"); + GLAD_GL_EXT_blend_equation_separate = has_ext("GL_EXT_blend_equation_separate"); + GLAD_GL_NV_framebuffer_mixed_samples = has_ext("GL_NV_framebuffer_mixed_samples"); + GLAD_GL_NVX_conditional_render = has_ext("GL_NVX_conditional_render"); + GLAD_GL_ARB_multi_draw_indirect = has_ext("GL_ARB_multi_draw_indirect"); + GLAD_GL_EXT_raster_multisample = has_ext("GL_EXT_raster_multisample"); + GLAD_GL_NV_copy_image = has_ext("GL_NV_copy_image"); + GLAD_GL_ARB_fragment_layer_viewport = has_ext("GL_ARB_fragment_layer_viewport"); + GLAD_GL_INTEL_framebuffer_CMAA = has_ext("GL_INTEL_framebuffer_CMAA"); + GLAD_GL_ARB_transform_feedback2 = has_ext("GL_ARB_transform_feedback2"); + GLAD_GL_ARB_transform_feedback3 = has_ext("GL_ARB_transform_feedback3"); + GLAD_GL_SGIX_ycrcba = has_ext("GL_SGIX_ycrcba"); + GLAD_GL_EXT_debug_marker = has_ext("GL_EXT_debug_marker"); + GLAD_GL_EXT_bgra = has_ext("GL_EXT_bgra"); + GLAD_GL_ARB_sparse_texture_clamp = has_ext("GL_ARB_sparse_texture_clamp"); + GLAD_GL_EXT_pixel_transform = has_ext("GL_EXT_pixel_transform"); + GLAD_GL_ARB_conservative_depth = has_ext("GL_ARB_conservative_depth"); + GLAD_GL_ATI_fragment_shader = has_ext("GL_ATI_fragment_shader"); + GLAD_GL_ARB_vertex_array_object = has_ext("GL_ARB_vertex_array_object"); + GLAD_GL_SUN_triangle_list = has_ext("GL_SUN_triangle_list"); + GLAD_GL_EXT_texture_env_add = has_ext("GL_EXT_texture_env_add"); + GLAD_GL_EXT_packed_depth_stencil = has_ext("GL_EXT_packed_depth_stencil"); + GLAD_GL_EXT_texture_mirror_clamp = has_ext("GL_EXT_texture_mirror_clamp"); + GLAD_GL_NV_multisample_filter_hint = has_ext("GL_NV_multisample_filter_hint"); + GLAD_GL_APPLE_float_pixels = has_ext("GL_APPLE_float_pixels"); + GLAD_GL_ARB_transform_feedback_instanced = has_ext("GL_ARB_transform_feedback_instanced"); + GLAD_GL_SGIX_async = has_ext("GL_SGIX_async"); + GLAD_GL_EXT_texture_compression_latc = has_ext("GL_EXT_texture_compression_latc"); + GLAD_GL_NV_shader_atomic_float = has_ext("GL_NV_shader_atomic_float"); + GLAD_GL_ARB_shading_language_100 = has_ext("GL_ARB_shading_language_100"); + GLAD_GL_INTEL_performance_query = has_ext("GL_INTEL_performance_query"); + GLAD_GL_ARB_texture_mirror_clamp_to_edge = has_ext("GL_ARB_texture_mirror_clamp_to_edge"); + GLAD_GL_NV_gpu_shader5 = has_ext("GL_NV_gpu_shader5"); + GLAD_GL_NV_bindless_multi_draw_indirect_count = has_ext("GL_NV_bindless_multi_draw_indirect_count"); + GLAD_GL_ARB_ES2_compatibility = has_ext("GL_ARB_ES2_compatibility"); + GLAD_GL_ARB_indirect_parameters = has_ext("GL_ARB_indirect_parameters"); + GLAD_GL_NV_half_float = has_ext("GL_NV_half_float"); + GLAD_GL_ARB_ES3_2_compatibility = has_ext("GL_ARB_ES3_2_compatibility"); + GLAD_GL_ATI_texture_mirror_once = has_ext("GL_ATI_texture_mirror_once"); + GLAD_GL_IBM_rasterpos_clip = has_ext("GL_IBM_rasterpos_clip"); + GLAD_GL_SGIX_shadow = has_ext("GL_SGIX_shadow"); + GLAD_GL_EXT_polygon_offset_clamp = has_ext("GL_EXT_polygon_offset_clamp"); + GLAD_GL_NV_deep_texture3D = has_ext("GL_NV_deep_texture3D"); + GLAD_GL_ARB_shader_draw_parameters = has_ext("GL_ARB_shader_draw_parameters"); + GLAD_GL_SGIX_calligraphic_fragment = has_ext("GL_SGIX_calligraphic_fragment"); + GLAD_GL_ARB_shader_bit_encoding = has_ext("GL_ARB_shader_bit_encoding"); + GLAD_GL_EXT_compiled_vertex_array = has_ext("GL_EXT_compiled_vertex_array"); + GLAD_GL_NV_depth_buffer_float = has_ext("GL_NV_depth_buffer_float"); + GLAD_GL_NV_occlusion_query = has_ext("GL_NV_occlusion_query"); + GLAD_GL_APPLE_flush_buffer_range = has_ext("GL_APPLE_flush_buffer_range"); + GLAD_GL_ARB_imaging = has_ext("GL_ARB_imaging"); + GLAD_GL_ARB_draw_buffers_blend = has_ext("GL_ARB_draw_buffers_blend"); + GLAD_GL_AMD_gcn_shader = has_ext("GL_AMD_gcn_shader"); + GLAD_GL_AMD_blend_minmax_factor = has_ext("GL_AMD_blend_minmax_factor"); + GLAD_GL_EXT_texture_sRGB_decode = has_ext("GL_EXT_texture_sRGB_decode"); + GLAD_GL_ARB_shading_language_420pack = has_ext("GL_ARB_shading_language_420pack"); + GLAD_GL_ARB_shader_viewport_layer_array = has_ext("GL_ARB_shader_viewport_layer_array"); + GLAD_GL_ATI_meminfo = has_ext("GL_ATI_meminfo"); + GLAD_GL_EXT_abgr = has_ext("GL_EXT_abgr"); + GLAD_GL_AMD_pinned_memory = has_ext("GL_AMD_pinned_memory"); + GLAD_GL_EXT_texture_snorm = has_ext("GL_EXT_texture_snorm"); + GLAD_GL_SGIX_texture_coordinate_clamp = has_ext("GL_SGIX_texture_coordinate_clamp"); + GLAD_GL_ARB_clear_buffer_object = has_ext("GL_ARB_clear_buffer_object"); + GLAD_GL_ARB_multisample = has_ext("GL_ARB_multisample"); + GLAD_GL_EXT_debug_label = has_ext("GL_EXT_debug_label"); + GLAD_GL_ARB_sample_shading = has_ext("GL_ARB_sample_shading"); + GLAD_GL_NV_internalformat_sample_query = has_ext("GL_NV_internalformat_sample_query"); + GLAD_GL_INTEL_map_texture = has_ext("GL_INTEL_map_texture"); + GLAD_GL_ARB_texture_env_crossbar = has_ext("GL_ARB_texture_env_crossbar"); + GLAD_GL_EXT_422_pixels = has_ext("GL_EXT_422_pixels"); + GLAD_GL_ARB_compute_shader = has_ext("GL_ARB_compute_shader"); + GLAD_GL_EXT_blend_logic_op = has_ext("GL_EXT_blend_logic_op"); + GLAD_GL_IBM_cull_vertex = has_ext("GL_IBM_cull_vertex"); + GLAD_GL_IBM_vertex_array_lists = has_ext("GL_IBM_vertex_array_lists"); + GLAD_GL_ARB_color_buffer_float = has_ext("GL_ARB_color_buffer_float"); + GLAD_GL_ARB_bindless_texture = has_ext("GL_ARB_bindless_texture"); + GLAD_GL_ARB_window_pos = has_ext("GL_ARB_window_pos"); + GLAD_GL_ARB_internalformat_query = has_ext("GL_ARB_internalformat_query"); + GLAD_GL_ARB_shadow = has_ext("GL_ARB_shadow"); + GLAD_GL_ARB_texture_mirrored_repeat = has_ext("GL_ARB_texture_mirrored_repeat"); + GLAD_GL_EXT_shader_image_load_store = has_ext("GL_EXT_shader_image_load_store"); + GLAD_GL_EXT_copy_texture = has_ext("GL_EXT_copy_texture"); + GLAD_GL_NV_register_combiners2 = has_ext("GL_NV_register_combiners2"); + GLAD_GL_SGIX_ycrcb_subsample = has_ext("GL_SGIX_ycrcb_subsample"); + GLAD_GL_SGIX_ir_instrument1 = has_ext("GL_SGIX_ir_instrument1"); + GLAD_GL_NV_draw_texture = has_ext("GL_NV_draw_texture"); + GLAD_GL_EXT_texture_shared_exponent = has_ext("GL_EXT_texture_shared_exponent"); + GLAD_GL_EXT_draw_instanced = has_ext("GL_EXT_draw_instanced"); + GLAD_GL_NV_copy_depth_to_color = has_ext("GL_NV_copy_depth_to_color"); + GLAD_GL_ARB_viewport_array = has_ext("GL_ARB_viewport_array"); + GLAD_GL_ARB_separate_shader_objects = has_ext("GL_ARB_separate_shader_objects"); + GLAD_GL_EXT_depth_bounds_test = has_ext("GL_EXT_depth_bounds_test"); + GLAD_GL_EXT_shared_texture_palette = has_ext("GL_EXT_shared_texture_palette"); + GLAD_GL_ARB_texture_env_add = has_ext("GL_ARB_texture_env_add"); + GLAD_GL_NV_video_capture = has_ext("GL_NV_video_capture"); + GLAD_GL_ARB_sampler_objects = has_ext("GL_ARB_sampler_objects"); + GLAD_GL_ARB_matrix_palette = has_ext("GL_ARB_matrix_palette"); + GLAD_GL_SGIS_texture_color_mask = has_ext("GL_SGIS_texture_color_mask"); + GLAD_GL_EXT_packed_pixels = has_ext("GL_EXT_packed_pixels"); + GLAD_GL_EXT_coordinate_frame = has_ext("GL_EXT_coordinate_frame"); + GLAD_GL_ARB_texture_compression = has_ext("GL_ARB_texture_compression"); + GLAD_GL_APPLE_aux_depth_stencil = has_ext("GL_APPLE_aux_depth_stencil"); + GLAD_GL_ARB_shader_subroutine = has_ext("GL_ARB_shader_subroutine"); + GLAD_GL_EXT_framebuffer_sRGB = has_ext("GL_EXT_framebuffer_sRGB"); + GLAD_GL_ARB_texture_storage_multisample = has_ext("GL_ARB_texture_storage_multisample"); + GLAD_GL_KHR_blend_equation_advanced_coherent = has_ext("GL_KHR_blend_equation_advanced_coherent"); + GLAD_GL_EXT_vertex_attrib_64bit = has_ext("GL_EXT_vertex_attrib_64bit"); + GLAD_GL_ARB_depth_texture = has_ext("GL_ARB_depth_texture"); + GLAD_GL_NV_shader_buffer_store = has_ext("GL_NV_shader_buffer_store"); + GLAD_GL_OES_query_matrix = has_ext("GL_OES_query_matrix"); + GLAD_GL_MESA_window_pos = has_ext("GL_MESA_window_pos"); + GLAD_GL_NV_fill_rectangle = has_ext("GL_NV_fill_rectangle"); + GLAD_GL_NV_shader_storage_buffer_object = has_ext("GL_NV_shader_storage_buffer_object"); + GLAD_GL_ARB_texture_query_lod = has_ext("GL_ARB_texture_query_lod"); + GLAD_GL_ARB_copy_buffer = has_ext("GL_ARB_copy_buffer"); + GLAD_GL_ARB_shader_image_size = has_ext("GL_ARB_shader_image_size"); + GLAD_GL_NV_shader_atomic_counters = has_ext("GL_NV_shader_atomic_counters"); + GLAD_GL_APPLE_object_purgeable = has_ext("GL_APPLE_object_purgeable"); + GLAD_GL_ARB_occlusion_query = has_ext("GL_ARB_occlusion_query"); + GLAD_GL_INGR_color_clamp = has_ext("GL_INGR_color_clamp"); + GLAD_GL_SGI_color_table = has_ext("GL_SGI_color_table"); + GLAD_GL_NV_gpu_program5_mem_extended = has_ext("GL_NV_gpu_program5_mem_extended"); + GLAD_GL_ARB_texture_cube_map_array = has_ext("GL_ARB_texture_cube_map_array"); + GLAD_GL_SGIX_scalebias_hint = has_ext("GL_SGIX_scalebias_hint"); + GLAD_GL_EXT_gpu_shader4 = has_ext("GL_EXT_gpu_shader4"); + GLAD_GL_NV_geometry_program4 = has_ext("GL_NV_geometry_program4"); + GLAD_GL_EXT_framebuffer_multisample_blit_scaled = has_ext("GL_EXT_framebuffer_multisample_blit_scaled"); + GLAD_GL_AMD_debug_output = has_ext("GL_AMD_debug_output"); + GLAD_GL_ARB_texture_border_clamp = has_ext("GL_ARB_texture_border_clamp"); + GLAD_GL_ARB_fragment_coord_conventions = has_ext("GL_ARB_fragment_coord_conventions"); + GLAD_GL_ARB_multitexture = has_ext("GL_ARB_multitexture"); + GLAD_GL_SGIX_polynomial_ffd = has_ext("GL_SGIX_polynomial_ffd"); + GLAD_GL_EXT_provoking_vertex = has_ext("GL_EXT_provoking_vertex"); + GLAD_GL_ARB_point_parameters = has_ext("GL_ARB_point_parameters"); + GLAD_GL_ARB_shader_image_load_store = has_ext("GL_ARB_shader_image_load_store"); + GLAD_GL_ARB_conditional_render_inverted = has_ext("GL_ARB_conditional_render_inverted"); + GLAD_GL_HP_occlusion_test = has_ext("GL_HP_occlusion_test"); + GLAD_GL_ARB_ES3_compatibility = has_ext("GL_ARB_ES3_compatibility"); + GLAD_GL_ARB_texture_barrier = has_ext("GL_ARB_texture_barrier"); + GLAD_GL_ARB_texture_buffer_object_rgb32 = has_ext("GL_ARB_texture_buffer_object_rgb32"); + GLAD_GL_NV_bindless_multi_draw_indirect = has_ext("GL_NV_bindless_multi_draw_indirect"); + GLAD_GL_SGIX_texture_multi_buffer = has_ext("GL_SGIX_texture_multi_buffer"); + GLAD_GL_EXT_transform_feedback = has_ext("GL_EXT_transform_feedback"); + GLAD_GL_KHR_texture_compression_astc_ldr = has_ext("GL_KHR_texture_compression_astc_ldr"); + GLAD_GL_3DFX_multisample = has_ext("GL_3DFX_multisample"); + GLAD_GL_INTEL_fragment_shader_ordering = has_ext("GL_INTEL_fragment_shader_ordering"); + GLAD_GL_ARB_texture_env_dot3 = has_ext("GL_ARB_texture_env_dot3"); + GLAD_GL_NV_gpu_program4 = has_ext("GL_NV_gpu_program4"); + GLAD_GL_NV_gpu_program5 = has_ext("GL_NV_gpu_program5"); + GLAD_GL_NV_float_buffer = has_ext("GL_NV_float_buffer"); + GLAD_GL_SGIS_texture_edge_clamp = has_ext("GL_SGIS_texture_edge_clamp"); + GLAD_GL_ARB_framebuffer_sRGB = has_ext("GL_ARB_framebuffer_sRGB"); + GLAD_GL_SUN_slice_accum = has_ext("GL_SUN_slice_accum"); + GLAD_GL_EXT_index_texture = has_ext("GL_EXT_index_texture"); + GLAD_GL_EXT_shader_image_load_formatted = has_ext("GL_EXT_shader_image_load_formatted"); + GLAD_GL_ARB_geometry_shader4 = has_ext("GL_ARB_geometry_shader4"); + GLAD_GL_EXT_separate_specular_color = has_ext("GL_EXT_separate_specular_color"); + GLAD_GL_AMD_depth_clamp_separate = has_ext("GL_AMD_depth_clamp_separate"); + GLAD_GL_NV_conservative_raster = has_ext("GL_NV_conservative_raster"); + GLAD_GL_ARB_sparse_texture2 = has_ext("GL_ARB_sparse_texture2"); + GLAD_GL_SGIX_sprite = has_ext("GL_SGIX_sprite"); + GLAD_GL_ARB_get_program_binary = has_ext("GL_ARB_get_program_binary"); + GLAD_GL_AMD_occlusion_query_event = has_ext("GL_AMD_occlusion_query_event"); + GLAD_GL_SGIS_multisample = has_ext("GL_SGIS_multisample"); + GLAD_GL_EXT_framebuffer_object = has_ext("GL_EXT_framebuffer_object"); + GLAD_GL_ARB_robustness_isolation = has_ext("GL_ARB_robustness_isolation"); + GLAD_GL_ARB_vertex_array_bgra = has_ext("GL_ARB_vertex_array_bgra"); + GLAD_GL_APPLE_vertex_array_range = has_ext("GL_APPLE_vertex_array_range"); + GLAD_GL_AMD_query_buffer_object = has_ext("GL_AMD_query_buffer_object"); + GLAD_GL_NV_register_combiners = has_ext("GL_NV_register_combiners"); + GLAD_GL_ARB_draw_buffers = has_ext("GL_ARB_draw_buffers"); + GLAD_GL_ARB_clear_texture = has_ext("GL_ARB_clear_texture"); + GLAD_GL_ARB_debug_output = has_ext("GL_ARB_debug_output"); + GLAD_GL_SGI_color_matrix = has_ext("GL_SGI_color_matrix"); + GLAD_GL_EXT_cull_vertex = has_ext("GL_EXT_cull_vertex"); + GLAD_GL_EXT_texture_sRGB = has_ext("GL_EXT_texture_sRGB"); + GLAD_GL_APPLE_row_bytes = has_ext("GL_APPLE_row_bytes"); + GLAD_GL_NV_texgen_reflection = has_ext("GL_NV_texgen_reflection"); + GLAD_GL_IBM_multimode_draw_arrays = has_ext("GL_IBM_multimode_draw_arrays"); + GLAD_GL_APPLE_vertex_array_object = has_ext("GL_APPLE_vertex_array_object"); + GLAD_GL_3DFX_texture_compression_FXT1 = has_ext("GL_3DFX_texture_compression_FXT1"); + GLAD_GL_NV_fragment_shader_interlock = has_ext("GL_NV_fragment_shader_interlock"); + GLAD_GL_AMD_conservative_depth = has_ext("GL_AMD_conservative_depth"); + GLAD_GL_ARB_texture_float = has_ext("GL_ARB_texture_float"); + GLAD_GL_ARB_compressed_texture_pixel_storage = has_ext("GL_ARB_compressed_texture_pixel_storage"); + GLAD_GL_SGIS_detail_texture = has_ext("GL_SGIS_detail_texture"); + GLAD_GL_ARB_draw_instanced = has_ext("GL_ARB_draw_instanced"); + GLAD_GL_OES_read_format = has_ext("GL_OES_read_format"); + GLAD_GL_ATI_texture_float = has_ext("GL_ATI_texture_float"); + GLAD_GL_ARB_texture_gather = has_ext("GL_ARB_texture_gather"); + GLAD_GL_AMD_vertex_shader_layer = has_ext("GL_AMD_vertex_shader_layer"); + GLAD_GL_ARB_shading_language_include = has_ext("GL_ARB_shading_language_include"); + GLAD_GL_APPLE_client_storage = has_ext("GL_APPLE_client_storage"); + GLAD_GL_WIN_phong_shading = has_ext("GL_WIN_phong_shading"); + GLAD_GL_INGR_blend_func_separate = has_ext("GL_INGR_blend_func_separate"); + GLAD_GL_NV_path_rendering = has_ext("GL_NV_path_rendering"); + GLAD_GL_NV_conservative_raster_dilate = has_ext("GL_NV_conservative_raster_dilate"); + GLAD_GL_ATI_vertex_streams = has_ext("GL_ATI_vertex_streams"); + GLAD_GL_ARB_post_depth_coverage = has_ext("GL_ARB_post_depth_coverage"); + GLAD_GL_ARB_texture_non_power_of_two = has_ext("GL_ARB_texture_non_power_of_two"); + GLAD_GL_APPLE_rgb_422 = has_ext("GL_APPLE_rgb_422"); + GLAD_GL_EXT_texture_lod_bias = has_ext("GL_EXT_texture_lod_bias"); + GLAD_GL_ARB_gpu_shader_int64 = has_ext("GL_ARB_gpu_shader_int64"); + GLAD_GL_ARB_seamless_cube_map = has_ext("GL_ARB_seamless_cube_map"); + GLAD_GL_ARB_shader_group_vote = has_ext("GL_ARB_shader_group_vote"); + GLAD_GL_NV_vdpau_interop = has_ext("GL_NV_vdpau_interop"); + GLAD_GL_ARB_occlusion_query2 = has_ext("GL_ARB_occlusion_query2"); + GLAD_GL_ARB_internalformat_query2 = has_ext("GL_ARB_internalformat_query2"); + GLAD_GL_EXT_texture_filter_anisotropic = has_ext("GL_EXT_texture_filter_anisotropic"); + GLAD_GL_SUN_vertex = has_ext("GL_SUN_vertex"); + GLAD_GL_SGIX_igloo_interface = has_ext("GL_SGIX_igloo_interface"); + GLAD_GL_SGIS_texture_lod = has_ext("GL_SGIS_texture_lod"); + GLAD_GL_NV_vertex_program3 = has_ext("GL_NV_vertex_program3"); + GLAD_GL_ARB_draw_indirect = has_ext("GL_ARB_draw_indirect"); + GLAD_GL_NV_vertex_program4 = has_ext("GL_NV_vertex_program4"); + GLAD_GL_AMD_transform_feedback3_lines_triangles = has_ext("GL_AMD_transform_feedback3_lines_triangles"); + GLAD_GL_SGIS_fog_function = has_ext("GL_SGIS_fog_function"); + GLAD_GL_EXT_x11_sync_object = has_ext("GL_EXT_x11_sync_object"); + GLAD_GL_ARB_sync = has_ext("GL_ARB_sync"); + GLAD_GL_NV_sample_locations = has_ext("GL_NV_sample_locations"); + GLAD_GL_ARB_compute_variable_group_size = has_ext("GL_ARB_compute_variable_group_size"); + GLAD_GL_OES_fixed_point = has_ext("GL_OES_fixed_point"); + GLAD_GL_NV_blend_square = has_ext("GL_NV_blend_square"); + GLAD_GL_EXT_framebuffer_multisample = has_ext("GL_EXT_framebuffer_multisample"); + GLAD_GL_ARB_gpu_shader5 = has_ext("GL_ARB_gpu_shader5"); + GLAD_GL_SGIS_texture4D = has_ext("GL_SGIS_texture4D"); + GLAD_GL_EXT_texture3D = has_ext("GL_EXT_texture3D"); + GLAD_GL_EXT_multisample = has_ext("GL_EXT_multisample"); + GLAD_GL_EXT_secondary_color = has_ext("GL_EXT_secondary_color"); + GLAD_GL_ARB_texture_filter_minmax = has_ext("GL_ARB_texture_filter_minmax"); + GLAD_GL_ATI_vertex_array_object = has_ext("GL_ATI_vertex_array_object"); + GLAD_GL_ARB_parallel_shader_compile = has_ext("GL_ARB_parallel_shader_compile"); + GLAD_GL_NVX_gpu_memory_info = has_ext("GL_NVX_gpu_memory_info"); + GLAD_GL_ARB_sparse_texture = has_ext("GL_ARB_sparse_texture"); + GLAD_GL_SGIS_point_line_texgen = has_ext("GL_SGIS_point_line_texgen"); + GLAD_GL_ARB_sample_locations = has_ext("GL_ARB_sample_locations"); + GLAD_GL_ARB_sparse_buffer = has_ext("GL_ARB_sparse_buffer"); + GLAD_GL_EXT_draw_range_elements = has_ext("GL_EXT_draw_range_elements"); + GLAD_GL_SGIX_blend_alpha_minmax = has_ext("GL_SGIX_blend_alpha_minmax"); + GLAD_GL_KHR_context_flush_control = has_ext("GL_KHR_context_flush_control"); + free_exts(); + return 1; +} + +static void find_coreGL(void) { + + /* Thank you @elmindreda + * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 + * https://github.com/glfw/glfw/blob/master/src/context.c#L36 + */ + int i, major, minor; + + const char* version; + const char* prefixes[] = { + "OpenGL ES-CM ", + "OpenGL ES-CL ", + "OpenGL ES ", + NULL + }; + + version = (const char*) glGetString(GL_VERSION); + if (!version) return; + + for (i = 0; prefixes[i]; i++) { + const size_t length = strlen(prefixes[i]); + if (strncmp(version, prefixes[i], length) == 0) { + version += length; + break; + } + } + +/* PR #18 */ +#ifdef _MSC_VER + sscanf_s(version, "%d.%d", &major, &minor); +#else + sscanf(version, "%d.%d", &major, &minor); +#endif + + GLVersion.major = major; GLVersion.minor = minor; + max_loaded_major = major; max_loaded_minor = minor; + GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; + GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; + GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; + GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; + GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; + GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; + GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; + GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2; + GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; + GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3; + GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3; + GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3; + if (GLVersion.major > 3 || (GLVersion.major >= 3 && GLVersion.minor >= 3)) { + max_loaded_major = 3; + max_loaded_minor = 3; + } +} + +int gladLoadGLLoader(GLADloadproc load) { + GLVersion.major = 0; GLVersion.minor = 0; + glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); + if(glGetString == NULL) return 0; + if(glGetString(GL_VERSION) == NULL) return 0; + find_coreGL(); + load_GL_VERSION_1_0(load); + load_GL_VERSION_1_1(load); + load_GL_VERSION_1_2(load); + load_GL_VERSION_1_3(load); + load_GL_VERSION_1_4(load); + load_GL_VERSION_1_5(load); + load_GL_VERSION_2_0(load); + load_GL_VERSION_2_1(load); + load_GL_VERSION_3_0(load); + load_GL_VERSION_3_1(load); + load_GL_VERSION_3_2(load); + load_GL_VERSION_3_3(load); + + if (!find_extensionsGL()) return 0; + load_GL_APPLE_element_array(load); + load_GL_AMD_multi_draw_indirect(load); + load_GL_SGIX_tag_sample_buffer(load); + load_GL_NV_point_sprite(load); + load_GL_ATI_separate_stencil(load); + load_GL_EXT_texture_buffer_object(load); + load_GL_ARB_vertex_blend(load); + load_GL_OVR_multiview(load); + load_GL_ARB_program_interface_query(load); + load_GL_EXT_index_func(load); + load_GL_NV_shader_buffer_load(load); + load_GL_EXT_color_subtable(load); + load_GL_SUNX_constant_data(load); + load_GL_EXT_multi_draw_arrays(load); + load_GL_ARB_shader_atomic_counters(load); + load_GL_NV_conditional_render(load); + load_GL_MESA_resize_buffers(load); + load_GL_ARB_texture_view(load); + load_GL_ARB_map_buffer_range(load); + load_GL_EXT_convolution(load); + load_GL_NV_vertex_attrib_integer_64bit(load); + load_GL_EXT_paletted_texture(load); + load_GL_ARB_texture_buffer_object(load); + load_GL_ATI_pn_triangles(load); + load_GL_SGIX_flush_raster(load); + load_GL_EXT_light_texture(load); + load_GL_HP_image_transform(load); + load_GL_AMD_draw_buffers_blend(load); + load_GL_APPLE_texture_range(load); + load_GL_EXT_texture_array(load); + load_GL_NV_texture_barrier(load); + load_GL_ARB_vertex_type_2_10_10_10_rev(load); + load_GL_3DFX_tbuffer(load); + load_GL_GREMEDY_frame_terminator(load); + load_GL_ARB_blend_func_extended(load); + load_GL_EXT_separate_shader_objects(load); + load_GL_NV_texture_multisample(load); + load_GL_ARB_shader_objects(load); + load_GL_ARB_framebuffer_object(load); + load_GL_ATI_envmap_bumpmap(load); + load_GL_ATI_map_object_buffer(load); + load_GL_ARB_robustness(load); + load_GL_NV_pixel_data_range(load); + load_GL_EXT_framebuffer_blit(load); + load_GL_ARB_gpu_shader_fp64(load); + load_GL_NV_command_list(load); + load_GL_EXT_vertex_weighting(load); + load_GL_GREMEDY_string_marker(load); + load_GL_EXT_subtexture(load); + load_GL_EXT_gpu_program_parameters(load); + load_GL_NV_evaluators(load); + load_GL_SGIS_texture_filter4(load); + load_GL_AMD_performance_monitor(load); + load_GL_EXT_stencil_clear_tag(load); + load_GL_NV_present_video(load); + load_GL_SGIX_framezoom(load); + load_GL_ARB_draw_elements_base_vertex(load); + load_GL_NV_transform_feedback(load); + load_GL_NV_fragment_program(load); + load_GL_AMD_stencil_operation_extended(load); + load_GL_ARB_instanced_arrays(load); + load_GL_EXT_polygon_offset(load); + load_GL_KHR_robustness(load); + load_GL_AMD_sparse_texture(load); + load_GL_ARB_clip_control(load); + load_GL_NV_fragment_coverage_to_color(load); + load_GL_NV_fence(load); + load_GL_ARB_texture_buffer_range(load); + load_GL_SUN_mesh_array(load); + load_GL_ARB_vertex_attrib_binding(load); + load_GL_ARB_framebuffer_no_attachments(load); + load_GL_ARB_cl_event(load); + load_GL_OES_single_precision(load); + load_GL_NV_primitive_restart(load); + load_GL_SUN_global_alpha(load); + load_GL_EXT_texture_object(load); + load_GL_AMD_name_gen_delete(load); + load_GL_ARB_buffer_storage(load); + load_GL_APPLE_vertex_program_evaluators(load); + load_GL_ARB_multi_bind(load); + load_GL_SGIX_list_priority(load); + load_GL_NV_vertex_buffer_unified_memory(load); + load_GL_NV_blend_equation_advanced(load); + load_GL_SGIS_sharpen_texture(load); + load_GL_ARB_vertex_program(load); + load_GL_ARB_vertex_buffer_object(load); + load_GL_NV_vertex_array_range(load); + load_GL_SGIX_fragment_lighting(load); + load_GL_NV_framebuffer_multisample_coverage(load); + load_GL_EXT_timer_query(load); + load_GL_NV_bindless_texture(load); + load_GL_KHR_debug(load); + load_GL_ATI_vertex_attrib_array_object(load); + load_GL_EXT_geometry_shader4(load); + load_GL_EXT_bindable_uniform(load); + load_GL_KHR_blend_equation_advanced(load); + load_GL_ATI_element_array(load); + load_GL_SGIX_reference_plane(load); + load_GL_EXT_stencil_two_side(load); + load_GL_NV_explicit_multisample(load); + load_GL_IBM_static_data(load); + load_GL_EXT_texture_perturb_normal(load); + load_GL_EXT_point_parameters(load); + load_GL_PGI_misc_hints(load); + load_GL_ARB_vertex_shader(load); + load_GL_ARB_tessellation_shader(load); + load_GL_EXT_draw_buffers2(load); + load_GL_ARB_vertex_attrib_64bit(load); + load_GL_EXT_texture_filter_minmax(load); + load_GL_AMD_interleaved_elements(load); + load_GL_ARB_fragment_program(load); + load_GL_ARB_texture_storage(load); + load_GL_ARB_copy_image(load); + load_GL_SGIS_pixel_texture(load); + load_GL_SGIX_instruments(load); + load_GL_ARB_shader_storage_buffer_object(load); + load_GL_EXT_blend_minmax(load); + load_GL_ARB_base_instance(load); + load_GL_ARB_ES3_1_compatibility(load); + load_GL_EXT_texture_integer(load); + load_GL_ARB_texture_multisample(load); + load_GL_AMD_gpu_shader_int64(load); + load_GL_AMD_vertex_shader_tessellator(load); + load_GL_ARB_invalidate_subdata(load); + load_GL_EXT_index_material(load); + load_GL_INTEL_parallel_arrays(load); + load_GL_ATI_draw_buffers(load); + load_GL_SGIX_pixel_texture(load); + load_GL_ARB_timer_query(load); + load_GL_NV_parameter_buffer_object(load); + load_GL_ARB_direct_state_access(load); + load_GL_ARB_uniform_buffer_object(load); + load_GL_NV_transform_feedback2(load); + load_GL_EXT_blend_color(load); + load_GL_EXT_histogram(load); + load_GL_ARB_get_texture_sub_image(load); + load_GL_SGIS_point_parameters(load); + load_GL_EXT_direct_state_access(load); + load_GL_AMD_sample_positions(load); + load_GL_NV_vertex_program(load); + load_GL_EXT_vertex_shader(load); + load_GL_EXT_blend_func_separate(load); + load_GL_APPLE_fence(load); + load_GL_OES_byte_coordinates(load); + load_GL_ARB_transpose_matrix(load); + load_GL_ARB_provoking_vertex(load); + load_GL_EXT_fog_coord(load); + load_GL_EXT_vertex_array(load); + load_GL_EXT_blend_equation_separate(load); + load_GL_NV_framebuffer_mixed_samples(load); + load_GL_NVX_conditional_render(load); + load_GL_ARB_multi_draw_indirect(load); + load_GL_EXT_raster_multisample(load); + load_GL_NV_copy_image(load); + load_GL_INTEL_framebuffer_CMAA(load); + load_GL_ARB_transform_feedback2(load); + load_GL_ARB_transform_feedback3(load); + load_GL_EXT_debug_marker(load); + load_GL_EXT_pixel_transform(load); + load_GL_ATI_fragment_shader(load); + load_GL_ARB_vertex_array_object(load); + load_GL_SUN_triangle_list(load); + load_GL_ARB_transform_feedback_instanced(load); + load_GL_SGIX_async(load); + load_GL_INTEL_performance_query(load); + load_GL_NV_gpu_shader5(load); + load_GL_NV_bindless_multi_draw_indirect_count(load); + load_GL_ARB_ES2_compatibility(load); + load_GL_ARB_indirect_parameters(load); + load_GL_NV_half_float(load); + load_GL_ARB_ES3_2_compatibility(load); + load_GL_EXT_polygon_offset_clamp(load); + load_GL_EXT_compiled_vertex_array(load); + load_GL_NV_depth_buffer_float(load); + load_GL_NV_occlusion_query(load); + load_GL_APPLE_flush_buffer_range(load); + load_GL_ARB_imaging(load); + load_GL_ARB_draw_buffers_blend(load); + load_GL_ARB_clear_buffer_object(load); + load_GL_ARB_multisample(load); + load_GL_EXT_debug_label(load); + load_GL_ARB_sample_shading(load); + load_GL_NV_internalformat_sample_query(load); + load_GL_INTEL_map_texture(load); + load_GL_ARB_compute_shader(load); + load_GL_IBM_vertex_array_lists(load); + load_GL_ARB_color_buffer_float(load); + load_GL_ARB_bindless_texture(load); + load_GL_ARB_window_pos(load); + load_GL_ARB_internalformat_query(load); + load_GL_EXT_shader_image_load_store(load); + load_GL_EXT_copy_texture(load); + load_GL_NV_register_combiners2(load); + load_GL_NV_draw_texture(load); + load_GL_EXT_draw_instanced(load); + load_GL_ARB_viewport_array(load); + load_GL_ARB_separate_shader_objects(load); + load_GL_EXT_depth_bounds_test(load); + load_GL_NV_video_capture(load); + load_GL_ARB_sampler_objects(load); + load_GL_ARB_matrix_palette(load); + load_GL_SGIS_texture_color_mask(load); + load_GL_EXT_coordinate_frame(load); + load_GL_ARB_texture_compression(load); + load_GL_ARB_shader_subroutine(load); + load_GL_ARB_texture_storage_multisample(load); + load_GL_EXT_vertex_attrib_64bit(load); + load_GL_OES_query_matrix(load); + load_GL_MESA_window_pos(load); + load_GL_ARB_copy_buffer(load); + load_GL_APPLE_object_purgeable(load); + load_GL_ARB_occlusion_query(load); + load_GL_SGI_color_table(load); + load_GL_EXT_gpu_shader4(load); + load_GL_NV_geometry_program4(load); + load_GL_AMD_debug_output(load); + load_GL_ARB_multitexture(load); + load_GL_SGIX_polynomial_ffd(load); + load_GL_EXT_provoking_vertex(load); + load_GL_ARB_point_parameters(load); + load_GL_ARB_shader_image_load_store(load); + load_GL_ARB_texture_barrier(load); + load_GL_NV_bindless_multi_draw_indirect(load); + load_GL_EXT_transform_feedback(load); + load_GL_NV_gpu_program4(load); + load_GL_NV_gpu_program5(load); + load_GL_ARB_geometry_shader4(load); + load_GL_NV_conservative_raster(load); + load_GL_SGIX_sprite(load); + load_GL_ARB_get_program_binary(load); + load_GL_AMD_occlusion_query_event(load); + load_GL_SGIS_multisample(load); + load_GL_EXT_framebuffer_object(load); + load_GL_APPLE_vertex_array_range(load); + load_GL_NV_register_combiners(load); + load_GL_ARB_draw_buffers(load); + load_GL_ARB_clear_texture(load); + load_GL_ARB_debug_output(load); + load_GL_EXT_cull_vertex(load); + load_GL_IBM_multimode_draw_arrays(load); + load_GL_APPLE_vertex_array_object(load); + load_GL_SGIS_detail_texture(load); + load_GL_ARB_draw_instanced(load); + load_GL_ARB_shading_language_include(load); + load_GL_INGR_blend_func_separate(load); + load_GL_NV_path_rendering(load); + load_GL_NV_conservative_raster_dilate(load); + load_GL_ATI_vertex_streams(load); + load_GL_ARB_gpu_shader_int64(load); + load_GL_NV_vdpau_interop(load); + load_GL_ARB_internalformat_query2(load); + load_GL_SUN_vertex(load); + load_GL_SGIX_igloo_interface(load); + load_GL_ARB_draw_indirect(load); + load_GL_NV_vertex_program4(load); + load_GL_SGIS_fog_function(load); + load_GL_EXT_x11_sync_object(load); + load_GL_ARB_sync(load); + load_GL_NV_sample_locations(load); + load_GL_ARB_compute_variable_group_size(load); + load_GL_OES_fixed_point(load); + load_GL_EXT_framebuffer_multisample(load); + load_GL_SGIS_texture4D(load); + load_GL_EXT_texture3D(load); + load_GL_EXT_multisample(load); + load_GL_EXT_secondary_color(load); + load_GL_ATI_vertex_array_object(load); + load_GL_ARB_parallel_shader_compile(load); + load_GL_ARB_sparse_texture(load); + load_GL_ARB_sample_locations(load); + load_GL_ARB_sparse_buffer(load); + load_GL_EXT_draw_range_elements(load); + return GLVersion.major != 0 || GLVersion.minor != 0; +} + +#endif // GLAD_IMPLEMENTATION diff --git a/src/rlgl.c b/src/rlgl.c index 3dda77b16..6b99bf198 100644 --- a/src/rlgl.c +++ b/src/rlgl.c @@ -48,7 +48,8 @@ #ifdef __APPLE__ #include // OpenGL 3 library for OSX #else - #include "external/glad.h" // GLAD library, includes OpenGL headers + #define GLAD_IMPLEMENTATION + #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers #endif #endif From ca13c2ed0c113a504bc9756ef38484af35af270d Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 7 Jun 2016 20:33:49 +0200 Subject: [PATCH 4/9] Converted raygui module to header only --- src/raygui.c | 1138 ---------------------------------------------- src/raygui.h | 1218 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 1198 insertions(+), 1158 deletions(-) delete mode 100644 src/raygui.c diff --git a/src/raygui.c b/src/raygui.c deleted file mode 100644 index 5064f123a..000000000 --- a/src/raygui.c +++ /dev/null @@ -1,1138 +0,0 @@ -/********************************************************************************************** -* -* raygui - raylib IMGUI system (Immedite Mode GUI) -* -* Initial design by Kevin Gato and Daniel Nicolás -* Reviewed by Albert Martos, Ian Eito, Sergio Martinez and Ramon Santamaria (@raysan5) -* -* This software is provided "as-is", without any express or implied warranty. In no event -* will the authors be held liable for any damages arising from the use of this software. -* -* Permission is granted to anyone to use this software for any purpose, including commercial -* applications, and to alter it and redistribute it freely, subject to the following restrictions: -* -* 1. The origin of this software must not be misrepresented; you must not claim that you -* wrote the original software. If you use this software in a product, an acknowledgment -* in the product documentation would be appreciated but is not required. -* -* 2. Altered source versions must be plainly marked as such, and must not be misrepresented -* as being the original software. -* -* 3. This notice may not be removed or altered from any source distribution. -* -**********************************************************************************************/ - -//#define RAYGUI_STANDALONE // To use the raygui module as standalone lib, just uncomment this line - // NOTE: Some external funtions are required for drawing and input management - -#if !defined(RAYGUI_STANDALONE) - #include "raylib.h" -#endif - -#include "raygui.h" - -#include // Required for: FILE, fopen(), fclose(), fprintf(), feof(), fscanf() - // NOTE: Those functions are only used in SaveGuiStyle() and LoadGuiStyle() - -#include // Required for: malloc(), free() -#include // Required for: strcmp() -#include // Required for: va_list, va_start(), vfprintf(), va_end() - -//---------------------------------------------------------------------------------- -// Defines and Macros -//---------------------------------------------------------------------------------- -#if defined(RAYGUI_STANDALONE) - #define KEY_LEFT 263 - #define KEY_RIGHT 262 - #define MOUSE_LEFT_BUTTON 0 -#endif - -//---------------------------------------------------------------------------------- -// Types and Structures Definition -//---------------------------------------------------------------------------------- - -// GUI elements states -typedef enum { BUTTON_DEFAULT, BUTTON_HOVER, BUTTON_PRESSED, BUTTON_CLICKED } ButtonState; -typedef enum { TOGGLE_UNACTIVE, TOGGLE_HOVER, TOGGLE_PRESSED, TOGGLE_ACTIVE } ToggleState; -typedef enum { COMBOBOX_UNACTIVE, COMBOBOX_HOVER, COMBOBOX_PRESSED, COMBOBOX_ACTIVE } ComboBoxState; -typedef enum { SPINNER_DEFAULT, SPINNER_HOVER, SPINNER_PRESSED } SpinnerState; -typedef enum { CHECKBOX_STATUS, CHECKBOX_HOVER, CHECKBOX_PRESSED } CheckBoxState; -typedef enum { SLIDER_DEFAULT, SLIDER_HOVER, SLIDER_ACTIVE } SliderState; - -//---------------------------------------------------------------------------------- -// Global Variables Definition -//---------------------------------------------------------------------------------- - -// Current GUI style (default light) -static int style[NUM_PROPERTIES] = { - 0xf5f5f5ff, // GLOBAL_BASE_COLOR, - 0xf5f5f5ff, // GLOBAL_BORDER_COLOR, - 0xf5f5f5ff, // GLOBAL_TEXT_COLOR, - 10, // GLOBAL_TEXT_FONTSIZE - 1, // GLOBAL_BORDER_WIDTH - 0xf5f5f5ff, // BACKGROUND_COLOR - 1, // LABEL_BORDER_WIDTH - 0x4d4d4dff, // LABEL_TEXT_COLOR - 20, // LABEL_TEXT_PADDING - 2, // BUTTON_BORDER_WIDTH - 20, // BUTTON_TEXT_PADDING - 0x828282ff, // BUTTON_DEFAULT_BORDER_COLOR - 0xc8c8c8ff, // BUTTON_DEFAULT_INSIDE_COLOR - 0x4d4d4dff, // BUTTON_DEFAULT_TEXT_COLOR - 0xc8c8c8ff, // BUTTON_HOVER_BORDER_COLOR - 0xffffffff, // BUTTON_HOVER_INSIDE_COLOR - 0x353535ff, // BUTTON_HOVER_TEXT_COLOR - 0x7bb0d6ff, // BUTTON_PRESSED_BORDER_COLOR - 0xbcecffff, // BUTTON_PRESSED_INSIDE_COLOR - 0x5f9aa7ff, // BUTTON_PRESSED_TEXT_COLOR - 20, // TOGGLE_TEXT_PADDING - 1, // TOGGLE_BORDER_WIDTH - 0x828282ff, // TOGGLE_DEFAULT_BORDER_COLOR - 0xc8c8c8ff, // TOGGLE_DEFAULT_INSIDE_COLOR - 0x828282ff, // TOGGLE_DEFAULT_TEXT_COLOR - 0xc8c8c8ff, // TOGGLE_HOVER_BORDER_COLOR - 0xffffffff, // TOGGLE_HOVER_INSIDE_COLOR - 0x828282ff, // TOGGLE_HOVER_TEXT_COLOR - 0xbdd7eaff, // TOGGLE_PRESSED_BORDER_COLOR - 0xddf5ffff, // TOGGLE_PRESSED_INSIDE_COLOR - 0xafccd3ff, // TOGGLE_PRESSED_TEXT_COLOR - 0x7bb0d6ff, // TOGGLE_ACTIVE_BORDER_COLOR - 0xbcecffff, // TOGGLE_ACTIVE_INSIDE_COLOR - 0x5f9aa7ff, // TOGGLE_ACTIVE_TEXT_COLOR - 3, // TOGGLEGROUP_PADDING - 1, // SLIDER_BORDER_WIDTH - 1, // SLIDER_BUTTON_BORDER_WIDTH - 0x828282ff, // SLIDER_BORDER_COLOR - 0xc8c8c8ff, // SLIDER_INSIDE_COLOR - 0xbcecffff, // SLIDER_DEFAULT_COLOR - 0xffffffff, // SLIDER_HOVER_COLOR - 0xddf5ffff, // SLIDER_ACTIVE_COLOR - 0x828282ff, // SLIDERBAR_BORDER_COLOR - 0xc8c8c8ff, // SLIDERBAR_INSIDE_COLOR - 0xbcecffff, // SLIDERBAR_DEFAULT_COLOR - 0xffffffff, // SLIDERBAR_HOVER_COLOR - 0xddf5ffff, // SLIDERBAR_ACTIVE_COLOR - 0x828282ff, // SLIDERBAR_ZERO_LINE_COLOR - 0x828282ff, // PROGRESSBAR_BORDER_COLOR - 0xc8c8c8ff, // PROGRESSBAR_INSIDE_COLOR - 0xbcecffff, // PROGRESSBAR_PROGRESS_COLOR - 2, // PROGRESSBAR_BORDER_WIDTH - 0x828282ff, // SPINNER_LABEL_BORDER_COLOR - 0xc8c8c8ff, // SPINNER_LABEL_INSIDE_COLOR - 0x828282ff, // SPINNER_DEFAULT_BUTTON_BORDER_COLOR - 0xc8c8c8ff, // SPINNER_DEFAULT_BUTTON_INSIDE_COLOR - 0x000000ff, // SPINNER_DEFAULT_SYMBOL_COLOR - 0x000000ff, // SPINNER_DEFAULT_TEXT_COLOR - 0xc8c8c8ff, // SPINNER_HOVER_BUTTON_BORDER_COLOR - 0xffffffff, // SPINNER_HOVER_BUTTON_INSIDE_COLOR - 0x000000ff, // SPINNER_HOVER_SYMBOL_COLOR - 0x000000ff, // SPINNER_HOVER_TEXT_COLOR - 0x7bb0d6ff, // SPINNER_PRESSED_BUTTON_BORDER_COLOR - 0xbcecffff, // SPINNER_PRESSED_BUTTON_INSIDE_COLOR - 0x5f9aa7ff, // SPINNER_PRESSED_SYMBOL_COLOR - 0x000000ff, // SPINNER_PRESSED_TEXT_COLOR - 1, // COMBOBOX_PADDING - 30, // COMBOBOX_BUTTON_WIDTH - 20, // COMBOBOX_BUTTON_HEIGHT - 1, // COMBOBOX_BORDER_WIDTH - 0x828282ff, // COMBOBOX_DEFAULT_BORDER_COLOR - 0xc8c8c8ff, // COMBOBOX_DEFAULT_INSIDE_COLOR - 0x828282ff, // COMBOBOX_DEFAULT_TEXT_COLOR - 0x828282ff, // COMBOBOX_DEFAULT_LIST_TEXT_COLOR - 0xc8c8c8ff, // COMBOBOX_HOVER_BORDER_COLOR - 0xffffffff, // COMBOBOX_HOVER_INSIDE_COLOR - 0x828282ff, // COMBOBOX_HOVER_TEXT_COLOR - 0x828282ff, // COMBOBOX_HOVER_LIST_TEXT_COLOR - 0x7bb0d6ff, // COMBOBOX_PRESSED_BORDER_COLOR - 0xbcecffff, // COMBOBOX_PRESSED_INSIDE_COLOR - 0x5f9aa7ff, // COMBOBOX_PRESSED_TEXT_COLOR - 0x0078acff, // COMBOBOX_PRESSED_LIST_BORDER_COLOR - 0x66e7ffff, // COMBOBOX_PRESSED_LIST_INSIDE_COLOR - 0x0078acff, // COMBOBOX_PRESSED_LIST_TEXT_COLOR - 0x828282ff, // CHECKBOX_DEFAULT_BORDER_COLOR - 0xffffffff, // CHECKBOX_DEFAULT_INSIDE_COLOR - 0xc8c8c8ff, // CHECKBOX_HOVER_BORDER_COLOR - 0xffffffff, // CHECKBOX_HOVER_INSIDE_COLOR - 0x66e7ffff, // CHECKBOX_CLICK_BORDER_COLOR - 0xddf5ffff, // CHECKBOX_CLICK_INSIDE_COLOR - 0x7bb0d6ff, // CHECKBOX_STATUS_ACTIVE_COLOR - 4, // CHECKBOX_INSIDE_WIDTH - 1, // TEXTBOX_BORDER_WIDTH - 0x828282ff, // TEXTBOX_BORDER_COLOR - 0xf5f5f5ff, // TEXTBOX_INSIDE_COLOR - 0x000000ff, // TEXTBOX_TEXT_COLOR - 0x000000ff, // TEXTBOX_LINE_COLOR - 10 // TEXTBOX_TEXT_FONTSIZE -}; - -//---------------------------------------------------------------------------------- -// Module specific Functions Declaration -//---------------------------------------------------------------------------------- -static Color ColorMultiply(Color baseColor, float value); - -#if defined RAYGUI_STANDALONE -static Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value -static int GetHexValue(Color color); // Returns hexadecimal value for a Color -static bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle -static const char *FormatText(const char *text, ...); // Formatting of text with variables to 'embed' - -// NOTE: raygui depend on some raylib input and drawing functions -// TODO: Replace by your own functions -static Vector2 GetMousePosition() { return (Vector2){ 0.0f, 0.0f }; } -static int IsMouseButtonDown(int button) { return 0; } -static int IsMouseButtonPressed(int button) { return 0; } -static int IsMouseButtonReleased(int button) { return 0; } -static int IsMouseButtonUp(int button) { return 0; } - -static int GetKeyPressed(void) { return 0; } // NOTE: Only used by GuiTextBox() -static int IsKeyDown(int key) { return 0; } // NOTE: Only used by GuiSpinner() - -static int MeasureText(const char *text, int fontSize) { return 0; } -static void DrawText(const char *text, int posX, int posY, int fontSize, Color color) { } -static void DrawRectangleRec(Rectangle rec, Color color) { } -static void DrawRectangle(int posX, int posY, int width, int height, Color color) { DrawRectangleRec((Rectangle){ posX, posY, width, height }, color); } -#endif - -//---------------------------------------------------------------------------------- -// Module Functions Definition -//---------------------------------------------------------------------------------- - -// Label element, show text -void GuiLabel(Rectangle bounds, const char *text) -{ - #define BLANK (Color){ 0, 0, 0, 0 } // Blank (Transparent) - - GuiLabelEx(bounds, text, GetColor(style[LABEL_TEXT_COLOR]), BLANK, BLANK); -} - -// Label element extended, configurable colors -void GuiLabelEx(Rectangle bounds, const char *text, Color textColor, Color border, Color inner) -{ - // Update control - //-------------------------------------------------------------------- - int textWidth = MeasureText(text, style[GLOBAL_TEXT_FONTSIZE]); - int textHeight = style[GLOBAL_TEXT_FONTSIZE]; - - if (bounds.width < textWidth) bounds.width = textWidth + style[LABEL_TEXT_PADDING]; - if (bounds.height < textHeight) bounds.height = textHeight + style[LABEL_TEXT_PADDING]/2; - //-------------------------------------------------------------------- - - // Draw control - //-------------------------------------------------------------------- - DrawRectangleRec(bounds, border); - DrawRectangle(bounds.x + style[LABEL_BORDER_WIDTH], bounds.y + style[LABEL_BORDER_WIDTH], bounds.width - (2 * style[LABEL_BORDER_WIDTH]), bounds.height - (2 * style[LABEL_BORDER_WIDTH]), inner); - DrawText(text, bounds.x + ((bounds.width/2) - (textWidth/2)), bounds.y + ((bounds.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], textColor); - //-------------------------------------------------------------------- -} - -// Button element, returns true when clicked -bool GuiButton(Rectangle bounds, const char *text) -{ - ButtonState buttonState = BUTTON_DEFAULT; - Vector2 mousePoint = GetMousePosition(); - - int textWidth = MeasureText(text, style[GLOBAL_TEXT_FONTSIZE]); - int textHeight = style[GLOBAL_TEXT_FONTSIZE]; - - // Update control - //-------------------------------------------------------------------- - if (bounds.width < textWidth) bounds.width = textWidth + style[BUTTON_TEXT_PADDING]; - if (bounds.height < textHeight) bounds.height = textHeight + style[BUTTON_TEXT_PADDING]/2; - - if (CheckCollisionPointRec(mousePoint, bounds)) - { - if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) buttonState = BUTTON_PRESSED; - else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) buttonState = BUTTON_CLICKED; - else buttonState = BUTTON_HOVER; - } - //-------------------------------------------------------------------- - - // Draw control - //-------------------------------------------------------------------- - switch (buttonState) - { - case BUTTON_DEFAULT: - { - DrawRectangleRec(bounds, GetColor(style[BUTTON_DEFAULT_BORDER_COLOR])); - DrawRectangle((int)(bounds.x + style[BUTTON_BORDER_WIDTH]), (int)(bounds.y + style[BUTTON_BORDER_WIDTH]) , (int)(bounds.width - (2 * style[BUTTON_BORDER_WIDTH])), (int)(bounds.height - (2 * style[BUTTON_BORDER_WIDTH])), GetColor(style[BUTTON_DEFAULT_INSIDE_COLOR])); - DrawText(text, bounds.x + ((bounds.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), bounds.y + ((bounds.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[BUTTON_DEFAULT_TEXT_COLOR])); - } break; - case BUTTON_HOVER: - { - DrawRectangleRec(bounds, GetColor(style[BUTTON_HOVER_BORDER_COLOR])); - DrawRectangle((int)(bounds.x + style[BUTTON_BORDER_WIDTH]), (int)(bounds.y + style[BUTTON_BORDER_WIDTH]) , (int)(bounds.width - (2 * style[BUTTON_BORDER_WIDTH])), (int)(bounds.height - (2 * style[BUTTON_BORDER_WIDTH])), GetColor(style[BUTTON_HOVER_INSIDE_COLOR])); - DrawText(text, bounds.x + ((bounds.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), bounds.y + ((bounds.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[BUTTON_HOVER_TEXT_COLOR])); - } break; - case BUTTON_PRESSED: - { - DrawRectangleRec(bounds, GetColor(style[BUTTON_PRESSED_BORDER_COLOR])); - DrawRectangle((int)(bounds.x + style[BUTTON_BORDER_WIDTH]), (int)(bounds.y + style[BUTTON_BORDER_WIDTH]) , (int)(bounds.width - (2 * style[BUTTON_BORDER_WIDTH])), (int)(bounds.height - (2 * style[BUTTON_BORDER_WIDTH])), GetColor(style[BUTTON_PRESSED_INSIDE_COLOR])); - DrawText(text, bounds.x + ((bounds.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), bounds.y + ((bounds.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[BUTTON_PRESSED_TEXT_COLOR])); - } break; - case BUTTON_CLICKED: - { - DrawRectangleRec(bounds, GetColor(style[BUTTON_PRESSED_BORDER_COLOR])); - DrawRectangle((int)(bounds.x + style[BUTTON_BORDER_WIDTH]), (int)(bounds.y + style[BUTTON_BORDER_WIDTH]) , (int)(bounds.width - (2 * style[BUTTON_BORDER_WIDTH])), (int)(bounds.height - (2 * style[BUTTON_BORDER_WIDTH])), GetColor(style[BUTTON_PRESSED_INSIDE_COLOR])); - } break; - default: break; - } - //------------------------------------------------------------------ - - if (buttonState == BUTTON_CLICKED) return true; - else return false; -} - -// Toggle Button element, returns true when active -bool GuiToggleButton(Rectangle bounds, const char *text, bool toggle) -{ - ToggleState toggleState = TOGGLE_UNACTIVE; - Rectangle toggleButton = bounds; - Vector2 mousePoint = GetMousePosition(); - - int textWidth = MeasureText(text, style[GLOBAL_TEXT_FONTSIZE]); - int textHeight = style[GLOBAL_TEXT_FONTSIZE]; - - // Update control - //-------------------------------------------------------------------- - if (toggleButton.width < textWidth) toggleButton.width = textWidth + style[TOGGLE_TEXT_PADDING]; - if (toggleButton.height < textHeight) toggleButton.height = textHeight + style[TOGGLE_TEXT_PADDING]/2; - - if (toggle) toggleState = TOGGLE_ACTIVE; - else toggleState = TOGGLE_UNACTIVE; - - if (CheckCollisionPointRec(mousePoint, toggleButton)) - { - if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) toggleState = TOGGLE_PRESSED; - else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) - { - if (toggle) - { - toggle = false; - toggleState = TOGGLE_UNACTIVE; - } - else - { - toggle = true; - toggleState = TOGGLE_ACTIVE; - } - } - else toggleState = TOGGLE_HOVER; - } - //-------------------------------------------------------------------- - - // Draw control - //-------------------------------------------------------------------- - switch (toggleState) - { - case TOGGLE_UNACTIVE: - { - DrawRectangleRec(toggleButton, GetColor(style[TOGGLE_DEFAULT_BORDER_COLOR])); - DrawRectangle((int)(toggleButton.x + style[TOGGLE_BORDER_WIDTH]), (int)(toggleButton.y + style[TOGGLE_BORDER_WIDTH]) , (int)(toggleButton.width - (2 * style[TOGGLE_BORDER_WIDTH])), (int)(toggleButton.height - (2 * style[TOGGLE_BORDER_WIDTH])), GetColor(style[TOGGLE_DEFAULT_INSIDE_COLOR])); - DrawText(text, toggleButton.x + ((toggleButton.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), toggleButton.y + ((toggleButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[TOGGLE_DEFAULT_TEXT_COLOR])); - } break; - case TOGGLE_HOVER: - { - DrawRectangleRec(toggleButton, GetColor(style[TOGGLE_HOVER_BORDER_COLOR])); - DrawRectangle((int)(toggleButton.x + style[TOGGLE_BORDER_WIDTH]), (int)(toggleButton.y + style[TOGGLE_BORDER_WIDTH]) , (int)(toggleButton.width - (2 * style[TOGGLE_BORDER_WIDTH])), (int)(toggleButton.height - (2 * style[TOGGLE_BORDER_WIDTH])), GetColor(style[TOGGLE_HOVER_INSIDE_COLOR])); - DrawText(text, toggleButton.x + ((toggleButton.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), toggleButton.y + ((toggleButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[TOGGLE_HOVER_TEXT_COLOR])); - } break; - case TOGGLE_PRESSED: - { - DrawRectangleRec(toggleButton, GetColor(style[TOGGLE_PRESSED_BORDER_COLOR])); - DrawRectangle((int)(toggleButton.x + style[TOGGLE_BORDER_WIDTH]), (int)(toggleButton.y + style[TOGGLE_BORDER_WIDTH]) , (int)(toggleButton.width - (2 * style[TOGGLE_BORDER_WIDTH])), (int)(toggleButton.height - (2 * style[TOGGLE_BORDER_WIDTH])), GetColor(style[TOGGLE_PRESSED_INSIDE_COLOR])); - DrawText(text, toggleButton.x + ((toggleButton.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), toggleButton.y + ((toggleButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[TOGGLE_PRESSED_TEXT_COLOR])); - } break; - case TOGGLE_ACTIVE: - { - DrawRectangleRec(toggleButton, GetColor(style[TOGGLE_ACTIVE_BORDER_COLOR])); - DrawRectangle((int)(toggleButton.x + style[TOGGLE_BORDER_WIDTH]), (int)(toggleButton.y + style[TOGGLE_BORDER_WIDTH]) , (int)(toggleButton.width - (2 * style[TOGGLE_BORDER_WIDTH])), (int)(toggleButton.height - (2 * style[TOGGLE_BORDER_WIDTH])), GetColor(style[TOGGLE_ACTIVE_INSIDE_COLOR])); - DrawText(text, toggleButton.x + ((toggleButton.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), toggleButton.y + ((toggleButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[TOGGLE_ACTIVE_TEXT_COLOR])); - } break; - default: break; - } - //-------------------------------------------------------------------- - - return toggle; -} - -// Toggle Group element, returns toggled button index -int GuiToggleGroup(Rectangle bounds, int toggleNum, char **toggleText, int toggleActive) -{ - for (int i = 0; i < toggleNum; i++) - { - if (i == toggleActive) GuiToggleButton((Rectangle){bounds.x + i*(bounds.width + style[TOGGLEGROUP_PADDING]),bounds.y,bounds.width,bounds.height}, toggleText[i], true); - else if (GuiToggleButton((Rectangle){bounds.x + i*(bounds.width + style[TOGGLEGROUP_PADDING]),bounds.y,bounds.width,bounds.height}, toggleText[i], false) == true) toggleActive = i; - } - - return toggleActive; -} - -// Combo Box element, returns selected item index -int GuiComboBox(Rectangle bounds, int comboNum, char **comboText, int comboActive) -{ - ComboBoxState comboBoxState = COMBOBOX_UNACTIVE; - Rectangle comboBoxButton = bounds; - Rectangle click = { bounds.x + bounds.width + style[COMBOBOX_PADDING], bounds.y, style[COMBOBOX_BUTTON_WIDTH], style[COMBOBOX_BUTTON_HEIGHT] }; - Vector2 mousePoint = GetMousePosition(); - - int textHeight = style[GLOBAL_TEXT_FONTSIZE]; - - for (int i = 0; i < comboNum; i++) - { - if (i == comboActive) - { - // Update control - //-------------------------------------------------------------------- - int textWidth = MeasureText(comboText[i], style[GLOBAL_TEXT_FONTSIZE]); - - if (comboBoxButton.width < textWidth) comboBoxButton.width = textWidth + style[TOGGLE_TEXT_PADDING]; - if (comboBoxButton.height < textHeight) comboBoxButton.height = textHeight + style[TOGGLE_TEXT_PADDING]/2; - - if (CheckCollisionPointRec(mousePoint, comboBoxButton) || CheckCollisionPointRec(mousePoint, click)) - { - if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) comboBoxState = COMBOBOX_PRESSED; - else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) comboBoxState = COMBOBOX_ACTIVE; - else comboBoxState = COMBOBOX_HOVER; - } - //-------------------------------------------------------------------- - - // Draw control - //-------------------------------------------------------------------- - switch (comboBoxState) - { - case COMBOBOX_UNACTIVE: - { - DrawRectangleRec(comboBoxButton, GetColor(style[COMBOBOX_DEFAULT_BORDER_COLOR])); - DrawRectangle((int)(comboBoxButton.x + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.y + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.width - (2 * style[COMBOBOX_BORDER_WIDTH])), (int)(comboBoxButton.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_DEFAULT_INSIDE_COLOR])); - - DrawRectangleRec(click, GetColor(style[COMBOBOX_DEFAULT_BORDER_COLOR])); - DrawRectangle((int)(click.x + style[COMBOBOX_BORDER_WIDTH]), (int)(click.y + style[COMBOBOX_BORDER_WIDTH]) , (int)(click.width - (2*style[COMBOBOX_BORDER_WIDTH])), (int)(click.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_DEFAULT_INSIDE_COLOR])); - DrawText(FormatText("%i/%i", comboActive + 1, comboNum), click.x + ((click.width/2) - (MeasureText(FormatText("%i/%i", comboActive + 1, comboNum), style[GLOBAL_TEXT_FONTSIZE])/2)), click.y + ((click.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_DEFAULT_LIST_TEXT_COLOR])); - DrawText(comboText[i], comboBoxButton.x + ((comboBoxButton.width/2) - (MeasureText(comboText[i], style[GLOBAL_TEXT_FONTSIZE])/2)), comboBoxButton.y + ((comboBoxButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_DEFAULT_TEXT_COLOR])); - } break; - case COMBOBOX_HOVER: - { - DrawRectangleRec(comboBoxButton, GetColor(style[COMBOBOX_HOVER_BORDER_COLOR])); - DrawRectangle((int)(comboBoxButton.x + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.y + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.width - (2 * style[COMBOBOX_BORDER_WIDTH])), (int)(comboBoxButton.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_HOVER_INSIDE_COLOR])); - - DrawRectangleRec(click, GetColor(style[COMBOBOX_HOVER_BORDER_COLOR])); - DrawRectangle((int)(click.x + style[COMBOBOX_BORDER_WIDTH]), (int)(click.y + style[COMBOBOX_BORDER_WIDTH]) , (int)(click.width - (2*style[COMBOBOX_BORDER_WIDTH])), (int)(click.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_HOVER_INSIDE_COLOR])); - DrawText(FormatText("%i/%i", comboActive + 1, comboNum), click.x + ((click.width/2) - (MeasureText(FormatText("%i/%i", comboActive + 1, comboNum), style[GLOBAL_TEXT_FONTSIZE])/2)), click.y + ((click.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_HOVER_LIST_TEXT_COLOR])); - DrawText(comboText[i], comboBoxButton.x + ((comboBoxButton.width/2) - (MeasureText(comboText[i], style[GLOBAL_TEXT_FONTSIZE])/2)), comboBoxButton.y + ((comboBoxButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_HOVER_TEXT_COLOR])); - } break; - case COMBOBOX_PRESSED: - { - DrawRectangleRec(comboBoxButton, GetColor(style[COMBOBOX_PRESSED_BORDER_COLOR])); - DrawRectangle((int)(comboBoxButton.x + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.y + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.width - (2 * style[COMBOBOX_BORDER_WIDTH])), (int)(comboBoxButton.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_PRESSED_INSIDE_COLOR])); - - DrawRectangleRec(click, GetColor(style[COMBOBOX_PRESSED_LIST_BORDER_COLOR])); - DrawRectangle((int)(click.x + style[COMBOBOX_BORDER_WIDTH]), (int)(click.y + style[COMBOBOX_BORDER_WIDTH]) , (int)(click.width - (2*style[COMBOBOX_BORDER_WIDTH])), (int)(click.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_PRESSED_LIST_INSIDE_COLOR])); - DrawText(FormatText("%i/%i", comboActive + 1, comboNum), click.x + ((click.width/2) - (MeasureText(FormatText("%i/%i", comboActive + 1, comboNum), style[GLOBAL_TEXT_FONTSIZE])/2)), click.y + ((click.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_PRESSED_LIST_TEXT_COLOR])); - DrawText(comboText[i], comboBoxButton.x + ((comboBoxButton.width/2) - (MeasureText(comboText[i], style[GLOBAL_TEXT_FONTSIZE])/2)), comboBoxButton.y + ((comboBoxButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_PRESSED_TEXT_COLOR])); - } break; - case COMBOBOX_ACTIVE: - { - DrawRectangleRec(comboBoxButton, GetColor(style[COMBOBOX_PRESSED_BORDER_COLOR])); - DrawRectangle((int)(comboBoxButton.x + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.y + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.width - (2 * style[COMBOBOX_BORDER_WIDTH])), (int)(comboBoxButton.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_PRESSED_INSIDE_COLOR])); - - DrawRectangleRec(click, GetColor(style[COMBOBOX_PRESSED_LIST_BORDER_COLOR])); - DrawRectangle((int)(click.x + style[COMBOBOX_BORDER_WIDTH]), (int)(click.y + style[COMBOBOX_BORDER_WIDTH]) , (int)(click.width - (2*style[COMBOBOX_BORDER_WIDTH])), (int)(click.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_PRESSED_LIST_INSIDE_COLOR])); - DrawText(FormatText("%i/%i", comboActive + 1, comboNum), click.x + ((click.width/2) - (MeasureText(FormatText("%i/%i", comboActive + 1, comboNum), style[GLOBAL_TEXT_FONTSIZE])/2)), click.y + ((click.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_PRESSED_LIST_TEXT_COLOR])); - DrawText(comboText[i], comboBoxButton.x + ((comboBoxButton.width/2) - (MeasureText(comboText[i], style[GLOBAL_TEXT_FONTSIZE])/2)), comboBoxButton.y + ((comboBoxButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_PRESSED_TEXT_COLOR])); - } break; - default: break; - } - - //DrawText(comboText[i], comboBoxButton.x + ((comboBoxButton.width/2) - (MeasureText(comboText[i], style[]globalTextFontSize)/2)), comboBoxButton.y + ((comboBoxButton.height/2) - (style[]globalTextFontSize/2)), style[]globalTextFontSize, COMBOBOX_PRESSED_TEXT_COLOR); - //-------------------------------------------------------------------- - } - } - - if (CheckCollisionPointRec(GetMousePosition(), bounds) || CheckCollisionPointRec(GetMousePosition(), click)) - { - if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) - { - comboActive += 1; - if(comboActive >= comboNum) comboActive = 0; - } - } - - return comboActive; -} - -// Check Box element, returns true when active -bool GuiCheckBox(Rectangle checkBoxBounds, const char *text, bool checked) -{ - CheckBoxState checkBoxState = CHECKBOX_STATUS; - Vector2 mousePoint = GetMousePosition(); - - // Update control - //-------------------------------------------------------------------- - if (CheckCollisionPointRec(mousePoint, checkBoxBounds)) - { - if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) checkBoxState = CHECKBOX_PRESSED; - else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) - { - checkBoxState = CHECKBOX_STATUS; - checked = !checked; - } - else checkBoxState = CHECKBOX_HOVER; - } - //-------------------------------------------------------------------- - - // Draw control - //-------------------------------------------------------------------- - switch (checkBoxState) - { - case CHECKBOX_HOVER: - { - DrawRectangleRec(checkBoxBounds, GetColor(style[CHECKBOX_HOVER_BORDER_COLOR])); - DrawRectangle((int)(checkBoxBounds.x + style[TOGGLE_BORDER_WIDTH]), (int)(checkBoxBounds.y + style[TOGGLE_BORDER_WIDTH]), (int)(checkBoxBounds.width - (2*style[TOGGLE_BORDER_WIDTH])), (int)(checkBoxBounds.height - (2*style[TOGGLE_BORDER_WIDTH])), GetColor(style[CHECKBOX_HOVER_INSIDE_COLOR])); - } break; - case CHECKBOX_STATUS: - { - DrawRectangleRec(checkBoxBounds, GetColor(style[CHECKBOX_DEFAULT_BORDER_COLOR])); - DrawRectangle((int)(checkBoxBounds.x + style[TOGGLE_BORDER_WIDTH]), (int)(checkBoxBounds.y + style[TOGGLE_BORDER_WIDTH]), (int)(checkBoxBounds.width - (2*style[TOGGLE_BORDER_WIDTH])), (int)(checkBoxBounds.height - (2*style[TOGGLE_BORDER_WIDTH])), GetColor(style[CHECKBOX_DEFAULT_INSIDE_COLOR])); - } break; - case CHECKBOX_PRESSED: - { - DrawRectangleRec(checkBoxBounds, GetColor(style[CHECKBOX_CLICK_BORDER_COLOR])); - DrawRectangle((int)(checkBoxBounds.x + style[TOGGLE_BORDER_WIDTH]), (int)(checkBoxBounds.y + style[TOGGLE_BORDER_WIDTH]), (int)(checkBoxBounds.width - (2*style[TOGGLE_BORDER_WIDTH])), (int)(checkBoxBounds.height - (2*style[TOGGLE_BORDER_WIDTH])), GetColor(style[CHECKBOX_CLICK_INSIDE_COLOR])); - } break; - default: break; - } - - if (text != NULL) DrawText(text, checkBoxBounds.x + checkBoxBounds.width + 2, checkBoxBounds.y + ((checkBoxBounds.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2) + 1), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[LABEL_TEXT_COLOR])); - - if (checked) - { - DrawRectangle((int)(checkBoxBounds.x + style[CHECKBOX_INSIDE_WIDTH]), (int)(checkBoxBounds.y + style[CHECKBOX_INSIDE_WIDTH]), (int)(checkBoxBounds.width - (2*style[CHECKBOX_INSIDE_WIDTH])), (int)(checkBoxBounds.height - (2*style[CHECKBOX_INSIDE_WIDTH])), GetColor(style[CHECKBOX_STATUS_ACTIVE_COLOR])); - } - //-------------------------------------------------------------------- - - return checked; -} - -// Slider element, returns selected value -float GuiSlider(Rectangle bounds, float value, float minValue, float maxValue) -{ - SliderState sliderState = SLIDER_DEFAULT; - float buttonTravelDistance = 0; - float sliderPos = 0; - Vector2 mousePoint = GetMousePosition(); - - // Update control - //-------------------------------------------------------------------- - if (value < minValue) value = minValue; - else if (value >= maxValue) value = maxValue; - - sliderPos = (value - minValue)/(maxValue - minValue); - - Rectangle sliderButton; - sliderButton.width = ((int)(bounds.width - (2 * style[SLIDER_BUTTON_BORDER_WIDTH]))/10 - 8); - sliderButton.height =((int)(bounds.height - ( 2 * style[SLIDER_BORDER_WIDTH] + 2 * style[SLIDER_BUTTON_BORDER_WIDTH]))); - - float sliderButtonMinPos = bounds.x + style[SLIDER_BORDER_WIDTH] + style[SLIDER_BUTTON_BORDER_WIDTH]; - float sliderButtonMaxPos = bounds.x + bounds.width - (style[SLIDER_BORDER_WIDTH] + style[SLIDER_BUTTON_BORDER_WIDTH] + sliderButton.width); - - buttonTravelDistance = sliderButtonMaxPos - sliderButtonMinPos; - - sliderButton.x = ((int)(bounds.x + style[SLIDER_BORDER_WIDTH] + style[SLIDER_BUTTON_BORDER_WIDTH]) + (sliderPos * buttonTravelDistance)); - sliderButton.y = ((int)(bounds.y + style[SLIDER_BORDER_WIDTH] + style[SLIDER_BUTTON_BORDER_WIDTH])); - - if (CheckCollisionPointRec(mousePoint, bounds)) - { - sliderState = SLIDER_HOVER; - - if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) sliderState = SLIDER_ACTIVE; - - if ((sliderState == SLIDER_ACTIVE) && (IsMouseButtonDown(MOUSE_LEFT_BUTTON))) - { - sliderButton.x = mousePoint.x - sliderButton.width / 2; - - if (sliderButton.x <= sliderButtonMinPos) sliderButton.x = sliderButtonMinPos; - else if (sliderButton.x >= sliderButtonMaxPos) sliderButton.x = sliderButtonMaxPos; - - sliderPos = (sliderButton.x - sliderButtonMinPos) / buttonTravelDistance; - } - } - else sliderState = SLIDER_DEFAULT; - //-------------------------------------------------------------------- - - // Draw control - //-------------------------------------------------------------------- - DrawRectangleRec(bounds, GetColor(style[SLIDER_BORDER_COLOR])); - DrawRectangle((int)(bounds.x + style[SLIDER_BORDER_WIDTH]), (int)(bounds.y + style[SLIDER_BORDER_WIDTH]), (int)(bounds.width - (2*style[SLIDER_BORDER_WIDTH])), (int)(bounds.height - (2*style[SLIDER_BORDER_WIDTH])), GetColor(style[SLIDER_INSIDE_COLOR])); - - switch (sliderState) - { - case SLIDER_DEFAULT: DrawRectangleRec(sliderButton, GetColor(style[SLIDER_DEFAULT_COLOR])); break; - case SLIDER_HOVER: DrawRectangleRec(sliderButton, GetColor(style[SLIDER_HOVER_COLOR])); break; - case SLIDER_ACTIVE: DrawRectangleRec(sliderButton, GetColor(style[SLIDER_ACTIVE_COLOR])); break; - default: break; - } - //-------------------------------------------------------------------- - - return minValue + (maxValue - minValue)*sliderPos; -} - -// Slider Bar element, returns selected value -float GuiSliderBar(Rectangle bounds, float value, float minValue, float maxValue) -{ - SliderState sliderState = SLIDER_DEFAULT; - Vector2 mousePoint = GetMousePosition(); - float fixedValue; - float fixedMinValue; - - fixedValue = value - minValue; - maxValue = maxValue - minValue; - fixedMinValue = 0; - - // Update control - //-------------------------------------------------------------------- - if (fixedValue <= fixedMinValue) fixedValue = fixedMinValue; - else if (fixedValue >= maxValue) fixedValue = maxValue; - - Rectangle sliderBar; - - sliderBar.x = bounds.x + style[SLIDER_BORDER_WIDTH]; - sliderBar.y = bounds.y + style[SLIDER_BORDER_WIDTH]; - sliderBar.width = ((fixedValue*((float)bounds.width - 2*style[SLIDER_BORDER_WIDTH]))/(maxValue - fixedMinValue)); - sliderBar.height = bounds.height - 2*style[SLIDER_BORDER_WIDTH]; - - if (CheckCollisionPointRec(mousePoint, bounds)) - { - sliderState = SLIDER_HOVER; - - if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) - { - sliderState = SLIDER_ACTIVE; - - sliderBar.width = (mousePoint.x - bounds.x - style[SLIDER_BORDER_WIDTH]); - - if (mousePoint.x <= (bounds.x + style[SLIDER_BORDER_WIDTH])) sliderBar.width = 0; - else if (mousePoint.x >= (bounds.x + bounds.width - style[SLIDER_BORDER_WIDTH])) sliderBar.width = bounds.width - 2*style[SLIDER_BORDER_WIDTH]; - } - } - else sliderState = SLIDER_DEFAULT; - - fixedValue = ((float)sliderBar.width*(maxValue - fixedMinValue))/((float)bounds.width - 2*style[SLIDER_BORDER_WIDTH]); - //-------------------------------------------------------------------- - - // Draw control - //-------------------------------------------------------------------- - DrawRectangleRec(bounds, GetColor(style[SLIDERBAR_BORDER_COLOR])); - DrawRectangle((int)(bounds.x + style[SLIDER_BORDER_WIDTH]), (int)(bounds.y + style[SLIDER_BORDER_WIDTH]) , (int)(bounds.width - (2*style[SLIDER_BORDER_WIDTH])), (int)(bounds.height - (2*style[SLIDER_BORDER_WIDTH])), GetColor(style[SLIDERBAR_INSIDE_COLOR])); - - switch (sliderState) - { - case SLIDER_DEFAULT: DrawRectangleRec(sliderBar, GetColor(style[SLIDERBAR_DEFAULT_COLOR])); break; - case SLIDER_HOVER: DrawRectangleRec(sliderBar, GetColor(style[SLIDERBAR_HOVER_COLOR])); break; - case SLIDER_ACTIVE: DrawRectangleRec(sliderBar, GetColor(style[SLIDERBAR_ACTIVE_COLOR])); break; - default: break; - } - - if (minValue < 0 && maxValue > 0) DrawRectangle((bounds.x + style[SLIDER_BORDER_WIDTH]) - (minValue * ((bounds.width - (style[SLIDER_BORDER_WIDTH]*2))/maxValue)), sliderBar.y, 1, sliderBar.height, GetColor(style[SLIDERBAR_ZERO_LINE_COLOR])); - //-------------------------------------------------------------------- - - return fixedValue + minValue; -} - -// Progress Bar element, shows current progress value -void GuiProgressBar(Rectangle bounds, float value) -{ - if (value > 1.0f) value = 1.0f; - else if (value < 0.0f) value = 0.0f; - - Rectangle progressBar = { bounds.x + style[PROGRESSBAR_BORDER_WIDTH], bounds.y + style[PROGRESSBAR_BORDER_WIDTH], bounds.width - (style[PROGRESSBAR_BORDER_WIDTH] * 2), bounds.height - (style[PROGRESSBAR_BORDER_WIDTH] * 2)}; - Rectangle progressValue = { bounds.x + style[PROGRESSBAR_BORDER_WIDTH], bounds.y + style[PROGRESSBAR_BORDER_WIDTH], value * (bounds.width - (style[PROGRESSBAR_BORDER_WIDTH] * 2)), bounds.height - (style[PROGRESSBAR_BORDER_WIDTH] * 2)}; - - // Draw control - //-------------------------------------------------------------------- - DrawRectangleRec(bounds, GetColor(style[PROGRESSBAR_BORDER_COLOR])); - DrawRectangleRec(progressBar, GetColor(style[PROGRESSBAR_INSIDE_COLOR])); - DrawRectangleRec(progressValue, GetColor(style[PROGRESSBAR_PROGRESS_COLOR])); - //-------------------------------------------------------------------- -} - -// Spinner element, returns selected value -// NOTE: Requires static variables: framesCounter, valueSpeed - ERROR! -int GuiSpinner(Rectangle bounds, int value, int minValue, int maxValue) -{ - SpinnerState spinnerState = SPINNER_DEFAULT; - Rectangle labelBoxBound = { bounds.x + bounds.width/4 + 1, bounds.y, bounds.width/2, bounds.height }; - Rectangle leftButtonBound = { bounds.x, bounds.y, bounds.width/4, bounds.height }; - Rectangle rightButtonBound = { bounds.x + bounds.width - bounds.width/4 + 1, bounds.y, bounds.width/4, bounds.height }; - Vector2 mousePoint = GetMousePosition(); - - int textWidth = MeasureText(FormatText("%i", value), style[GLOBAL_TEXT_FONTSIZE]); - //int textHeight = style[GLOBAL_TEXT_FONTSIZE]; // Unused variable - - int buttonSide = 0; - - static int framesCounter = 0; - static bool valueSpeed = false;; - - //if (comboBoxButton.width < textWidth) comboBoxButton.width = textWidth + style[TOGGLE_TEXT_PADDING]; - //if (comboBoxButton.height < textHeight) comboBoxButton.height = textHeight + style[TOGGLE_TEXT_PADDING]/2; - - // Update control - //-------------------------------------------------------------------- - if (CheckCollisionPointRec(mousePoint, leftButtonBound) || CheckCollisionPointRec(mousePoint, rightButtonBound) || CheckCollisionPointRec(mousePoint, labelBoxBound)) - { - if (IsKeyDown(KEY_LEFT)) - { - spinnerState = SPINNER_PRESSED; - buttonSide = 1; - - if (value > minValue) value -= 1; - } - else if (IsKeyDown(KEY_RIGHT)) - { - spinnerState = SPINNER_PRESSED; - buttonSide = 2; - - if (value < maxValue) value += 1; - } - } - - if (CheckCollisionPointRec(mousePoint, leftButtonBound)) - { - buttonSide = 1; - spinnerState = SPINNER_HOVER; - - if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) - { - if (!valueSpeed) - { - if (value > minValue) value--; - valueSpeed = true; - } - else framesCounter++; - - spinnerState = SPINNER_PRESSED; - - if (value > minValue) - { - if (framesCounter >= 30) value -= 1; - } - } - } - else if (CheckCollisionPointRec(mousePoint, rightButtonBound)) - { - buttonSide = 2; - spinnerState = SPINNER_HOVER; - - if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) - { - if (!valueSpeed) - { - if (value < maxValue) value++; - valueSpeed = true; - } - else framesCounter++; - - spinnerState = SPINNER_PRESSED; - - if (value < maxValue) - { - if (framesCounter >= 30) value += 1; - } - } - } - else if (!CheckCollisionPointRec(mousePoint, labelBoxBound)) buttonSide = 0; - - if (IsMouseButtonUp(MOUSE_LEFT_BUTTON)) - { - valueSpeed = false; - framesCounter = 0; - } - //-------------------------------------------------------------------- - - // Draw control - //-------------------------------------------------------------------- - switch (spinnerState) - { - case SPINNER_DEFAULT: - { - DrawRectangleRec(leftButtonBound, GetColor(style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR])); - DrawRectangle(leftButtonBound.x + 2, leftButtonBound.y + 2, leftButtonBound.width - 4, leftButtonBound.height - 4, GetColor(style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR])); - - DrawRectangleRec(rightButtonBound, GetColor(style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR])); - DrawRectangle(rightButtonBound.x + 2, rightButtonBound.y + 2, rightButtonBound.width - 4, rightButtonBound.height - 4, GetColor(style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR])); - - DrawText(FormatText("-"), leftButtonBound.x + (leftButtonBound.width/2 - (MeasureText(FormatText("+"), style[GLOBAL_TEXT_FONTSIZE]))/2), leftButtonBound.y + (leftButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_SYMBOL_COLOR])); - DrawText(FormatText("+"), rightButtonBound.x + (rightButtonBound.width/2 - (MeasureText(FormatText("-"), style[GLOBAL_TEXT_FONTSIZE]))/2), rightButtonBound.y + (rightButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_SYMBOL_COLOR])); - - DrawRectangleRec(labelBoxBound, GetColor(style[SPINNER_LABEL_BORDER_COLOR])); - DrawRectangle(labelBoxBound.x + 1, labelBoxBound.y + 1, labelBoxBound.width - 2, labelBoxBound.height - 2, GetColor(style[SPINNER_LABEL_INSIDE_COLOR])); - - DrawText(FormatText("%i", value), labelBoxBound.x + (labelBoxBound.width/2 - textWidth/2), labelBoxBound.y + (labelBoxBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_TEXT_COLOR])); - } break; - case SPINNER_HOVER: - { - if (buttonSide == 1) - { - DrawRectangleRec(leftButtonBound, GetColor(style[SPINNER_HOVER_BUTTON_BORDER_COLOR])); - DrawRectangle(leftButtonBound.x + 2, leftButtonBound.y + 2, leftButtonBound.width - 4, leftButtonBound.height - 4, GetColor(style[SPINNER_HOVER_BUTTON_INSIDE_COLOR])); - - DrawRectangleRec(rightButtonBound, GetColor(style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR])); - DrawRectangle(rightButtonBound.x + 2, rightButtonBound.y + 2, rightButtonBound.width - 4, rightButtonBound.height - 4, GetColor(style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR])); - - DrawText(FormatText("-"), leftButtonBound.x + (leftButtonBound.width/2 - (MeasureText(FormatText("+"), style[GLOBAL_TEXT_FONTSIZE]))/2), leftButtonBound.y + (leftButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_HOVER_SYMBOL_COLOR])); - DrawText(FormatText("+"), rightButtonBound.x + (rightButtonBound.width/2 - (MeasureText(FormatText("-"), style[GLOBAL_TEXT_FONTSIZE]))/2), rightButtonBound.y + (rightButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_SYMBOL_COLOR])); - } - else if (buttonSide == 2) - { - DrawRectangleRec(leftButtonBound, GetColor(style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR])); - DrawRectangle(leftButtonBound.x + 2, leftButtonBound.y + 2, leftButtonBound.width - 4, leftButtonBound.height - 4, GetColor(style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR])); - - DrawRectangleRec(rightButtonBound, GetColor(style[SPINNER_HOVER_BUTTON_BORDER_COLOR])); - DrawRectangle(rightButtonBound.x + 2, rightButtonBound.y + 2, rightButtonBound.width - 4, rightButtonBound.height - 4, GetColor(style[SPINNER_HOVER_BUTTON_INSIDE_COLOR])); - - DrawText(FormatText("-"), leftButtonBound.x + (leftButtonBound.width/2 - (MeasureText(FormatText("+"), style[GLOBAL_TEXT_FONTSIZE]))/2), leftButtonBound.y + (leftButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_SYMBOL_COLOR])); - DrawText(FormatText("+"), rightButtonBound.x + (rightButtonBound.width/2 - (MeasureText(FormatText("-"), style[GLOBAL_TEXT_FONTSIZE]))/2), rightButtonBound.y + (rightButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_HOVER_SYMBOL_COLOR])); - } - - DrawRectangleRec(labelBoxBound, GetColor(style[SPINNER_LABEL_BORDER_COLOR])); - DrawRectangle(labelBoxBound.x + 1, labelBoxBound.y + 1, labelBoxBound.width - 2, labelBoxBound.height - 2, GetColor(style[SPINNER_LABEL_INSIDE_COLOR])); - - DrawText(FormatText("%i", value), labelBoxBound.x + (labelBoxBound.width/2 - textWidth/2), labelBoxBound.y + (labelBoxBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_HOVER_TEXT_COLOR])); - } break; - case SPINNER_PRESSED: - { - if (buttonSide == 1) - { - DrawRectangleRec(leftButtonBound, GetColor(style[SPINNER_PRESSED_BUTTON_BORDER_COLOR])); - DrawRectangle(leftButtonBound.x + 2, leftButtonBound.y + 2, leftButtonBound.width - 4, leftButtonBound.height - 4, GetColor(style[SPINNER_PRESSED_BUTTON_INSIDE_COLOR])); - - DrawRectangleRec(rightButtonBound, GetColor(style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR])); - DrawRectangle(rightButtonBound.x + 2, rightButtonBound.y + 2, rightButtonBound.width - 4, rightButtonBound.height - 4, GetColor(style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR])); - - DrawText(FormatText("-"), leftButtonBound.x + (leftButtonBound.width/2 - (MeasureText(FormatText("+"), style[GLOBAL_TEXT_FONTSIZE]))/2), leftButtonBound.y + (leftButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_PRESSED_SYMBOL_COLOR])); - DrawText(FormatText("+"), rightButtonBound.x + (rightButtonBound.width/2 - (MeasureText(FormatText("-"), style[GLOBAL_TEXT_FONTSIZE]))/2), rightButtonBound.y + (rightButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_SYMBOL_COLOR])); - } - else if (buttonSide == 2) - { - DrawRectangleRec(leftButtonBound, GetColor(style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR])); - DrawRectangle(leftButtonBound.x + 2, leftButtonBound.y + 2, leftButtonBound.width - 4, leftButtonBound.height - 4, GetColor(style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR])); - - DrawRectangleRec(rightButtonBound, GetColor(style[SPINNER_PRESSED_BUTTON_BORDER_COLOR])); - DrawRectangle(rightButtonBound.x + 2, rightButtonBound.y + 2, rightButtonBound.width - 4, rightButtonBound.height - 4, GetColor(style[SPINNER_PRESSED_BUTTON_INSIDE_COLOR])); - - DrawText(FormatText("-"), leftButtonBound.x + (leftButtonBound.width/2 - (MeasureText(FormatText("+"), style[GLOBAL_TEXT_FONTSIZE]))/2), leftButtonBound.y + (leftButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_SYMBOL_COLOR])); - DrawText(FormatText("+"), rightButtonBound.x + (rightButtonBound.width/2 - (MeasureText(FormatText("-"), style[GLOBAL_TEXT_FONTSIZE]))/2), rightButtonBound.y + (rightButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_PRESSED_SYMBOL_COLOR])); - } - - DrawRectangleRec(labelBoxBound, GetColor(style[SPINNER_LABEL_BORDER_COLOR])); - DrawRectangle(labelBoxBound.x + 1, labelBoxBound.y + 1, labelBoxBound.width - 2, labelBoxBound.height - 2, GetColor(style[SPINNER_LABEL_INSIDE_COLOR])); - - DrawText(FormatText("%i", value), labelBoxBound.x + (labelBoxBound.width/2 - textWidth/2), labelBoxBound.y + (labelBoxBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_PRESSED_TEXT_COLOR])); - } break; - default: break; - } - - return value; -} - -// Text Box element, returns input text -// NOTE: Requires static variables: framesCounter - ERROR! -char *GuiTextBox(Rectangle bounds, char *text) -{ - #define MAX_CHARS_LENGTH 20 - #define KEY_BACKSPACE_TEXT 259 // GLFW BACKSPACE: 3 + 256 - - int initPos = bounds.x + 4; - int letter = -1; - static int framesCounter = 0; - Vector2 mousePoint = GetMousePosition(); - - // Update control - //-------------------------------------------------------------------- - framesCounter++; - - letter = GetKeyPressed(); - - if (CheckCollisionPointRec(mousePoint, bounds)) - { - if (letter != -1) - { - if (letter == KEY_BACKSPACE_TEXT) - { - for (int i = 0; i < MAX_CHARS_LENGTH; i++) - { - if ((text[i] == '\0') && (i > 0)) - { - text[i - 1] = '\0'; - break; - } - } - - text[MAX_CHARS_LENGTH - 1] = '\0'; - } - else - { - if ((letter >= 32) && (letter < 127)) - { - for (int i = 0; i < MAX_CHARS_LENGTH; i++) - { - if (text[i] == '\0') - { - text[i] = (char)letter; - break; - } - } - } - } - } - } - //-------------------------------------------------------------------- - - // Draw control - //-------------------------------------------------------------------- - if (CheckCollisionPointRec(mousePoint, bounds)) DrawRectangleRec(bounds, GetColor(style[TOGGLE_ACTIVE_BORDER_COLOR])); - else DrawRectangleRec(bounds, GetColor(style[TEXTBOX_BORDER_COLOR])); - - DrawRectangle(bounds.x + style[TEXTBOX_BORDER_WIDTH], bounds.y + style[TEXTBOX_BORDER_WIDTH], bounds.width - (style[TEXTBOX_BORDER_WIDTH] * 2), bounds.height - (style[TEXTBOX_BORDER_WIDTH] * 2), GetColor(style[TEXTBOX_INSIDE_COLOR])); - - for (int i = 0; i < MAX_CHARS_LENGTH; i++) - { - if (text[i] == '\0') break; - - DrawText(FormatText("%c", text[i]), initPos, bounds.y + style[TEXTBOX_TEXT_FONTSIZE], style[TEXTBOX_TEXT_FONTSIZE], GetColor(style[TEXTBOX_TEXT_COLOR])); - - initPos += (MeasureText(FormatText("%c", text[i]), style[GLOBAL_TEXT_FONTSIZE]) + 2); - //initPos += ((GetDefaultFont().charRecs[(int)text[i] - 32].width + 2)); - } - - if ((framesCounter/20)%2 && CheckCollisionPointRec(mousePoint, bounds)) DrawRectangle(initPos + 2, bounds.y + 5, 1, 20, GetColor(style[TEXTBOX_LINE_COLOR])); - //-------------------------------------------------------------------- - - return text; -} - -// Save current GUI style into a text file -void SaveGuiStyle(const char *fileName) -{ - FILE *styleFile = fopen(fileName, "wt"); - - for (int i = 0; i < NUM_PROPERTIES; i++) fprintf(styleFile, "%-40s0x%x\n", guiPropertyName[i], GetStyleProperty(i)); - - fclose(styleFile); -} - -// Load GUI style from a text file -void LoadGuiStyle(const char *fileName) -{ - #define MAX_STYLE_PROPERTIES 128 - - typedef struct { - char id[64]; - int value; - } StyleProperty; - - StyleProperty *styleProp = (StyleProperty *)malloc(MAX_STYLE_PROPERTIES*sizeof(StyleProperty));; - int counter = 0; - - FILE *styleFile = fopen(fileName, "rt"); - - while (!feof(styleFile)) - { - fscanf(styleFile, "%s %i\n", styleProp[counter].id, &styleProp[counter].value); - counter++; - } - - fclose(styleFile); - - for (int i = 0; i < counter; i++) - { - for (int j = 0; j < NUM_PROPERTIES; j++) - { - if (strcmp(styleProp[i].id, guiPropertyName[j]) == 0) - { - // Assign correct property to style - style[j] = styleProp[i].value; - } - } - } - - free(styleProp); -} - -// Set one style property value -void SetStyleProperty(int guiProperty, int value) -{ - #define NUM_COLOR_SAMPLES 10 - - if (guiProperty == GLOBAL_BASE_COLOR) - { - Color baseColor = GetColor(value); - Color fadeColor[NUM_COLOR_SAMPLES]; - - for (int i = 0; i < NUM_COLOR_SAMPLES; i++) fadeColor[i] = ColorMultiply(baseColor, 1.0f - (float)i/(NUM_COLOR_SAMPLES - 1)); - - style[GLOBAL_BASE_COLOR] = value; - style[BACKGROUND_COLOR] = GetHexValue(fadeColor[3]); - style[BUTTON_DEFAULT_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[BUTTON_HOVER_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[BUTTON_PRESSED_INSIDE_COLOR] = GetHexValue(fadeColor[5]); - style[TOGGLE_DEFAULT_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[TOGGLE_HOVER_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[TOGGLE_PRESSED_INSIDE_COLOR] = GetHexValue(fadeColor[5]); - style[TOGGLE_ACTIVE_INSIDE_COLOR] = GetHexValue(fadeColor[8]); - style[SLIDER_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[SLIDER_DEFAULT_COLOR] = GetHexValue(fadeColor[6]); - style[SLIDER_HOVER_COLOR] = GetHexValue(fadeColor[7]); - style[SLIDER_ACTIVE_COLOR] = GetHexValue(fadeColor[9]); - style[SLIDERBAR_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[SLIDERBAR_DEFAULT_COLOR] = GetHexValue(fadeColor[6]); - style[SLIDERBAR_HOVER_COLOR] = GetHexValue(fadeColor[7]); - style[SLIDERBAR_ACTIVE_COLOR] = GetHexValue(fadeColor[9]); - style[SLIDERBAR_ZERO_LINE_COLOR] = GetHexValue(fadeColor[8]); - style[PROGRESSBAR_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[PROGRESSBAR_PROGRESS_COLOR] = GetHexValue(fadeColor[6]); - style[SPINNER_LABEL_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[SPINNER_HOVER_BUTTON_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[SPINNER_PRESSED_BUTTON_INSIDE_COLOR] = GetHexValue(fadeColor[5]); - style[COMBOBOX_DEFAULT_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[COMBOBOX_HOVER_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[COMBOBOX_PRESSED_INSIDE_COLOR] = GetHexValue(fadeColor[8]); - style[COMBOBOX_PRESSED_LIST_INSIDE_COLOR] = GetHexValue(fadeColor[8]); - style[CHECKBOX_DEFAULT_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - style[CHECKBOX_CLICK_INSIDE_COLOR] = GetHexValue(fadeColor[6]); - style[CHECKBOX_STATUS_ACTIVE_COLOR] = GetHexValue(fadeColor[8]); - style[TEXTBOX_INSIDE_COLOR] = GetHexValue(fadeColor[4]); - } - else if (guiProperty == GLOBAL_BORDER_COLOR) - { - Color baseColor = GetColor(value); - Color fadeColor[NUM_COLOR_SAMPLES]; - - for (int i = 0; i < NUM_COLOR_SAMPLES; i++) fadeColor[i] = ColorMultiply(baseColor, 1.0f - (float)i/(NUM_COLOR_SAMPLES - 1)); - - style[GLOBAL_BORDER_COLOR] = value; - style[BUTTON_DEFAULT_BORDER_COLOR] = GetHexValue(fadeColor[7]); - style[BUTTON_HOVER_BORDER_COLOR] = GetHexValue(fadeColor[8]); - style[BUTTON_PRESSED_BORDER_COLOR] = GetHexValue(fadeColor[9]); - style[TOGGLE_DEFAULT_BORDER_COLOR] = GetHexValue(fadeColor[7]); - style[TOGGLE_HOVER_BORDER_COLOR] = GetHexValue(fadeColor[8]); - style[TOGGLE_PRESSED_BORDER_COLOR] = GetHexValue(fadeColor[9]); - style[TOGGLE_ACTIVE_BORDER_COLOR] = GetHexValue(fadeColor[9]); - style[SLIDER_BORDER_COLOR] = GetHexValue(fadeColor[7]); - style[SLIDERBAR_BORDER_COLOR] = GetHexValue(fadeColor[7]); - style[PROGRESSBAR_BORDER_COLOR] = GetHexValue(fadeColor[7]); - style[SPINNER_LABEL_BORDER_COLOR] = GetHexValue(fadeColor[7]); - style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR] = GetHexValue(fadeColor[7]); - style[SPINNER_HOVER_BUTTON_BORDER_COLOR] = GetHexValue(fadeColor[8]); - style[SPINNER_PRESSED_BUTTON_BORDER_COLOR] = GetHexValue(fadeColor[9]); - style[COMBOBOX_DEFAULT_BORDER_COLOR] = GetHexValue(fadeColor[7]); - style[COMBOBOX_HOVER_BORDER_COLOR] = GetHexValue(fadeColor[8]); - style[COMBOBOX_PRESSED_BORDER_COLOR] = GetHexValue(fadeColor[9]); - style[COMBOBOX_PRESSED_LIST_BORDER_COLOR] = GetHexValue(fadeColor[9]); - style[CHECKBOX_DEFAULT_BORDER_COLOR] = GetHexValue(fadeColor[7]); - style[CHECKBOX_HOVER_BORDER_COLOR] = GetHexValue(fadeColor[8]); - style[CHECKBOX_CLICK_BORDER_COLOR] = GetHexValue(fadeColor[9]); - style[TEXTBOX_BORDER_COLOR] = GetHexValue(fadeColor[7]); - } - else if (guiProperty == GLOBAL_TEXT_COLOR) - { - Color baseColor = GetColor(value); - Color fadeColor[NUM_COLOR_SAMPLES]; - - for (int i = 0; i < NUM_COLOR_SAMPLES; i++) fadeColor[i] = ColorMultiply(baseColor, 1.0f - (float)i/(NUM_COLOR_SAMPLES - 1)); - - style[GLOBAL_TEXT_COLOR] = value; - style[LABEL_TEXT_COLOR] = GetHexValue(fadeColor[9]); - style[BUTTON_DEFAULT_TEXT_COLOR] = GetHexValue(fadeColor[9]); - style[BUTTON_HOVER_TEXT_COLOR] = GetHexValue(fadeColor[8]); - style[BUTTON_PRESSED_TEXT_COLOR] = GetHexValue(fadeColor[5]); - style[TOGGLE_DEFAULT_TEXT_COLOR] = GetHexValue(fadeColor[9]); - style[TOGGLE_HOVER_TEXT_COLOR] = GetHexValue(fadeColor[8]); - style[TOGGLE_PRESSED_TEXT_COLOR] = GetHexValue(fadeColor[5]); - style[TOGGLE_ACTIVE_TEXT_COLOR] = GetHexValue(fadeColor[5]); - style[SPINNER_DEFAULT_SYMBOL_COLOR] = GetHexValue(fadeColor[9]); - style[SPINNER_DEFAULT_TEXT_COLOR] = GetHexValue(fadeColor[9]); - style[SPINNER_HOVER_SYMBOL_COLOR] = GetHexValue(fadeColor[8]); - style[SPINNER_HOVER_TEXT_COLOR] = GetHexValue(fadeColor[8]); - style[SPINNER_PRESSED_SYMBOL_COLOR] = GetHexValue(fadeColor[5]); - style[SPINNER_PRESSED_TEXT_COLOR] = GetHexValue(fadeColor[5]); - style[COMBOBOX_DEFAULT_TEXT_COLOR] = GetHexValue(fadeColor[9]); - style[COMBOBOX_DEFAULT_LIST_TEXT_COLOR] = GetHexValue(fadeColor[9]); - style[COMBOBOX_HOVER_TEXT_COLOR] = GetHexValue(fadeColor[8]); - style[COMBOBOX_HOVER_LIST_TEXT_COLOR] = GetHexValue(fadeColor[8]); - style[COMBOBOX_PRESSED_TEXT_COLOR] = GetHexValue(fadeColor[4]); - style[COMBOBOX_PRESSED_LIST_TEXT_COLOR] = GetHexValue(fadeColor[4]); - style[TEXTBOX_TEXT_COLOR] = GetHexValue(fadeColor[9]); - style[TEXTBOX_LINE_COLOR] = GetHexValue(fadeColor[6]); - } - else style[guiProperty] = value; - -} - -// Get one style property value -int GetStyleProperty(int guiProperty) { return style[guiProperty]; } - -//---------------------------------------------------------------------------------- -// Module specific Functions Definition -//---------------------------------------------------------------------------------- - -static Color ColorMultiply(Color baseColor, float value) -{ - Color multColor = baseColor; - - if (value > 1.0f) value = 1.0f; - else if (value < 0.0f) value = 0.0f; - - multColor.r += (255 - multColor.r)*value; - multColor.g += (255 - multColor.g)*value; - multColor.b += (255 - multColor.b)*value; - - return multColor; -} - -#if defined (RAYGUI_STANDALONE) -// Returns a Color struct from hexadecimal value -static Color GetColor(int hexValue) -{ - Color color; - - color.r = (unsigned char)(hexValue >> 24) & 0xFF; - color.g = (unsigned char)(hexValue >> 16) & 0xFF; - color.b = (unsigned char)(hexValue >> 8) & 0xFF; - color.a = (unsigned char)hexValue & 0xFF; - - return color; -} - -// Returns hexadecimal value for a Color -static int GetHexValue(Color color) -{ - return (((int)color.r << 24) | ((int)color.g << 16) | ((int)color.b << 8) | (int)color.a); -} - -// Check if point is inside rectangle -static bool CheckCollisionPointRec(Vector2 point, Rectangle rec) -{ - bool collision = false; - - if ((point.x >= rec.x) && (point.x <= (rec.x + rec.width)) && (point.y >= rec.y) && (point.y <= (rec.y + rec.height))) collision = true; - - return collision; -} - -// Formatting of text with variables to 'embed' -static const char *FormatText(const char *text, ...) -{ - #define MAX_FORMATTEXT_LENGTH 64 - - static char buffer[MAX_FORMATTEXT_LENGTH]; - - va_list args; - va_start(args, text); - vsprintf(buffer, text, args); - va_end(args); - - return buffer; -} -#endif \ No newline at end of file diff --git a/src/raygui.h b/src/raygui.h index 617412549..32ad8e9b3 100644 --- a/src/raygui.h +++ b/src/raygui.h @@ -1,8 +1,45 @@ /******************************************************************************************* * -* raygui - raylib IMGUI system (Immedite Mode GUI) +* raygui v1.2 - IMGUI (Immedite Mode GUI) library for raylib (https://github.com/raysan5/raylib) * -* Copyright (c) 2015 Kevin Gato, Daniel Nicolás, Sergio Martinez and Ramon Santamaria +* raygui is a library for creating simple IMGUI interfaces. It provides a set of basic components: +* +* - Label +* - Button +* - ToggleButton +* - ToggleGroup +* - ComboBox +* - CheckBox +* - Slider +* - SliderBar +* - ProgressBar +* - Spinner +* - TextBox +* +* It also provides a set of functions for styling the components based on a set of properties. +* +* USAGE: +* +* Include this file in any C/C++ file that requires it; in ONLY one of them, write: +* #define RAYGUI_IMPLEMENTATION +* before the #include of this file. This expands out the actual implementation into that file. +* +* CONFIGURATION: +* +* You can #define RAYGUI_STANDALONE to avoid raylib.h inclusion (not dependant on raylib functions and types). +* NOTE: Some external funtions are required for drawing and input management, check implementation code. +* +* You can #define RAY_MALLOC() to replace malloc() and free() function by your own. +* +* You can #define RAYGUI_STATIC to make the implementation private to the file that generates the implementation, +* +* VERSIONS AND CREDITS: +* +* 1.2 (07-Jun-2016) Converted to header-only by Ramon Santamaria +* 1.1 (07-Mar-2016) Reviewed and expanded by Albert Martos, Ian Eito, Sergio Martinez and Ramon Santamaria. +* 1.0 (27-Aug-2015) Initial release. Implemented by Kevin Gato, Daniel Nicolás and Ramon Santamaria. +* +* LICENSE: zlib/libpng * * This software is provided "as-is", without any express or implied warranty. In no event * will the authors be held liable for any damages arising from the use of this software. @@ -20,10 +57,24 @@ * 3. This notice may not be removed or altered from any source distribution. * **********************************************************************************************/ + #ifndef RAYGUI_H #define RAYGUI_H -//#include "raylib.h" +#if !defined(RAYGUI_STANDALONE) + #include "raylib.h" +#endif + +#define RAYGUI_STATIC +#ifdef RAYGUI_STATIC + #define RAYGUIDEF static // Functions just visible to module including this file +#else + #ifdef __cplusplus + #define RAYGUIDEF extern "C" // Functions visible from other files (no name mangling of functions in C++) + #else + #define RAYGUIDEF extern // Functions visible from other files + #endif +#endif //---------------------------------------------------------------------------------- // Defines and Macros @@ -168,7 +219,7 @@ typedef enum GuiProperty { } GuiProperty; #ifdef __cplusplus -extern "C" { // Prevents name mangling of functions +extern "C" { #endif //---------------------------------------------------------------------------------- @@ -278,27 +329,1154 @@ static const char *guiPropertyName[] = { //---------------------------------------------------------------------------------- // Module Functions Declaration //---------------------------------------------------------------------------------- -void GuiLabel(Rectangle bounds, const char *text); // Label element, show text -void GuiLabelEx(Rectangle bounds, const char *text, Color textColor, Color border, Color inner); // Label element extended, configurable colors -bool GuiButton(Rectangle bounds, const char *text); // Button element, returns true when clicked -bool GuiToggleButton(Rectangle bounds, const char *text, bool toggle); // Toggle Button element, returns true when active -int GuiToggleGroup(Rectangle bounds, int toggleNum, char **toggleText, int toggleActive); // Toggle Group element, returns toggled button index -int GuiComboBox(Rectangle bounds, int comboNum, char **comboText, int comboActive); // Combo Box element, returns selected item index -bool GuiCheckBox(Rectangle bounds, const char *text, bool checked); // Check Box element, returns true when active -float GuiSlider(Rectangle bounds, float value, float minValue, float maxValue); // Slider element, returns selected value -float GuiSliderBar(Rectangle bounds, float value, float minValue, float maxValue); // Slider Bar element, returns selected value -void GuiProgressBar(Rectangle bounds, float value); // Progress Bar element, shows current progress value -int GuiSpinner(Rectangle bounds, int value, int minValue, int maxValue); // Spinner element, returns selected value -char *GuiTextBox(Rectangle bounds, char *text); // Text Box element, returns input text +RAYGUIDEF void GuiLabel(Rectangle bounds, const char *text); // Label element, show text +RAYGUIDEF void GuiLabelEx(Rectangle bounds, const char *text, Color textColor, Color border, Color inner); // Label element extended, configurable colors +RAYGUIDEF bool GuiButton(Rectangle bounds, const char *text); // Button element, returns true when clicked +RAYGUIDEF bool GuiToggleButton(Rectangle bounds, const char *text, bool toggle); // Toggle Button element, returns true when active +RAYGUIDEF int GuiToggleGroup(Rectangle bounds, int toggleNum, char **toggleText, int toggleActive); // Toggle Group element, returns toggled button index +RAYGUIDEF int GuiComboBox(Rectangle bounds, int comboNum, char **comboText, int comboActive); // Combo Box element, returns selected item index +RAYGUIDEF bool GuiCheckBox(Rectangle bounds, const char *text, bool checked); // Check Box element, returns true when active +RAYGUIDEF float GuiSlider(Rectangle bounds, float value, float minValue, float maxValue); // Slider element, returns selected value +RAYGUIDEF float GuiSliderBar(Rectangle bounds, float value, float minValue, float maxValue); // Slider Bar element, returns selected value +RAYGUIDEF void GuiProgressBar(Rectangle bounds, float value); // Progress Bar element, shows current progress value +RAYGUIDEF int GuiSpinner(Rectangle bounds, int value, int minValue, int maxValue); // Spinner element, returns selected value +RAYGUIDEF char *GuiTextBox(Rectangle bounds, char *text); // Text Box element, returns input text -void SaveGuiStyle(const char *fileName); // Save GUI style file -void LoadGuiStyle(const char *fileName); // Load GUI style file +RAYGUIDEF void SaveGuiStyle(const char *fileName); // Save GUI style file +RAYGUIDEF void LoadGuiStyle(const char *fileName); // Load GUI style file -void SetStyleProperty(int guiProperty, int value); // Set one style property -int GetStyleProperty(int guiProperty); // Get one style property +RAYGUIDEF void SetStyleProperty(int guiProperty, int value); // Set one style property +RAYGUIDEF int GetStyleProperty(int guiProperty); // Get one style property #ifdef __cplusplus } #endif #endif // RAYGUI_H + + +/********************************************************************************************************* +* +* RAYGUI IMPLEMENTATION +* +**********************************************************************************************************/ + +#if defined(RAYGUI_IMPLEMENTATION) + +#include // Required for: FILE, fopen(), fclose(), fprintf(), feof(), fscanf() + // NOTE: Those functions are only used in SaveGuiStyle() and LoadGuiStyle() + +#include // Required for: malloc(), free() [Used only on LoadGuiStyle()] +#include // Required for: strcmp() [Used only on LoadGuiStyle()] +#include // Required for: va_list, va_start(), vfprintf(), va_end() + +/* +// NOTE: Example on how to define custom functions +#if !defined(RAY_MALLOC) + #include + #define RAY_MALLOC(size,c) malloc(size) + #define RAY_FREE(ptr,c) free(ptr) +#endif +*/ + +//---------------------------------------------------------------------------------- +// Defines and Macros +//---------------------------------------------------------------------------------- +#if defined(RAYGUI_STANDALONE) + #define KEY_LEFT 263 + #define KEY_RIGHT 262 + #define MOUSE_LEFT_BUTTON 0 +#endif + +//---------------------------------------------------------------------------------- +// Types and Structures Definition +//---------------------------------------------------------------------------------- + +// GUI elements states +typedef enum { BUTTON_DEFAULT, BUTTON_HOVER, BUTTON_PRESSED, BUTTON_CLICKED } ButtonState; +typedef enum { TOGGLE_UNACTIVE, TOGGLE_HOVER, TOGGLE_PRESSED, TOGGLE_ACTIVE } ToggleState; +typedef enum { COMBOBOX_UNACTIVE, COMBOBOX_HOVER, COMBOBOX_PRESSED, COMBOBOX_ACTIVE } ComboBoxState; +typedef enum { SPINNER_DEFAULT, SPINNER_HOVER, SPINNER_PRESSED } SpinnerState; +typedef enum { CHECKBOX_STATUS, CHECKBOX_HOVER, CHECKBOX_PRESSED } CheckBoxState; +typedef enum { SLIDER_DEFAULT, SLIDER_HOVER, SLIDER_ACTIVE } SliderState; + +//---------------------------------------------------------------------------------- +// Global Variables Definition +//---------------------------------------------------------------------------------- + +// Current GUI style (default light) +static int style[NUM_PROPERTIES] = { + 0xf5f5f5ff, // GLOBAL_BASE_COLOR, + 0xf5f5f5ff, // GLOBAL_BORDER_COLOR, + 0xf5f5f5ff, // GLOBAL_TEXT_COLOR, + 10, // GLOBAL_TEXT_FONTSIZE + 1, // GLOBAL_BORDER_WIDTH + 0xf5f5f5ff, // BACKGROUND_COLOR + 1, // LABEL_BORDER_WIDTH + 0x4d4d4dff, // LABEL_TEXT_COLOR + 20, // LABEL_TEXT_PADDING + 2, // BUTTON_BORDER_WIDTH + 20, // BUTTON_TEXT_PADDING + 0x828282ff, // BUTTON_DEFAULT_BORDER_COLOR + 0xc8c8c8ff, // BUTTON_DEFAULT_INSIDE_COLOR + 0x4d4d4dff, // BUTTON_DEFAULT_TEXT_COLOR + 0xc8c8c8ff, // BUTTON_HOVER_BORDER_COLOR + 0xffffffff, // BUTTON_HOVER_INSIDE_COLOR + 0x353535ff, // BUTTON_HOVER_TEXT_COLOR + 0x7bb0d6ff, // BUTTON_PRESSED_BORDER_COLOR + 0xbcecffff, // BUTTON_PRESSED_INSIDE_COLOR + 0x5f9aa7ff, // BUTTON_PRESSED_TEXT_COLOR + 20, // TOGGLE_TEXT_PADDING + 1, // TOGGLE_BORDER_WIDTH + 0x828282ff, // TOGGLE_DEFAULT_BORDER_COLOR + 0xc8c8c8ff, // TOGGLE_DEFAULT_INSIDE_COLOR + 0x828282ff, // TOGGLE_DEFAULT_TEXT_COLOR + 0xc8c8c8ff, // TOGGLE_HOVER_BORDER_COLOR + 0xffffffff, // TOGGLE_HOVER_INSIDE_COLOR + 0x828282ff, // TOGGLE_HOVER_TEXT_COLOR + 0xbdd7eaff, // TOGGLE_PRESSED_BORDER_COLOR + 0xddf5ffff, // TOGGLE_PRESSED_INSIDE_COLOR + 0xafccd3ff, // TOGGLE_PRESSED_TEXT_COLOR + 0x7bb0d6ff, // TOGGLE_ACTIVE_BORDER_COLOR + 0xbcecffff, // TOGGLE_ACTIVE_INSIDE_COLOR + 0x5f9aa7ff, // TOGGLE_ACTIVE_TEXT_COLOR + 3, // TOGGLEGROUP_PADDING + 1, // SLIDER_BORDER_WIDTH + 1, // SLIDER_BUTTON_BORDER_WIDTH + 0x828282ff, // SLIDER_BORDER_COLOR + 0xc8c8c8ff, // SLIDER_INSIDE_COLOR + 0xbcecffff, // SLIDER_DEFAULT_COLOR + 0xffffffff, // SLIDER_HOVER_COLOR + 0xddf5ffff, // SLIDER_ACTIVE_COLOR + 0x828282ff, // SLIDERBAR_BORDER_COLOR + 0xc8c8c8ff, // SLIDERBAR_INSIDE_COLOR + 0xbcecffff, // SLIDERBAR_DEFAULT_COLOR + 0xffffffff, // SLIDERBAR_HOVER_COLOR + 0xddf5ffff, // SLIDERBAR_ACTIVE_COLOR + 0x828282ff, // SLIDERBAR_ZERO_LINE_COLOR + 0x828282ff, // PROGRESSBAR_BORDER_COLOR + 0xc8c8c8ff, // PROGRESSBAR_INSIDE_COLOR + 0xbcecffff, // PROGRESSBAR_PROGRESS_COLOR + 2, // PROGRESSBAR_BORDER_WIDTH + 0x828282ff, // SPINNER_LABEL_BORDER_COLOR + 0xc8c8c8ff, // SPINNER_LABEL_INSIDE_COLOR + 0x828282ff, // SPINNER_DEFAULT_BUTTON_BORDER_COLOR + 0xc8c8c8ff, // SPINNER_DEFAULT_BUTTON_INSIDE_COLOR + 0x000000ff, // SPINNER_DEFAULT_SYMBOL_COLOR + 0x000000ff, // SPINNER_DEFAULT_TEXT_COLOR + 0xc8c8c8ff, // SPINNER_HOVER_BUTTON_BORDER_COLOR + 0xffffffff, // SPINNER_HOVER_BUTTON_INSIDE_COLOR + 0x000000ff, // SPINNER_HOVER_SYMBOL_COLOR + 0x000000ff, // SPINNER_HOVER_TEXT_COLOR + 0x7bb0d6ff, // SPINNER_PRESSED_BUTTON_BORDER_COLOR + 0xbcecffff, // SPINNER_PRESSED_BUTTON_INSIDE_COLOR + 0x5f9aa7ff, // SPINNER_PRESSED_SYMBOL_COLOR + 0x000000ff, // SPINNER_PRESSED_TEXT_COLOR + 1, // COMBOBOX_PADDING + 30, // COMBOBOX_BUTTON_WIDTH + 20, // COMBOBOX_BUTTON_HEIGHT + 1, // COMBOBOX_BORDER_WIDTH + 0x828282ff, // COMBOBOX_DEFAULT_BORDER_COLOR + 0xc8c8c8ff, // COMBOBOX_DEFAULT_INSIDE_COLOR + 0x828282ff, // COMBOBOX_DEFAULT_TEXT_COLOR + 0x828282ff, // COMBOBOX_DEFAULT_LIST_TEXT_COLOR + 0xc8c8c8ff, // COMBOBOX_HOVER_BORDER_COLOR + 0xffffffff, // COMBOBOX_HOVER_INSIDE_COLOR + 0x828282ff, // COMBOBOX_HOVER_TEXT_COLOR + 0x828282ff, // COMBOBOX_HOVER_LIST_TEXT_COLOR + 0x7bb0d6ff, // COMBOBOX_PRESSED_BORDER_COLOR + 0xbcecffff, // COMBOBOX_PRESSED_INSIDE_COLOR + 0x5f9aa7ff, // COMBOBOX_PRESSED_TEXT_COLOR + 0x0078acff, // COMBOBOX_PRESSED_LIST_BORDER_COLOR + 0x66e7ffff, // COMBOBOX_PRESSED_LIST_INSIDE_COLOR + 0x0078acff, // COMBOBOX_PRESSED_LIST_TEXT_COLOR + 0x828282ff, // CHECKBOX_DEFAULT_BORDER_COLOR + 0xffffffff, // CHECKBOX_DEFAULT_INSIDE_COLOR + 0xc8c8c8ff, // CHECKBOX_HOVER_BORDER_COLOR + 0xffffffff, // CHECKBOX_HOVER_INSIDE_COLOR + 0x66e7ffff, // CHECKBOX_CLICK_BORDER_COLOR + 0xddf5ffff, // CHECKBOX_CLICK_INSIDE_COLOR + 0x7bb0d6ff, // CHECKBOX_STATUS_ACTIVE_COLOR + 4, // CHECKBOX_INSIDE_WIDTH + 1, // TEXTBOX_BORDER_WIDTH + 0x828282ff, // TEXTBOX_BORDER_COLOR + 0xf5f5f5ff, // TEXTBOX_INSIDE_COLOR + 0x000000ff, // TEXTBOX_TEXT_COLOR + 0x000000ff, // TEXTBOX_LINE_COLOR + 10 // TEXTBOX_TEXT_FONTSIZE +}; + +//---------------------------------------------------------------------------------- +// Module specific Functions Declaration +//---------------------------------------------------------------------------------- +static Color ColorMultiply(Color baseColor, float value); + +#if defined RAYGUI_STANDALONE +static Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value +static int GetHexValue(Color color); // Returns hexadecimal value for a Color +static bool CheckCollisionPointRec(Vector2 point, Rectangle rec); // Check if point is inside rectangle +static const char *FormatText(const char *text, ...); // Formatting of text with variables to 'embed' + +// NOTE: raygui depend on some raylib input and drawing functions +// TODO: Replace by your own functions +static Vector2 GetMousePosition() { return (Vector2){ 0.0f, 0.0f }; } +static int IsMouseButtonDown(int button) { return 0; } +static int IsMouseButtonPressed(int button) { return 0; } +static int IsMouseButtonReleased(int button) { return 0; } +static int IsMouseButtonUp(int button) { return 0; } + +static int GetKeyPressed(void) { return 0; } // NOTE: Only used by GuiTextBox() +static int IsKeyDown(int key) { return 0; } // NOTE: Only used by GuiSpinner() + +static int MeasureText(const char *text, int fontSize) { return 0; } +static void DrawText(const char *text, int posX, int posY, int fontSize, Color color) { } +static void DrawRectangleRec(Rectangle rec, Color color) { } +static void DrawRectangle(int posX, int posY, int width, int height, Color color) { DrawRectangleRec((Rectangle){ posX, posY, width, height }, color); } +#endif + +//---------------------------------------------------------------------------------- +// Module Functions Definition +//---------------------------------------------------------------------------------- + +// Label element, show text +RAYGUIDEF void GuiLabel(Rectangle bounds, const char *text) +{ + #define BLANK (Color){ 0, 0, 0, 0 } // Blank (Transparent) + + GuiLabelEx(bounds, text, GetColor(style[LABEL_TEXT_COLOR]), BLANK, BLANK); +} + +// Label element extended, configurable colors +RAYGUIDEF void GuiLabelEx(Rectangle bounds, const char *text, Color textColor, Color border, Color inner) +{ + // Update control + //-------------------------------------------------------------------- + int textWidth = MeasureText(text, style[GLOBAL_TEXT_FONTSIZE]); + int textHeight = style[GLOBAL_TEXT_FONTSIZE]; + + if (bounds.width < textWidth) bounds.width = textWidth + style[LABEL_TEXT_PADDING]; + if (bounds.height < textHeight) bounds.height = textHeight + style[LABEL_TEXT_PADDING]/2; + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + DrawRectangleRec(bounds, border); + DrawRectangle(bounds.x + style[LABEL_BORDER_WIDTH], bounds.y + style[LABEL_BORDER_WIDTH], bounds.width - (2 * style[LABEL_BORDER_WIDTH]), bounds.height - (2 * style[LABEL_BORDER_WIDTH]), inner); + DrawText(text, bounds.x + ((bounds.width/2) - (textWidth/2)), bounds.y + ((bounds.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], textColor); + //-------------------------------------------------------------------- +} + +// Button element, returns true when clicked +RAYGUIDEF bool GuiButton(Rectangle bounds, const char *text) +{ + ButtonState buttonState = BUTTON_DEFAULT; + Vector2 mousePoint = GetMousePosition(); + + int textWidth = MeasureText(text, style[GLOBAL_TEXT_FONTSIZE]); + int textHeight = style[GLOBAL_TEXT_FONTSIZE]; + + // Update control + //-------------------------------------------------------------------- + if (bounds.width < textWidth) bounds.width = textWidth + style[BUTTON_TEXT_PADDING]; + if (bounds.height < textHeight) bounds.height = textHeight + style[BUTTON_TEXT_PADDING]/2; + + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) buttonState = BUTTON_PRESSED; + else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) buttonState = BUTTON_CLICKED; + else buttonState = BUTTON_HOVER; + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + switch (buttonState) + { + case BUTTON_DEFAULT: + { + DrawRectangleRec(bounds, GetColor(style[BUTTON_DEFAULT_BORDER_COLOR])); + DrawRectangle((int)(bounds.x + style[BUTTON_BORDER_WIDTH]), (int)(bounds.y + style[BUTTON_BORDER_WIDTH]) , (int)(bounds.width - (2 * style[BUTTON_BORDER_WIDTH])), (int)(bounds.height - (2 * style[BUTTON_BORDER_WIDTH])), GetColor(style[BUTTON_DEFAULT_INSIDE_COLOR])); + DrawText(text, bounds.x + ((bounds.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), bounds.y + ((bounds.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[BUTTON_DEFAULT_TEXT_COLOR])); + } break; + case BUTTON_HOVER: + { + DrawRectangleRec(bounds, GetColor(style[BUTTON_HOVER_BORDER_COLOR])); + DrawRectangle((int)(bounds.x + style[BUTTON_BORDER_WIDTH]), (int)(bounds.y + style[BUTTON_BORDER_WIDTH]) , (int)(bounds.width - (2 * style[BUTTON_BORDER_WIDTH])), (int)(bounds.height - (2 * style[BUTTON_BORDER_WIDTH])), GetColor(style[BUTTON_HOVER_INSIDE_COLOR])); + DrawText(text, bounds.x + ((bounds.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), bounds.y + ((bounds.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[BUTTON_HOVER_TEXT_COLOR])); + } break; + case BUTTON_PRESSED: + { + DrawRectangleRec(bounds, GetColor(style[BUTTON_PRESSED_BORDER_COLOR])); + DrawRectangle((int)(bounds.x + style[BUTTON_BORDER_WIDTH]), (int)(bounds.y + style[BUTTON_BORDER_WIDTH]) , (int)(bounds.width - (2 * style[BUTTON_BORDER_WIDTH])), (int)(bounds.height - (2 * style[BUTTON_BORDER_WIDTH])), GetColor(style[BUTTON_PRESSED_INSIDE_COLOR])); + DrawText(text, bounds.x + ((bounds.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), bounds.y + ((bounds.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[BUTTON_PRESSED_TEXT_COLOR])); + } break; + case BUTTON_CLICKED: + { + DrawRectangleRec(bounds, GetColor(style[BUTTON_PRESSED_BORDER_COLOR])); + DrawRectangle((int)(bounds.x + style[BUTTON_BORDER_WIDTH]), (int)(bounds.y + style[BUTTON_BORDER_WIDTH]) , (int)(bounds.width - (2 * style[BUTTON_BORDER_WIDTH])), (int)(bounds.height - (2 * style[BUTTON_BORDER_WIDTH])), GetColor(style[BUTTON_PRESSED_INSIDE_COLOR])); + } break; + default: break; + } + //------------------------------------------------------------------ + + if (buttonState == BUTTON_CLICKED) return true; + else return false; +} + +// Toggle Button element, returns true when active +RAYGUIDEF bool GuiToggleButton(Rectangle bounds, const char *text, bool toggle) +{ + ToggleState toggleState = TOGGLE_UNACTIVE; + Rectangle toggleButton = bounds; + Vector2 mousePoint = GetMousePosition(); + + int textWidth = MeasureText(text, style[GLOBAL_TEXT_FONTSIZE]); + int textHeight = style[GLOBAL_TEXT_FONTSIZE]; + + // Update control + //-------------------------------------------------------------------- + if (toggleButton.width < textWidth) toggleButton.width = textWidth + style[TOGGLE_TEXT_PADDING]; + if (toggleButton.height < textHeight) toggleButton.height = textHeight + style[TOGGLE_TEXT_PADDING]/2; + + if (toggle) toggleState = TOGGLE_ACTIVE; + else toggleState = TOGGLE_UNACTIVE; + + if (CheckCollisionPointRec(mousePoint, toggleButton)) + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) toggleState = TOGGLE_PRESSED; + else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) + { + if (toggle) + { + toggle = false; + toggleState = TOGGLE_UNACTIVE; + } + else + { + toggle = true; + toggleState = TOGGLE_ACTIVE; + } + } + else toggleState = TOGGLE_HOVER; + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + switch (toggleState) + { + case TOGGLE_UNACTIVE: + { + DrawRectangleRec(toggleButton, GetColor(style[TOGGLE_DEFAULT_BORDER_COLOR])); + DrawRectangle((int)(toggleButton.x + style[TOGGLE_BORDER_WIDTH]), (int)(toggleButton.y + style[TOGGLE_BORDER_WIDTH]) , (int)(toggleButton.width - (2 * style[TOGGLE_BORDER_WIDTH])), (int)(toggleButton.height - (2 * style[TOGGLE_BORDER_WIDTH])), GetColor(style[TOGGLE_DEFAULT_INSIDE_COLOR])); + DrawText(text, toggleButton.x + ((toggleButton.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), toggleButton.y + ((toggleButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[TOGGLE_DEFAULT_TEXT_COLOR])); + } break; + case TOGGLE_HOVER: + { + DrawRectangleRec(toggleButton, GetColor(style[TOGGLE_HOVER_BORDER_COLOR])); + DrawRectangle((int)(toggleButton.x + style[TOGGLE_BORDER_WIDTH]), (int)(toggleButton.y + style[TOGGLE_BORDER_WIDTH]) , (int)(toggleButton.width - (2 * style[TOGGLE_BORDER_WIDTH])), (int)(toggleButton.height - (2 * style[TOGGLE_BORDER_WIDTH])), GetColor(style[TOGGLE_HOVER_INSIDE_COLOR])); + DrawText(text, toggleButton.x + ((toggleButton.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), toggleButton.y + ((toggleButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[TOGGLE_HOVER_TEXT_COLOR])); + } break; + case TOGGLE_PRESSED: + { + DrawRectangleRec(toggleButton, GetColor(style[TOGGLE_PRESSED_BORDER_COLOR])); + DrawRectangle((int)(toggleButton.x + style[TOGGLE_BORDER_WIDTH]), (int)(toggleButton.y + style[TOGGLE_BORDER_WIDTH]) , (int)(toggleButton.width - (2 * style[TOGGLE_BORDER_WIDTH])), (int)(toggleButton.height - (2 * style[TOGGLE_BORDER_WIDTH])), GetColor(style[TOGGLE_PRESSED_INSIDE_COLOR])); + DrawText(text, toggleButton.x + ((toggleButton.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), toggleButton.y + ((toggleButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[TOGGLE_PRESSED_TEXT_COLOR])); + } break; + case TOGGLE_ACTIVE: + { + DrawRectangleRec(toggleButton, GetColor(style[TOGGLE_ACTIVE_BORDER_COLOR])); + DrawRectangle((int)(toggleButton.x + style[TOGGLE_BORDER_WIDTH]), (int)(toggleButton.y + style[TOGGLE_BORDER_WIDTH]) , (int)(toggleButton.width - (2 * style[TOGGLE_BORDER_WIDTH])), (int)(toggleButton.height - (2 * style[TOGGLE_BORDER_WIDTH])), GetColor(style[TOGGLE_ACTIVE_INSIDE_COLOR])); + DrawText(text, toggleButton.x + ((toggleButton.width/2) - (MeasureText(text, style[GLOBAL_TEXT_FONTSIZE])/2)), toggleButton.y + ((toggleButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[TOGGLE_ACTIVE_TEXT_COLOR])); + } break; + default: break; + } + //-------------------------------------------------------------------- + + return toggle; +} + +// Toggle Group element, returns toggled button index +RAYGUIDEF int GuiToggleGroup(Rectangle bounds, int toggleNum, char **toggleText, int toggleActive) +{ + for (int i = 0; i < toggleNum; i++) + { + if (i == toggleActive) GuiToggleButton((Rectangle){bounds.x + i*(bounds.width + style[TOGGLEGROUP_PADDING]),bounds.y,bounds.width,bounds.height}, toggleText[i], true); + else if (GuiToggleButton((Rectangle){bounds.x + i*(bounds.width + style[TOGGLEGROUP_PADDING]),bounds.y,bounds.width,bounds.height}, toggleText[i], false) == true) toggleActive = i; + } + + return toggleActive; +} + +// Combo Box element, returns selected item index +RAYGUIDEF int GuiComboBox(Rectangle bounds, int comboNum, char **comboText, int comboActive) +{ + ComboBoxState comboBoxState = COMBOBOX_UNACTIVE; + Rectangle comboBoxButton = bounds; + Rectangle click = { bounds.x + bounds.width + style[COMBOBOX_PADDING], bounds.y, style[COMBOBOX_BUTTON_WIDTH], style[COMBOBOX_BUTTON_HEIGHT] }; + Vector2 mousePoint = GetMousePosition(); + + int textHeight = style[GLOBAL_TEXT_FONTSIZE]; + + for (int i = 0; i < comboNum; i++) + { + if (i == comboActive) + { + // Update control + //-------------------------------------------------------------------- + int textWidth = MeasureText(comboText[i], style[GLOBAL_TEXT_FONTSIZE]); + + if (comboBoxButton.width < textWidth) comboBoxButton.width = textWidth + style[TOGGLE_TEXT_PADDING]; + if (comboBoxButton.height < textHeight) comboBoxButton.height = textHeight + style[TOGGLE_TEXT_PADDING]/2; + + if (CheckCollisionPointRec(mousePoint, comboBoxButton) || CheckCollisionPointRec(mousePoint, click)) + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) comboBoxState = COMBOBOX_PRESSED; + else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) comboBoxState = COMBOBOX_ACTIVE; + else comboBoxState = COMBOBOX_HOVER; + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + switch (comboBoxState) + { + case COMBOBOX_UNACTIVE: + { + DrawRectangleRec(comboBoxButton, GetColor(style[COMBOBOX_DEFAULT_BORDER_COLOR])); + DrawRectangle((int)(comboBoxButton.x + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.y + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.width - (2 * style[COMBOBOX_BORDER_WIDTH])), (int)(comboBoxButton.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_DEFAULT_INSIDE_COLOR])); + + DrawRectangleRec(click, GetColor(style[COMBOBOX_DEFAULT_BORDER_COLOR])); + DrawRectangle((int)(click.x + style[COMBOBOX_BORDER_WIDTH]), (int)(click.y + style[COMBOBOX_BORDER_WIDTH]) , (int)(click.width - (2*style[COMBOBOX_BORDER_WIDTH])), (int)(click.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_DEFAULT_INSIDE_COLOR])); + DrawText(FormatText("%i/%i", comboActive + 1, comboNum), click.x + ((click.width/2) - (MeasureText(FormatText("%i/%i", comboActive + 1, comboNum), style[GLOBAL_TEXT_FONTSIZE])/2)), click.y + ((click.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_DEFAULT_LIST_TEXT_COLOR])); + DrawText(comboText[i], comboBoxButton.x + ((comboBoxButton.width/2) - (MeasureText(comboText[i], style[GLOBAL_TEXT_FONTSIZE])/2)), comboBoxButton.y + ((comboBoxButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_DEFAULT_TEXT_COLOR])); + } break; + case COMBOBOX_HOVER: + { + DrawRectangleRec(comboBoxButton, GetColor(style[COMBOBOX_HOVER_BORDER_COLOR])); + DrawRectangle((int)(comboBoxButton.x + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.y + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.width - (2 * style[COMBOBOX_BORDER_WIDTH])), (int)(comboBoxButton.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_HOVER_INSIDE_COLOR])); + + DrawRectangleRec(click, GetColor(style[COMBOBOX_HOVER_BORDER_COLOR])); + DrawRectangle((int)(click.x + style[COMBOBOX_BORDER_WIDTH]), (int)(click.y + style[COMBOBOX_BORDER_WIDTH]) , (int)(click.width - (2*style[COMBOBOX_BORDER_WIDTH])), (int)(click.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_HOVER_INSIDE_COLOR])); + DrawText(FormatText("%i/%i", comboActive + 1, comboNum), click.x + ((click.width/2) - (MeasureText(FormatText("%i/%i", comboActive + 1, comboNum), style[GLOBAL_TEXT_FONTSIZE])/2)), click.y + ((click.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_HOVER_LIST_TEXT_COLOR])); + DrawText(comboText[i], comboBoxButton.x + ((comboBoxButton.width/2) - (MeasureText(comboText[i], style[GLOBAL_TEXT_FONTSIZE])/2)), comboBoxButton.y + ((comboBoxButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_HOVER_TEXT_COLOR])); + } break; + case COMBOBOX_PRESSED: + { + DrawRectangleRec(comboBoxButton, GetColor(style[COMBOBOX_PRESSED_BORDER_COLOR])); + DrawRectangle((int)(comboBoxButton.x + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.y + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.width - (2 * style[COMBOBOX_BORDER_WIDTH])), (int)(comboBoxButton.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_PRESSED_INSIDE_COLOR])); + + DrawRectangleRec(click, GetColor(style[COMBOBOX_PRESSED_LIST_BORDER_COLOR])); + DrawRectangle((int)(click.x + style[COMBOBOX_BORDER_WIDTH]), (int)(click.y + style[COMBOBOX_BORDER_WIDTH]) , (int)(click.width - (2*style[COMBOBOX_BORDER_WIDTH])), (int)(click.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_PRESSED_LIST_INSIDE_COLOR])); + DrawText(FormatText("%i/%i", comboActive + 1, comboNum), click.x + ((click.width/2) - (MeasureText(FormatText("%i/%i", comboActive + 1, comboNum), style[GLOBAL_TEXT_FONTSIZE])/2)), click.y + ((click.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_PRESSED_LIST_TEXT_COLOR])); + DrawText(comboText[i], comboBoxButton.x + ((comboBoxButton.width/2) - (MeasureText(comboText[i], style[GLOBAL_TEXT_FONTSIZE])/2)), comboBoxButton.y + ((comboBoxButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_PRESSED_TEXT_COLOR])); + } break; + case COMBOBOX_ACTIVE: + { + DrawRectangleRec(comboBoxButton, GetColor(style[COMBOBOX_PRESSED_BORDER_COLOR])); + DrawRectangle((int)(comboBoxButton.x + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.y + style[COMBOBOX_BORDER_WIDTH]), (int)(comboBoxButton.width - (2 * style[COMBOBOX_BORDER_WIDTH])), (int)(comboBoxButton.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_PRESSED_INSIDE_COLOR])); + + DrawRectangleRec(click, GetColor(style[COMBOBOX_PRESSED_LIST_BORDER_COLOR])); + DrawRectangle((int)(click.x + style[COMBOBOX_BORDER_WIDTH]), (int)(click.y + style[COMBOBOX_BORDER_WIDTH]) , (int)(click.width - (2*style[COMBOBOX_BORDER_WIDTH])), (int)(click.height - (2*style[COMBOBOX_BORDER_WIDTH])), GetColor(style[COMBOBOX_PRESSED_LIST_INSIDE_COLOR])); + DrawText(FormatText("%i/%i", comboActive + 1, comboNum), click.x + ((click.width/2) - (MeasureText(FormatText("%i/%i", comboActive + 1, comboNum), style[GLOBAL_TEXT_FONTSIZE])/2)), click.y + ((click.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_PRESSED_LIST_TEXT_COLOR])); + DrawText(comboText[i], comboBoxButton.x + ((comboBoxButton.width/2) - (MeasureText(comboText[i], style[GLOBAL_TEXT_FONTSIZE])/2)), comboBoxButton.y + ((comboBoxButton.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[COMBOBOX_PRESSED_TEXT_COLOR])); + } break; + default: break; + } + + //DrawText(comboText[i], comboBoxButton.x + ((comboBoxButton.width/2) - (MeasureText(comboText[i], style[]globalTextFontSize)/2)), comboBoxButton.y + ((comboBoxButton.height/2) - (style[]globalTextFontSize/2)), style[]globalTextFontSize, COMBOBOX_PRESSED_TEXT_COLOR); + //-------------------------------------------------------------------- + } + } + + if (CheckCollisionPointRec(GetMousePosition(), bounds) || CheckCollisionPointRec(GetMousePosition(), click)) + { + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) + { + comboActive += 1; + if(comboActive >= comboNum) comboActive = 0; + } + } + + return comboActive; +} + +// Check Box element, returns true when active +RAYGUIDEF bool GuiCheckBox(Rectangle checkBoxBounds, const char *text, bool checked) +{ + CheckBoxState checkBoxState = CHECKBOX_STATUS; + Vector2 mousePoint = GetMousePosition(); + + // Update control + //-------------------------------------------------------------------- + if (CheckCollisionPointRec(mousePoint, checkBoxBounds)) + { + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) checkBoxState = CHECKBOX_PRESSED; + else if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) + { + checkBoxState = CHECKBOX_STATUS; + checked = !checked; + } + else checkBoxState = CHECKBOX_HOVER; + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + switch (checkBoxState) + { + case CHECKBOX_HOVER: + { + DrawRectangleRec(checkBoxBounds, GetColor(style[CHECKBOX_HOVER_BORDER_COLOR])); + DrawRectangle((int)(checkBoxBounds.x + style[TOGGLE_BORDER_WIDTH]), (int)(checkBoxBounds.y + style[TOGGLE_BORDER_WIDTH]), (int)(checkBoxBounds.width - (2*style[TOGGLE_BORDER_WIDTH])), (int)(checkBoxBounds.height - (2*style[TOGGLE_BORDER_WIDTH])), GetColor(style[CHECKBOX_HOVER_INSIDE_COLOR])); + } break; + case CHECKBOX_STATUS: + { + DrawRectangleRec(checkBoxBounds, GetColor(style[CHECKBOX_DEFAULT_BORDER_COLOR])); + DrawRectangle((int)(checkBoxBounds.x + style[TOGGLE_BORDER_WIDTH]), (int)(checkBoxBounds.y + style[TOGGLE_BORDER_WIDTH]), (int)(checkBoxBounds.width - (2*style[TOGGLE_BORDER_WIDTH])), (int)(checkBoxBounds.height - (2*style[TOGGLE_BORDER_WIDTH])), GetColor(style[CHECKBOX_DEFAULT_INSIDE_COLOR])); + } break; + case CHECKBOX_PRESSED: + { + DrawRectangleRec(checkBoxBounds, GetColor(style[CHECKBOX_CLICK_BORDER_COLOR])); + DrawRectangle((int)(checkBoxBounds.x + style[TOGGLE_BORDER_WIDTH]), (int)(checkBoxBounds.y + style[TOGGLE_BORDER_WIDTH]), (int)(checkBoxBounds.width - (2*style[TOGGLE_BORDER_WIDTH])), (int)(checkBoxBounds.height - (2*style[TOGGLE_BORDER_WIDTH])), GetColor(style[CHECKBOX_CLICK_INSIDE_COLOR])); + } break; + default: break; + } + + if (text != NULL) DrawText(text, checkBoxBounds.x + checkBoxBounds.width + 2, checkBoxBounds.y + ((checkBoxBounds.height/2) - (style[GLOBAL_TEXT_FONTSIZE]/2) + 1), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[LABEL_TEXT_COLOR])); + + if (checked) + { + DrawRectangle((int)(checkBoxBounds.x + style[CHECKBOX_INSIDE_WIDTH]), (int)(checkBoxBounds.y + style[CHECKBOX_INSIDE_WIDTH]), (int)(checkBoxBounds.width - (2*style[CHECKBOX_INSIDE_WIDTH])), (int)(checkBoxBounds.height - (2*style[CHECKBOX_INSIDE_WIDTH])), GetColor(style[CHECKBOX_STATUS_ACTIVE_COLOR])); + } + //-------------------------------------------------------------------- + + return checked; +} + +// Slider element, returns selected value +RAYGUIDEF float GuiSlider(Rectangle bounds, float value, float minValue, float maxValue) +{ + SliderState sliderState = SLIDER_DEFAULT; + float buttonTravelDistance = 0; + float sliderPos = 0; + Vector2 mousePoint = GetMousePosition(); + + // Update control + //-------------------------------------------------------------------- + if (value < minValue) value = minValue; + else if (value >= maxValue) value = maxValue; + + sliderPos = (value - minValue)/(maxValue - minValue); + + Rectangle sliderButton; + sliderButton.width = ((int)(bounds.width - (2 * style[SLIDER_BUTTON_BORDER_WIDTH]))/10 - 8); + sliderButton.height =((int)(bounds.height - ( 2 * style[SLIDER_BORDER_WIDTH] + 2 * style[SLIDER_BUTTON_BORDER_WIDTH]))); + + float sliderButtonMinPos = bounds.x + style[SLIDER_BORDER_WIDTH] + style[SLIDER_BUTTON_BORDER_WIDTH]; + float sliderButtonMaxPos = bounds.x + bounds.width - (style[SLIDER_BORDER_WIDTH] + style[SLIDER_BUTTON_BORDER_WIDTH] + sliderButton.width); + + buttonTravelDistance = sliderButtonMaxPos - sliderButtonMinPos; + + sliderButton.x = ((int)(bounds.x + style[SLIDER_BORDER_WIDTH] + style[SLIDER_BUTTON_BORDER_WIDTH]) + (sliderPos * buttonTravelDistance)); + sliderButton.y = ((int)(bounds.y + style[SLIDER_BORDER_WIDTH] + style[SLIDER_BUTTON_BORDER_WIDTH])); + + if (CheckCollisionPointRec(mousePoint, bounds)) + { + sliderState = SLIDER_HOVER; + + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) sliderState = SLIDER_ACTIVE; + + if ((sliderState == SLIDER_ACTIVE) && (IsMouseButtonDown(MOUSE_LEFT_BUTTON))) + { + sliderButton.x = mousePoint.x - sliderButton.width / 2; + + if (sliderButton.x <= sliderButtonMinPos) sliderButton.x = sliderButtonMinPos; + else if (sliderButton.x >= sliderButtonMaxPos) sliderButton.x = sliderButtonMaxPos; + + sliderPos = (sliderButton.x - sliderButtonMinPos) / buttonTravelDistance; + } + } + else sliderState = SLIDER_DEFAULT; + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + DrawRectangleRec(bounds, GetColor(style[SLIDER_BORDER_COLOR])); + DrawRectangle((int)(bounds.x + style[SLIDER_BORDER_WIDTH]), (int)(bounds.y + style[SLIDER_BORDER_WIDTH]), (int)(bounds.width - (2*style[SLIDER_BORDER_WIDTH])), (int)(bounds.height - (2*style[SLIDER_BORDER_WIDTH])), GetColor(style[SLIDER_INSIDE_COLOR])); + + switch (sliderState) + { + case SLIDER_DEFAULT: DrawRectangleRec(sliderButton, GetColor(style[SLIDER_DEFAULT_COLOR])); break; + case SLIDER_HOVER: DrawRectangleRec(sliderButton, GetColor(style[SLIDER_HOVER_COLOR])); break; + case SLIDER_ACTIVE: DrawRectangleRec(sliderButton, GetColor(style[SLIDER_ACTIVE_COLOR])); break; + default: break; + } + //-------------------------------------------------------------------- + + return minValue + (maxValue - minValue)*sliderPos; +} + +// Slider Bar element, returns selected value +RAYGUIDEF float GuiSliderBar(Rectangle bounds, float value, float minValue, float maxValue) +{ + SliderState sliderState = SLIDER_DEFAULT; + Vector2 mousePoint = GetMousePosition(); + float fixedValue; + float fixedMinValue; + + fixedValue = value - minValue; + maxValue = maxValue - minValue; + fixedMinValue = 0; + + // Update control + //-------------------------------------------------------------------- + if (fixedValue <= fixedMinValue) fixedValue = fixedMinValue; + else if (fixedValue >= maxValue) fixedValue = maxValue; + + Rectangle sliderBar; + + sliderBar.x = bounds.x + style[SLIDER_BORDER_WIDTH]; + sliderBar.y = bounds.y + style[SLIDER_BORDER_WIDTH]; + sliderBar.width = ((fixedValue*((float)bounds.width - 2*style[SLIDER_BORDER_WIDTH]))/(maxValue - fixedMinValue)); + sliderBar.height = bounds.height - 2*style[SLIDER_BORDER_WIDTH]; + + if (CheckCollisionPointRec(mousePoint, bounds)) + { + sliderState = SLIDER_HOVER; + + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + sliderState = SLIDER_ACTIVE; + + sliderBar.width = (mousePoint.x - bounds.x - style[SLIDER_BORDER_WIDTH]); + + if (mousePoint.x <= (bounds.x + style[SLIDER_BORDER_WIDTH])) sliderBar.width = 0; + else if (mousePoint.x >= (bounds.x + bounds.width - style[SLIDER_BORDER_WIDTH])) sliderBar.width = bounds.width - 2*style[SLIDER_BORDER_WIDTH]; + } + } + else sliderState = SLIDER_DEFAULT; + + fixedValue = ((float)sliderBar.width*(maxValue - fixedMinValue))/((float)bounds.width - 2*style[SLIDER_BORDER_WIDTH]); + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + DrawRectangleRec(bounds, GetColor(style[SLIDERBAR_BORDER_COLOR])); + DrawRectangle((int)(bounds.x + style[SLIDER_BORDER_WIDTH]), (int)(bounds.y + style[SLIDER_BORDER_WIDTH]) , (int)(bounds.width - (2*style[SLIDER_BORDER_WIDTH])), (int)(bounds.height - (2*style[SLIDER_BORDER_WIDTH])), GetColor(style[SLIDERBAR_INSIDE_COLOR])); + + switch (sliderState) + { + case SLIDER_DEFAULT: DrawRectangleRec(sliderBar, GetColor(style[SLIDERBAR_DEFAULT_COLOR])); break; + case SLIDER_HOVER: DrawRectangleRec(sliderBar, GetColor(style[SLIDERBAR_HOVER_COLOR])); break; + case SLIDER_ACTIVE: DrawRectangleRec(sliderBar, GetColor(style[SLIDERBAR_ACTIVE_COLOR])); break; + default: break; + } + + if (minValue < 0 && maxValue > 0) DrawRectangle((bounds.x + style[SLIDER_BORDER_WIDTH]) - (minValue * ((bounds.width - (style[SLIDER_BORDER_WIDTH]*2))/maxValue)), sliderBar.y, 1, sliderBar.height, GetColor(style[SLIDERBAR_ZERO_LINE_COLOR])); + //-------------------------------------------------------------------- + + return fixedValue + minValue; +} + +// Progress Bar element, shows current progress value +RAYGUIDEF void GuiProgressBar(Rectangle bounds, float value) +{ + if (value > 1.0f) value = 1.0f; + else if (value < 0.0f) value = 0.0f; + + Rectangle progressBar = { bounds.x + style[PROGRESSBAR_BORDER_WIDTH], bounds.y + style[PROGRESSBAR_BORDER_WIDTH], bounds.width - (style[PROGRESSBAR_BORDER_WIDTH] * 2), bounds.height - (style[PROGRESSBAR_BORDER_WIDTH] * 2)}; + Rectangle progressValue = { bounds.x + style[PROGRESSBAR_BORDER_WIDTH], bounds.y + style[PROGRESSBAR_BORDER_WIDTH], value * (bounds.width - (style[PROGRESSBAR_BORDER_WIDTH] * 2)), bounds.height - (style[PROGRESSBAR_BORDER_WIDTH] * 2)}; + + // Draw control + //-------------------------------------------------------------------- + DrawRectangleRec(bounds, GetColor(style[PROGRESSBAR_BORDER_COLOR])); + DrawRectangleRec(progressBar, GetColor(style[PROGRESSBAR_INSIDE_COLOR])); + DrawRectangleRec(progressValue, GetColor(style[PROGRESSBAR_PROGRESS_COLOR])); + //-------------------------------------------------------------------- +} + +// Spinner element, returns selected value +// NOTE: Requires static variables: framesCounter, valueSpeed - ERROR! +RAYGUIDEF int GuiSpinner(Rectangle bounds, int value, int minValue, int maxValue) +{ + SpinnerState spinnerState = SPINNER_DEFAULT; + Rectangle labelBoxBound = { bounds.x + bounds.width/4 + 1, bounds.y, bounds.width/2, bounds.height }; + Rectangle leftButtonBound = { bounds.x, bounds.y, bounds.width/4, bounds.height }; + Rectangle rightButtonBound = { bounds.x + bounds.width - bounds.width/4 + 1, bounds.y, bounds.width/4, bounds.height }; + Vector2 mousePoint = GetMousePosition(); + + int textWidth = MeasureText(FormatText("%i", value), style[GLOBAL_TEXT_FONTSIZE]); + //int textHeight = style[GLOBAL_TEXT_FONTSIZE]; // Unused variable + + int buttonSide = 0; + + static int framesCounter = 0; + static bool valueSpeed = false;; + + //if (comboBoxButton.width < textWidth) comboBoxButton.width = textWidth + style[TOGGLE_TEXT_PADDING]; + //if (comboBoxButton.height < textHeight) comboBoxButton.height = textHeight + style[TOGGLE_TEXT_PADDING]/2; + + // Update control + //-------------------------------------------------------------------- + if (CheckCollisionPointRec(mousePoint, leftButtonBound) || CheckCollisionPointRec(mousePoint, rightButtonBound) || CheckCollisionPointRec(mousePoint, labelBoxBound)) + { + if (IsKeyDown(KEY_LEFT)) + { + spinnerState = SPINNER_PRESSED; + buttonSide = 1; + + if (value > minValue) value -= 1; + } + else if (IsKeyDown(KEY_RIGHT)) + { + spinnerState = SPINNER_PRESSED; + buttonSide = 2; + + if (value < maxValue) value += 1; + } + } + + if (CheckCollisionPointRec(mousePoint, leftButtonBound)) + { + buttonSide = 1; + spinnerState = SPINNER_HOVER; + + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + if (!valueSpeed) + { + if (value > minValue) value--; + valueSpeed = true; + } + else framesCounter++; + + spinnerState = SPINNER_PRESSED; + + if (value > minValue) + { + if (framesCounter >= 30) value -= 1; + } + } + } + else if (CheckCollisionPointRec(mousePoint, rightButtonBound)) + { + buttonSide = 2; + spinnerState = SPINNER_HOVER; + + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + if (!valueSpeed) + { + if (value < maxValue) value++; + valueSpeed = true; + } + else framesCounter++; + + spinnerState = SPINNER_PRESSED; + + if (value < maxValue) + { + if (framesCounter >= 30) value += 1; + } + } + } + else if (!CheckCollisionPointRec(mousePoint, labelBoxBound)) buttonSide = 0; + + if (IsMouseButtonUp(MOUSE_LEFT_BUTTON)) + { + valueSpeed = false; + framesCounter = 0; + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + switch (spinnerState) + { + case SPINNER_DEFAULT: + { + DrawRectangleRec(leftButtonBound, GetColor(style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR])); + DrawRectangle(leftButtonBound.x + 2, leftButtonBound.y + 2, leftButtonBound.width - 4, leftButtonBound.height - 4, GetColor(style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR])); + + DrawRectangleRec(rightButtonBound, GetColor(style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR])); + DrawRectangle(rightButtonBound.x + 2, rightButtonBound.y + 2, rightButtonBound.width - 4, rightButtonBound.height - 4, GetColor(style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR])); + + DrawText(FormatText("-"), leftButtonBound.x + (leftButtonBound.width/2 - (MeasureText(FormatText("+"), style[GLOBAL_TEXT_FONTSIZE]))/2), leftButtonBound.y + (leftButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_SYMBOL_COLOR])); + DrawText(FormatText("+"), rightButtonBound.x + (rightButtonBound.width/2 - (MeasureText(FormatText("-"), style[GLOBAL_TEXT_FONTSIZE]))/2), rightButtonBound.y + (rightButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_SYMBOL_COLOR])); + + DrawRectangleRec(labelBoxBound, GetColor(style[SPINNER_LABEL_BORDER_COLOR])); + DrawRectangle(labelBoxBound.x + 1, labelBoxBound.y + 1, labelBoxBound.width - 2, labelBoxBound.height - 2, GetColor(style[SPINNER_LABEL_INSIDE_COLOR])); + + DrawText(FormatText("%i", value), labelBoxBound.x + (labelBoxBound.width/2 - textWidth/2), labelBoxBound.y + (labelBoxBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_TEXT_COLOR])); + } break; + case SPINNER_HOVER: + { + if (buttonSide == 1) + { + DrawRectangleRec(leftButtonBound, GetColor(style[SPINNER_HOVER_BUTTON_BORDER_COLOR])); + DrawRectangle(leftButtonBound.x + 2, leftButtonBound.y + 2, leftButtonBound.width - 4, leftButtonBound.height - 4, GetColor(style[SPINNER_HOVER_BUTTON_INSIDE_COLOR])); + + DrawRectangleRec(rightButtonBound, GetColor(style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR])); + DrawRectangle(rightButtonBound.x + 2, rightButtonBound.y + 2, rightButtonBound.width - 4, rightButtonBound.height - 4, GetColor(style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR])); + + DrawText(FormatText("-"), leftButtonBound.x + (leftButtonBound.width/2 - (MeasureText(FormatText("+"), style[GLOBAL_TEXT_FONTSIZE]))/2), leftButtonBound.y + (leftButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_HOVER_SYMBOL_COLOR])); + DrawText(FormatText("+"), rightButtonBound.x + (rightButtonBound.width/2 - (MeasureText(FormatText("-"), style[GLOBAL_TEXT_FONTSIZE]))/2), rightButtonBound.y + (rightButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_SYMBOL_COLOR])); + } + else if (buttonSide == 2) + { + DrawRectangleRec(leftButtonBound, GetColor(style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR])); + DrawRectangle(leftButtonBound.x + 2, leftButtonBound.y + 2, leftButtonBound.width - 4, leftButtonBound.height - 4, GetColor(style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR])); + + DrawRectangleRec(rightButtonBound, GetColor(style[SPINNER_HOVER_BUTTON_BORDER_COLOR])); + DrawRectangle(rightButtonBound.x + 2, rightButtonBound.y + 2, rightButtonBound.width - 4, rightButtonBound.height - 4, GetColor(style[SPINNER_HOVER_BUTTON_INSIDE_COLOR])); + + DrawText(FormatText("-"), leftButtonBound.x + (leftButtonBound.width/2 - (MeasureText(FormatText("+"), style[GLOBAL_TEXT_FONTSIZE]))/2), leftButtonBound.y + (leftButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_SYMBOL_COLOR])); + DrawText(FormatText("+"), rightButtonBound.x + (rightButtonBound.width/2 - (MeasureText(FormatText("-"), style[GLOBAL_TEXT_FONTSIZE]))/2), rightButtonBound.y + (rightButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_HOVER_SYMBOL_COLOR])); + } + + DrawRectangleRec(labelBoxBound, GetColor(style[SPINNER_LABEL_BORDER_COLOR])); + DrawRectangle(labelBoxBound.x + 1, labelBoxBound.y + 1, labelBoxBound.width - 2, labelBoxBound.height - 2, GetColor(style[SPINNER_LABEL_INSIDE_COLOR])); + + DrawText(FormatText("%i", value), labelBoxBound.x + (labelBoxBound.width/2 - textWidth/2), labelBoxBound.y + (labelBoxBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_HOVER_TEXT_COLOR])); + } break; + case SPINNER_PRESSED: + { + if (buttonSide == 1) + { + DrawRectangleRec(leftButtonBound, GetColor(style[SPINNER_PRESSED_BUTTON_BORDER_COLOR])); + DrawRectangle(leftButtonBound.x + 2, leftButtonBound.y + 2, leftButtonBound.width - 4, leftButtonBound.height - 4, GetColor(style[SPINNER_PRESSED_BUTTON_INSIDE_COLOR])); + + DrawRectangleRec(rightButtonBound, GetColor(style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR])); + DrawRectangle(rightButtonBound.x + 2, rightButtonBound.y + 2, rightButtonBound.width - 4, rightButtonBound.height - 4, GetColor(style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR])); + + DrawText(FormatText("-"), leftButtonBound.x + (leftButtonBound.width/2 - (MeasureText(FormatText("+"), style[GLOBAL_TEXT_FONTSIZE]))/2), leftButtonBound.y + (leftButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_PRESSED_SYMBOL_COLOR])); + DrawText(FormatText("+"), rightButtonBound.x + (rightButtonBound.width/2 - (MeasureText(FormatText("-"), style[GLOBAL_TEXT_FONTSIZE]))/2), rightButtonBound.y + (rightButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_SYMBOL_COLOR])); + } + else if (buttonSide == 2) + { + DrawRectangleRec(leftButtonBound, GetColor(style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR])); + DrawRectangle(leftButtonBound.x + 2, leftButtonBound.y + 2, leftButtonBound.width - 4, leftButtonBound.height - 4, GetColor(style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR])); + + DrawRectangleRec(rightButtonBound, GetColor(style[SPINNER_PRESSED_BUTTON_BORDER_COLOR])); + DrawRectangle(rightButtonBound.x + 2, rightButtonBound.y + 2, rightButtonBound.width - 4, rightButtonBound.height - 4, GetColor(style[SPINNER_PRESSED_BUTTON_INSIDE_COLOR])); + + DrawText(FormatText("-"), leftButtonBound.x + (leftButtonBound.width/2 - (MeasureText(FormatText("+"), style[GLOBAL_TEXT_FONTSIZE]))/2), leftButtonBound.y + (leftButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_DEFAULT_SYMBOL_COLOR])); + DrawText(FormatText("+"), rightButtonBound.x + (rightButtonBound.width/2 - (MeasureText(FormatText("-"), style[GLOBAL_TEXT_FONTSIZE]))/2), rightButtonBound.y + (rightButtonBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_PRESSED_SYMBOL_COLOR])); + } + + DrawRectangleRec(labelBoxBound, GetColor(style[SPINNER_LABEL_BORDER_COLOR])); + DrawRectangle(labelBoxBound.x + 1, labelBoxBound.y + 1, labelBoxBound.width - 2, labelBoxBound.height - 2, GetColor(style[SPINNER_LABEL_INSIDE_COLOR])); + + DrawText(FormatText("%i", value), labelBoxBound.x + (labelBoxBound.width/2 - textWidth/2), labelBoxBound.y + (labelBoxBound.height/2 - (style[GLOBAL_TEXT_FONTSIZE]/2)), style[GLOBAL_TEXT_FONTSIZE], GetColor(style[SPINNER_PRESSED_TEXT_COLOR])); + } break; + default: break; + } + + return value; +} + +// Text Box element, returns input text +// NOTE: Requires static variables: framesCounter - ERROR! +RAYGUIDEF char *GuiTextBox(Rectangle bounds, char *text) +{ + #define MAX_CHARS_LENGTH 20 + #define KEY_BACKSPACE_TEXT 259 // GLFW BACKSPACE: 3 + 256 + + int initPos = bounds.x + 4; + int letter = -1; + static int framesCounter = 0; + Vector2 mousePoint = GetMousePosition(); + + // Update control + //-------------------------------------------------------------------- + framesCounter++; + + letter = GetKeyPressed(); + + if (CheckCollisionPointRec(mousePoint, bounds)) + { + if (letter != -1) + { + if (letter == KEY_BACKSPACE_TEXT) + { + for (int i = 0; i < MAX_CHARS_LENGTH; i++) + { + if ((text[i] == '\0') && (i > 0)) + { + text[i - 1] = '\0'; + break; + } + } + + text[MAX_CHARS_LENGTH - 1] = '\0'; + } + else + { + if ((letter >= 32) && (letter < 127)) + { + for (int i = 0; i < MAX_CHARS_LENGTH; i++) + { + if (text[i] == '\0') + { + text[i] = (char)letter; + break; + } + } + } + } + } + } + //-------------------------------------------------------------------- + + // Draw control + //-------------------------------------------------------------------- + if (CheckCollisionPointRec(mousePoint, bounds)) DrawRectangleRec(bounds, GetColor(style[TOGGLE_ACTIVE_BORDER_COLOR])); + else DrawRectangleRec(bounds, GetColor(style[TEXTBOX_BORDER_COLOR])); + + DrawRectangle(bounds.x + style[TEXTBOX_BORDER_WIDTH], bounds.y + style[TEXTBOX_BORDER_WIDTH], bounds.width - (style[TEXTBOX_BORDER_WIDTH] * 2), bounds.height - (style[TEXTBOX_BORDER_WIDTH] * 2), GetColor(style[TEXTBOX_INSIDE_COLOR])); + + for (int i = 0; i < MAX_CHARS_LENGTH; i++) + { + if (text[i] == '\0') break; + + DrawText(FormatText("%c", text[i]), initPos, bounds.y + style[TEXTBOX_TEXT_FONTSIZE], style[TEXTBOX_TEXT_FONTSIZE], GetColor(style[TEXTBOX_TEXT_COLOR])); + + initPos += (MeasureText(FormatText("%c", text[i]), style[GLOBAL_TEXT_FONTSIZE]) + 2); + //initPos += ((GetDefaultFont().charRecs[(int)text[i] - 32].width + 2)); + } + + if ((framesCounter/20)%2 && CheckCollisionPointRec(mousePoint, bounds)) DrawRectangle(initPos + 2, bounds.y + 5, 1, 20, GetColor(style[TEXTBOX_LINE_COLOR])); + //-------------------------------------------------------------------- + + return text; +} + +// Save current GUI style into a text file +RAYGUIDEF void SaveGuiStyle(const char *fileName) +{ + FILE *styleFile = fopen(fileName, "wt"); + + for (int i = 0; i < NUM_PROPERTIES; i++) fprintf(styleFile, "%-40s0x%x\n", guiPropertyName[i], GetStyleProperty(i)); + + fclose(styleFile); +} + +// Load GUI style from a text file +RAYGUIDEF void LoadGuiStyle(const char *fileName) +{ + #define MAX_STYLE_PROPERTIES 128 + + typedef struct { + char id[64]; + int value; + } StyleProperty; + + StyleProperty *styleProp = (StyleProperty *)malloc(MAX_STYLE_PROPERTIES*sizeof(StyleProperty));; + int counter = 0; + + FILE *styleFile = fopen(fileName, "rt"); + + while (!feof(styleFile)) + { + fscanf(styleFile, "%s %i\n", styleProp[counter].id, &styleProp[counter].value); + counter++; + } + + fclose(styleFile); + + for (int i = 0; i < counter; i++) + { + for (int j = 0; j < NUM_PROPERTIES; j++) + { + if (strcmp(styleProp[i].id, guiPropertyName[j]) == 0) + { + // Assign correct property to style + style[j] = styleProp[i].value; + } + } + } + + free(styleProp); +} + +// Set one style property value +RAYGUIDEF void SetStyleProperty(int guiProperty, int value) +{ + #define NUM_COLOR_SAMPLES 10 + + if (guiProperty == GLOBAL_BASE_COLOR) + { + Color baseColor = GetColor(value); + Color fadeColor[NUM_COLOR_SAMPLES]; + + for (int i = 0; i < NUM_COLOR_SAMPLES; i++) fadeColor[i] = ColorMultiply(baseColor, 1.0f - (float)i/(NUM_COLOR_SAMPLES - 1)); + + style[GLOBAL_BASE_COLOR] = value; + style[BACKGROUND_COLOR] = GetHexValue(fadeColor[3]); + style[BUTTON_DEFAULT_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[BUTTON_HOVER_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[BUTTON_PRESSED_INSIDE_COLOR] = GetHexValue(fadeColor[5]); + style[TOGGLE_DEFAULT_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[TOGGLE_HOVER_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[TOGGLE_PRESSED_INSIDE_COLOR] = GetHexValue(fadeColor[5]); + style[TOGGLE_ACTIVE_INSIDE_COLOR] = GetHexValue(fadeColor[8]); + style[SLIDER_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[SLIDER_DEFAULT_COLOR] = GetHexValue(fadeColor[6]); + style[SLIDER_HOVER_COLOR] = GetHexValue(fadeColor[7]); + style[SLIDER_ACTIVE_COLOR] = GetHexValue(fadeColor[9]); + style[SLIDERBAR_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[SLIDERBAR_DEFAULT_COLOR] = GetHexValue(fadeColor[6]); + style[SLIDERBAR_HOVER_COLOR] = GetHexValue(fadeColor[7]); + style[SLIDERBAR_ACTIVE_COLOR] = GetHexValue(fadeColor[9]); + style[SLIDERBAR_ZERO_LINE_COLOR] = GetHexValue(fadeColor[8]); + style[PROGRESSBAR_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[PROGRESSBAR_PROGRESS_COLOR] = GetHexValue(fadeColor[6]); + style[SPINNER_LABEL_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[SPINNER_DEFAULT_BUTTON_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[SPINNER_HOVER_BUTTON_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[SPINNER_PRESSED_BUTTON_INSIDE_COLOR] = GetHexValue(fadeColor[5]); + style[COMBOBOX_DEFAULT_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[COMBOBOX_HOVER_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[COMBOBOX_PRESSED_INSIDE_COLOR] = GetHexValue(fadeColor[8]); + style[COMBOBOX_PRESSED_LIST_INSIDE_COLOR] = GetHexValue(fadeColor[8]); + style[CHECKBOX_DEFAULT_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + style[CHECKBOX_CLICK_INSIDE_COLOR] = GetHexValue(fadeColor[6]); + style[CHECKBOX_STATUS_ACTIVE_COLOR] = GetHexValue(fadeColor[8]); + style[TEXTBOX_INSIDE_COLOR] = GetHexValue(fadeColor[4]); + } + else if (guiProperty == GLOBAL_BORDER_COLOR) + { + Color baseColor = GetColor(value); + Color fadeColor[NUM_COLOR_SAMPLES]; + + for (int i = 0; i < NUM_COLOR_SAMPLES; i++) fadeColor[i] = ColorMultiply(baseColor, 1.0f - (float)i/(NUM_COLOR_SAMPLES - 1)); + + style[GLOBAL_BORDER_COLOR] = value; + style[BUTTON_DEFAULT_BORDER_COLOR] = GetHexValue(fadeColor[7]); + style[BUTTON_HOVER_BORDER_COLOR] = GetHexValue(fadeColor[8]); + style[BUTTON_PRESSED_BORDER_COLOR] = GetHexValue(fadeColor[9]); + style[TOGGLE_DEFAULT_BORDER_COLOR] = GetHexValue(fadeColor[7]); + style[TOGGLE_HOVER_BORDER_COLOR] = GetHexValue(fadeColor[8]); + style[TOGGLE_PRESSED_BORDER_COLOR] = GetHexValue(fadeColor[9]); + style[TOGGLE_ACTIVE_BORDER_COLOR] = GetHexValue(fadeColor[9]); + style[SLIDER_BORDER_COLOR] = GetHexValue(fadeColor[7]); + style[SLIDERBAR_BORDER_COLOR] = GetHexValue(fadeColor[7]); + style[PROGRESSBAR_BORDER_COLOR] = GetHexValue(fadeColor[7]); + style[SPINNER_LABEL_BORDER_COLOR] = GetHexValue(fadeColor[7]); + style[SPINNER_DEFAULT_BUTTON_BORDER_COLOR] = GetHexValue(fadeColor[7]); + style[SPINNER_HOVER_BUTTON_BORDER_COLOR] = GetHexValue(fadeColor[8]); + style[SPINNER_PRESSED_BUTTON_BORDER_COLOR] = GetHexValue(fadeColor[9]); + style[COMBOBOX_DEFAULT_BORDER_COLOR] = GetHexValue(fadeColor[7]); + style[COMBOBOX_HOVER_BORDER_COLOR] = GetHexValue(fadeColor[8]); + style[COMBOBOX_PRESSED_BORDER_COLOR] = GetHexValue(fadeColor[9]); + style[COMBOBOX_PRESSED_LIST_BORDER_COLOR] = GetHexValue(fadeColor[9]); + style[CHECKBOX_DEFAULT_BORDER_COLOR] = GetHexValue(fadeColor[7]); + style[CHECKBOX_HOVER_BORDER_COLOR] = GetHexValue(fadeColor[8]); + style[CHECKBOX_CLICK_BORDER_COLOR] = GetHexValue(fadeColor[9]); + style[TEXTBOX_BORDER_COLOR] = GetHexValue(fadeColor[7]); + } + else if (guiProperty == GLOBAL_TEXT_COLOR) + { + Color baseColor = GetColor(value); + Color fadeColor[NUM_COLOR_SAMPLES]; + + for (int i = 0; i < NUM_COLOR_SAMPLES; i++) fadeColor[i] = ColorMultiply(baseColor, 1.0f - (float)i/(NUM_COLOR_SAMPLES - 1)); + + style[GLOBAL_TEXT_COLOR] = value; + style[LABEL_TEXT_COLOR] = GetHexValue(fadeColor[9]); + style[BUTTON_DEFAULT_TEXT_COLOR] = GetHexValue(fadeColor[9]); + style[BUTTON_HOVER_TEXT_COLOR] = GetHexValue(fadeColor[8]); + style[BUTTON_PRESSED_TEXT_COLOR] = GetHexValue(fadeColor[5]); + style[TOGGLE_DEFAULT_TEXT_COLOR] = GetHexValue(fadeColor[9]); + style[TOGGLE_HOVER_TEXT_COLOR] = GetHexValue(fadeColor[8]); + style[TOGGLE_PRESSED_TEXT_COLOR] = GetHexValue(fadeColor[5]); + style[TOGGLE_ACTIVE_TEXT_COLOR] = GetHexValue(fadeColor[5]); + style[SPINNER_DEFAULT_SYMBOL_COLOR] = GetHexValue(fadeColor[9]); + style[SPINNER_DEFAULT_TEXT_COLOR] = GetHexValue(fadeColor[9]); + style[SPINNER_HOVER_SYMBOL_COLOR] = GetHexValue(fadeColor[8]); + style[SPINNER_HOVER_TEXT_COLOR] = GetHexValue(fadeColor[8]); + style[SPINNER_PRESSED_SYMBOL_COLOR] = GetHexValue(fadeColor[5]); + style[SPINNER_PRESSED_TEXT_COLOR] = GetHexValue(fadeColor[5]); + style[COMBOBOX_DEFAULT_TEXT_COLOR] = GetHexValue(fadeColor[9]); + style[COMBOBOX_DEFAULT_LIST_TEXT_COLOR] = GetHexValue(fadeColor[9]); + style[COMBOBOX_HOVER_TEXT_COLOR] = GetHexValue(fadeColor[8]); + style[COMBOBOX_HOVER_LIST_TEXT_COLOR] = GetHexValue(fadeColor[8]); + style[COMBOBOX_PRESSED_TEXT_COLOR] = GetHexValue(fadeColor[4]); + style[COMBOBOX_PRESSED_LIST_TEXT_COLOR] = GetHexValue(fadeColor[4]); + style[TEXTBOX_TEXT_COLOR] = GetHexValue(fadeColor[9]); + style[TEXTBOX_LINE_COLOR] = GetHexValue(fadeColor[6]); + } + else style[guiProperty] = value; + +} + +// Get one style property value +RAYGUIDEF int GetStyleProperty(int guiProperty) { return style[guiProperty]; } + +//---------------------------------------------------------------------------------- +// Module specific Functions Definition +//---------------------------------------------------------------------------------- + +static Color ColorMultiply(Color baseColor, float value) +{ + Color multColor = baseColor; + + if (value > 1.0f) value = 1.0f; + else if (value < 0.0f) value = 0.0f; + + multColor.r += (255 - multColor.r)*value; + multColor.g += (255 - multColor.g)*value; + multColor.b += (255 - multColor.b)*value; + + return multColor; +} + +#if defined (RAYGUI_STANDALONE) +// Returns a Color struct from hexadecimal value +static Color GetColor(int hexValue) +{ + Color color; + + color.r = (unsigned char)(hexValue >> 24) & 0xFF; + color.g = (unsigned char)(hexValue >> 16) & 0xFF; + color.b = (unsigned char)(hexValue >> 8) & 0xFF; + color.a = (unsigned char)hexValue & 0xFF; + + return color; +} + +// Returns hexadecimal value for a Color +static int GetHexValue(Color color) +{ + return (((int)color.r << 24) | ((int)color.g << 16) | ((int)color.b << 8) | (int)color.a); +} + +// Check if point is inside rectangle +static bool CheckCollisionPointRec(Vector2 point, Rectangle rec) +{ + bool collision = false; + + if ((point.x >= rec.x) && (point.x <= (rec.x + rec.width)) && (point.y >= rec.y) && (point.y <= (rec.y + rec.height))) collision = true; + + return collision; +} + +// Formatting of text with variables to 'embed' +static const char *FormatText(const char *text, ...) +{ + #define MAX_FORMATTEXT_LENGTH 64 + + static char buffer[MAX_FORMATTEXT_LENGTH]; + + va_list args; + va_start(args, text); + vsprintf(buffer, text, args); + va_end(args); + + return buffer; +} +#endif + +#endif // RAYGUI_IMPLEMENTATION + From 5631f822bd9195d494915d3b2bb80caf47a65068 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Tue, 7 Jun 2016 20:46:03 +0200 Subject: [PATCH 5/9] Reorganized device init/close --- .../oculus_glfw_sample/oculus_glfw_sample.c | 69 ++++++++++--------- 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/examples/oculus_glfw_sample/oculus_glfw_sample.c b/examples/oculus_glfw_sample/oculus_glfw_sample.c index 54302de85..e0740f661 100644 --- a/examples/oculus_glfw_sample/oculus_glfw_sample.c +++ b/examples/oculus_glfw_sample/oculus_glfw_sample.c @@ -114,32 +114,10 @@ int main(void) { // Initialization //-------------------------------------------------------------------------------------- - int screenWidth = 1080; - int screenHeight = 600; + int screenWidth = 1080; // Mirror screen width (set to hmdDesc.Resolution.w/2) + int screenHeight = 600; // Mirror screen height (set to hmdDesc.Resolution.h/2) -#if defined(PLATFORM_OCULUS) - ovrResult result = ovr_Initialize(NULL); - if (OVR_FAILURE(result)) TraceLog(LOG_ERROR, "OVR: Could not initialize Oculus device"); - - result = ovr_Create(&session, &luid); - if (OVR_FAILURE(result)) - { - TraceLog(LOG_WARNING, "OVR: Could not create Oculus session"); - ovr_Shutdown(); - } - - hmdDesc = ovr_GetHmdDesc(session); - - TraceLog(LOG_INFO, "OVR: Product Name: %s", hmdDesc.ProductName); - TraceLog(LOG_INFO, "OVR: Manufacturer: %s", hmdDesc.Manufacturer); - TraceLog(LOG_INFO, "OVR: Product ID: %i", hmdDesc.ProductId); - TraceLog(LOG_INFO, "OVR: Product Type: %i", hmdDesc.Type); - TraceLog(LOG_INFO, "OVR: Serian Number: %s", hmdDesc.SerialNumber); - TraceLog(LOG_INFO, "OVR: Resolution: %ix%i", hmdDesc.Resolution.w, hmdDesc.Resolution.h); - - screenWidth = hmdDesc.Resolution.w/2; - screenHeight = hmdDesc.Resolution.h/2; -#endif + // NOTE: Mirror screen size can be set to any desired resolution! // GLFW3 Initialization + OpenGL 3.3 Context + Extensions //-------------------------------------------------------- @@ -182,10 +160,32 @@ int main(void) //-------------------------------------------------------- #if defined(PLATFORM_OCULUS) + ovrResult result = ovr_Initialize(NULL); + if (OVR_FAILURE(result)) TraceLog(LOG_ERROR, "OVR: Could not initialize Oculus device"); + + result = ovr_Create(&session, &luid); + if (OVR_FAILURE(result)) + { + TraceLog(LOG_WARNING, "OVR: Could not create Oculus session"); + ovr_Shutdown(); + } + + hmdDesc = ovr_GetHmdDesc(session); + + TraceLog(LOG_INFO, "OVR: Product Name: %s", hmdDesc.ProductName); + TraceLog(LOG_INFO, "OVR: Manufacturer: %s", hmdDesc.Manufacturer); + TraceLog(LOG_INFO, "OVR: Product ID: %i", hmdDesc.ProductId); + TraceLog(LOG_INFO, "OVR: Product Type: %i", hmdDesc.Type); + TraceLog(LOG_INFO, "OVR: Serian Number: %s", hmdDesc.SerialNumber); + TraceLog(LOG_INFO, "OVR: Resolution: %ix%i", hmdDesc.Resolution.w, hmdDesc.Resolution.h); + + //screenWidth = hmdDesc.Resolution.w/2; + //screenHeight = hmdDesc.Resolution.h/2; + // Initialize Oculus Buffers OculusLayer layer = InitOculusLayer(session); OculusBuffer buffer = LoadOculusBuffer(session, layer.width, layer.height); - OculusMirror mirror = LoadOculusMirror(session, hmdDesc.Resolution.w/2, hmdDesc.Resolution.h/2); + OculusMirror mirror = LoadOculusMirror(session, screenWidth, screenHeight); layer.eyeLayer.ColorTexture[0] = buffer.textureChain; //SetOculusLayerTexture(eyeLayer, buffer.textureChain); // Recenter OVR tracking origin @@ -311,17 +311,15 @@ int main(void) #if defined(PLATFORM_OCULUS) UnloadOculusMirror(session, mirror); // Unload Oculus mirror buffer UnloadOculusBuffer(session, buffer); // Unload Oculus texture buffers + + ovr_Destroy(session); // Must be called after glfwTerminate() --> no + ovr_Shutdown(); #endif rlglClose(); // Unload rlgl internal buffers and default shader/texture glfwDestroyWindow(window); glfwTerminate(); - -#if defined(PLATFORM_OCULUS) - ovr_Destroy(session); // Must be called after glfwTerminate() - ovr_Shutdown(); -#endif //-------------------------------------------------------------------------------------- return 0; @@ -682,10 +680,13 @@ static void SetOculusBuffer(ovrSession session, OculusBuffer buffer) //glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, buffer.depthId, 0); // Already binded //glViewport(0, 0, buffer.width, buffer.height); // Useful if rendering to separate framebuffers (every eye) - //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + //glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Same as rlClearScreenBuffers() - // Required if OculusBuffer format is OVR_FORMAT_R8G8B8A8_UNORM_SRGB - glEnable(GL_FRAMEBUFFER_SRGB); + // NOTE: If your application is configured to treat the texture as a linear format (e.g. GL_RGBA) + // and performs linear-to-gamma conversion in GLSL or does not care about gamma-correction, then: + // - Require OculusBuffer format to be OVR_FORMAT_R8G8B8A8_UNORM_SRGB + // - Do NOT enable GL_FRAMEBUFFER_SRGB + //glEnable(GL_FRAMEBUFFER_SRGB); } // Unset Oculus buffer From ee795150fa21f239533d4c9ffadf56366c89a8ca Mon Sep 17 00:00:00 2001 From: Ray Date: Tue, 7 Jun 2016 23:44:53 +0200 Subject: [PATCH 6/9] Updated some code --- .../oculus_glfw_sample/oculus_glfw_sample.c | 51 ++---- .../raylib_rlgl_standalone.c | 80 ++++----- examples/oculus_glfw_sample/raymath.h | 21 +-- examples/oculus_glfw_sample/rlgl.c | 92 ++++++---- examples/oculus_glfw_sample/rlgl.h | 5 + examples/oculus_glfw_sample/standard_shader.h | 166 ++++++++++++++++++ src/rlgl.c | 16 +- src/rlgl.h | 5 + 8 files changed, 290 insertions(+), 146 deletions(-) create mode 100644 examples/oculus_glfw_sample/standard_shader.h diff --git a/examples/oculus_glfw_sample/oculus_glfw_sample.c b/examples/oculus_glfw_sample/oculus_glfw_sample.c index e0740f661..73f19883d 100644 --- a/examples/oculus_glfw_sample/oculus_glfw_sample.c +++ b/examples/oculus_glfw_sample/oculus_glfw_sample.c @@ -28,7 +28,7 @@ #include // Windows/Context and inputs management #define RLGL_STANDALONE -#include "rlgl.h" +#include "rlgl.h" // rlgl library: OpenGL 1.1 immediate-mode style coding #define PLATFORM_OCULUS @@ -79,14 +79,11 @@ typedef struct OculusLayer { } OculusLayer; #endif -typedef enum { LOG_INFO = 0, LOG_ERROR, LOG_WARNING, LOG_DEBUG, LOG_OTHER } TraceLogType; - //---------------------------------------------------------------------------------- // Module specific Functions Declaration //---------------------------------------------------------------------------------- static void ErrorCallback(int error, const char* description); static void KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods); -static void TraceLog(int msgType, const char *text, ...); // Drawing functions (uses rlgl functionality) static void DrawGrid(int slices, float spacing); @@ -125,10 +122,10 @@ int main(void) if (!glfwInit()) { - TraceLog(LOG_WARNING, "GLFW3: Can not initialize GLFW"); - exit(EXIT_FAILURE); + TraceLog(WARNING, "GLFW3: Can not initialize GLFW"); + return 1; } - else TraceLog(LOG_INFO, "GLFW3: GLFW initialized successfully"); + else TraceLog(INFO, "GLFW3: GLFW initialized successfully"); glfwWindowHint(GLFW_DEPTH_BITS, 16); glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); @@ -141,9 +138,9 @@ int main(void) if (!window) { glfwTerminate(); - exit(EXIT_FAILURE); + return 2; } - else TraceLog(LOG_INFO, "GLFW3: Window created successfully"); + else TraceLog(INFO, "GLFW3: Window created successfully"); glfwSetKeyCallback(window, KeyCallback); @@ -153,10 +150,10 @@ int main(void) // Load OpenGL 3.3 extensions if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { - TraceLog(LOG_WARNING, "GLAD: Cannot load OpenGL extensions"); - exit(1); + TraceLog(WARNING, "GLAD: Cannot load OpenGL extensions"); + return 3; } - else TraceLog(LOG_INFO, "GLAD: OpenGL extensions loaded successfully"); + else TraceLog(INFO, "GLAD: OpenGL extensions loaded successfully"); //-------------------------------------------------------- #if defined(PLATFORM_OCULUS) @@ -198,7 +195,6 @@ int main(void) rlClearColor(245, 245, 245, 255); // Define clear color rlEnableDepthTest(); // Enable DEPTH_TEST for 3D - Vector2 size = { 200, 200 }; Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; Camera camera; @@ -257,8 +253,8 @@ int main(void) Matrix matProj = MatrixPerspective(camera.fovy, (double)screenWidth/(double)screenHeight, 0.01, 1000.0); MatrixTranspose(&matProj); - SetMatrixModelview(matView); // Replace internal modelview matrix by a custom one - SetMatrixProjection(matProj); // Replace internal projection matrix by a custom one + SetMatrixModelview(matView); // Replace internal modelview matrix by a custom one + SetMatrixProjection(matProj); // Replace internal projection matrix by a custom one #endif DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, RAYWHITE); @@ -332,7 +328,7 @@ int main(void) // GLFW3: Error callback static void ErrorCallback(int error, const char* description) { - TraceLog(LOG_ERROR, description); + TraceLog(ERROR, description); } // GLFW3: Keyboard callback @@ -344,29 +340,6 @@ static void KeyCallback(GLFWwindow* window, int key, int scancode, int action, i } } -// Output a trace log message -static void TraceLog(int msgType, const char *text, ...) -{ - va_list args; - va_start(args, text); - - switch(msgType) - { - case LOG_INFO: fprintf(stdout, "INFO: "); break; - case LOG_ERROR: fprintf(stdout, "ERROR: "); break; - case LOG_WARNING: fprintf(stdout, "WARNING: "); break; - case LOG_DEBUG: fprintf(stdout, "DEBUG: "); break; - default: break; - } - - vfprintf(stdout, text, args); - fprintf(stdout, "\n"); - - va_end(args); - - //if (msgType == LOG_ERROR) exit(1); -} - // Draw rectangle using rlgl OpenGL 1.1 style coding (translated to OpenGL 3.3 internally) static void DrawRectangleV(Vector2 position, Vector2 size, Color color) { diff --git a/examples/oculus_glfw_sample/raylib_rlgl_standalone.c b/examples/oculus_glfw_sample/raylib_rlgl_standalone.c index 288418a14..4728160a0 100644 --- a/examples/oculus_glfw_sample/raylib_rlgl_standalone.c +++ b/examples/oculus_glfw_sample/raylib_rlgl_standalone.c @@ -18,30 +18,23 @@ * ********************************************************************************************/ -#define GLAD_IMPLEMENTATION #include "glad.h" // Extensions loading library #include // Windows/Context and inputs management #define RLGL_STANDALONE -#include "rlgl.h" +#include "rlgl.h" // rlgl library: OpenGL 1.1 immediate-mode style coding -#include -#include -#include #define RED (Color){ 230, 41, 55, 255 } // Red #define MAROON (Color){ 190, 33, 55, 255 } // Maroon #define RAYWHITE (Color){ 245, 245, 245, 255 } // My own White (raylib logo) #define DARKGRAY (Color){ 80, 80, 80, 255 } // Dark Gray -//---------------------------------------------------------------------------------- -typedef enum { LOG_INFO = 0, LOG_ERROR, LOG_WARNING, LOG_DEBUG, LOG_OTHER } TraceLogType; //---------------------------------------------------------------------------------- // Module specific Functions Declaration //---------------------------------------------------------------------------------- static void ErrorCallback(int error, const char* description); static void KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods); -static void TraceLog(int msgType, const char *text, ...); // Drawing functions (uses rlgl functionality) static void DrawGrid(int slices, float spacing); @@ -66,10 +59,10 @@ int main(void) if (!glfwInit()) { - TraceLog(LOG_WARNING, "GLFW3: Can not initialize GLFW"); - exit(EXIT_FAILURE); + TraceLog(WARNING, "GLFW3: Can not initialize GLFW"); + return 1; } - else TraceLog(LOG_INFO, "GLFW3: GLFW initialized successfully"); + else TraceLog(INFO, "GLFW3: GLFW initialized successfully"); glfwWindowHint(GLFW_SAMPLES, 4); glfwWindowHint(GLFW_DEPTH_BITS, 16); @@ -83,9 +76,9 @@ int main(void) if (!window) { glfwTerminate(); - exit(EXIT_FAILURE); + return 2; } - else TraceLog(LOG_INFO, "GLFW3: Window created successfully"); + else TraceLog(INFO, "GLFW3: Window created successfully"); glfwSetKeyCallback(window, KeyCallback); @@ -95,10 +88,10 @@ int main(void) // Load OpenGL 3.3 extensions if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { - TraceLog(LOG_WARNING, "GLAD: Cannot load OpenGL extensions"); - exit(1); + TraceLog(WARNING, "GLAD: Cannot load OpenGL extensions"); + return 3; } - else TraceLog(LOG_INFO, "GLAD: OpenGL extensions loaded successfully"); + else TraceLog(INFO, "GLAD: OpenGL extensions loaded successfully"); //-------------------------------------------------------- // Initialize rlgl internal buffers and OpenGL state @@ -107,7 +100,6 @@ int main(void) rlClearColor(245, 245, 245, 255); // Define clear color rlEnableDepthTest(); // Enable DEPTH_TEST for 3D - Vector2 size = { 200, 200 }; Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; Camera camera; @@ -128,29 +120,45 @@ int main(void) // Draw //---------------------------------------------------------------------------------- rlClearScreenBuffers(); // Clear current framebuffer + // Calculate projection matrix (from perspective) and view matrix from camera look at Matrix matProj = MatrixPerspective(camera.fovy, (double)screenWidth/(double)screenHeight, 0.01, 1000.0); MatrixTranspose(&matProj); Matrix matView = MatrixLookAt(camera.position, camera.target, camera.up); - Matrix mvp = MatrixMultiply(matView, matProj); + + SetMatrixModelview(matView); // Replace internal modelview matrix by a custom one + SetMatrixProjection(matProj); // Replace internal projection matrix by a custom one DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, RAYWHITE); DrawGrid(10, 1.0f); // NOTE: Internal buffers drawing (3D data) - rlglDraw(mvp); + rlglDraw(); + // Draw '2D' elements in the scene (GUI) +#define RLGL_CREATE_MATRIX_MANUALLY +#if defined(RLGL_CREATE_MATRIX_MANUALLY) + matProj = MatrixOrtho(0.0, screenWidth, screenHeight, 0.0, 0.0, 1.0); MatrixTranspose(&matProj); matView = MatrixIdentity(); - mvp = MatrixMultiply(matView, matProj); - // TODO: 2D drawing on Oculus Rift: requires an ovrLayerQuad layer - DrawRectangleV((Vector2){ 10.0f, 10.0f }, (Vector2){ 300.0f, 20.0f }, DARKGRAY); + SetMatrixModelview(matView); // Replace internal modelview matrix by a custom one + SetMatrixProjection(matProj); // Replace internal projection matrix by a custom one + +#else // Let rlgl generate and multiply matrix internally + + rlMatrixMode(RL_PROJECTION); // Enable internal projection matrix + rlLoadIdentity(); // Reset internal projection matrix + rlOrtho(0.0, screenWidth, screenHeight, 0.0, 0.0, 1.0); // Recalculate internal projection matrix + rlMatrixMode(RL_MODELVIEW); // Enable internal modelview matrix + rlLoadIdentity(); // Reset internal modelview matrix +#endif + DrawRectangleV((Vector2){ 10.0f, 10.0f }, (Vector2){ 600.0f, 20.0f }, DARKGRAY); // NOTE: Internal buffers drawing (2D data) - rlglDraw(mvp); + rlglDraw(); glfwSwapBuffers(window); glfwPollEvents(); @@ -163,7 +171,6 @@ int main(void) glfwDestroyWindow(window); glfwTerminate(); - //-------------------------------------------------------------------------------------- return 0; @@ -176,7 +183,7 @@ int main(void) // GLFW3: Error callback static void ErrorCallback(int error, const char* description) { - TraceLog(LOG_ERROR, description); + TraceLog(ERROR, description); } // GLFW3: Keyboard callback @@ -188,29 +195,6 @@ static void KeyCallback(GLFWwindow* window, int key, int scancode, int action, i } } -// Output a trace log message -static void TraceLog(int msgType, const char *text, ...) -{ - va_list args; - va_start(args, text); - - switch(msgType) - { - case LOG_INFO: fprintf(stdout, "INFO: "); break; - case LOG_ERROR: fprintf(stdout, "ERROR: "); break; - case LOG_WARNING: fprintf(stdout, "WARNING: "); break; - case LOG_DEBUG: fprintf(stdout, "DEBUG: "); break; - default: break; - } - - vfprintf(stdout, text, args); - fprintf(stdout, "\n"); - - va_end(args); - - //if (msgType == LOG_ERROR) exit(1); -} - // Draw rectangle using rlgl OpenGL 1.1 style coding (translated to OpenGL 3.3 internally) static void DrawRectangleV(Vector2 position, Vector2 size, Color color) { diff --git a/examples/oculus_glfw_sample/raymath.h b/examples/oculus_glfw_sample/raymath.h index 2e055e9ff..4075a1a93 100644 --- a/examples/oculus_glfw_sample/raymath.h +++ b/examples/oculus_glfw_sample/raymath.h @@ -151,7 +151,6 @@ RMDEF Matrix MatrixFrustum(double left, double right, double bottom, double top, RMDEF Matrix MatrixPerspective(double fovy, double aspect, double near, double far); // Returns perspective projection matrix RMDEF Matrix MatrixOrtho(double left, double right, double bottom, double top, double near, double far); // Returns orthographic projection matrix RMDEF Matrix MatrixLookAt(Vector3 position, Vector3 target, Vector3 up); // Returns camera look-at matrix (view matrix) -RMDEF void PrintMatrix(Matrix m); // Print matrix utility //------------------------------------------------------------------------------------ // Functions Declaration to work with Quaternions @@ -178,9 +177,7 @@ RMDEF void QuaternionTransform(Quaternion *q, Matrix mat); // Transfo #if defined(RAYMATH_IMPLEMENTATION) || defined(RAYMATH_EXTERN_INLINE) -#include // Used only on PrintMatrix() -#include // Standard math libary: sin(), cos(), tan()... -#include // Used for abs() +#include // Required for: sinf(), cosf(), tan(), fabs() //---------------------------------------------------------------------------------- // Module Functions Definition - Vector3 math @@ -342,15 +339,14 @@ RMDEF Vector3 VectorReflect(Vector3 vector, Vector3 normal) return result; } -// Transforms a Vector3 with a given Matrix +// Transforms a Vector3 by a given Matrix +// TODO: Review math (matrix transpose required?) RMDEF void VectorTransform(Vector3 *v, Matrix mat) { float x = v->x; float y = v->y; float z = v->z; - //MatrixTranspose(&mat); - v->x = mat.m0*x + mat.m4*y + mat.m8*z + mat.m12; v->y = mat.m1*x + mat.m5*y + mat.m9*z + mat.m13; v->z = mat.m2*x + mat.m6*y + mat.m10*z + mat.m14; @@ -871,17 +867,6 @@ RMDEF Matrix MatrixLookAt(Vector3 eye, Vector3 target, Vector3 up) return result; } -// Print matrix utility (for debug) -RMDEF void PrintMatrix(Matrix m) -{ - printf("----------------------\n"); - printf("%2.2f %2.2f %2.2f %2.2f\n", m.m0, m.m4, m.m8, m.m12); - printf("%2.2f %2.2f %2.2f %2.2f\n", m.m1, m.m5, m.m9, m.m13); - printf("%2.2f %2.2f %2.2f %2.2f\n", m.m2, m.m6, m.m10, m.m14); - printf("%2.2f %2.2f %2.2f %2.2f\n", m.m3, m.m7, m.m11, m.m15); - printf("----------------------\n"); -} - //---------------------------------------------------------------------------------- // Module Functions Definition - Quaternion math //---------------------------------------------------------------------------------- diff --git a/examples/oculus_glfw_sample/rlgl.c b/examples/oculus_glfw_sample/rlgl.c index 329ccd6ea..722256346 100644 --- a/examples/oculus_glfw_sample/rlgl.c +++ b/examples/oculus_glfw_sample/rlgl.c @@ -48,7 +48,13 @@ #ifdef __APPLE__ #include // OpenGL 3 library for OSX #else - #include "glad.h" // GLAD library, includes OpenGL headers + #define GLAD_IMPLEMENTATION +#if defined(RLGL_STANDALONE) + #include "glad.h" // GLAD extensions loading library, includes OpenGL headers +#else + #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers +#endif + #endif #endif @@ -62,6 +68,10 @@ #include // Required for: va_list, va_start(), vfprintf(), va_end() [Used only on TraceLog()] #endif +#if !defined(GRAPHICS_API_OPENGL_11) + #include "standard_shader.h" // Standard shader to embed +#endif + //---------------------------------------------------------------------------------- // Defines and Macros //---------------------------------------------------------------------------------- @@ -154,10 +164,6 @@ typedef struct { // TODO: Store draw state -> blending mode, shader } DrawCall; -#if defined(RLGL_STANDALONE) -typedef enum { INFO = 0, ERROR, WARNING, DEBUG, OTHER } TraceLogType; -#endif - //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- @@ -189,26 +195,27 @@ static bool useTempBuffer = false; // Shader Programs static Shader defaultShader; -static Shader standardShader; -static Shader currentShader; // By default, defaultShader +static Shader standardShader; // Lazy initialization when GetStandardShader() +static Shader currentShader; // By default, defaultShader +static bool standardShaderLoaded = false; // Flags for supported extensions -static bool vaoSupported = false; // VAO support (OpenGL ES2 could not support VAO extension) +static bool vaoSupported = false; // VAO support (OpenGL ES2 could not support VAO extension) // Compressed textures support flags -static bool texCompETC1Supported = false; // ETC1 texture compression support -static bool texCompETC2Supported = false; // ETC2/EAC texture compression support -static bool texCompPVRTSupported = false; // PVR texture compression support -static bool texCompASTCSupported = false; // ASTC texture compression support +static bool texCompETC1Supported = false; // ETC1 texture compression support +static bool texCompETC2Supported = false; // ETC2/EAC texture compression support +static bool texCompPVRTSupported = false; // PVR texture compression support +static bool texCompASTCSupported = false; // ASTC texture compression support // Lighting data -static Light lights[MAX_LIGHTS]; // Lights pool -static int lightsCount; // Counts current enabled physic objects +static Light lights[MAX_LIGHTS]; // Lights pool +static int lightsCount; // Counts current enabled physic objects #endif // Compressed textures support flags -static bool texCompDXTSupported = false; // DDS texture compression support -static bool npotSupported = false; // NPOT textures full support +static bool texCompDXTSupported = false; // DDS texture compression support +static bool npotSupported = false; // NPOT textures full support #if defined(GRAPHICS_API_OPENGL_ES2) // NOTE: VAO functionality is exposed through extensions (OES) @@ -253,7 +260,6 @@ static Color *GenNextMipmap(Color *srcData, int srcWidth, int srcHeight); #endif #if defined(RLGL_STANDALONE) -static void TraceLog(int msgType, const char *text, ...); float *MatrixToFloat(Matrix mat); // Converts Matrix to float array #endif @@ -355,7 +361,6 @@ void rlRotatef(float angleDeg, float x, float y, float z) Vector3 axis = (Vector3){ x, y, z }; VectorNormalize(&axis); matRotation = MatrixRotate(axis, angleDeg*DEG2RAD); - MatrixTranspose(&matRotation); *currentMatrix = MatrixMultiply(*currentMatrix, matRotation); @@ -1032,7 +1037,6 @@ void rlglInit(void) // Init default Shader (customized for GL 3.3 and ES2) defaultShader = LoadDefaultShader(); - standardShader = LoadStandardShader(); currentShader = defaultShader; LoadDefaultBuffers(); // Initialize default vertex arrays buffers (lines, triangles, quads) @@ -2185,14 +2189,22 @@ Shader GetDefaultShader(void) } // Get default shader +// NOTE: Inits global variable standardShader Shader GetStandardShader(void) { -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - return standardShader; -#else Shader shader = { 0 }; - return shader; + +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) + if (standardShaderLoaded) shader = standardShader; + else + { + // Lazy initialization of standard shader + standardShader = LoadStandardShader(); + shader = standardShader; + } #endif + + return shader; } // Get shader uniform location @@ -2254,13 +2266,17 @@ void SetShaderValueMatrix(Shader shader, int uniformLoc, Matrix mat) // Set a custom projection matrix (replaces internal projection matrix) void SetMatrixProjection(Matrix proj) { +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) projection = proj; +#endif } // Set a custom modelview matrix (replaces internal modelview matrix) void SetMatrixModelview(Matrix view) { +#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) modelview = view; +#endif } // Begin blending mode (alpha, additive, multiplied) @@ -2564,18 +2580,28 @@ static Shader LoadDefaultShader(void) // Load standard shader // NOTE: This shader supports: -// - Up to 3 different maps: diffuse, normal, specular -// - Material properties: colAmbient, colDiffuse, colSpecular, glossiness -// - Up to 8 lights: Point, Directional or Spot +// - Up to 3 different maps: diffuse, normal, specular +// - Material properties: colAmbient, colDiffuse, colSpecular, glossiness +// - Up to 8 lights: Point, Directional or Spot static Shader LoadStandardShader(void) { - // Load standard shader (TODO: rewrite as char pointers) - Shader shader = { 0 }; //LoadShader("resources/shaders/standard.vs", "resources/shaders/standard.fs"); + Shader shader; + + // Load standard shader (embeded in standard_shader.h) + shader.id = LoadShaderProgram(vStandardShaderStr, fStandardShaderStr); - if (shader.id != 0) TraceLog(INFO, "[SHDR ID %i] Standard shader loaded successfully", shader.id); - else TraceLog(WARNING, "[SHDR ID %i] Standard shader could not be loaded", shader.id); - - if (shader.id != 0) LoadDefaultShaderLocations(&shader); + if (shader.id != 0) + { + LoadDefaultShaderLocations(&shader); + TraceLog(INFO, "[SHDR ID %i] Standard shader loaded successfully", shader.id); + + standardShaderLoaded = true; + } + else + { + TraceLog(WARNING, "[SHDR ID %i] Standard shader could not be loaded, using default shader", shader.id); + shader = GetDefaultShader(); + } return shader; } @@ -3318,7 +3344,7 @@ static Color *GenNextMipmap(Color *srcData, int srcWidth, int srcHeight) #if defined(RLGL_STANDALONE) // Output a trace log message // NOTE: Expected msgType: (0)Info, (1)Error, (2)Warning -static void TraceLog(int msgType, const char *text, ...) +void TraceLog(int msgType, const char *text, ...) { va_list args; va_start(args, text); diff --git a/examples/oculus_glfw_sample/rlgl.h b/examples/oculus_glfw_sample/rlgl.h index 2a578a1f5..9c25f7104 100644 --- a/examples/oculus_glfw_sample/rlgl.h +++ b/examples/oculus_glfw_sample/rlgl.h @@ -230,6 +230,9 @@ typedef enum { OPENGL_11 = 1, OPENGL_33, OPENGL_ES_20 } GlVersion; // Color blending modes (pre-defined) typedef enum { BLEND_ALPHA = 0, BLEND_ADDITIVE, BLEND_MULTIPLIED } BlendMode; + + // TraceLog message types + typedef enum { INFO = 0, ERROR, WARNING, DEBUG, OTHER } TraceLogType; #endif #ifdef __cplusplus @@ -339,6 +342,8 @@ void EndBlendMode(void); // End blend Light CreateLight(int type, Vector3 position, Color diffuse); // Create a new light, initialize it and add to pool void DestroyLight(Light light); // Destroy a light and take it out of the list + +void TraceLog(int msgType, const char *text, ...); #endif #ifdef __cplusplus diff --git a/examples/oculus_glfw_sample/standard_shader.h b/examples/oculus_glfw_sample/standard_shader.h new file mode 100644 index 000000000..956b5c32c --- /dev/null +++ b/examples/oculus_glfw_sample/standard_shader.h @@ -0,0 +1,166 @@ + +// Vertex shader definition to embed, no external file required +const static unsigned char vStandardShaderStr[] = +#if defined(GRAPHICS_API_OPENGL_21) +"#version 120 \n" +#elif defined(GRAPHICS_API_OPENGL_ES2) +"#version 100 \n" +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_21) +"attribute vec3 vertexPosition; \n" +"attribute vec3 vertexNormal; \n" +"attribute vec2 vertexTexCoord; \n" +"attribute vec4 vertexColor; \n" +"varying vec3 fragPosition; \n" +"varying vec3 fragNormal; \n" +"varying vec2 fragTexCoord; \n" +"varying vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_33) +"#version 330 \n" +"in vec3 vertexPosition; \n" +"in vec3 vertexNormal; \n" +"in vec2 vertexTexCoord; \n" +"in vec4 vertexColor; \n" +"out vec3 fragPosition; \n" +"out vec3 fragNormal; \n" +"out vec2 fragTexCoord; \n" +"out vec4 fragColor; \n" +#endif +"uniform mat4 mvpMatrix; \n" +"void main() \n" +"{ \n" +" fragPosition = vertexPosition; \n" +" fragNormal = vertexNormal; \n" +" fragTexCoord = vertexTexCoord; \n" +" fragColor = vertexColor; \n" +" gl_Position = mvpMatrix*vec4(vertexPosition, 1.0); \n" +"} \n"; + +// Fragment shader definition to embed, no external file required +const static unsigned char fStandardShaderStr[] = +#if defined(GRAPHICS_API_OPENGL_21) +"#version 120 \n" +#elif defined(GRAPHICS_API_OPENGL_ES2) +"#version 100 \n" +"precision mediump float; \n" // precision required for OpenGL ES2 (WebGL) +#endif +#if defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_21) +"varying vec3 fragPosition; \n" +"varying vec3 fragNormal; \n" +"varying vec2 fragTexCoord; \n" +"varying vec4 fragColor; \n" +#elif defined(GRAPHICS_API_OPENGL_33) +"#version 330 \n" +"in vec3 fragPosition; \n" +"in vec3 fragNormal; \n" +"in vec2 fragTexCoord; \n" +"in vec4 fragColor; \n" +"out vec4 finalColor; \n" +#endif +"uniform sampler2D texture0; \n" +"uniform sampler2D texture1; \n" +"uniform sampler2D texture2; \n" +"uniform vec4 colAmbient; \n" +"uniform vec4 colDiffuse; \n" +"uniform vec4 colSpecular; \n" +"uniform float glossiness; \n" +"uniform int useNormal; \n" +"uniform int useSpecular; \n" +"uniform mat4 modelMatrix; \n" +"uniform vec3 viewDir; \n" +"struct Light { \n" +" int enabled; \n" +" int type; \n" +" vec3 position; \n" +" vec3 direction; \n" +" vec4 diffuse; \n" +" float intensity; \n" +" float radius; \n" +" float coneAngle; }; \n" +"const int maxLights = 8; \n" +"uniform int lightsCount; \n" +"uniform Light lights[maxLights]; \n" +"\n" +"vec3 CalcPointLight(Light l, vec3 n, vec3 v, float s) \n" +"{\n" +" vec3 surfacePos = vec3(modelMatrix*vec4(fragPosition, 1));\n" +" vec3 surfaceToLight = l.position - surfacePos;\n" +" float brightness = clamp(dot(n, surfaceToLight)/(length(surfaceToLight)*length(n)), 0, 1);\n" +" float diff = 1.0/dot(surfaceToLight/l.radius, surfaceToLight/l.radius)*brightness*l.intensity;\n" +" float spec = 0.0;\n" +" if (diff > 0.0)\n" +" {\n" +" vec3 h = normalize(-l.direction + v);\n" +" spec = pow(dot(n, h), 3 + glossiness)*s;\n" +" }\n" +" return (diff*l.diffuse.rgb + spec*colSpecular.rgb);\n" +"}\n" +"\n" +"vec3 CalcDirectionalLight(Light l, vec3 n, vec3 v, float s)\n" +"{\n" +" vec3 lightDir = normalize(-l.direction);\n" +" float diff = clamp(dot(n, lightDir), 0.0, 1.0)*l.intensity;\n" +" float spec = 0.0;\n" +" if (diff > 0.0)\n" +" {\n" +" vec3 h = normalize(lightDir + v);\n" +" spec = pow(dot(n, h), 3 + glossiness)*s;\n" +" }\n" +" return (diff*l.intensity*l.diffuse.rgb + spec*colSpecular.rgb);\n" +"}\n" +"\n" +"vec3 CalcSpotLight(Light l, vec3 n, vec3 v, float s)\n" +"{\n" +" vec3 surfacePos = vec3(modelMatrix*vec4(fragPosition, 1));\n" +" vec3 lightToSurface = normalize(surfacePos - l.position);\n" +" vec3 lightDir = normalize(-l.direction);\n" +" float diff = clamp(dot(n, lightDir), 0.0, 1.0)*l.intensity;\n" +" float attenuation = clamp(dot(n, lightToSurface), 0.0, 1.0);\n" +" attenuation = dot(lightToSurface, -lightDir);\n" +" float lightToSurfaceAngle = degrees(acos(attenuation));\n" +" if (lightToSurfaceAngle > l.coneAngle) attenuation = 0.0;\n" +" float falloff = (l.coneAngle - lightToSurfaceAngle)/l.coneAngle;\n" +" float diffAttenuation = diff*attenuation;\n" +" float spec = 0.0;\n" +" if (diffAttenuation > 0.0)\n" +" {\n" +" vec3 h = normalize(lightDir + v);\n" +" spec = pow(dot(n, h), 3 + glossiness)*s;\n" +" }\n" +" return (falloff*(diffAttenuation*l.diffuse.rgb + spec*colSpecular.rgb));\n" +"}\n" +"\n" +"void main()\n" +"{\n" +" mat3 normalMatrix = transpose(inverse(mat3(modelMatrix)));\n" +" vec3 normal = normalize(normalMatrix*fragNormal);\n" +" vec3 n = normalize(normal);\n" +" vec3 v = normalize(viewDir);\n" +" vec4 texelColor = texture(texture0, fragTexCoord);\n" +" vec3 lighting = colAmbient.rgb;\n" +" if (useNormal == 1)\n" +" {\n" +" n *= texture(texture1, fragTexCoord).rgb;\n" +" n = normalize(n);\n" +" }\n" +" float spec = 1.0;\n" +" if (useSpecular == 1) spec *= normalize(texture(texture2, fragTexCoord).r);\n" +" for (int i = 0; i < lightsCount; i++)\n" +" {\n" +" if (lights[i].enabled == 1)\n" +" {\n" +" switch (lights[i].type)\n" +" {\n" +" case 0: lighting += CalcPointLight(lights[i], n, v, spec); break;\n" +" case 1: lighting += CalcDirectionalLight(lights[i], n, v, spec); break;\n" +" case 2: lighting += CalcSpotLight(lights[i], n, v, spec); break;\n" +" default: break;\n" +" }\n" +" }\n" +" }\n" +#if defined(GRAPHICS_API_OPENGL_33) +" finalColor = vec4(texelColor.rgb*lighting*colDiffuse.rgb, texelColor.a*colDiffuse.a); \n" +#elif defined(GRAPHICS_API_OPENGL_ES2) || defined(GRAPHICS_API_OPENGL_21) +" gl_FragColor = vec4(texelColor.rgb*lighting*colDiffuse.rgb, texelColor.a*colDiffuse.a); \n" +#endif +"} \n"; \ No newline at end of file diff --git a/src/rlgl.c b/src/rlgl.c index 6b99bf198..722256346 100644 --- a/src/rlgl.c +++ b/src/rlgl.c @@ -48,8 +48,13 @@ #ifdef __APPLE__ #include // OpenGL 3 library for OSX #else - #define GLAD_IMPLEMENTATION - #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers + #define GLAD_IMPLEMENTATION +#if defined(RLGL_STANDALONE) + #include "glad.h" // GLAD extensions loading library, includes OpenGL headers +#else + #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers +#endif + #endif #endif @@ -159,10 +164,6 @@ typedef struct { // TODO: Store draw state -> blending mode, shader } DrawCall; -#if defined(RLGL_STANDALONE) -typedef enum { INFO = 0, ERROR, WARNING, DEBUG, OTHER } TraceLogType; -#endif - //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- @@ -259,7 +260,6 @@ static Color *GenNextMipmap(Color *srcData, int srcWidth, int srcHeight); #endif #if defined(RLGL_STANDALONE) -static void TraceLog(int msgType, const char *text, ...); float *MatrixToFloat(Matrix mat); // Converts Matrix to float array #endif @@ -3344,7 +3344,7 @@ static Color *GenNextMipmap(Color *srcData, int srcWidth, int srcHeight) #if defined(RLGL_STANDALONE) // Output a trace log message // NOTE: Expected msgType: (0)Info, (1)Error, (2)Warning -static void TraceLog(int msgType, const char *text, ...) +void TraceLog(int msgType, const char *text, ...) { va_list args; va_start(args, text); diff --git a/src/rlgl.h b/src/rlgl.h index 2a578a1f5..9c25f7104 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -230,6 +230,9 @@ typedef enum { OPENGL_11 = 1, OPENGL_33, OPENGL_ES_20 } GlVersion; // Color blending modes (pre-defined) typedef enum { BLEND_ALPHA = 0, BLEND_ADDITIVE, BLEND_MULTIPLIED } BlendMode; + + // TraceLog message types + typedef enum { INFO = 0, ERROR, WARNING, DEBUG, OTHER } TraceLogType; #endif #ifdef __cplusplus @@ -339,6 +342,8 @@ void EndBlendMode(void); // End blend Light CreateLight(int type, Vector3 position, Color diffuse); // Create a new light, initialize it and add to pool void DestroyLight(Light light); // Destroy a light and take it out of the list + +void TraceLog(int msgType, const char *text, ...); #endif #ifdef __cplusplus From 09fa002818f0e25d1741299b0cf49054dda5c50a Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 8 Jun 2016 00:04:56 +0200 Subject: [PATCH 7/9] Corrected issue --- src/android/jni/Android.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/android/jni/Android.mk b/src/android/jni/Android.mk index a9178dac8..66851d088 100644 --- a/src/android/jni/Android.mk +++ b/src/android/jni/Android.mk @@ -46,7 +46,7 @@ LOCAL_SRC_FILES :=\ ../../models.c \ ../../utils.c \ ../../audio.c \ - ../../stb_vorbis.c \ + ../../external/stb_vorbis.c \ # Required includes paths (.h) LOCAL_C_INCLUDES := $(LOCAL_PATH) $(LOCAL_PATH)/include $(LOCAL_PATH)/../.. From c99fc5108e944ebd269d71037ff2c06f78f9e36f Mon Sep 17 00:00:00 2001 From: Ray Date: Wed, 8 Jun 2016 00:31:00 +0200 Subject: [PATCH 8/9] Update screenshot --- .../raylib_OculusRiftCV1_test03.png | Bin 182957 -> 170926 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/examples/oculus_glfw_sample/raylib_OculusRiftCV1_test03.png b/examples/oculus_glfw_sample/raylib_OculusRiftCV1_test03.png index d2c7179576ba03c742b7258b5bee8a37fcbe9978..8ce104952aee9cea117405f7ea08cd7b74b4cb04 100644 GIT binary patch literal 170926 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ēF@5} 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

T_x#(JGpZ~50;8sVc*N~i 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

1J5WpmZQ+Bd7-v$Zf>9QK3^{ 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 uB(N}x!8if}0s$(+oG Date: Wed, 8 Jun 2016 00:32:34 +0200 Subject: [PATCH 9/9] Stereo rendering test Trying to simulate Oculus Rift CV1 rendering without the device... for Debug pourposes. --- .../rlgl_standalone_stereo.c | 394 ++++++++++++++++++ 1 file changed, 394 insertions(+) create mode 100644 examples/oculus_glfw_sample/rlgl_standalone_stereo.c diff --git a/examples/oculus_glfw_sample/rlgl_standalone_stereo.c b/examples/oculus_glfw_sample/rlgl_standalone_stereo.c new file mode 100644 index 000000000..8582adb4a --- /dev/null +++ b/examples/oculus_glfw_sample/rlgl_standalone_stereo.c @@ -0,0 +1,394 @@ +/******************************************************************************************* +* +* raylib [rlgl] example - Using rlgl module as standalone module +* +* NOTE: This example requires OpenGL 3.3 or ES2 versions for shaders support, +* OpenGL 1.1 does not support shaders but it can also be used. +* +* Compile rlgl module using: +* gcc -c rlgl.c -Wall -std=c99 -DRLGL_STANDALONE -DRAYMATH_IMPLEMENTATION -DGRAPHICS_API_OPENGL_33 +* +* Compile example using: +* gcc -o $(NAME_PART).exe $(FILE_NAME) rlgl.o -lglfw3 -lopengl32 -lgdi32 -std=c99 +* +* This example has been created using raylib 1.5 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Copyright (c) 2015 Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "glad.h" // Extensions loading library +#include // Windows/Context and inputs management + +#define RLGL_STANDALONE +#include "rlgl.h" // rlgl library: OpenGL 1.1 immediate-mode style coding + + +#define RED (Color){ 230, 41, 55, 255 } // Red +#define MAROON (Color){ 190, 33, 55, 255 } // Maroon +#define RAYWHITE (Color){ 245, 245, 245, 255 } // My own White (raylib logo) +#define DARKGRAY (Color){ 80, 80, 80, 255 } // Dark Gray + +//---------------------------------------------------------------------------------- +// Module specific Functions Declaration +//---------------------------------------------------------------------------------- +static void ErrorCallback(int error, const char* description); +static void KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods); + +// Drawing functions (uses rlgl functionality) +static void DrawGrid(int slices, float spacing); +static void DrawCube(Vector3 position, float width, float height, float length, Color color); +static void DrawCubeWires(Vector3 position, float width, float height, float length, Color color); +static void DrawRectangleV(Vector2 position, Vector2 size, Color color); + +//---------------------------------------------------------------------------------- +// Main Entry point +//---------------------------------------------------------------------------------- +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 1080; + const int screenHeight = 600; + + + // GLFW3 Initialization + OpenGL 3.3 Context + Extensions + //-------------------------------------------------------- + glfwSetErrorCallback(ErrorCallback); + + if (!glfwInit()) + { + TraceLog(WARNING, "GLFW3: Can not initialize GLFW"); + return 1; + } + else TraceLog(INFO, "GLFW3: GLFW initialized successfully"); + + glfwWindowHint(GLFW_SAMPLES, 4); + glfwWindowHint(GLFW_DEPTH_BITS, 16); + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GL_TRUE); + + GLFWwindow *window = glfwCreateWindow(screenWidth, screenHeight, "rlgl standalone", NULL, NULL); + + if (!window) + { + glfwTerminate(); + return 2; + } + else TraceLog(INFO, "GLFW3: Window created successfully"); + + glfwSetKeyCallback(window, KeyCallback); + + glfwMakeContextCurrent(window); + glfwSwapInterval(1); + + // Load OpenGL 3.3 extensions + if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) + { + TraceLog(WARNING, "GLAD: Cannot load OpenGL extensions"); + return 3; + } + else TraceLog(INFO, "GLAD: OpenGL extensions loaded successfully"); + //-------------------------------------------------------- + + // Initialize rlgl internal buffers and OpenGL state + rlglInit(); + rlglInitGraphics(0, 0, screenWidth, screenHeight); + rlClearColor(245, 245, 245, 255); // Define clear color + rlEnableDepthTest(); // Enable DEPTH_TEST for 3D + + Vector3 cubePosition = { 0.0f, 0.0f, 0.0f }; + + Camera camera; + camera.position = (Vector3){ 5.0f, 5.0f, 5.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 60.0f; // Camera field-of-view Y + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!glfwWindowShouldClose(window)) + { + // Update + //---------------------------------------------------------------------------------- + // ... + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + rlClearScreenBuffers(); // Clear current framebuffer + + for (int i = 0; i < 2; i++) + { + rlViewport(i*screenWidth/2, 0, screenWidth/2, screenHeight); + + // Calculate projection matrix (from perspective) and view matrix from camera look at + Matrix matProj = MatrixPerspective(camera.fovy, (double)(screenWidth/2)/(double)screenHeight, 0.01, 1000.0); + MatrixTranspose(&matProj); + Matrix matView = MatrixLookAt(camera.position, camera.target, camera.up); + + SetMatrixModelview(matView); // Replace internal modelview matrix by a custom one + SetMatrixProjection(matProj); // Replace internal projection matrix by a custom one + + DrawCube(cubePosition, 2.0f, 2.0f, 2.0f, RED); + DrawCubeWires(cubePosition, 2.0f, 2.0f, 2.0f, RAYWHITE); + DrawGrid(10, 1.0f); + + // NOTE: Internal buffers drawing (3D data) + rlglDraw(); + + // Draw '2D' elements in the scene (GUI) + #define RLGL_CREATE_MATRIX_MANUALLY + #if defined(RLGL_CREATE_MATRIX_MANUALLY) + + matProj = MatrixOrtho(0.0, screenWidth/2, screenHeight, 0.0, 0.0, 1.0); + MatrixTranspose(&matProj); + matView = MatrixIdentity(); + + SetMatrixModelview(matView); // Replace internal modelview matrix by a custom one + SetMatrixProjection(matProj); // Replace internal projection matrix by a custom one + + #else // Let rlgl generate and multiply matrix internally + + rlMatrixMode(RL_PROJECTION); // Enable internal projection matrix + rlLoadIdentity(); // Reset internal projection matrix + rlOrtho(0.0, screenWidth, screenHeight, 0.0, 0.0, 1.0); // Recalculate internal projection matrix + rlMatrixMode(RL_MODELVIEW); // Enable internal modelview matrix + rlLoadIdentity(); // Reset internal modelview matrix + #endif + DrawRectangleV((Vector2){ 10.0f, 10.0f }, (Vector2){ 600.0f, 20.0f }, DARKGRAY); + + // NOTE: Internal buffers drawing (2D data) + rlglDraw(); + } + + glfwSwapBuffers(window); + glfwPollEvents(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + rlglClose(); // Unload rlgl internal buffers and default shader/texture + + glfwDestroyWindow(window); + glfwTerminate(); + //-------------------------------------------------------------------------------------- + + return 0; +} + +//---------------------------------------------------------------------------------- +// Module specific Functions Definitions +//---------------------------------------------------------------------------------- + +// GLFW3: Error callback +static void ErrorCallback(int error, const char* description) +{ + TraceLog(ERROR, description); +} + +// GLFW3: Keyboard callback +static void KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods) +{ + if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) + { + glfwSetWindowShouldClose(window, GL_TRUE); + } +} + +// Draw rectangle using rlgl OpenGL 1.1 style coding (translated to OpenGL 3.3 internally) +static void DrawRectangleV(Vector2 position, Vector2 size, Color color) +{ + rlBegin(RL_TRIANGLES); + rlColor4ub(color.r, color.g, color.b, color.a); + + rlVertex2i(position.x, position.y); + rlVertex2i(position.x, position.y + size.y); + rlVertex2i(position.x + size.x, position.y + size.y); + + rlVertex2i(position.x, position.y); + rlVertex2i(position.x + size.x, position.y + size.y); + rlVertex2i(position.x + size.x, position.y); + rlEnd(); +} + +// Draw a grid centered at (0, 0, 0) +static void DrawGrid(int slices, float spacing) +{ + int halfSlices = slices / 2; + + rlBegin(RL_LINES); + for(int i = -halfSlices; i <= halfSlices; i++) + { + if (i == 0) + { + rlColor3f(0.5f, 0.5f, 0.5f); + rlColor3f(0.5f, 0.5f, 0.5f); + rlColor3f(0.5f, 0.5f, 0.5f); + rlColor3f(0.5f, 0.5f, 0.5f); + } + else + { + rlColor3f(0.75f, 0.75f, 0.75f); + rlColor3f(0.75f, 0.75f, 0.75f); + rlColor3f(0.75f, 0.75f, 0.75f); + rlColor3f(0.75f, 0.75f, 0.75f); + } + + rlVertex3f((float)i*spacing, 0.0f, (float)-halfSlices*spacing); + rlVertex3f((float)i*spacing, 0.0f, (float)halfSlices*spacing); + + rlVertex3f((float)-halfSlices*spacing, 0.0f, (float)i*spacing); + rlVertex3f((float)halfSlices*spacing, 0.0f, (float)i*spacing); + } + rlEnd(); +} + +// Draw cube +// NOTE: Cube position is the center position +void DrawCube(Vector3 position, float width, float height, float length, Color color) +{ + float x = 0.0f; + float y = 0.0f; + float z = 0.0f; + + rlPushMatrix(); + + // NOTE: Be careful! Function order matters (rotate -> scale -> translate) + rlTranslatef(position.x, position.y, position.z); + //rlScalef(2.0f, 2.0f, 2.0f); + //rlRotatef(45, 0, 1, 0); + + rlBegin(RL_TRIANGLES); + rlColor4ub(color.r, color.g, color.b, color.a); + + // Front Face ----------------------------------------------------- + rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left + rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right + rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left + + rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right + rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left + rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right + + // Back Face ------------------------------------------------------ + rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Left + rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left + rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right + + rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right + rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right + rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left + + // Top Face ------------------------------------------------------- + rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left + rlVertex3f(x-width/2, y+height/2, z+length/2); // Bottom Left + rlVertex3f(x+width/2, y+height/2, z+length/2); // Bottom Right + + rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right + rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left + rlVertex3f(x+width/2, y+height/2, z+length/2); // Bottom Right + + // Bottom Face ---------------------------------------------------- + rlVertex3f(x-width/2, y-height/2, z-length/2); // Top Left + rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right + rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left + + rlVertex3f(x+width/2, y-height/2, z-length/2); // Top Right + rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right + rlVertex3f(x-width/2, y-height/2, z-length/2); // Top Left + + // Right face ----------------------------------------------------- + rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right + rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right + rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Left + + rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Left + rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right + rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Left + + // Left Face ------------------------------------------------------ + rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Right + rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left + rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Right + + rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left + rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left + rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Right + rlEnd(); + rlPopMatrix(); +} + +// Draw cube wires +void DrawCubeWires(Vector3 position, float width, float height, float length, Color color) +{ + float x = 0.0f; + float y = 0.0f; + float z = 0.0f; + + rlPushMatrix(); + + rlTranslatef(position.x, position.y, position.z); + //rlRotatef(45, 0, 1, 0); + + rlBegin(RL_LINES); + rlColor4ub(color.r, color.g, color.b, color.a); + + // Front Face ----------------------------------------------------- + // Bottom Line + rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left + rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right + + // Left Line + rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right + rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right + + // Top Line + rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right + rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left + + // Right Line + rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left + rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left + + // Back Face ------------------------------------------------------ + // Bottom Line + rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Left + rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right + + // Left Line + rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right + rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right + + // Top Line + rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right + rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left + + // Right Line + rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left + rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Left + + // Top Face ------------------------------------------------------- + // Left Line + rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left Front + rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left Back + + // Right Line + rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right Front + rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right Back + + // Bottom Face --------------------------------------------------- + // Left Line + rlVertex3f(x-width/2, y-height/2, z+length/2); // Top Left Front + rlVertex3f(x-width/2, y-height/2, z-length/2); // Top Left Back + + // Right Line + rlVertex3f(x+width/2, y-height/2, z+length/2); // Top Right Front + rlVertex3f(x+width/2, y-height/2, z-length/2); // Top Right Back + rlEnd(); + rlPopMatrix(); +}