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 8d230550..3dda77b1 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 00000000..956b5c32 --- /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 0325d1f5..a9178dac 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 92e37cfb..ce703c3a 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 aace05a7..00000000 --- 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 56bb622d..db1516f8 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 3dda77b1..6b99bf19 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 5064f123..00000000 --- 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 61741254..32ad8e9b 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 54302de8..e0740f66 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 e0740f66..73f19883 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 288418a1..4728160a 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 2e055e9f..4075a1a9 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 329ccd6e..72225634 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 2a578a1f..9c25f710 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 00000000..956b5c32 --- /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 6b99bf19..72225634 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 2a578a1f..9c25f710 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 a9178dac..66851d08 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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 ^>OsPKfk90!VMLfNC2l( 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≪VrnyKPP=y+~F|TO2xtU%+g}) z3SV=6GpWr)nKLoMYtI>gv6yAfob&#@u8 zA(?Xx@it|Bb6CH~-o+N)c^ko$=(7oS-UWS1E%(F0@HBgOIP`t5CH9_rZwkvV#O@bcAnz1N=zuG@+M=z7b8H4e5^LgzS_%Smt#=BY$s}*C_#QmVgw2TKRl0rZnWVDPoSIo{EuR1XSEWq2ATD zj9&2yh$op)hH4`ccnwgu_9G&Jw6bV3fQCvb76SN)sZ}v`7h)5F3D;tEG83Rw?o9mI z@Sdu-p1kq0ARhHQ+nW3O8jLrw?d~gW=kD;04`1(GztS=qXLo0aur}mUI?=I>ZV79S z;L1pqyGoRWgXvJ^HBDD8!U2ZFJF0l>+07gHrI%iFt7DL4?5I~_=oZIwlj|bwoH1{2 z;mFOQv@VjZL=IK2sw_Xt#l)`U>|ILLeZxyga-%CV|1%Uz8+ zpOVn6AfC@MHvwPww1C0`B?C*Cuq14&oW}Sq;&LV}2_qEJ+QO2sxB}NNnIJKhIp5X+ zwF^Lw1U89n$s}BG@tOCVSPcY;34;)tqXyUTfSoP4<$|dAH+Q4hLeQ0)Gf>OzSEaW z*)&XaF>@6!U}FYh3s|&V>Ws~@0%p`UM~N#&p5|MuasFbt$(|ZmY3<_vc~+A!3nNhF zG4#cWQ%%JRj%=gA=~qCNB#qOO1FSC20kh}s*m&(IFr5$I_qT-u}QPGD{MWU zakEVoJXT%j`wZkSe*#|n4*`Di5>!{bI@qM8$u#q2M8O&alZ;RWM|B(Fj32g0_WDsN-Dt5-If)FrYl($F zoL%{6`{i3W%9;)iwqLbA7^>yj>^++zFU83wwFEh2Q?S{XGd$o6TJd}ahX`N67(q+l z%Tfs2Qwi@>vlmnYXyr# zf;5ihiNLou5&&lyVW-hc@@V7@Bu~|Jl@ZQkhNDHl%ACwvEYXV6d>DCT(MUzzDO_$o zH!~d?(pgE1w1z@U*p?D*LeqUxi`z{(qL}hWGrFftW2FKJT*G6YrR>(sJ zq^9aKT^8{FqVwBj{4DtbXhA)Uil@2z4MmjjQ$7bSo?24Qb?XjE?zjM1z(Qowl)hz9 ztHW$_1@f_;;9xi%j2qWm&uGs{Mo!72ex#_h(uDB8gZ#(-IQ)~F0RKI}?Mq-?+4>LA zXBNDll9ruTl)Q864$s45S9Ul_d6YBdK`!T0eWXLv*a8}jR7uBQd7Mt-q2SA!uCb?< zJf0A)lAtn&c?Z@qcon-dZJ`@B!7XOU%j~HR_NkKOCH3i;8b$+ViB__%t<}MB6eCw= zhF6iE7E3z$s^}>WX?}f`{NyN2um|b-681&e_NDKu!@;msEP*l>HhbVkocpE9-PTMg z0hJ5*c8KXXoM~*szJ*P3#F9iIt$$YNYj3!TWkAG=eS?WrgJXI5FvZ0Wl!U;wz`$mr zSw|Mvs<*a89@}Ifw&u6*J2NMK=9(g3yK)?lWffrl$5#1ce;MxnEWoeQ7P`x|!kbf< zfZ>yS?TIJSx&H^Z?idR9M7MW3(n4p|M|K$s*!~&9W@7*%CwHji@x&WRm8w}PI!lcK z4TP6EjEUSu#jTom34ofcnKY^)c*1OMlp3R|r|fm0!yqxbCIlwtRIhVMK~e)#m&zO{ zj8{#op;LJXvf5ny9KcbGr8X!L)%)U|%4Pz-kuU=ObPZ}sFLYfTOUI6rXnmx)At6m`1(%orB|NCpVz4% zobnAGpK$*{E6c+Oue2claTNaiEAR_{72f@a0RP)1wytQgPdrpQ#mVAx&ps7~@!KEX z=eY98-jl41jtOuS7}}hKD_XF#UFGm~l03N zwD37I_H>QaP09IVDmQhpd7pKq6g3TC>=PbcyoDtKuK_wK;8v;WT&uNS$_kwMJN^5Z zpWN7K3T;imu1y&NGo#MOL68x6;Jz8+pOmw|_wT~r{6>Jke92f=wmu72Tl+nF!PH(g zpAP21AH088m>$*G`PT;j^AqvrfRG(1I?zB_E1N9yin|_lMJgQt5iXTND{n4GO`fC7x3;%psRb-ZX1g*GiT8`Al>=$EN?K~`pKsD>6_yaZL#(FAa@#l>* z?54+h6?Ho~Fxr`lCh!)x0;Dz#Hnkem4sLsTJdNS2AHIQD)NMZb>Q!;?23nZ1Henj^ z4aX*3h%9?}E9y2;{ojP}vz_8U`hIv1|LKOY8>dRcN@gp>J*&t$8kANg5J>JoH`4oV8s1~dUSVSISf zv8LyiJ}oBvypRi1(8VM7)?IKF52^;q(;BOLHn3e_OV9&TpI43*<>J5s^Pv%2)xx;Z zmWXndTX%qN>}Mf0F?o<(A-yZb5yfCD8ojbV9#%1c;+n3oaF$WzDXk1f9vED1DAU7| z{1;hTT?yUVD+yEAoUHH*2xb{y%)3SjhJDIW&1C!lf^id?133?A8=BrOV4gBIhj(Cv9imr2YwZvh@g8!^sgZR%v!ha+D(oaDDX90fg(oC&jwcrP3 z;ZVVoYO1fAPX+V&mp**s@n*}gI!76d5yVF28)F?55w>p_kj!avTZ;;B&>w1|u3GX5 z?sGj{OvK0#SnK2}`{O(~X3x`vmb+vTrLkOSMU zz$Z}_na?|2;mCZ#DH%(|g4e8rO?66tOXZm3ti1K^I}97YaN|WrWRG&qNE2lrL37^V z%^27z{e0YE=vI3W{dGS3_3wxO;hO+{2H>Aw;_UL)=fQmWgbJ4qbi%@4OTKF*K3*nUN%Wic{R-IJXZPQwcD#)ScJ5p;wJv@7}%mhS@Tb%2Yl z3&HBlPrB+p$coH)gv<$bChA%YaE-I(E%75IFyM5-asV;huB_))ciso{=-qo?)eP&^ zr=Ew0C)u_+2s+@qf|gsLO=#-uh{r>cfcy6$`j%_uPyPt}?q>l03Vlqrc|Aq3;3E`J z+&N*~m};6YYubnX>FxV(Jl1XLjlJ_os$(jr6Cvc;&}O$;c3Nh2xu^Q6-ygc7Y?+$K z9J*RssFNx9V}&|7nwxVcF(OHfl^ZZH0>K;TBO-nV54WEt^spcTT{5`LGL7G1(?b9F z_lPNxiNjjUw7M%DQMN5_qA47x=o$;Raho>-nfsr@ad;+^1N^|rS3^E6@Z;c zrow{i)hy<~kCDQ#E~GyI=?hO6KlY<=>u&-4?3Td-3(fDVcHTi>{+ADbAG^Mv0QjY? zgtF%Wz8gOOZQKum_{1ZAw7b)2?bxHi{I%Eq>6OlnrgXzaC^4b^Q5p~+BDLF7!aN*| z2b!QOx`J4OelAJ4M#S&-mF>|>#fT&_W=WtsL zk7q`Xs!*Fxd9NL7EJ*?oqh}KgT^)Bil5RXiSBe94WlSb^><+fK;bA%BJ>#^L0N4TC zCzr6u0q`eynK_l@k9<&~tf2>}nF4C9t_qQ-wOElx!}>bylORw3s`?;FeI7vS0F%NwsUzdi)`N83wO z;4i`-ewO|CNk4>G_QutA*=^h&PH%nX%TIM*P#Ysiw90EwbP&al$ly{&6AZ1Zr_p>e znF>hL42|7w#HVU4IR`#WHIo0^f)hoi7J-`Us;h<&j114<^u;W&iejl%2Y9mPgk+oB@Lns|`v$k`zS zqB=|5SJHHdAhJLvGvRc4+405|nac|1llkP{hlr6MdtpaB^`zJa192OMKHnHwTr&jb zXfq_Rz<(nIKQ0zO{)6z_-w5zm0R~%u1qd47pMAdagrC=csXRch%PRx-+kej(|69yI z_+5Z^wh6+%9n?RK{$fY?42Z_59!(aiUN`L;AG`nF@RzHveD0~I4E7@?s7-H|!l_C} z@e_YE>#KYt*Mv4ZC({mm{iq41o3=Crx|Lj0Jk=?k%*ZuglWm#WnaU!>#aRCXkN1ho zkr7(Pq?~aAaQ@Ys;;bI^h&)JNepQ({v|xf zK<#toXBDtxP?^NgoaNSiov;>N_7-r9k}#e6{Y!p|ux0h8Ih(m%Er+hTl-ezhUi`cX zCU%26(rz?xTZ*Am$m91%AGnTc39mf&@*^uENlHb5kpSvYQ>_fd(UI**`0 zkAJHCZ(oGbUjg|4wh5uI$@^ULJ!~lc9pSe?q?wic{#X3&SC~KjlJOhg4|jeY7Iie+ zv%U`={}b@NE$RD7r_du2pW)cYue70~yf=D{xx;j|u4_Sy0~S6~3kkB-maQZYXWoeO z6w6Ru9;r}p7y#z>F`7r4BrOd_$#un5T{du4N9FJZE4yW2MYEnawyJp8{sEDDc7&Ar zAmCL}H%H%GI5KI!qJ=;Cn1xn7e?>#|0^AEicUFL#LgfWI3e28BA!zw75Xq{rFjK+q zV}Hh?rP7-VHkB}RX2ZL88y)-VD=(eHWx=*b&|oGb6F-zn2-1+YQ!ZFOfbJd`KYQ1G@$X1K_<8a7Zlc$J^P#@v z&8%ktz6U<@dG61#;M2xMIDzUd=`Xn(Q*VcFi z`%)|6!mNxB&=nvZEwrg+eZ4ESRm*EsTLjJPM)w6>iSS8Efb}Z73fOjd%JC^nT(!oQ zzECr+Me_v1aC$B_83Qh4143;dE@AfcXV&;bMc_AQwXPNrGCjYb)=A|KuxdNWsf zvis8G&!7HMP+b_-gE#-Gw zUiXXK7vHt_sV;LaSic4N?|*svU0>Fx-^>5%4B&URqms=eTlbmgm>-dpr_aPUM!-o= z%CFvv%Mb3orU(K&{nSTMo0W8PDx$3E#zMVm0vAWBWESLGTr$ltHPd0IP=)UgQA% zJCMBeLiuBV0d7A-1?JrK9wK~UuauvAEO_iTy#I5Jzj@;4O2GOeMEC!p`^`7>r@x2! z`}mywM(xgQV*ODNe*pc3Yy2Mu$v*wv8bG3g-{~u$%ha{v*jJyvnMUx&?XQTH{lpU; zj{hi?h1D`iQ0_=<$u=@K9_0f*Q*2w`=8#!QBr0@XmmPhIh9d)+94Q9dhK=u$!@IW8 zkcW)L?FB1=L)n#m;jyFUd9BRGNOkK9x8LsOZp9@5C}G)@XOtZ)u!$bsMXRPv<@_`3 zr%2RtT&ScN@8f7*RY_n;zGbVxu1W-4tlz5z%@HuBN-AaR;GXaJy=&d8 z*RPx>ZbEZvz72zb=}vo~xgZ2bN}pk1Qa=vKb6WaSpM_uf8JPV9!0&G8xZ`Viy!>My z^E!V}z4o^LkAOXjiD1&w_*w8j{eMM2^s;vEJDFemX8`v$ic;SW*MAtkyD9zKM6co0 z#xEhg-B~-GvQrDLTMXBG*^SdTzx0kFb#|VyIQVE;zIwTw`ci{SiaY(^Q}uSNT$9lj zU#&n6ippuKr-Vf^Yu@77F1M00u%ia5z=7`_{?7hiUwUcrfrE!vVUV;u1quDE@fz%S zMlnQAC<;keFG;FsT?O!UuxZ`~a}jI`*VlO;K|gwDd@t%X+AqI!6D=dqfJlom880*R zP;=a1n*j}<9YMeZ4!BQ1{MY5|mwo_#>Un_wa*gwII_2j+9X#GI-v4>^7lA(=QIhY2 z_$#;F=WoNGdBXg{A4jiaL-XExkNgwB{dxG-r`bQnOD~-MZbifyaJxZ)JQEH;gdoF9 zH=mEw>D#y7+%cO*x5<1o;!PnPS7PH&=E+PhiA}jvL0X3W=|HVit*xQ$!|np=B>fiQS7F31LB>B>uRz;im~h?CI{%so{;fjgS66k*h0RFR_c}( zc!d-PzMXM~8bK$gre>4Rm`ER}R0UztU{g1-oQJMpmNWHA6uKQdMTQ2bw}xPmfXG}V zYfd}wiN#&FR#=h2-QfqJ>-To9UAubGq#|Z4stSDp4Bt@joe>7~-k>i68aR{yF4ddd>ZY*W^F>o#Joagu7qb z0B=B$zl1LHw~{u^&pglkdy?|}nIckCvg>Ydni09(z4^z6B)s^_bMv(S_LshL{YF=_ znp;;zeA1c_{7DhS^7JYB8%sY6M#H`?+p;QdZMbex`NgClT$y%!$Og(#lQeY+mhZ4Q z*a<2w)f_7IXtl}xudq7OqSNzZwt!h+o(-p)%ZyKIh)s6n$YR>*sq~fB?XJ~`=Cz0# zFfdK}u-0HuR6wy`n<_j-LOAjqzr$^LbDkFQQv8oT^;K*7DBKCL{k{^Ot z_y+jTr zNs@UT>xbc)??69b%il#F&{H3z5u_4$y#e-y4LHsVk%Y$cPdDyN#&^E-_SK$kb=qjF zt9of7wIXwH0|PjAQ9y}6V3l55j>>Q}>MMe&>GD>641a-0bI6aGmd8X3#}WXS_!vPV}AOtmk|^0)-cicAak{jp0h#m?u5v}T%e zOvcEO61uH;uH>4aJg9_L&squX#t_AYkWPC#g08Vn!obw6rY2Z3Kn4%2x+l-P@|8!o z2JeSnalQBWjjN9>>s9d$=<(p$Fq*P$>>AtdKKuUAB0W5xhWKw-`A`2D_>~s`{w~1p zt!3A{)yKc4!illef9H?k=|!B~6L{9{w-nXmNTzcYCM_Uktu?-+V#>p9EraIqX=J2*Az z+$Bcib*-y=@oY48G|`rIVcR~(aFK;}pfbTl4O`DiMO5hd!{$h2By%}!5GU7kReN0T z%9($6xyz~(%6u*GSP%R-HaA`uUHRi&DHB5vxQ@A575I9TR$zgOVZhXYaj8$Xe1)De zDZX;|4p%u(^qv#c6_$QrW7OneY=GozI`%B30i}XR@Muv0?uQ`!bgTTI|5NzwKML^Y zS93)M=$}i!FAJ)FEc^qGf88BT?tJO?)vK*Wb30W=XT;iPIzGUWM%>1O z2>~QCs@ze7#2wCDm9tbs+=g6#xClVFBoG@s6}mRY;Qjw|_a0!9WLKH!3GZ!Y zMrL(ayJ>I7$$}g*2$_{MNXW2)Zx>eZSd2h;vqB5PzXf)IhZEw#N`T;jfG3Q^2P^{K zB81aSkLw=OJ#DJeXGVs}hz#@M-pI=G-DR>ev*v#FRdr=&MaGSL?>Xl`=09$|P-93< zpG;C#xYB-_VrXRvhOFyqj|x}9rB{>9GLrXD!DQm<7QjIRFCSt%EaC;66%3rGA$3{M zlH9{ZZ@sBy-HwwmR9RaUNzkVgDayIRItCb-0bwve^7we~AsX!2;lkn*{a89acS<@) z?!~N;mNTIi5>{qQDji_l4H?5wV%R;<|4wr7$}dWO^fYvT47Nl@Hec+xsT@qnNM^4yZ&J;)zKpi(1Tk%X3-jH~3`|ZVA&lD6! zWoHDl1j8UcN?S#={pL`@DqDYidRqDXmdQeI8Dp;#-SQa-e?sVg^a1$j&j9@4SnKbz z-Ed*>TFaULEc<&+!x__hJqi3%&)BD)VZY`T{6D^mxcvCuu+@JxocVI%ovQGbZ3R`D zFrdJ$)CAxa*j8%C!BXL1NnTj2UAwYaK2j05nF1}CycKgcHf5AgxcSXVoGNmv7jzbz zw$7-$K1~X=0Lw@&FL(0j^=O1bd>%p~@f~rHbgODtVKbD)@2y>&49(gevUB`#a^wa>EhCeaj+hx5Ii0`DgVfIPa9(r2=~4y>bi0s- zc1atMG7IFCd0go{ce?;e0~mn=iNt_VA3KonZ2#$nXEl*Ndh`;@?)jn=Sy)s+b96x- z0JDf2TW?SZok?fWa5P@TBTjC= z>tEpOz<&`48SLg|o_~<%c@7VTVMshEipu}7M|a8KXa$=ap+vr%(M)L$3Ih~@#Rr7X zJzw?p^@3giZ8sv^uCDeJRU~K?wW#w0A?FfJ4Bnu zl_E#3X`pc1i&K+8tA;_)+KpS+9p|>pmq>a>0u&L>9x6g69}}oc8`)5+W+E`WBy-VV z&}p~Qm}Z%&@d?<&dd&_*2Fe+dH$E-`uo5r!#Lx-bVkbpJ!|ay9$>{q4k8s5p3?2@{ z|1S(7tU>Sywr(y0YXQqwOmHPaHa68RV3jY@i;I znMou==n!nk16RXqvw_B^X<+6dc^Q+i=iv+IF#*?($A##%7o1nu!`k0SpIqdh+cW=Q z4BQhPH@xb-J?6sK5p{ppg@~D@@qRe>9_qhY!h0xA+~Q6}72Gfgp2dSOfICdjTFH_md0@%b*=ZZ`VJ^d*hIboMBa zQ)t7i5)heC51`aCQE4he<=o-xwZ5PL^KGR6!gBIo{tNW}6kylBHS(qD$@%`vp9}2Y zSAR9$3u8z6Jj9=W!hPX&_CGzq{mJWzg-6E38}{{Jy@C9G6$Mqc0b0>cM{QxNH$Ui?Udp2+Of ztB_uOw)^GJvS(i}{>fSJo&b1yM;Choz}txLJITBf_`=p@ON7i}NAC~VjshiSY{}me zPai*i#P@r*AALkB6v}huX{7Gg5zlTP6*4q5(1;yvXi}HVSV{*@qgqQOL6t;-*!!7y z!|14uY{~|4H>cS0V34p9K@w|XKqJvjv#Nna_n6epQVftnxlR*vW2{dGTLK`D59{o& ztVjlPu!LBnT_&$rL4|A_xcxTiI_2!4Iu_doyl&U^0>I``B6 z>m)e4N#lMH;Jxq_m*}q~_(R*;tRWJyo*a98T?d^WgP|wOaQ4InzuS1?u_wxG%w=v@xLzp$uJS2S-BWG?7z#fnBRR8Y^@9ghZD=+}8u7ZhU5o0aF4M=kSrpIl`dd ztyx`})CAz}ruWvXh9xMn3ah}X+Lg5qugP#3uN)i(qYIgR^0cGQ1(rl%r$%uf@zl}S z!QL`JZ2~O`IMBaw4%Ips9@n~y^?IYI8y7B|C1xywgt`C=(8%`fq9z#;a4oE(Hn>S% z0QzeQ|3!N8>mP*Aejecax48J}{2PMTxBS81aUW?;xLG(-xPJisQ=e|XYhHHFGJkXk z!vD3+YkVi1eI4~ZGLj#}O8TW}raIsW$q^Q-c zm3lIzh`TqGmr`U=64BIJUaZap`|L=k3`TIpUuqM%RBfNE_ng5*0xUreSB4P_ZZ`Vm zt#$KcBi4YbgHr;pCh$;`RfO$N0!UHMC|qP2+<}_kg)8l=;wA+ZFY8bf(6}bf=k#9sUvWTycY0mUaYcdn@E7= zjw^R=6S;SF_A8y4{ce&54kh`;vkKWZ05!jhx5#TeJ0k-q3W3;-)gDlN3i#rkV=QSL zU3sn+ME0C9cjoLtYF7Imp~fsUxD{|av=pcakRc0TW3or-B7`5NgI{?meC&S!d<^&1 z-Fy`OUHAgdE&e6{8*L+++64J4z+JiNoL&gudsg_Tw~`M(x-}o!8v!07zUMd!s+6`a zMlh>kqy;T4)A9v=4^!$9;xFi?sW&^Vhc7=lcVe!@@3rX8*(OYss{~NnEmm2%2}MB> z1*tc1>x+wuROF@cXZ8-TxK{G4-GPb3wY1}BPiVksn$-d~?bR~T%`3`o(zmG5_DQM9 zxir?Jj1>WvrJOHpe84g@7{K!XO`I8QG>p6(76mKVo(Hp*Rh4as`XGB~1MS(Cb(BSI zCXlT&YZb$H0bQAq-PS;C15Z+*m2r&4xO?h$8ehNFaC(jT%G~_ir5T)>MnEJ%tq*Fg zz?*%byEspVT(2NAxk|qVJlaZs_apGR-vjuit(gq33g5(e%0E#5T9Y4{w4)M-Ss?!W z<<7gF5zoAu`y2)J|GniRoO59QFg#??Z-#9KRbu3;^M%Aws|E_H?1e_6C^%r1<_e{o z&70RBsoit2B2TE&4>v;2Hopro0}eY5rdUejw4|arZmm;iELkDNy)qf>VU-HzDeUju zB~}0_RwYOE`c7SJ2@H=x%VuJKLj690`PWe2MRR9iJDugbNSfK@)&R&7Si~e;iP<(R8D>dSYtJk` z?k}D^Tc+tf@&ZKoz?QOE1{`#Fl&?GH36ctUd6ibiX?`xHfpt;(x({Q~ zq$Ws-BJ~tMaO-lDr}&+KmL;!;kIbbWz$E>Jn=^wgvl#bR!WHxtE_aF?Wsgk~tBlZz zu&hJ`T%cymh)B(zTGIp4aZSec3XEWs(S4#|9=Anap(Q@4XVDZ@m*` zF#9FRg_3{Yqv_|bsE-V$=&8(RVtm5$Uht{zmled$OPN3ELh`qFGjhHKUj8QX-5|Vp zyUsS;pUyXX1JWzN+#XMxpx}@-f2b5(`$DzB-#l>qFiY?0v2t_9RH%a^LLlrYEppQn zrb?D74eC9cu7fP=j4=U@p*<=vbedY5)Lg%hJgS@dGB->+F!p3syHQam?|kZe%9 z@;i|J(5l*%J6vJR`Y${BE<`~jC!LBJ0aeb$TFyY9Ewt?A{a5nZ?nyO_AFJp_;qeZj z&V8)9lItvty<0bKxpr{+^kIfO2>WWFF2DlRvz=VkMI!{Zi(lJ7VsQd6F9H9Tl<0Tf z4!@n9+8+fNMNjSFM&O6(^a?&-fCyyqU_(RY%M{4;p#t65$T z=f0JAh+|%k;%7Sus$^)^P$%x?C28x#yqONJK3=2a#Y1OK^JBgPOq!44DyYk4pM&xq zo-joyC_>co?6j7ulFmqD*hYC569Od>aa*Y{+@?qn29jX&euzZ3N|^k%Ho%gS?W21P zCVnnfVvQB)T^N!iLxch=qbo@p(o(Knf~|PM_HL&PJ9-TREX%blQyjqny8Q@zza+Xu zNd>|}fR6+r$!}M{doi4D{l<>W6XU$A*l8+d8d4d2OYKz}><50umI{qGR{DZp>811eT>@0a)&9~m@0D||Gb zkvN+8PZ0l8(|_>Oga3F=_=|TD&wUzOE$f|n=Ro@qyraN=6>##l!a*^1+=^+fxX6R1 z!sOVv3GV2m1q5o5$EE1_aZF$YrQIE|=FO9fqI z#xs|}kTNPl0@9T>p;g-UU=jU~s7hi>3ZPflyE37&tFFAh>B`ctSbcnA39hW@yRzZ? z_r#-=Ky8pxoxU#j7 z9|dW~CWzt!|2*jb^B0`2`~v5EIs3;ofPYxwWi(Jju~)p6d?yGm*{&_?qJ!w0PM316 zJrAmEEDBiq^x0!QzkBQPNAz;BP%Mp=*}Q=caVn!UH=J^^mli8S(uQiKYUs3^)sQqq zmECoYfiny{J223P5^1b9RROqEF4e>?+p_screy}`O``T|LM!P~bbRT>pGnh?ZI)v^ zE`^er15PJ_$f+;^l=(aKdCa@y3K~wFK}jp6@%CPvBx0%SptiwHqH4XXigoki1sO=# z=Yzmnwx?&Jo3)xnP;6j>%@&9kf&LosACTjZe~)+gYS{ju_=l0$o%J~)ufU%s!RgPm zUvyMG@NVi~TiGhYxepL;nMs1x-pm>?X%oH%{aZ+MSgeY9xk zmD2p~u%kC532H*mfRLJ`IY<+)3HD{HXs!C-Z@a>9yQjwl zInm_?^w@S?a#cpWOQ!*D=+o(=gBMN%qKtmcK?nZs4Dm>Pb#$edM^{Ge?h|{9sm6OW z26<#98HH7*kYtsuneRd1cp~LlMHUEief@)iA04FvHLTc_@Cyp;w~?W(t_ZRVG}7AH zOj|vNUs$-skkRS$7bybv??8!R0@x@qOyF1oa z;F9XopWrWp_UP=+F*Co|-vaOcKNx)NeZu93$j|)^b{Jm*<@?}WCHB4B4XPyA-NHk? zw8(){f$6q5RRm2wf3aF?KX&=4QmI%f7sqkc7P9qYD*M^ifu<&NXbE5yqohFG@$FtM zmL-#u$Q|E5E?4LwspIWcsxg5mXw<-v-M9!Ox|}zEV;J=x(m-$JyxbpmXFZ}v(*yB z{V)`q7`DiO+Ec|$A+uGy=hvhBh>p7C(Zv1%gZYh@NPqmZ0KW?Gg?%wc?nz*uyk>u? zOTF`(g~b!x*HirV4ErA9Cvr+1pGb>PBxh^kg`#+&c%j*{FF*OHIX{0u-C044jd!|) z@^ywM2hr6 z=#c{~yU+CZrfx_QItDl%U+8hDF$<>H+3-1_`ukVM-hUI~KlyRH@GtD6|5JTzA1MFq z4&{G^;0ym|zy9C&hrW`3jZMegx->~ypqoeBhOSZAL{SGr5MWet(>X31bXBnL~OF-VDS$kDc?Q$THll{hc| zuvt*Ok+UM1wZ_DE0%-|&w-%piH?6|Kdrp`R&81$hc}yHS(w`rQC7VNqMq!qEhb_5f z+;oOppQRg778hlK=WasQxX$&##Cx&+L#0_-5_)7e_Ca2JZrv zXi+H%guI1)h%qT@fTV=P=`7NMpdmz8a`$>aB%a-4^I`N5li{L4KGH3;Q((dd*l$ z3?sB!fh+hx)i!C&VnZ(sPs`zhn)Vy7Cmy>1@B;wX_lK`80q)Pf(ZBDNov)Kh=URM) zBe&sp&+SYK8l?pW)CyE)Y<3g@R>3M5dgGbe<^HV;=jMUjuA?o%ENTTv=u8iGi%9t~ z)0z#b$(AaIjc$wX(TbwcTT6_N@hq^C?1O7etj!ZD5~k!pm0DaoxY6SKbV_cX47LWY zj5l1L30k`cQQx+hfGDv$%eAI*t)~MyB*jtj{#Rz)&<~@eR%_brMfuQydk>wPZ5ttW&|7%9{@wdQl zXDaOf*=bL$$&A+myo>nmgmh7VzI+X)Dn`^y{1l?@7fk~23#iA-k&0dGB5wdb84iyg{ zLmF991UR^oWa2)+OmuU!JW%Df+DRL6kubm*?wP?b(t{fb+S6l;8Uc+F^vJNO8jpRTfJh&FKa#_)R){FNxUC(<<1HCT zzzsRf@?x8P16SfWsnr{`YE?OU=y>IvPZ3cJEQ)5SOMcSliQ3EddPzWqI&M=iIS!OA zp4vzTdQsqX+e)gcnX#VzNA!*0Upkn4+fM@g6~Hgg{QQmsd@H>1obnBXS%Hox^sByZ z)JWFc0^0Y{F77MPWfzMuH@j_4fg;)RiTP3*Km6!zfodH&eu!nauB@9#=y?!(sCk7j z{hdt!ThfYA6573b+T{ub74BG=nqXg@K2+rfQi79J;TgCqq=IK?H=SGItv(g3gDb0* z(57%@2Z#lw1VqqrB0g|*J)jh0mq~D1UKUvxm9FFxZ$^t)q7-i5TI{>+O1U_H;NtqZ zbR=ZVQ*9E_LJd>A_nFu14%pISVbK89mPM#TSZ#PbD_cc%t)-6Y?<)}eXXsbH6h8h! zsAY2dGqX3LY=Pbn_r8ewPKi4K%#wJP83@aq?Q?X?)}%i0>qEcGL6x=ydTBrPPoQb~ z#F5PAv>v@ zXybx!AT>O_^+KW>^rQ%lw87L!ja9P!<}mB;egh627N^guDE6XWpk$Zmp26} zN!qA4o2}Yh*}C`Mq5eaYpukg6OBOIRtjP!aF1>AY^ALqu21RK4WTCEu=>pZm)P1d< zErfJQtq{zLvmv}3f+=9V3-HXW&g`3keFgc`1@|A^130hN+6)b{c?{d^pJ&%>Ck2pnf z6={Y#CD9qA)T~JB*BW)66nRxk%Mmh-EbDW*ouGL5p#g074URAi<^n*d`dx(U1~W-yyKe)_qqgI;{_ z(3~=Vc2migJtY~00Z2^>3Oe2;#Qtgsc4yIDq53_lS8FN>%@<1@n%J~bloNpd_uySL zl0Wz!_|$^{KQ>EK`BH%Q5Z`}TIZZ-e$6hMoVyS}IqExtKMMS>W-J1`hDEh;4}26nCYl{^zV$;)ntr8@kXExQkH z-d?oZZn;uAclO+x|3hV`H29h3%M3h22ijY%6?pU>EAPNSg88&1&QO!3w#w9RIAm`Qj+u~7|8-X=A6 zU5%fQc4=Tjn_et}OwU{b*qsMQ$)`@9^BVS}PhPh)&N_Ht6G#?g)NN(DK8e6qkp7=N zO-}=F75O0Ye7n|3Ny}W@av{$vAds*op+ioZZgPzlK%j*%NU1F)^`wbFOFu;+`c-hH z3F%z^C&^~DD|ZGh*<5=)2!nnJ9MYm-4|pFkjp8vNx_FyVdG&oTBUXMt99((wdUii2 zkDU?aB`VOr>#2^%`#-3Ia~@=2Q$zmN5yl@*06mxp-d@#Vh5^vG*h z*eG_N{qg!sPt2Q=sg9Hb!d)S=b_Z9o2}CipoQUi9RC7Sn1=N>rJhldIK*odI%PThN zrG7Ru<`;cpYZhIK>{a#|P+2*|qI#jI);rFlm#-C!LgnBZ^CcK^{<@IF&{dJI zZic;*94&ID0C8HYRaxK_Q=xF5mYf+yKtjbv9g*p&&SC}hU{XQ@zAnhnZ-9Rj$>=en2bD_qh z;iZd5ww1KFEBWb!-+NMjgMdWS2P-0ktP`jci)4*)T7=}YjnGNxuA$-lT zyv zYWQeRlBmZlOCZ~Bx>YN~gPyGPYW?M?rG2mlt^~Ppos7O#C4=pCZ?DZp?&*@*5oJqZ zH*WssAd`C$!?wzqjMKESmptW#HnD_xjfa`gZJ3!zX3+0ny|IuC`bRHZJh+7{j0~DY zB%*mmbSy@;v(x>^^|{ID#m#WFWKQ3Uk zcV((mI0NwQ@Wvy|`)RIlm#v)Lyu}kPD=l_;%Wabe<_Hf8(59$TqFb2DqP(iP( z1W-065Z6_(Q7>yi4NF&YO8V*eLv63Qc(clL!ihr_n%fBz(sFnl)#T)erN0lu;|Zi) zw-@yKMQM(nTW!i$NYsL()?zKf0;98(4Yv_c;DNap`oFCXe*M+(TO4*a{mW!0@=_F3 z`RW%j??BBTw2i3}Rc3NO;iSYJagP^+#J6$PhLg7aB`t|3!CytxE53vYs z5sLeAIy@=Umh6SSpi^^6znC7`64Bel#}b_~E)j~S)1QhOxMtRCL5v3CpsTOXbq zE>v$MDS7Tlg=B@TKSdg+b9V}$*R#jQV?^%m^E#GZ8n|{_4GX2YC4ZbI!Xi%?O^GXH zh^2~m2)W^I6ck{-3j9-tl5hGcY?b|A)0o03WyjXec$_+Al?)b68tdOA7*M(4oK0BRey}K9;aHhcx;$WdyWjZnx zVj$H~t^L%-Mn&`eQDlCEoRR1jQ1{^!35*P=M0YKneELBgW|?ID{Z|0I1-|1T^LpTnZN~=*Xjm)* z?A*VE8BnPm$c{Q`JwIABtUQC~PaTSr?$g&ECF9CmL0~1;WB0F5azJsWUWT|`Yxl*F zkxIhUl0i11iwuU^B|_jNTJ6C@FAn`*$%Z5_1VJPz^!gC>-2&+{WtjkD@@$`Z?y)C= z=;XSF#aeL^qC0y^^;)ahsLhwPgO@IhYjtH@PU)AxMB#BBpYnZ?(CZECUZ-ym3cH^8 zYdsFJSa2%fwm69>fziej+}Qf!IG`T_|BM;`;eUYNKL+r_dpwa>B3b>l_cLz;er~%$ zwu(%hYOy6FK8@U|RG=WJaEska!EG@niCh=Y6VctqN?0M?ChEGmP3a z7&$5=`5~dl1UV(q3btF97Zz2@JaXz@c6Uc4*W0!Q>LQLr2m($`-$$X^--WND7YQEXTtpq_<^<9fD%)q4B`1ym4t^)k;17XFX=CMSDw8N#pu$J zv-@)*!I0c30*bceiXSD z-TKVz*@%F40gOyw7kMCNJfYV~eAn%X1G#KkTNQCbS{oCp0a0$7ICq)c%%O?8qo0NF zIN9f42_HWX@KXT)yf<_CDR{wo;yt|hGN7pK232|)0t;PeSzr>Ys*bW9S<#>snPDR+ z$W2C2fY|R`)hG=UA|`Etk16*v3*-2ydpf<~nd`R&lAph4j@&oJI;|mAago{7p>iXM zC4_Q;_anE_s!EJ5s@!x@X1pxZLKsLeEd;gR^R)z2GSJ}+;Ywqp=*q%UW#q7nWMbc; z3Gsx-Fe)GA%q?(-FnxB5y#V@N%*S0zPk^3I_G6By1{yHK24ph6;YqYiMn$f*W}{If zisro+&W%x#XFH}^fpVtEeFB8yK0z!o44j~swv!^OlGfcoYqmVP2#X>ZHIWlUP^vhN zL~QD-dl7gaIhg$3`{2{(abuR-dp41;1b8ES&jIdDDEn)h(mO!`$&`Xl8M*ArLtmZ9 zfoMTJu((A}F4RayeZF*Q=%EdpuwX-YK)h%E0q#UeX->`2M-=ScvjfE>S;PpNGO4x z9sY7Yu^CM04HK{DIDDTg%SBMOzo`|>DY8g_vS>;uF>Dd98oeRB;aDKPi45Op#b5U$ z;QsBn>+fF$@GZm->g;QP6}M}c*3ceYsI*kXfwx(vu9;2C;+nk@+3p%j2bkhMV9(lE zG2t!(F_YTRv5?g?vg&k&)0Jbre(SMEFN+7u_vj`N)ND^@Fr?s1P*Bz>g1pjnAOu<# zO0pZ+)t0SO8fQ$6{9-8D0C!t;XP_2polePc%k^b2f(6!ExRR_YwOm`ePG+Bt?LH z9|R|;;J%l`PaH?J?#$I5+R6o47m3U^-g7Fw*7gD&(mU`dR?WJ!N3F87Uurm)NLpQV z_S|L0R+-mjJ`MV<)?&h|vYa8+IWd>*zZAWm z`p>4~18K@espp20KS&B(!#beQyoF=+%b+2|BI1e7jhTqDT_&3KybNrL=;C=K5X|4kF_Rge-1hs30J)$*-)aqSTRzZOv z(iXd#4ox0$@b9m5*BHw;6$WgERl0?Z`+_OFdEtWT-)=s9>+11&Rnia4>U1J(o~k)> zV_Zbj+Xz8QoGNi(hwWa~VI^6W*a_RIgJu2BLP|`TF>u3>{~1|tBEt${1Blnl0n zY1S65OtE|gM!mZRqbQcPGOM`R%haK5@BxLqNBWE;bn3ZZPRtX*sJ*M*Ow+j5zEQpH z&0EH~a~Jni*OxO;q(UXLM6!p>%@+09is43fzvn5j!j{dQhy#=uCc=UT#-hce#IPFn z)oomV&&$BP1H7XLl5hAeT*3JpE25XX9Pb5q6MV4De<`s1b|-=vH4-ZAmTJUuP-Xqd zcBo*Iolxu8fys4gncJUi3OR#_34Jo@fn5NOT#go@qB5m&>3pSmz5e9Q$LGsMNuTl9 zU|twaAUT(9Xl|Y0AUM8|8AYD!)H*eV&;@fMnrF2_h|-isIbZ3uO!LJlIw8HKcXsn+ z$`mQZH2q`(Z|{U4hlHuNO)C_YgDEwO+bmBmLX`A=u4D+TB?r5&NA3FTgg@Uk!(D&9Ig-!t$1E{nMptrC~UfED| zXD+~la4V40P zqk>-#WTnOk`z5V6Z-iCMghdqHy}62Tpm6Cx;ri{)v$vl(Y#mXHGg#2l9d(3E)Vy)b z9frypX*mjfx7KJ$vMvdeOKS*+%H2jsWfsD$YaqrF=t!3GyjIy#tKrIDK=MG2X}p!C z_G>OZdG8mKcehtZ>?R~4=8Xm4i^9OMlz>q58KgbQM5il&qtq2YEJM+b|! zi&cU;C$o?ixTednO;1&7z!vvg9VaR%&ag@vB4!9_6Zd4{NJ)!|w`z^s3s=f>M^$|` z`%%PrO(?(_u&#WEiak-1voB}RsV(+&NoJKjHiK6ymqD7c=)3#LlmS0Pj=Sy(D-3l? zPNA1VL_^w0OT|I`A{zS+S4Z0EKMcnONv4TjlLJazIZj%B{w=+fVu@PMx4 zmTK#5z)@FhiS#+S){`WsA(_HHX|t1)w3Z+sGOW^8?-F38Y2wI%QdlwSx3AYb#PN9x z=$V@4QeS6`zEcG`#O|j5WJZ@Oai{O}YK|gltTd*xc!$0#nZ{UdD2xFXnIL7Du7)d_ z_MlQ!jUe$UA)vp&*N8UjyF$!Hagm+}j#VJ-oK9IA)&y@e?XKDBR~Mh6730GBW8}1r zNFIOHWUzYKp&?PX!eO4<1fO}@1vji_yHrt&r9JeBpv15;RNGwHD}mm`3%9YIfO_d3 zgYf;}ldpl_d=TKj1N?97hra6&0loP03WJluW}Qf0zzTuWMnxErDMM_|sx~D-u03OA=jHx1)5K_C_f<9GLOQbUHroS3a3|sUGyZKxh}he4IVh&xQn1d-WEAWxuy zGYD@`YF1rMuhN_}+n^=Do)#-_-rZ8SnheU4^uhV#zSn>F>3V^0Ta`l$Hw)8AaXJ-- zCpPkNpgvAp{8LKjwSgyZLxLs&F)UqC@X~Cx6-?8udIRZ~SPS0;gwvRO$6R70?;1pbfL`(-GevCZjV!UM+)a8DJJ7*BG7Oo6PC?Lon*^-ZM;f;nUD zSzIKe6E)j$Hjiw%!j7&&)5Mue$D&~H$c-meN|-x#bb29j9}77S+0=dLtNAZGux?dO zO|97WdTt|-_m3l2o2q&RA#SK zAgaF?pesOH7kQQ^v^+;d+)N}WCn5L_=)d?9{P>SU_g4V^Y6~B70^rSX=-*L4LU8AH zrevCsQc2tLNa&YgH(V1W?#;@TCA%ZhZC5qxz!qjQH!N>jkMv)_Lx)4N-j-!3i2S9~ zhcW~InHvvFdbv_8(o;4qmrC*+^s`H&6Gd!m=_o@oA}MiuwW!N!1&todf!wIho=np? zZ@ZEZFi4T#JY5f0o`v)x^ive@L%?P=McC+?vk6*I_Aw0_m3Lwxm*VAjR`p5yM*Wso zv*e>^FIvP*w(~0k)Kw^Eh$W>#$a{pzduiG_N#FB&q9>ND@QhzWf0q(oNZGs zoAaiPS+ZB@!w~!#1i$iX_|+o-9|8E>MsLi(>$k#7A0*x8X;O)}WOmob|6K7q|d+xDEj6$JM zE=>cQ^@pydHVkkB6L~jVmC{5#7QuDuc9k|vgBt66>|r#ehjv5@c8C?nj#W0PwqLHZ z_wEE&S}0OCf-7r4%XG7i#r)QDY7-_GFMXK#LE%l@Wk8EZwVV9bJF#R>yw&Y3+`J_w z>fE{00yRTcqlys=qJ|tImJSA$6N&kx?WjL!I0~()6=M<~n4wI&1YVysy9OaSK;H?T zaXc`u1Gi!&Kly#|_=C7N%M+Vl`wdY1YIt**{W{=xLKT8Y@gOKf9lDK!Dr2F(%1)Po zLdMc!ODGaeT4!+*|Li!52Us5H2&)JXusc`$nxtwcF4?vAwMU*R9Fh!eeo865{?ILh zWpM`w$9D9%X&^Pl8Yly&RgDtKFnNj`UwRnU0@;D*($qy^5;65X;1h6~t6F;108TEE z<0~n+X+z}2G)!^GFZKOM}7YOXTm!0I*6N#t*2bsX*zC=GW;ebM zynBzskA5%Q{uh7`ub@s*QKqi=I{3gm`zjFh9UO2ULNT!UZV8M%!?Fwk6$JvxtS$z+ z+T{cq2yLp{t%Y=D$fA&via68875J4z@%WjGwT}JR<(uWQSunK;p1bZa)>?(6j8xG$ z9&vW}s$7cX$nI1J1JN`UdK?pqus$d9EuPZA&4v_OnGcq%8W@8NRyAE&1y|x6uGph| zFgr=qHRNEkpg%IxjHB`&fISD(>KVT+^8xoD<3ViXH!E$i6HBYzTddwRRr$jC(^F<~ z*&MNSImG|NqMQO9D0lCBC;PE$JB~3B*h*>Ala2Yz4kMI~BFZ7~y*nV5Y_CceA^24? z{Ixg0pWYAE9|gF)?p^0m=i>)nO?`mk&g?j-LMQFAOG3E2pvs2ITfn?wjj+Vj`l{L` zcpeCG2KJqe#g&eltMJfg0Bb;$zsH~|RLc-8qrPB2eEagT@^PgwVX2ZA4@$WnjEt={ z#Jw}#WOTC(so$veC^A-+0>y8Cb8J+&f(XHq1cz3LG=awu{a5}4@ad&DXNKMv!P4uf zilv%Thtk1_`-RDaGb=AXgE1Bfi!)LMc1SBN;n?`9y%9oKd(Lk47tfUE*@LHHKaAXn zcN9dBARxO-$A|^Shgf1r8g2(Xx-6MsQPW>XQGL465$zpO@| zc@_Lz_MT4x`~xbfm)-`ixu1L|NN2ViYevNS5L2nEwPK1YfVKBKog=}jaGf6K*7}B8 zBLs6wVU`BspbN;vho*`$*2XJX2@=YtS~A6YqyF%7&mFOjXp*w`#u5%vWV@h`%mRPR zK3W=RLoWmLTlE^yq^6kE?mBD*L(SqLC%HdM)Sqi;!LW814B^VHRsOG4aAg7Kqa^7N zuEg=wh8-D*mc^{Kq@O`n2NtBQ@dpzdOXy-Y_ZP}dJ9{X z>Sl;V;DP=|2wqu+b;m&lUgwPB{D!@#Zr7?@`mq?XNL@&VdnjXd4Gr_Ab0z zWWg`(aHIC@b60}n#}4w$#L5x9 z;Vx<*DdED{CPfIvvJj_H(`j*CN-5}D4YX|NpTaK&Y09IHD;~-S3lVm~{Z&@07Fbcf zk|`81P3<%lXlan2GO;~vvHd)A5-V03$Wh? z$^&Du21WHb`Vz0(E)ffA?B>@32Q1zoN;8uUhnPoLXqJKNu*yIK(ZMo|-R#ZM91PwI zKKDiGAKeRAKLz)_g?z8Ty=n(f$3s?1U+KGSR|Hd?T+$Mvd{khdWTKnX+!kjh1Zhq% zLXK-GGjk`yDt+kcuy-lNB+%vJTv?gBS-si1akG5nxG3yh2mvdgOkE5xbEC9-*V1NI zqgmpUC~DdrW&ny|Qad`C(ehL8qjWrPLJ2TiLMfwPM_40{Zw=u}ih?K`CxhKuUAwX} zIx{=bm0ZH2JSt(tuqAIjv1;mOJ*rtLjFg>*GbYyX_@$j^7H$sgl01L<;yelaqX~C5 zlaPZh3#hC^<*_^*Z&^_Uq3w3*K3$Q^(H>Jb zpeBF(`t+ms;v&xM7`_W$^HS<-DgM;XTwW-s0#2cqkb^Q(1ADzuP?$v}{ZLu#i6yp1 z$?`OOG&u7c84MiMQRh2uZ%+Op>sVsO&py47kP9adpW6G_c@Jw40!cEI-3{YTZ=?v? zQVNk0Hrq8mlw?cVHYQl%1+9i7rUK)81}Z43p(yCHbF6#dS-*!Q7MW81X0aZi<)PaUHL zByB=@8aq8Zt7Vly?O7U$!Zm4?17ZRkMFIXQL66An$*zXB)Sf2;axi~*-jCDjv(NU! z_{6D`^!SfvjF*+o#dhDsPRTu-5=qk~(~Mxy>el%dFIx(+&BwUJ-GYy`4KPz}lGlV* zFx=>^tX;XhAzaCAf!KvOUR7#8OeI@!>FG|7%($_nORvQQ1Raq!ZMc4 z`ayc7emiP(^;3r~FbDQsZ*kOChCm*aCB)*739*FPb$ad815Gk%)V+5$=8LEzIp~x@ zXbB?6frR^hY_e>qczqtiuc7)cI+*^%PXLt?Z{@i!2bSAerAixuV(iil9u#Gwbc6y6 zf=SiAGTU%8wE?U?!32Y3DZ`$JD(ZR1!ye)YlBSNIo)5$5;Tw;rlzHH2c53&?E1Cl^ z2KnkDaOAynz0kmx3@ZSyQLhV>Dw}tEd>auNx6@QZRVx{05z@fVzNHQZB*{i_CHWml ze`p9-WL#`7iTRK01r?Wq=rDUk#_Jv&&gKaPnEWLq59V;Cw_$W;7T70;P=y%v8fIZ88gy<|H~0bwHh%VWcK1mL ze*KwNBk7$j&#?y%?q9XXVgFTE11(c_s(=y8`tZ@VRA4i*$+oXZ1;%1$F49C{{Mj?1 z?vRCcku(~3D{ktzVtHU*0N&3djKWzv4XR`x+pX9sgeq9{be>5`ggz@*dxGqAB-Bk^ z+Izfd*l$(1 zHEZ2ly#*=Ik6k!TqixXJO8w!!7%E0As2@WQ2!+SZ4(%<+SiIP`TRka~O6BtYXfB&g zufQN@liy`zw@jIBARO4F3kb0jyM7TOIqg|38fYELv++<+dlnuBjIihmhTGzb)DBt+ zZDDk=S+67h7YRZJO4FDuP15I1-`jM&tCw%7s(fI6EM0yYkk1Bpg-5i36J9`}R1o^9 zQ?J!TMwg7cqcCsiGIkJFY0dy4*cz;|KDv@*swEGtJcG32Dj(t+?Xn^t>{nJIo|#fF z)XFTd;W141i(<&L*uvbg=m%GBJ#*vXE7}3=-VlA2uSHG0$^oN8 zk)Gx=;c2i8DwPY(MJfuLORQFVid8i5QC>kCC%;WH`%@5wittZkqB)9k?j1t3Sjp*G8FOz10`# ztjY)bnH0xVJRE09>|Cdy%JmIDYo^AndhhYekJyY~IDBgEbcMEwrK9hxE7;k`h(%^m zcsxZYjKi|rzS|%5lYZ50#H~Taw3In%e_)l7C`KU_4cZz+Ed#Z4MqK>6UriTb6}RHs za$N#V0d2+}3PV9f1y45{i(KG$S62t@e%MGhM|vjE0ucgc%B}GVvUujgQ9&m!Uww4J zZtl)dY!0!Ci>BD6C*h^rQ1=pY$+AH48r6EwxzmOnEbr$8Qg-H!=Sr-y0h#bmcGpMy*#?CWFCj zVuV?;@yWcHK3(FLTDfua#`Y@%EP&Ng_AyJUgd3G1&f3UsuG+lbtObWG>EMNnu+%>S z^^P27OXckP`y;S_cSAOt2~OzMvxQVRpwrDsQ^M4DoF3(KWzm2VwO^+!V9!fa1IA^w zlmMZQQ+?Q-?w1BcLSk219I(bD=)ZP63>u;e@7S#Cd8XC?+8oCjL_|mk>pIZVfudkG z{I7(e77V%2UT8dd`^v%cA=%i$fenUX?*yR$Tbg=18;RD%GW7e6MwO6MQ4oX;Ri`@q zDdkFZwt&j$*VQb>e?2N(X|DdORU0(PQxgUoz?C)mU{jwhokv#0kpqatsd@WgxNiT6 zr=D#u-lR?*yL8V{c9>gYVUzTEGB_M_>`D-&x$mZoqo{Y?Hhwgyc57ZUt*{nb;`Y;& zGkt9kNYm9>i0dW9F^>$Jc-I#mAS2LMqPkv{kT0-E%~qfZwP!JbDJzS;Le$Q1X?@&S zC5E&BEfOMV$Wty8MC3xo-1&RX*e$qn`7z(y&H4^00?`3sz-Ev#oRZZiiejl`4!E$< zY6ZQ)s)M>h+Pi6r{0Arv42M>@C7qB1l4K)huw;oDYy?+09AHW41ku!>iw~pZvlUbc z(^~!Z6OUcy6YKn$<7(mHXagv?cO+V>>}Vppmc;JX=gG(sOGnR{_Ia#nYpWMFfTZp> zy?Ut9CC$qX0|J96z%T`J~rR7p^?co7(9k2MLDF?ix{PC8MyAG;TJnDGw8%l}T+EXf(kB zrUTVCG06rHwcV!BXUb9uG-AI_In(q44=o0`9o)cP80Vyum~8)NV{i1+Zq7 zCvHW1mNHX~6{(u(z;UE&+<{aY z`oBg2mWWCdFG-EO5;DS?hk_X(GWMgmdZXs09ZR1-bM64Kkz*n|&w-44<7QBW5{B*n z_5+{(HV{jOL)t*I0>}dPL16a5LEG<sp*V70I`El=vKlk zF;Z;Yl1JDAfFNyP_z@zBvnp;s($%kxPFzcLz*%!>t~A#6h+GR-766WCTQ3=rgI!4ybA507S+N;%?I^A^@|oF`2!5~r zR4qHj^gWj@&?_E2x_2JrS`JrOjNrpPXe~Uofx0D2pg0*~AwV>+*GgQi*JFqqy*lgD zCD9^G0*HM+fxKXxeCH6o{UaQdB!Ho0D0`lsW|Fizg%T?d%kiWw%W=o_tjyU)quFP(hoLm z;7O`NAr|7U+aQ{ZBH zVzEt7d|;4z%|v&#Z$l>oDhg{c&zE_w9@$Q0NobdVa2UgtL2|GhzBBWpgJOf7f}409MU0!s$LMbLTXSrNAB77Rm>|01fTR{h6#*u6`vBSrYcZ2ZR$E&Pt zADt@$OWhHxn8TmO=$F~^8D>DmO!%bZH;6hTDF#3E7iN~cFr(?J8--SG4{5<1gjIq& zz?B<$GT5+92xwHE3?+D{Ynp#00DZGeu4g%x&>$e>0#!5S`Tvt2qSejG!QT?2^c}Rx4Uoc zSzA_a!PT9lFQl(>Gjn<{BFIR_#&BoOLEOx!xEUnP-0Yn5o#i_h!4!u-ZfXNlnmrj8 zw^6mlU01(DIOo*{!2@wbL$`yUSXeR+Bwp&TMo~}gqu9kUnZV)*vO3HYP)|%&k3g8< zD$+e4tBW?nSLX{h?I8xd2AziD1_}}^Tk2q*n0{gQuU9cUM!%IX#bF6$$k_Vk92r*l z@T>Rci|p%PpBh}d|M(&EX3R1#30ew2zFYBP*2$VPrer6rXy^>tOpq0cA!o3fokF@+ zuw58elU1^fk@iH+4YtqoZ?o(_C$B-D=Wda(@wuN4mdp!&c{QY#(FdPD;kmu^kb<8g z-2rw)0!IBwHzwXeZZ3Xj_vr+r{&yjDEt z09Y}7@hx^E-b}Z0fB2k zeWa?;Un!ru;ryrXzP27(9jy!0F2`=|)Gp9nck0yscn-8sY)|hdX)qm*GlnrVB_q7W zVV?8&Pb`CStniMq_o~~Tj2_-huy}bcNqIiWv7^_*y)o*6qhPaT^z!NR%xr!7(F2aT zS|+fKpP|+!Au<}P?ixSO>&QZig7HkDM57~6oXBIf)i0!c#sG9 z;fm+o^hog*T-d+EVeN;PHVtu~@l$It@H^TG2+D5I;$e@=gaHD0q1Z^UE=l@VAL!mR z{QjG-d%gEfv%T>w{nP37O9<7bRO%4F;Gzz&q9tk}~$3!i#OHdm+1!5m2IRnEU6h{?>QK0N8PwCV##y&@P5Z0!TYwg7$ z)|okP;GG3k%D$dM5-IyZ+`sI31)ezx>g9fCde{J zD%yf(FwcTle$o|mF;=Nt1m#@v<7_clRHBckTX>4jXIJnfwz3#3P5)(<{ny0{q-lDt z9;`kqCsfAhhRyH0gepv44qwjw#e;V~fAHDW0BwPUM=W${Qq{)b@Rffw{Fvlqir{;` zH%L_`=(KIn&{!__n93)13F@L&VU~b0(m5pt@dRhj&ZSv~kV&hlG7~}X9#8jDpWL7)(TluqPF60|y9xGgy(!rwSq*x)( zIf@GJd^v@UdpR9=W4WdO;p4Av2o`zlz4{`^4n|v48~X}zldE~dEcWLPvlMz}uT(^+ zpjSkUDeVCTJr$>uj?6r5m*SB!Z5YU)O;kb4fIEQ#y)3(PkBT%fcsSzPxI%UJHE@!) zvk=X2!fP!kll_>l8Qoa1_`AR=0>BYO9Si5nw%)Zn>B;la@AGH9Cmo@M`2gpTm?#LL zHe(&DQz8HsX{UN-LeEu#5r~1m`4g$_N`KlCvp)}4mZTmmZNTW2N<@;4mn)8V1r9sD zbD2c1e;kMH`MbRj9t!VW??sA_zifj*9udc5dmtW5;3k6AVlfw1Qor3t=L)rQSZ(Z~ z)@RV_-GXY9g{ckHoHNosNDk2c8ma}z#aY;^B^7oMWIet%RHn55xJEa*a$EIHlC^P3LCiRiJW+NJfg+f%G8kYFZ(c2c;p(%XYr zinG|GVAjbzcVsb2ntEeqsdhyLj+1ZToEXLW4aQk^{oztqCzK#zMQuSq6;^9z9|=}D z6^iLU?uD7~`kCXUKYrf+gzcapesg@3sC*ze6zta$WnDUS<^L)>=eLb7-PXH;xm+^6 zgew*9soUt4%{3G#D`$YBH-C1B(PJqD-~RNo2Fg31bX)8@H+dK7e znP;9qVLe_~I*f&v64Hq4P#*xT^UyM&jwE|`A|`&mCq8ssgOg)u;UT-J1e4yl4Q%(w zGfkZqENyA#NJ8YwT^|^IZSg}K6VeN_5Q#A7(LNjjODe;`gO49~qWFgw|0uP^e&_ub z1EjNl-k9#R;?YP*+s8=f2U*5t+49UN;=itjuDsax`z{{3v>v_k$1MAAH-l<&md*0q z)*&C~RF}er*13Icu!7f%=i`&bM~^;|zT|FQqau!W8Vm)fvUR0#{f7x;Gj9|HbYJM= z=di;<6|T^%584pGev1%Gfj>1^rCjeM1ZE}M{RKt(>yE7oY&U2TAmWALf|vY(QXrUR zp5)ZjM&8LWR&&oqTK(VyJ)NaLzxs=pYyU~N3v453%9o|(%#m-ptZR~Y>(G@o(7?E3 zwPolE?98sLyY18TRhB6i$-(NjewocFX-L)o-oyD{H%X}gK;qyP-Rvb+xR!+y^ zIh7!m8BP{8R4tBIL*Andp~LhyR#4n~js~{}`W!J?K+Al45KD13`!Y<0jPjO7LPJU| zBhIy;0CMbGuzZ0+PumB5IF3wi#A?LY(G^w+`C~f=JkNdp;d`OO|NiqUttD9xY>%aC zURSWz@Htki0{UhFc{>mNoIB6xa@x3Zd8_>zv78qkC0KwvB?c>0caZ1ut@PZl5_s|R z%TRD1D<3}i>d_tgbA_g6KvOHkqEt$}?vhRuFP}u3(qrF9&qz|Dv%*gu6$)DdD!^>j z_VH@01li=3n)>Rf1xgndIV>GT6r}ZFmZNUI+9@94dzv&HDeN!k%VeefCc-YvhlM$DdA4UD0XwbO{BKFf0x!Hp&4dLG88+hlbn zwUTeL81HPgFaDgN2|A>G2HHFcnUSz&&By*a@i?A>$tY}Z??&kou~->*&{PgqRO7to?g5ccH(88dz7ehvH$Pog?JL>V=_^o! z@x$k&O`r-%NNAO#f1Cb~>%D&QEbLkQr(b?_M;eO3hs@{6*ttqPZ~R!NpucDF&`E~Qci(^a(c^b{NvZAU#!8+)H3>W< zc-G2Utdf@u#lM!Y6UZK%W>+re>JvPn57}6u_%|X&Ev}uK$mh!+M=#k- z`tp;9G;_FW2p+FuC9kL5vm6it)EZvue3k~w>B3-azDHkYrNspv+F<&q{~n~?(dAfT zWXM7-@mmuGwALBgE0uz@4bvr~4RzL70!Q48V?`_^#hODV7oOEZhlqg(#Z6V@q1)0t zUogF6={}84v5E_+g$_aG@oS>4eW5R2&%S=~-A51K7d5e#hZcV-d>(7d4Y0KmY_mrm zvwR_&bFvRyDRgf7caZ+4Ry=w3MVTkDwqXg2^r9PK+V@r z^7te}fI5+)sp_e~Yk1lO1+D>pz#5)TwLNSbL^yuI-T;_l%8D7hdSYY_^jl+)d7#zf zTIn3QaXG>&h5ZYV38BC?b=&;y*~=_`@v!$qRO(p>!#=~(g3ZK0Hh+^)6T~8t; z`YN=_))fi+4y_s`PIE6`gyWS;OIoLYeHWX@voT#6loGMnI6dAuiWISn^zgXr@>FWV zRybE2P+b7G1uaLAXr9)m7?if**aUm-#nZ-EWv(LDQe}MrdOACgweTd7g#oXt&9_`$ zSv)mI@$T8SN-E`n_SJ*-vsbTHgZYE^KUDboEO}j4gwxys)S6uM9F*9g1-2ukW+tJNk#azuI~*bDZG6B+K*gQeE7u|?;LC) zEY|w50o;@XZi*$1>I+x$Fkkx9xk7a`jlJ4-Q@8?bq=J-yjM8E%MlAW!xIiDi_b^Q!J{$a)x$OJBF3Z;{)3RYK0?4#N6Xwj>96SEzWIg{8-Pk|x zc6mxjlfhZEbNYfBJ`-&bpAKYc4MO+0uY)aJ4JRO+=M zKlHLfOE1(!v22yPc`ksY#~p%LklpRz7=+Sf66YAj6#^rg^NtM$eVNZ!DDVyifeG%4 z)&>@12EYyQeLtF--mHvSgiPT^EewQJ&bj9*2XUYERy}{PFw7xrp?qvmTuCe4-!=^B zOR5{0_uhF_sIr$o|K{*XzyC2`i{R?|(uL?+u4>#ru$2}p#gb+JR91q0w|(;97T+=? z^)68ZR(9z~oyiNgemc`FskJ9DL?mm1^eQ@}NDCFW8z&Hfvcd;?h zYo-l7h=PeLC8E{oT^|<~YYSL3`M!D z(xD=XZBPdI`AcwwLa>TfXrq`%%}d5w(RM^g1!1yiNkP!o2f#Gl@UO#jxEg3mZShzc z7CwCVN$khJym&3f-osD3wIN(6+)u3l6oA>by)19z{`dTBG1%#h$b5SxSmpI(`IbqM zo7RNF(Jxd9w#X@-IuDt4%Zs5GI4?BW{OG+;nR;xVRcLAsjI2T|o%^npTIQiQpUaWZ z>sUbF>a9Wry)vjlfmkSzjWQVD$Z&%T#epC7CK53HeS2{V9WAtA+Jn|qQrZ&mL;Sdp zpr~~PBpDnsc?v@dc4bcr?QOIm>M19V(n(!T3ovMD99EIgQ^UksBj(LdpQho_llOyV z`uyZClyAQGh0WY2N)L#lL6IRE{YRZ2z`0_uDi?ww#=om7!Tdep3gI$NN04f#?JISj z6nO^jlUSBnnF^jvO1_GFnfx|*nFQej`?37+oqJqM0rm?o$CRo#qjnktsDa;^$IjA` zXMESPZ(&dZYE)&xS3pLHMZt(A#yGRNJ}bU-c?7e*m%*}!?AWfLCW}?f!iG^ub>=-< z_JBD)u1pvIsTX%M;=mWqdvFW|wo3VlJaS~UHEgv-pyX!mz#MyQ6f*iL`0{0S5}eF^ z^5Nq}>izWXuY6Bip>HE#&fV&aJ@XR1B=jx0x^ zq^1%^EaSpl89+CV;2006_4TFC&$=jQa;57>V}Kf%Fm*xoZB`!x#W!ZC;I3nXjIRa( zT_Ct|`_1kM#RV6QD6;?&lbYu}D`Z5Vo%n+m;08qxb$0Lh$Q%FI0oF z`|sc10hY?8XvpoTxzDs~Mr7Hz5^QHNhOMr^2|+AgHQWBh=IE8p_p9e#XgD%}0vzRv zl|2zlkR(6-@a*YtPrL1hAAkIrtlockyHNRsSBFktNFG)jM{Vz0mnGxHz#A>Pu`T!Y zTN~sm24sdwzoi;2@?B6fpNCaDj zyu>PjxHDTVv(T|%$=J?>O;_%f!wt3Ye(2KvMX;1h+Nd`?dZzu!7f<@R{`Ggi&nND^ ze*OX^2uQszksDGn8J}iUvW;(kt!6|ncE8+#>etz-&58tV2=aWyrkj-8VL)i?O2G$~-pg_i>ANC~2dE$g8@riG1s$whjou;Y_ zRW+AjZer_{N!Vg}4Y{pTtO{c~ z!C0lc_iq{u^vu?*)pG{|grg?xK#b2ShyIRW)kZ$!Rr^sykUswW14gj_^39Kvfdhy3 zi^pX)#Yd+wsD0z_CU)2yx{{_|IXz{7p2BL|?{2x9zXSZ2P!Smye@?eDgVk18>@Ohw zQ4-(Nr<@5pWSLE$|2X5g-~$w>tC9I@Va(-=Ap3+Kj9E{`yq7|$43bGaZ%uPk>Ctyl z+<-Dk3@kKg4}nqz5V&TJy`Mpzf@98UD(XS^D$x!G&*TaO7|v-c)M>+m1`I&o2dlIo zYZVW3u0SrlAzNMCSWSXR5S>L!oCk7e0CZEBQe&)X6>Ev;`{G= zAN5SmICz|Fb!rrRNKhAJP61pX1S8-4vFfwG1Yi-;u&UdB+v}9&0Ue4e^jurTx=x05 z@A^8`lVv|W{VidmcRqOh4*hP;&w-3xcTNMw#UV7rm@>m*Xy(pOVCv32ZkZ@zpFJ4s zY5`SNG@7TVqV%`~bXa>H=Oua~K_^(U3lX~FP1CrjEQ*Jz4eU(Nq86%brnsi5?lJb1 z+Qr`s6Jq)bSf!GV04t$2SXjcu(X)0Cbq}(H_%#1qC|It_v(#O-4PE)=6m;N`Dto~d@)*^1EIB1K#(@mdkYFwu*uPVZsI9{f1| zg?aj@_lR#FGBy$7zW1CA8uK#34tA~p>@16MzH>%o1y{~>+h1&7Ib%u?%}7O*U+D5x zzT%(0`k^@gpM3ZsYWQu4XgE8p>cEslVRt=5D}g+S$H|1Yv^J$4Jj&X_%4=qThPo_8 zj95mvRH}w|b_@v*^WKmLQHS0w6`WF7O|LXK2`J0aStA5$j1NL1=m&;CiU5W%?*dPO za)Xo5Q>bNP4rX9+Lq?H+svB&}aS+WYb+$$n-c6r>SF?(*;cwHQ<6qygd!lyN*kL_h z1x-mOorcXoDVvpGYjBa5jVr62ZHw%#2wVDRNdFrGSDcI4m73>RID7(6X(W*cC~T4% z7ax5%nJ-RW=Zg06XCKvkIID=)A=p5dqZDP7!af*W$=t+)#ZsZ#Y_D^m^%h?f1q=`9 zfCkBG2(Le8z?^nx%;{LMYfEutZ61a_5M4D|xs1x0B>X@KX;*7ILpx0KbB-lvq* zyf(Hn)*_PrL#q10?fYKYGz_WvLgs9>e}COxE$p)+#Db`OMUaJcdb~c*E=2cpZutr0 zDPVKA|H+C?=u0qZQOZa{u?7jVP1PN-U<(_dE&$I)OSpNAL|{Saz&Ny-aiAz8R*>ry z`k$0zsXg?-9QHOHefxdW%9LME#+3W4`|y2*y(5E_ozvVoG(avQmbI)(xbk-wD}Ya( zqU}$Tkb~ju%)dHE4z~H0wcQk*6wivJG7RwTE6d?tIj?^B_Im-mkH7r%$>ToNgl2Bi zWuJGdZVvq*O)T>)7`~o}GhT1otbSNkgVx%Hw78N1g$?{kjoTO^^zi~I85#qHYH48I zQUa=gXsiwckxC~P2HSIJhEf8YXu_$61w>02b*@iwS|}+~20<66ff0-9={ znFNp1VUdS&!$bhbwmy6OZtwAv$qy$lU!SCLcK4nfayauKFaBO)@K74Y3oOQ@GZKAG z(1{%Ee$l@rh$XMc@y8drj4Mk<;Z2LUJc!|kAHko%mtW`~Kk7FTt5lkLLEM#q{Gf{s z?Ck*+@H2Nbp6D@{cE4rbH#0?XfJ6$09Y|0EOUYDU53QA;Fkcd9C%qBRfgj zQQq@*leRR?ee}+QcYB{WKaF3%e37i~qK#)(rdBY2xYLAK<~eTRv$SCUL)k5l^~F|U zccC@}SHg3B35KhPh)^Tj*RD4{T7aVbO^h+9`^ zd{XCk#Xyq#Sr~W=WhJQ(?ynBZ#E3=pfE`j`_pz1# z`Vv&Cxzy0(xh?xAuFONjEu>@a z=_D_MEk0Vc{k~6tGUKC}j;KLVl_*MFV|cgQOr5%sUc`g;gKil?anA zC8uLz8X}?(|Z+?yKWKa8euBQTd&mC z+Qz3Jd@R}euRr|a6!$Z~i^D9GF*_5yJQubBl?`66yu>OQyfNuhwc6wC%6XEpa|WgO zrnv5X*o?!9b-MM}ao>xhyA*MPKO@W8MSioVgy0RFVcT0-Mo;STb!=-xIRy!|YhyFq z#RbgqeSDA*#h+t38JHu1Wjg4i&-@#-evf$?${8A#cM3f*fI$ zyBq69Vams@#duWLor>9Va8I=o0d|})RtX^12rt;(N?TGte(yt*v7i6&Y;rQmvs=;K zc?q&Gb)#S7xsVqT%jVD(k_AcAxWpPS(381ZG1xzo>`GR_m8Y9oo2DQZ8h^bM;3p5v zK79TqbTsv5M&h1@a2f|P5RO!Q(U{v?QJ61B{vbbD+8sl-WU3DFOwzo_(TJ!7)li^; zb$LB}mkF{xBXg4TK@TNW?mB3u6>g3O0}Udl1F?WJ_;LLXsf$A5i3lT%Ra&>-{8v~T zQvu!EXE3vH~(c#AU)JF93N5{~j-V?~Q3 z899S=!1UT(&QNR3zhU6CQbZFM-NH*gu(Li!C&$s|3u)GaPV0V}Ckh>?%HYtjbaY7B zTdfAXHddJ-=OHgX7R(LE$5Mf%5|p1MotX4>pbwmGR;!fsEjve{#jrq4^PfoZ}1bS1a~1g>~x`^sj@X6uBn z+6v(k`m6^+QvD!;CW}bCb)^cgxAAek;i6(l9Cwn8qb~I1zJ`Xj)(xi>h^5e~NWW#o z8=L`T_w;d=2r7iy($xnY(AtNi<7ffcECedJUJJ3eWPZ&`q8*G?IMP^u7g%NUNc1#_ zHGO&_$L`{uVwTwM5v+pgW&DFQllG17N1uG;$E)vt{c#oE3S^DT@}y!B-C$~wXFS6j0ya26nOWUw(;K~WV~+%;H=yWmjRKblp}{PZd>u!3+r zAG7m$x7};^MBtjx&ST(;fEA0QE2)m3=wY6tk2x9PgXDUUw`^F^sXIfUX`g87de2-+Rs|Kh*dVTD>xT2FB?~)%i2=uOZFrEcU5-9 zJC|L7dQXZx=i#NW31x)_4xT$BGFgCCwcX1%@YNE?2FrneGH*+|QYewy&LS=zTcK5F zgkm6-)`f5fMl2apdC3YKdz7#dX23jf6G>rIbQaM&4|%GBg4?az5F@PO zYS5+*f#Osals@N4#$?DsG&*?hbPZ2DbU+s@>9s$EFckg3wm*CHC`c?AungLcB*vffz^a?1qc!m9B!^KKwZYztvnv+{qR%ctpNwS)@48YT$6IZc z8z7-L!F_T5(m?e-G9P~U-ih=3v!8$Quk4PxNN}qd)>REa0=XMc7sF{U zvh}{n@wK04fH-Gp)nTA=h<)1f4lCo*Ri@8GEaMRd=DiJaK(|N(ggFbUA{R6HMaS+~y3m*QN!!sjDu&CMJf)No!5ce-~01cQ+5s z)j%HVsCw3{+1MAQP?RE^sNgSDMEQ(V_rYqLakEO{E%H)Zi$C*5ywU zJD7NRHo7y)$7$)}`{*>xg*##>x`OaD^TDGh{rBH@{_^_eZ~Lq6>@=E$XRajBnBc{( zK70Jl|62eJ1UGimf?WnzGSY3oJWmeRtZw@=0EMdVg4%S%QWAyHIARl#=P2);WG`HX zK|GxghO(y`T?^FaaD?)B5XZ0samkWtVoh|{hy_QG6Ua`wBc4qS=yOm9w?U&JvS31U z`AHY@@QSr1w@^vQ$nJKui&{p)AH=T}~cRX#?sBKSOGS~eqL8;AvCm0#X4bcM)}z?I4Q z?8>=*$crJcoZR_krS`H~_G?{11bkL~Y3*90MG4zrSehjR-wlVMk{haFg1|I--RQO; z-`v1gGv=|u8r*8v8J#1h1#~Ca%Zkz#!SuzWIA2C%2=ba)JAHDue^=9&< z4;=xNI&GPX+OJ{UhhVHBuNlQA4hh8_{B|0_D$5pP-ML4Kgrj0#_>HG)no9LmSyY|CxD_8di&0)07ddpg}#L96|46wklgLUhmJ zs11=w`ZDjxOT-Za8d9-P)UJv0dvzm{YIC4=s3mJn23(HHdi`5^;h>BwWhf#Oh{%7a zTRKAKT3>wi#1tQW|LxC<(Iutb`RNH+LC!(5A{e^{M4ncHy+C^KI>lgH$-%aE+c#pT zl*;UtB{Sj?l!OsZb6EHB+f$080*F0v$e6Qn zp}D5F%^OCjv^BB;iCO(eJ*+-2e);7SK1sg&_Nh01V_lqg8mkj3g0t;r=4_w+U_C@- z->6Rxa9TgMjmvn~*)Bd+MsHp`;|NrD$!SbF@p59B@C1y^2^WLG*odu;Zi3W;BNLj8 zjnqndVL~2uvy54aeDREfac7hoWw4Ktqyhj3qdxBVu#-x6%p@L6CL z10=epq_?QIM+B`Wj04MebBHH5#&2Pnz08nzP*|#@#`Bv*o&VyC4}BVb`2MNmoorLx zPN|`>+CB`e%iY11jnv9sv|w<#_l1hVo|o+_o8({(;xewJY`AADxN;121;ok~YgnpP zT1CM>IM>Fo0B_`u#Cg=$`<%rC4aXn|u?WaZ#%u4~D(4JVZ!m^=Z{f*v`Q8{Xui&Q^ z%F6&(pwgiN5iwDBdb}sdOOM&yg}H=^JJg!pcUz)brZRNZba;y+rE%?7WiwRtN4ths zquc%bi;ovM^TV${hF-ecmaoHeLD_>tt?kNIpmG+p?8{iI(2F_5!gCH3$`wG%K?$*LtxT zy4s!{OvQl-opu9~DqBxN%Yb2qacmY4;n{&=!?vy2)47&p!SOW~M8LmTN zhs+i@U6==LaEO2B-@*G}9%nEiVsamx4zxH>>Urg9=yup?*BB3^G`y9;Wb4vl+>pND zQM{n8XM=jsH9mdx>16u+*-zhu!9{m4D%TRCD90SfJ}xTri!8?L?=klH_xtM5=Yalk z`CEttIp4}5WgYoc15`i>2#Krn0MkU|Oysz|jkZ3wl$`$&L|=hPBF- z(&G_Ms)*@HXGBA4A(F=C0=(jxcRBEMa3Tpp3tO?9tL{18QnUCYVqw}r7rZG0I%Ezk zgIRE$*~mzi!>gm&4Jt4PoiB&F|9aj1#d=qJ^x>C|Km6^7Z@sdyEidb=1Ei_P&6x|i zsm#yOf)PxSB+C+I{QVmq^JN#@J3|ikuhuR6XUM^tf>i(q5>crzy_sZd{1_G@h3X$M z7<;>w8~+Nz;bNF9R;Jhy`x5ZSQT}{E3PYE+!0khhrUmkwc=YO$VjY*kM4zq1Sr>W& zD%)t#&QW-XGN;2pX3`S_pYGAEmP9Xc(#D1bm4`6Z(NSyFdqcVum_6P}dj2Q{WcjWg zx%5vbBB$WD2rpQ@g@tz?zu)`l^YM7}`!CNRt4_jtnq`L85^-fA=|!k;p$v@3UstqX zdtSEu%xwFAbFO#);-tt;;fR`USFs2l8|}Q|sw=0`1wS7Q=1i1#47p{Yut?{g2s7>{ z(3Z2{6U2hjOx%8J&yfe32I<^hO!-3dcchwzORlP^368x*q6FcFAR zV3rjJp@=+pu4x-$iXd3bJhHuEc$KlpIbQyn3QUACh3-|eq;S|CK6v+?k3V;Q9=!PR z1)97}JQN1$?j|1iO~_C|2@F{NMMVoXzBXJb$-zbyVo4j_z5>-;E~84Th{pj}0AI}s zLrBmN_oX+Lhq1ugZC$1LW34LKFnh)AbvuwR0L}eCKNwy8$)?B(hGsl$4>VfPpwn1@ zR~+je4^AIufsA5x`Q(-wdqQk5l;Rcz985HHlNxcjP{q6gdAEJCvP0B{KD#<-SzxTv zBHyMe+K8rf76=sm=<&n;JH79oegFLD-|^3qGFBI&>k{HKa}lV(+3d=BTCn|Cj4Nw` zzT7S3V7n$oo`qfbKA)ylI(Iy~E0K->6DDrgM89L)3?53F_1!yj+oNiFt70C_-$zX7L1twu5gCiYaWQPb<9Q;F{(9APxI#QR6t7^a*qm@2wt+%vg(PT={g=VO z?a-QLtC9$_Bh9It7nUFv1J8MnSPb97y%9@_T%W>|npo3>_H5{}a0ETB#TE!Uiq*x4 zE0e*N@7jrl93%Y{ZSxoc4Kks5jzWQA`x+#QH6DuKOxIHg_K^htOH5llfz&`&LvPx7 z;059H55BP8dFO|3p1MO}b8W3{2%&@-+vN%@#zaak<8f6Fw(UiC1muXCo|G1!R)ew1hHnF18$!+) zkHtI~;K1ZAAuZ@siB%*N!fm)UcLm=3@-e*2!&4q!)|f5eT5!cL@r6rBGp-9)UXd}! zaRpb#jqbLul;es-bxui*kD#s~hI~v77sEv-{8;bFl$4RBv2RbHjwRJ_I%FXpq6yl5 zh{Z!#B@mWwXP|?sG^`}_4WX&RM_0gCU^SK?{=IwLxdojoo{a@yuNg0#~}ta2K!5!p|_G-82y`V9Y5H^7 zxRN46``fkQ3fZdk-)@-{*~IB9o6!q|Sh$MrwR2|^b`Nn304AXu3?^n|8}A#GNQSX2 zDt^rT?LjOI_9Lena?m$AICuFp5i*K74FhwOwIUsQ46sMHC&e+>Sy*;qk_a#`@X5GR z6%83-rb5W%1MqN4MQ-?>6k4y(L%S=De0_Biqr}=y6ql70U;qTBxJ||?SP)ZCSA{2! zfac-(S*D7-2E4;L4RwQkGZQmF>k~u)7|N0F;#3Ot3J!dE09xKKMgt5RF%Q zuO}I;EgjE<&^JA$HrAVLm9BFoiv=$fNQzV96U0Ksy{{0Pe558rZ78w42^Mo~gfW){ z;A|Qa9R?H+a~s?7OL}`koLDeWMKc9c0~tT|7|%(+4Xh$eSDnxqLAE)i#4D8q*4f3r zrEmmQ5~~uf;Bme|W4l&%! z44CRs2kTI*PJuy>T8<1Ta0{I5ci?>>{&~n`2~2vxP>shbn|i?3>9DU3r*h)$s<`mW zmUIu9zB%9Y%8L9nHWxxiM%sbD)W%%wi9am{dwF%Z@~_VqgYBAazg5bv4tcZr(69G~ z$FLmCCiDr|?Vi$A=}U5wg{tx>$mFWg%zRUE#8C-F*s5iSDZCL#k^AW4O?ytj&TOz- z$65V#xhOQ)5{x)V1{&&_Lk#liwirZ;_HTkhb*Y4o&Jlw;k%f**C34Sk)p#*kPc_F> zhnTjw*e4$vUj>IB!6VGtuj@@UKv)Mrdz#&9o)9MFq^9$atAgCUifq93Rdu2T; zD_@5z#*oPA$QZMb*=V#f{TA#Ai-$-@7AzL6Y}SWlQBhy-5Rb64KtQD#I0|wfj?Y~v zJS5xV7PLMeig_?Pi{chIkij9{KqJ~>vGD=RphRCQRM|J%mMPj)=I0Pg1uII(@efyH zf`73l2P0g@=U?=!9l6Y=(AbDal`gMm&;2q>hKo@!T=hg#?8|R1;UG2o9=B#bLt^h} zO$6=$Lw^w+hU0@@4>=l!PT%e-weP_(Pdt?3uEUQC{)+n zO5H2%iNb?oFg|NJC#!t*s+@r3K&GLIM%po~a#_NaB{IE1V@vzC&a+>`mA^%mVDVnV zt>2toLEZMRs{~7kX_6DtZNK?Z8n=TCAvK1|jprLuS1?P0kvkP4u45Rq#cjXIg$*Ck zI2GzcHI(eFLM(-6$x*PdF=EN(H7y(>paHkLSa7ZdhFHfLe|IV>g(k_k0t5>Kk~ZFu zAVfpKl-Rp|wN~AA;%?$R(b1%EKcjcmGX_H8kuxZ@5nzeZ(5RZdV>1+o^5}S-Wuu8F- z3hPdD0!(Z zcX(BN!^0~)be|ON1mr<0Z&figK`f}d+=jI9$^8{}BjW5t8A!-w?@(_`4fMrr(OZz~ zP+&Gh|BPJMa0AK`L&!oZ!VG2xETp5NAGl;&x^0TFjKR=Ky+JwYos<^ngzvZMGA~mr z0b1?WVu_0^#=B_2^85<4V6cu0pnN*$ZYH>4 z81kb(2`L4=Pn9aESuklbCDJ- zNxt3ev;U_X!WFV@$69z>#R4G$K00$`O2LP_zBk)ZBAGA zit`O`EXlJLYh>3CA}zG$%%N)_HiS%26RZblO3T!)>F^V%#AR57VNob3kUs@2J5`eAHc)oqC z%emCYCR`z%k%Oyzg1;rX`bh;>#^<{2Hxn$E2#ZyB#&1$3<@fE&MvytH(aF#?8Ku+J zP|LwhywYN2S*NOCZQ;M7qrQ0=o>EWeBWs+~Nf&HPKZvGjAv(hrE@hoHu*LM21*KVN z5Ov>;sMP7h36r^2IMZEi-tF#^U!HH75K8Oyv8skXgF3mR|&RG zt)R}5vT^14UKjh#Iu*qVQezU^s#RUV47|yF2!oYr z^aM+|+NmWI*#i=M%wX-Wyj7(IJ`YZ3sXLzX+=LcWKvD~vy%64dDb7W&1ydVlo`PsZ z;We(DLxYfui!s#^TPXk5?Mg~PV2W*}C!f6T21ztY9sL-bq_m8^PS6wf;5=o*)||$+ z)XKM;Ga~wtG{`8^ z4i2E9U1?*zeU#M3DN;B21QxbGk;WF7a!G$wPSY|W^GG1k#HKoew_4Eb?-tOKEW3q! zCP;J2?4ZN%y?tBZV~34L>N$o5_KtKOjGi<|^~E^OSUIIKdva|Y*#MT~*;pLV9l@6R z>NVTJMO-nF5(3){-X=!>tPK8+I@5^ZZ8TFQZ;^sHb3IGsKMI~EX~2Y^$72Q6NX`bU zRz5U9qmGaVb3YS^!gcH%`tN|#Qxivy<{o78Cf}NMhkc9`z^)>$iwNN|TCn^&+kxQ9 ztINp2_Q5KEqcAz~XR|7;q944PH-f~CrlY}72E*ufXysO0oQcj(%qrziAk2}eZVy@D zkc+3?A&b(w-LnH#$TY2~4ndnR$LQEVui!0}1UoDpNJM@Pv<`}1+#?!>I?g!G-lq1{ zIX)dN(xV;gXyyFcsqMFEuA_`Rb?N%WC2d+6;hGQ(H`mXaNnX4au^>QkM*bHBD-!e! z_X(oY`|KR52YXpfUs+ZOmPV6aQeP8&Z{gLFGkrg?uZuOlWrQ})-f$) zdfIH?x!Hj8M#uuPY3|$0p*-k-s-jKMif7$|P{yqpk&GQU2mYg=<3H5}#WU3CTX_lg zvNg8Bdn+4zX82Svgc5AVL7#?qEIt(U>6lM^7xISIQs$*2jY|yXf3kAtCU3QEg}Rke z9Ks8>pb*c~I%BMpp=8IX$WmMb%|@=}QdDF^k3P*3D8>KH!O$Y}$2k0h$=eN8a*Wwj zCT5K(j6a4Gno=iS$QbMzyj8ueQ+ys6q&O)wVntdLXK6fWwlJrR`6N%5)20P?{jv-? zLEHiUrC8-0h0C^Lu)nG*!LE^=bkEd-{nf5+d)SX~k|!~_R%PqtgOtQLD|b9Ok@L3R zH5vVmNzl>UNWvF(I*eu3{JSGE>q&bsp@qz~An}hq3>RSytP+KiXb8FP%0H+q=p8;}%-M(qe^Pst zi*+=4unq#|%jORc*fnt_NuHIM0{7YPQ&&vyxrOO3W%~;0wkHXe?LP%D(1l} zg(8TiGnbk~T`*MBq+7QdD5Qub=c^f+Bt~^))lezMnN#rWa4H5mDAE?stPNmOFwikN zU9or{rf)}e+*ZBsB2^!;nGXd>QF(Z%z*vXnR0N-tp}Zx%tt9`BXK}3{Y9r0K*@IB{ z1g1m@mh42j=d2)}H6)6;I@R+_WuJ@)wJ>@HeN8E7vRrE56){&N$y%54I<0 zDY?PK3O`bJ39xg>-OL?~2kNqIclvDmAhnV#R^14(FeISHVjVVXvd$SnET+TGfCsJv z2D5MZfQX4}=N4famvPc%{C1Q-&G6OLi@!q=)d<)Z#s#86UI|Q9a|%@UVG zqW}YVmGEZ0!N=7_5WC_aHy4u_8@1Y=nXrT>F?zr&IELQQi*RLKpEWNVS6=PwWb6f3 z3U4m?8p@YW|FSE)(p6bawnT{cyhNI;q)P=TWsUY7?xbBqEpRN##+MEpO z8^uF9J!-+QJES17K&LNjz33GtPlLSB2TM{N-E<<6>pAE+g}!97CCqdb$8F?qSL^D>pPuGiJ~`?W%K_u3R|sG}1#pN*i7lYG+CDa2t(UfguJa&bW9 zM&pWGGI;%e`+69AxyDNj_TqpPgZ&-BM#sTrTuF=AJARXD=B^pERuD~>u0L|s#8OR- zZr!mJB*_(z1S1myVOq^cED36`8Sxh;!LzDU^*}mAa-{xH2U5 zV5hU~gX%4hBfCP>KhpgYKEQbu)w&}kh$v-(`EnHKD@E^iScN)JmuQR3NHy^Ri3x-e znjAjI5pK8V&4rmlaT+T0+J7fe+fo}*9b?9w_WA{nUOXJrl!}YJ(9sU)+Y~|ZFM1T@ zCd_g^opteV9UqrkhNCeUt2oF=%$dE61nLKCLA%!)Q1)WTKwi%>`narUo1(MsUdk}D zix%wc(3KN3aV3Q`yMECX8oh#vTdM5Jxw$U;V-+G2amU(K7y7Lv#?gGx)qFA;m}8}@ z_gb28xJLf1(#FXZgjmX3C8^(-VxDL#hASz7soLaYH z&W}qqh4_IRg;$Fx2}Un1w7NsxKYFrstqsdAwCBXD&Vj=&pz23Pwxd+e#Lq*PO5JEr^na60yv_K zd{w0ivI}<-ZqKJH*PkwwT+%F^)(%d2B zR}iDnUoA8b5!V!u=IWybD0O`PhM8=-S(NxXh zk@e_8P$+w(!<0r!VEv1-A$K%$r)#>yon*q8WPqdA7Q*KuEZZdw#bvC;*$Xy7u zaHxzmP_%tZclHs~ekhm&W`M9Q_4xd^5))CS3jb~2b#z8@o1tu9mBF(TKzag z5&Z>?qb$?v2h&Va6sl>WI7bO1i?3B|HQ&cJCt|>++`09wEsn8=dAM z%q(Cy5>UC06gy(G;M?FvV(uC^3EadX(E+~V6e(g4@Z>1@HeRkI<2Tf4)0n+A6Wi?R8H>-i(6haU-CiCuN0XMeH zk86Cgi?N+cE`^gV|+M71w6ac#}6r0E}TLJL;8W9Z8PQdhQ%%lINw+2ul# z#>jy^9r$|{KR#b1i}7G41+8wk!*-~eo>~e6lo4s!C^^_WHKX*+(9Y*sI_fPVeyl;a zeTQ@I+IS?(phu=h^7y$oH;q6V>rK>?GXlp(T3WpEIHBUC$SOE8wH(=y(>TH2pjMxt zWH!x_&JNq?Z~0c=Kxe?}vLnu#ju=R$2ai<7rycb(bfDu4v~Nd%RW8ti{iV#Ve0>Eq zy|3F$X4@x|sva!aidc?di$#)PVXHu$egn*1?3o+Syy?)&6vME}~R9FvI~cAqz-m*ud$g<0yQZVhyhqc6=$oLPa+I8e3Pu zn=T7M4<-=iV1V%pG6#d}ez*a)CfVdn`^x#Z+5N$G2}cIppW&m|_vp&YAsfZ>i8JB? z*0v2+Yr<5vF2Ingx^~D9>VQ~se6t+zbZ^w2S->eMsdCrQPhK-UW@vgOyRM07Trg!` zPF9&wD;7rGYij9Tw?pF~>ViKJ!Rz41)QDD}0Q;ySI$1MR1{vNqR;g5XR{+ftM+;*$ zonYd*gUPC_a+o5gBW(Vlm92>7Y$aGBe~)lPh_vtda_3?GvR~I{i zO)mfQ|FO4s?dBtIG?6_)Gi+LBpl$&>Qt<0Ckhe&Rn8IGpyp|5A54i)r5suqq1KR3! zYI*lWEQKHLm(wFv9QkN;4xyX^iDqIBQD`dW(Hd`3l~L@xs=`pAm(w-`41WD)70zJ_ z%)%2$(X|d_bnb7_Lhv;7+BB`GBVSq0!ux22N=rWn&%NBAy!i3~k!ku3Nv)(fyYlDj zez-pqT(O?tf?qa!BRSZfZYxq_r+oC6_uLnsV!kYZ%GC6wPTLk#5vb-IV#Hi2u06W) zUfyrhU5E}`!la|lkfA9XO@0&(`1S>2a}`L6r|L5}1(h|5H^s$DNe71tMO3cagR2iR|vP_sg`$YxInVw+>fc5x5dm*_B}hl`3ABqe-xoK`Wz*&9PUBlID<3qxo4Ta zNhHk~^0_xUAn5hW%I6H7W?T#X2K}?OSLEFEMv_I}oDq2wLB(LNPDih-UwkJy*#5Ys z3@kB~8@9uV&;8UNPbXsBvNVg)+2--^h$rYe82; zX65i!ufQmt3=xfUPiT%L-2}uEV@reBii^Jk1>uOhYqKs?gCT<31#c?giJP^Z&6470 zrshfDtXl5)0yJyg56Dklnyh@)0 zU;`*AZfntyM{q&_Ue}*VLw(QLBnR8ytdzNNWm8*oXO3m&Wb=tTrd`@L zI-Jr18k#Bsi9eHSfr6+;JPH#}U&bTkoo; z6*jtESn}Bl#$EJz@4C&Jgyfhm40tLV=@64{pIW6^vQmFxJC+Hsppc?Iv+QiqC1)*y&fZj*-%zj>?UmxTsezX3MpBPlYe`)ZM_;?LEZKdfh+%GvTpA`vTpkd zow&qr4JzLwy)?wWNT!}MlmgB)O-gOlFj4_4bziKS?aLqB>xaTM&?`L~X(O5f6KwjR z+DgC=-yvqtqt|6}O+hRRbhR@D=5*l{jub>Ra~Hc;oRW@+XrTR>h+}n&8qe@a@%hGp z*Mn3!5LqOHtD+@C8TxwUEFrnmA>4~HwGyEqgb!D!#yJNMwxN~3E{Cq%m@hUX(^tyg zm49vWCE?~BnoR)HjfsgvD02i9l0xZ8ddtWOG-L=qMR~fv64f%o*7E2 zBwRGG91eT~O{s6yV^4}ZFzMp7K|<&cC$+44!jn~Ut@xZ-gk~0Z_O9E!m5^NVyrve+ zJRY1j){XUP)SOmWrLZvz;ifz&*OLPMcV&w0D#Mi?Ix*z8YuYwu)-TIGN*RtvcJX_LX@3-pOV?*wJjaO0KU^-C}dQE0&E{^Wk(XxQ3?KyxM9c zt3!(v`&m^Mp>=;V$P#ph6D}QFi-?|BU`h9Ljd^VLh8DzV77M-Z+^socA#o`dF*45} z6u^;D8T8!=iq#cJ(u5&LWn%;T2Q@5-CQZOv8FvxD=MG91$cPG}R}6M! zh(#bamD{|(+D6U+aSkTlbTGA6E!(uX;^sHHM@l0#1qS{rAwNhC9&wqYuer6D39}9+ zmbur`0uB@42O?(3oDmYyd5tGY$5_|%1gp3@DueDEpSxz|FK(X}gyCL>lT zsRTy-V1z5BQDa!qe%tF`Z7h=a5Qu%6f<1GqK)pOxd)4(5{QaT3;Hj2TXl?cK^ z{^g(U2(FOuUGhT(SJI2^D;H@f8!coO39<$y!#!12hv#nW`?I0!^QLWqdMqV}qzXFG zs%j4z`xS>lED=hotb}A_4g}yjhbES}9LPm22qhA~G%zZt;rL`y2HioQb%q$3+ti__ zO%>R(rNdZ)c%(z5)FW00*t@n$8zF$p-Vau(6mFp|l&(BXI}2wC@$i=Nbu*~4Xer7E zUe*3>LV^o%mUW;-YlZh+HrJ)xl5Q;lL9?>VhGfM>O($ zyXu~?xX*67xdFGXq6MY_dCTkz*p5GaXCi^ zfv$y_GgzQh7$+=B^el6Hj1KR}O|W^zgA!SoacF1ibHEUjDhFy;9K}{J&LJ9HcZ>2h z5m>q65bEOU+$JdB=t4Z(xZ;)w;`b}pU|bEZ6#6gz0pggzmH$xXcaCYc{W;;Qp8L}8 zYUi^FDuAXm*=9BV7z&`zx#lP;ZdSo@GAa5_HCKc@i97_?azcL5g&t34*w#oCoM-b0 zYg*FAKN#2P1CGnadKaO~k$F?L;%iHR+&esYU2sD-AK!bd4o+J(G3YKZCtrhLaPa|b z8Cr@q4eZGEQC-xHBt13jIK{Huo9^rqTCj8NBxT{&%UeTN*}txe!SY?BS8kGHDL|>- z0)16&O}pWwTC&LldcdGdNKu2AJw0`o3-pu@v_WHP#h6G9v+; z`=SeT%kcqoD&%2gfI`(MtX|v~Q-Og7ek^A`N!1;aXf6Q4C$~cSY$+opSwk?)P+%i^ zHF*^FmhJ-5Yp8CoOoL4h7FB}95dY(q3oxz*SCTWsBLAVPMZ4H= ze@t*?2_@A`;Z%$!Fq1^nq)h2}=&{d9r@;I)&MB2Q(ZFi!E)YwOZO9VB_G+RH+Mwun zORRnqDHIIDqB`Te&@yP=h=oIT_nu44*2TU`;hY3*7~z)9dn|e(6SrjzrUtv5s<67R zSRLRR84+D#+|A%i=)g(!(Jd_K8Y~rcGHplB=muWYdbWy>*LuaYG0tvGI^+a7=YQW=q(lY>>#CY8Htm2e=vEJqbhJBL_`=N=IL-V&FYaD|!CyHxZN zDY`&T9eqesc^@pgN&T6G=~AG;?O+c)k?>Xx53Z3MWJ4kmT*?<9#gkR)=0X$)r^f)T zfJ4!Ffl3nw$Nvw&_vn}B7jrijXE?2Q-?_wqr9rG|?o3&R!>g!n{}i6&=mZ3Cw3T3+ zP4*jo_Wv7#4=y@Y!PU>_733Kq2Xm`>uveSi_Q#rF5y=FsE{uya+5w%D>1IrXy}r&W z6nn8)q~;f}9>y}iZT-GPPRmM%sX9s6l?6Sv?g$Whz6?xstiRFD5c;8eWbaM!2hh-D zv=Ml?io6T8DA4B$Ux|T8gCHWYI`_^%?R@Wot&MS@Y!h@8nM5$`If0_;pneHrlKQJF;Psn>H`T4!iyTv-jptl4D1j zm?Hvl-$!OqnjfSe^|xxtrfkP%HMaW?EXRyZEoW?Y*_@F~?2$C;CZ|bubB0${pHDWuW9w%^>-b^)!%lY*GdPq04OjN7-dz*G4a%V&;33pQST-Cv$z1G;FEA?sgSI2 zT%%ZAIOQ4U>iRUBX9e?ZUy6xk@i#ud4l07+NHc5=C z$5Wqr+U5p6+F><#7)yb1%D$#1o4A%%#~in3FA7?Vs?TX#91;JxRf-8DVyPXyk#|8s zY7Z8gTfkY)y`)lL#Y@wxBT;*`sKKHK;q35(+Z;Msn|uWN9Sl}`X?Wv?9Stt(W8>19 zFTs1rj*8$34H^?aB6z${-<1Vpf3DbBLGZiyJo``fakHOrbtU?-^efg|zxtV2g-uS- z>L}OMOzIf#eIgcz6;n7=mR$f37sWy{0T@kx(jFBGr5>`svcY`TxjC~dZjN?A*ro+K zTt^e3keU=9H`^`x@efKu5F&@XFa z=favBcdU}LNhJ|`_c(*UP6$^ND2Oq^ma^3G^QQy>j}8>s0eVxeuDl;tQ_iHEaXjj> z+2Oeg!kCb0<7ttrD&4Z2np}GxwO}kZa`0V$xh{r1)c&fcc5zyOU9HHw7y;=Va|-h~ z+kS=*$E%9vbgHPc+=WC#J`spt7ARL&()`H)yb7(_fk<@gsB05pw%^3Rq)5`ft|2Sh zZFH`Twr4Uc`mRmo(hI7~cdLeL`lvhIowx!w$zZCbL{?W`?=wS#)s@$q>dJ2W%I>v2 z;aG{p9O(@SRkk7Hh^5DKM%oIoJW%5?B=%R}Uk&COvcCrPtZ5c8)mbaSvPFJ$-HNLH z`{k+n)b&xsR+%{}yjyjAH&a)h5*Iumy~lB*;7)ts)Tv{0FM7}pZAjAdoq*p%PuER( zyfkb<*y>zgHG|dl&R9uTVpRw6%_8MD`#`LsWWgf)Yb;{yiu)pixM@s9J-Lz0nW? z;fTxtU|02D3ip>SjZ#u^fU#7fl(XHv45Mm2CT# z4#RH2SYOU2I+&w762Q^edKW)G?fkpH&whJGo6Ae6)iF-hGP*coElN7hJR!u=*!Kuv zm(I%pxV3PFWr>cK?je984Ct4^XoF>!!pQ}M_CD0r<`SzcrKDvx<|Nh&FuW{IiWien z4Gh(bXlzO=28NNvOgo=D8dq#d%lZaE#Pt#2$~RnHSt&l)n_W5MtvY^YOrCdLHHM{- z0AZ+O9DBk!xg9kZnA8RzQ9w7SrT)@?+qkY2^Z`Z>naSAIDOa~>fiL#E!K2B>2NTM) z2r^!PU0gdb?LbL;#3;Zdm_~DyD_yv*fp;yyR-JI{z9`WFVU>ZzEDfAQ(T21h45-1{ zgjT(Je*N134dbsa2x22T|l+9iW+&0PtCAIhOCd-ZqgNF0oQ`1^Owwtps8 zVdH*bTp&+Dm?dQ0#Qs>Y!tsI;OO1T_?lW8=pz{ju)#Y`$P$L=ia@H3|oI%wBOj$c^ zS)eVk7u}RGEpk`<*ucV8nYNY%Djn)Q7Gd3?xh&%Bu}iEB{WOJx8|*a@o(m|G>7zktx(Q|He_)>TL=a#qBbGwn$% zas3w!C|ooq=FpriV7dQjdmYsxnUVV}ausf16K3dl<26gV&c-6#JSH*pitFd z&;_m88_l}wsR8S;s#%!TxUQ6RxhT)%2Cmwt81~ z3oOq$R@z+j>?ln~mN(8gC5&CuLW7{D0!tnR%u(YNOb6DYK50O+o!Q3U`_lo!YXlYa z7_>3Evd8lAK^i&yHki6N`sQsUoAn`mDl!k*QSAcgEf^Pz;j{hPE1YDZ?P`l=yv_8%in_=UJS>~ub3nqa6g%17@7J(ivE?~`!)+hLlDX`qY3XeXc zj()A0J

H(4tRU&BeIxv%jC=Tlh>t%($=K(gY*>R*HAM-oFweciTtpE9)&jnD}!q zKxKpa*mZ9xVa?MGI6rE9iRm>doWkD|vH2gtsXL<=lNNS44@#NURDIz3ge96=bkw998iEnomAR%G6RK!imW%Vv(B!8vg# z2h{^p6KBDAfX8Yli;Grk!ng|lqzS75ZLvoY47g=eV+DVsl1;3l-ob%x)GunQ8ce^D zH0URnR(6k>oniI}9He;HUi<9XxZ6Ieu6(}vm3MU8!}FS0N?aRn$MZ|YW6cUYrP1^w zm{$NQKFqGbE3PO1%h+9c!?2^LtpDvm))41;0Y!T;8D}u3ck-~J!GadJ4-3sM;YhB! zmL|30=a_KT`Vg+lh2W}-C8~Ec|15Z!5!~ruRI}`;Bb!Rvn}fGnmw(APTv4w3W@+VL zB@@g?C;akgaD@W|?`N{x-t$(s4vWlc`wA#6|5`i{tv-YEnzG<>bwkj&9ciu3aXDrK zb5g$U!=QzMwGL-zMOK+=_Ta2s&_1UxC)op** z=#}TEz*-Hdv#AASl@B1}gCtkFzg!Q|2yRcCFj*XlH3QiR+#N4P*5Z-?L%i9aX% ze7t+pNn`Xk4vL5yH7tR5;k@cpV$m)uu(*WTvI4VSG`x7%W)wH+7$vP?Rl&2YmhrVQ zH>DI8879k2ci2mp9*h6uaK%F-$nbYh@9TXcT;Z44Gr79*AH;=hO<&0{8I0|M>nR(= zQa^_d79d&|PDk9#O4g`P<4Z6b-c@JR!ub56kU`Gw!%gF!%?7wS3pm#w*?iAz;0p*F z0<*08FsY%6ik9_76DNJYh6Dp^*1%~pB<6QFnSd$vE;b^% zsP|ZlItG-H_=(tYD6Nf}J!?3J0#qPVNfri*W5^DR`<L< zP>xoPU@;+@{JVtQVkR(LPy&PJNQPZnudNZl2JYOTExfcB!lH@Pu`@sTL^yO&0{a3c zPAQyRLTE(iok3B1jSJvb3%%DFh&mWDm9)lJ(9_R?ANcOZm9H?q866p}e9drWDce^( z?@tkg+O)4^9qIcsqc`+0dZlh(+N3S`8+3aOZ7sDm)qC=D)HjW^dtPutYV? zYmH_6Gi;`WW1)mA{yv!ByYuXCPF(r+5cBNg7N2b&r=h9K*dtI;)>E}{Q)OWM%xxI# z`i8Z!o(>mYb-1Uul_RIuh zP~dq{;|f(*UL6^(aA4*AqpGe<6(20#XOnHX!p9yqC2ZvU>*pXfL&4&8!|Vs6*4qjc z8ZdDA*lRtkfN(~p6L0Xk4FO6x7N~=BeOnbSlrm3%n*DYiqx2VN+5E#+p>7td2UEKe z;w-mPj2mXs8aCMttvfK&aFH`@0Udr-dG~dUwx3f7tkJKbO+&O{=Y*f|iz*+PI79|8>wXXohO$MKS zGv(skEK&>B6jD1d@6DF2*#*?<(ADrD6oFM}`qi<~=)$NC)6SyRoVTaqo4Kgk-6q~Bu|5qJ z-I+9s*41Sv42V#d?SRmw4-$u)VOVHpUjS|UG*OK!o-|7`!M;J~@*KUEr^A)+7_Pig ze6TlXHGL&+vYt{?+F3x1A4zQoXv~`U#P@loefrj`zEgZUNXT}2pPUS30wgpa=IT$ zxZ-&)6;n-}G3USs;{;5=aAh-_;1Zri(o2r{2)&$AIPT7zf<1&z`4(OI1|ycC5`8E~ znTFhMn4HSeg}`yZn&3VWFlA)gWmN9%=L>YVGt|KRp4QO%aAgz&=uU&MjZ-5spACtL z_50u!rJ%>Y4wy|)77dc$YFt4G@#e6_V&N!*A4$Zrdkt!~J?xJOrmW8Vr(V40E_H(= zXSjq$%^h{FN)Qh4?0Go`_=9GPJ3v{g5|=Pel{ zxc~6nEdI0L3RjN35yO@D6&Z}%SI$8kEFP~VBDJ&%C-P1)u*&F52&RsHiD%=WS-#c-OilC?k-F?>l9uPL@hO ztt`$=+d9q!AZUgewy@ePw-X`^q7(3Xoe1`37|rqF*NdWu#^z&kJXR@v6M+L%Rm;XB6Eq z?k=gxzd-dSBa0oF4>XhVAWg6;FoIPZM?elKS}Kw!a;sqR7~8NUGXovFlm5&)d#mseVZ9*mtuAKnp_5IFFY$!_g26kYqEdKjVtaL7wDHKge$=P z)qha!E1Pcncwy*F;7XM?>{^e%ef1Ou>p1@y_2kFhD-RFui^3ybJW2h&P>6*^)AB@} z3Npq>9`tK4hq?|%6C(u;^{y%uER1vF_>Qe48`#EuWH-=fRp@mal)<=wnNft<079<7 zWND{Ogo|5)dohegEB#a&u zG6zT_XsROTCUcht zTNB%~470vrSI1qrY(1r#*`qo+W}PInmy0fW6mHWx48W^~OPKb+tRSot0qJ!I)&kR6 zCHkA6>#D_UN=IOclx7gC1UD-Tn5*l+bwhJ!4RC72-^j*Jb2sN5@!-t;Q44PEv)>xd z$bI(m<0!#SY*^%Xy8|l^*KM!RiOsItRCyLVkv?PuM#H-5PHM33LBF^+a=b>ad(2Z> zjW}XCtM-gJR@s6ED$D3t{T|*CccNF)Vcv(eSe_N*y!p8%=9uQwQ-$z(;ZCd)hkT6| zQtTXY7GmD+Dz#;n08}c8Xkb%#_w8rQb{khB`#qxr_t$&SmfQne!Sa$6g~1+*Zm=ujjD3G)9$i8?+7#o~pQ1WThDmXN^ZmlU7!Q z2cB#!^W4U1Sr*KCxFX7<3D7ccfy={Ja4L(I>#C7mQv_8+1m~g@L3kS*3I}nP!0Exn zDTR~19Oj++xFPDWH}Lqk4?r#0nr9zu+ggH$zd6RM`?Yvrzu3&S-@cT?%(mZxE3Ca5 z%P+N(lsI7aR{+!DxL67&EFq% zRtdDs8^}e#2wiGIpIa-7Lrd3|iIoOSski>kWza5gtk^U2xEjUc<6<1AT%K#WJcx*KEfIbP!kf2oakjiUPi3)qcAZzJ zqi_mmZ4n2I{9HgG`#qwN;-9wLFztfzwgGmHc6EBoES3bbYuRZZDf#c`XxTk!wg$=5 z*Y8PLu%i$))={@TiG#hjdp!r5ZNK#nP9RR;)#x=ndB)de$`Q;jO`|bsL%({!c&JQo z*}P0?CzBVUPlFxoH}w^;HAvltLyf-0a_Q?U)q6xrB1iKYDBU0at@X6H{xCia15Ms_C%os8$w6zL_V61(aQ*DNsv%d6s3)Fg+y<6~|)fLilTa zJspBy;J7j+?wWk{7~S*?&aSkwg;j*bm|zo$3;uRLHOD=`l@%9QCfvUA?^Pv8$r+zd zw|)HB!_@9Z*SMOngn@_0PY}XlxR{qmJ*YHLZE3$&q6L`g@k76TPOLDCZW~M8VjGP6 z2;6$_I`$CbwZRXV4}B4(ug=Qo=o8xqN#S636xHCN$%2a(OnR`oZh(17t2a;EwxKc- zb!#4OC~_FH9VXaSym94|!{75KH?)k!$7fp?6u;WTT?W_2{c;qH$(QmZu6vFluU+#e zovV7Wc!Ax?M;kd;<>CtGt_+4Soh%j&JOYG0ENCy`x`*v=y{GP+N)fL62zX$@#IR+i zb8|k0ekA=hLnk#W;r^^VZ`WNmVAh5Cq6*74y>~{kTc<{}0(6-zmT*2ti^usaVH}ac zet=yoCZ6DXIfM5AS3YLAGExPWv(^V=D=SLahE32r`$^Zoj5Nsh}iJ@x7yz_;C-5&~D)zq+raKA7vi zR;8f$ot#^NMN*(EDooc@(dBeD$9#ZScgCHuuG@X=r!OCV9T2KisM@lGsC{#u-98p3 zfOTQr6rOg`21`eInMYZVj=c#FKX7Yj)5@}x*Y>ynYRq1Mx6)m|cKx zCmttrmp2{yOHAvJ4>o8l?vr=t*~bS&etpEle`{Fe?ri(x93?|;mu|;v*-)=mll^WY~odDC)$n``qg%u;EKaXSUW4N?IfyQG39xEF*U0 z4W$g7A)8C0fPtsGQQaqpoPpn<49*2i%`!|oQ4uUr0R!iiG(M^XkhkCjIfaD4m3U1; z1^=!aX@b2$=dl+?@qXY6rY=8aGMM=IU0lxiZ24fEpt2xRgOvXNR4HB$bM<~b91o|4 z?hIg1Jzn9mN_Rf5&~~#SYQ@jwXsv~$^DYY_@R;_YT6|)_A^xwfhGm)1K9g1!J9A?p?#%;HK zW$UW88XymfTg3b3a=W>F;f_!nmu)JhS(~?@+S*$H{Tyr3L$RBY{*z?*rn+Ka%DlK) z;C{kN;c?yJ?=n@nrP1LZL z)v$z^E6d&l+)UWNOkaxNN}LH6Yg~DWr4<2JKHgjR<9=S!D|&j~7mQf`US03m>VvWA z^m4C@bnHn=SnKG-9%@rr+u^)#8l~v~UBK}fmL*yZ^TwF_ZsyuIIUC*+e%!92)Jf}k z)!_mqdS`9$)~b~y%qTI;qIac<_jir@I;+CodKSyX4Rgd}DTyO?2rdun43oD45$(&s z^Z#&z#^N=K`x;k9SSbA9Soi-4)g@!?D_6ViD{!m=i>!lJ2aA@tO{HpHw@1xl z*nytDHzBya1m9w<4Q?gy`BJ*q?G7fGu=f!Tyv0S@ zS9x(iaOHDuUsomp#K!)Ypg*xOjKr{tWt zkEOtiq7!0yn~CSl@-lsJbrA_KJJ@y5-N#b%L1)&%DN>B>@l1q_@u63QRqBlR))(CU zx@QiI2)Ei57qxiIfRsQ`_= zM%x|2DYF5Nm;|dzdnz-;Fqg1OgCljnkGtVOe0{O$1~k2N)PQg@q8xD*7P*qo6-9-jFPJxAo{kjD@Bpro$_tm*UZ7Qx7OoubO zv>3v$mFS?SL+-}r1qk^RtE8uo#iYDgA66yt#?QK->+rq9|5hHmDS*q8S*YACgSqC^ zF->^<(m)<}Wmr|wogQt+YSe;X7~AE9{1^#}Y0DW(8#pVLbnE7CTwcEaOo_sKflx55Uy>pv+$%jjj6W7J9!(=csbbAP0 zJwaOFWp3YW&{9}@?A6npbK*d=19Q!)z;zRvg@a6qYVv&PHUy|_T!=J|S1ErvEZVMZ zJOyS5U5$Msy7`s@@C`850!-R zk^QwC7CB|O^8PN4I>NBXxK$J-%#LrLXZAjke-0g(_YAwXY(t~9|0X3kj0-~F!;KiY z>LvO}{zShyy-zR1XS)QW0W=S$gn6s6#_?<@;%q>nLk#*CX(NVB<=|QyqnUY0qSYf? z4PZ!VyG5}QydA>YIC|t@#@h?m+M#@PS}b0QxY@Y!9%7XVf`UD!H1-Bpe$CBz<2&Vy z&z27cN?E2J4=<|+$d0=tsAPuo!OAI3`p}^^l|sT+gO5F{LD%aupi85uzefq4E|_KU z*=WGJf*9g(&WmShEgN9#tZ`MRG*5bkdh87cYzAQq#Xp-zAuBS)ZrFrz2Ud$V^;9iS zG~Xtq4_$@?O}vgHlvdae-&R)%BopivzM4m7YW|GdS4N5tcD0M9cJJb#CX3=7RRbrO3@X?Sczil^ znNB?sXJcu6%1Se)DpV!g!i^3Xk!M#;sK6;Vt+dH`{aa4twIOka5 z0pI^DJ|ObfN8c9QzQPya``>Pn!H$1|6evQmA>MM>cv4A$!qdg2echilwQ3KBdMYXJ zJ)T?8QOb@rTABoQ)3GuD62JudU0gs>KP7L6XWa)SFk0kh)}1tH9EaqfTIiUUBv)8N z7hOH|WtE8=77k!qD!P*k@I5*N58V>%$@W5W)AK{-mC^!N;!LnezgUF*e_|Bi{9(_2 zVV`hi!TRhgMl9ctF5NrfVUrxw2%s1mExE5E&+(oX-T z|MrfjFcTl_wZjB^PnA|qGM6;qj|mr8-rFUEon+{6i)#r@<(x_sr@ylhXCV8_D+H5^ zu~uIVpkKnDk%1_u&;4F~S`d%3PYGd#xpcl>pq9LeRcOD4zD7^X(uotUsiDk04%EWL zNRN&cH+c_vDdl>p!O(8Wi%*n^Gq0^dqYL9ISd%tg<>&y&Ip&*54P|lmr4_iXafRv= z;*Xyp1o#T~^p}Z+D~v$hmvUaD>;7I9Sn~E2<>jS=8Y|zmeiCA#HWf!(kNXP?g=H@4 zd!8(N9BWWi=<)b=pBJQ*)I!0M6-r=L^aC6LSva+Zfmk-XMto?otNbdVn1m1C3}_j< z604M9Tuw?bA$DHB2KE5vRXw=A0N~`p($hQuN+?^aRSy(UeIh{me z{AaX9{E^ZJ3wE#b{`)!{VnMG|Rxq}4Z+5^Tox5T+)pW|%%v#iWF=1kumoQ@3HEnsCR;wZE3lrR@fs;7P zu71`K{??mxFzh`>?WfuE{>FS8S6Z_os1Gi5!0kjPVOdFBvRS;I^)f6k zz!0ItvPl-#qY-m?y-Ys@O{-df^!qgcUS4aRM-?K;dl zbPnz%iZC}S^F^FrT!Y+hG_DA@tU`U)eJLAPKHf7{**{$Qn)zT~fa8GY{cT*%cpbBI ze$1@nAJpS)g5Ja4E6z->U^aBFo8llWw2%>$0Ufr-%~d~!c>iv2f14)QS~iXR=#;I~IDO?8N*wGK?Xvst>u@G}4O{W%rfLk$ zdbq_+-n&t=5RUrbFgMJ2-f9fw%dKI1;rfh+ zLdGo~&)<|VeqRLt?&r9P_gK$B!?M0f>A}du2XU`!5b3AXUfRVAK9gF)~9!HUoH5y3;;}OgF0dk_^#55 zYFv?h_9xvs0T)xNi-%Ujm^H5S0(9V_bQU6~8kNVz zyY2T_U7aD^`dBgdnx2G%C&vso%)EowlcK%?R!W)nP-Gd#!gVt-?CKQPvZhBkkXWUF z9I!H^Nobo*ymvz#rbAdb+Il{u6MX(8ZdgpIae_X344I;IKIa^{RTIp0KbNJIH+Zgn zx$ob*|Ct=(J##)%-S#iz?JEkgoH<+p)wJ1HM6eRvIhKtSFuhVR=}f96YXChxBmJ6N z#(kSkTZM&H`Z!gd*CQ8I#!TH5N1YgTtkx$vvm#b5EWwf&5Q$-(WDvs~`k=1OG5Y^S zB^|j>jR^)Vn76U^x1wBk1$~rVv&PLa6pKB$tejo`Rk$3Z2w|JNH6CKENKxa^;q?q1 zOVARZR~;M)(o5c)v4;djs>S3ZL84)dn$*7#D;T0*JK2j?W4+DFxmK zyS%nw*26ybR7{@c3CdGGw3qT6JZX_Cpp~Rkk2p`00`B1yW$eT|+AV^60n=7tJ-q;z zr%XJJ8|G|oooHaI;|^N6R}<`avd{jcjVmg25|)6_=)t zNem0=cQs|up~I|%JGqkbZCN7SFl_*n3amx^WY<(+@vyv7L|rbT9CitEi}D0FnP9QT zmH!~ZehmIet05h5MQnJ7WG8AB9@ix1$T2B;bmnfWn#3uFw1vdM)ZzDb!!Il5Sw;~XjICbKPC4camqCjudjGH2?vsaDT zK+{@yD3;H1Ww^Izy%|GRCHHYq#9~n{Z~%5Wuq6R3)qQmW1y`9EHsw*0JxbIaja@L4 z^7J$da#q4Uo`DP~j^r#rWdLKp;9p;mZrJhx0oe)^osei??y>ZC;*q`jVt1a2nz-Vh zv~h*)XUqqSO<&oX53_qmN5(D8-lpVU0@yuUt4pIKCp_B5sYJxELkzARNxwvtr&$G`RwbjG6N^`*WiZw>ciaKH zPFvN#EfT0ppWRk}$xT`utB8<3Dy<0nON1-m;Wix|%)RX2zK-}{QGw+Pz9oh$dHc%N zE41eHH;p!OM=+{)gWk9YXG()sHejgIj&Ouzg&iUw2dnFpd> z%;DH!mWt+8@e^QS7X$fEd--nzdi#p~)3fWylosvDH4)`9Y?mBb|ntOf2#FBmwza+Ir zvxeJO&-&&RukD})P9J7sFI^8{ZQT^4iD+PJ1dd)&25Gr%!4)>)jibhuH?p*Hg&y!# zir@;w_+W%szEQn6xt#H?H8|;AhnbG-f`Kl+Q%mY(_oG@{vBE6&C*=dwSZq2ChM2@! zfb{~sc0WVx0*%Ix6?9~Hqgxh`46)cjTUn-(14i>zmSuGJnatR=HK=u9)Pv=s0yeWZ zX16WuOr|g`1l^0{>h0{7AZ}xVt)+zV-|S7T`I+_=fd30A4n~*f@3ya;u)3lg6sAu$ zbF<2ntj*6gctKDl94f@}oOvv)6w*UF=>+TE)ne8NV0W2VKcfi_H*fkhW*)UypHB>P zcPI81;fw|#wlrup;Q9irMGMRx9f&JAwU?t}a?=*%Lm{_MlQ=^v)@1*hqkZQe4#fmJ zAYA$81|RHySM0W2AMEy*heZUN&|IVz{HgS zfrG{Obw-8NtHSLTVagFTDuxZ{tG#D}Jy3d&q}*@RWaCj*twbS3r32%&=8k)$!+mu# z2|5QQli|U-dhC`Jblk0Q&x|0Ab66^PHig2Y+GX;t=JVQt*7UzO zWk#ut8p_q|a=`AgB6oOpVNwKZasi%B74n({$Q}G6Z&}&iIy;(Rk^OI2UHKMY@59Xu zIuu-a!(7YPs=)Hat@9%D$FClPIOS}O!XF7zD#w+>O0LP#ksT%KUnQUN%q%b;ge?df zIA5%cUFp3v%gn#im>4$cK~Uo|OE+4CeMNh*`6_d%16Di_P9t)|>KK{L`~qCRfM6Xd zX4)Gn!8JnR(Q#>DTlISgI>>J?t`2gz8{510=&x>Fx)OUw9F1(pgAwdA>3^7l9M zwtKcVH_dg)Aq2cK!GmiotR~-vmGI6;&@Jc~Ulz`98Jn!S)&bAs#cR`6ds@yeHeY3d zi4)E!oh{#qb;HE^&MgaOm$J=D2Uo*2Ddg|)4qUlyI^-K!T6u{$_>0uR6+WHqkHEHB z(fEtFK3G04a@VS=LBrk3PvwTrRd{KCppHE*TtB(SVpDpl50)l=?zoR4V7)V77jS>@ zl8Irc6V{9dbU$B%)dwZaOB}G7j*;A1^QMF;?p5jNbfjbi6CEu`Xb;zs7%WN;mSuh=0*NThb-rV-5-?C z_}H7q!M~ZW3{Y5&bg&))4a{9uMv`OLzVe~0uK50|9eIFY_wG)0sdaYKb>*$=Ih9vA98NZQy{(z|cNL&4TEq)5 zE5b#uTA1_b=k3l>gbt*X6$`@U+7Oi=z5}uckx3PAOag3cj7M6(8)kO3^r8V97VZmOq*^Vv*6KR1V8m zh7k*P-Z#nX2D~`c$JAJC^3y{ct1^d04~+U*6jgSOWoHCb^Fk(uwP`_@Pa4d!rbj>n zfX8?WE=u@d&RP6X+YVpZ6K9uM$Cv;QJEtD;>mHRAW|d8vuR=2+N0hNU`&1|n8f!tJkF0x`^s$j;aEjAq zt8pdH1dB>5SCVZt!i)ZSk{0n3ZVMTy0?XA_fkiQjPusr2CMzo}Wh}2^n77@lIHSYr zR$a9uW%{@T^x@?&*}`2d#t zBXY?r*fbP0a>SyHNlXp{7pZRCyf=~Q5^x?sP!}hqSAk_KTae`Jt zjsULYsuw4jV8l;$QM?=w{FuV4UDrF^hSU;NY&t zm75(PuTdh1X53w3Kno)!5E3*QGZQ6O$n|YG}56n;sVa|2JIr-X2AXk#5lm#;ovpL3K zU#H0~TydONvb6HmF$Q)W{1_dHP4RoMM+{f~#NGDd&zui-zwv}b^xT`$xt9+hQ&uN8 z?6%an-gmuh3n@9^z+4h)i!XYDluJE)>U#K_fD)LOoj1|^9f>=6*!+9BinWG0OL1w zfZNw7bLKejJC4b>n)AUPa_pI$sM|ELS}>?#>}8_nV=g24r4>~g*@g$SOkFf9-Q8mDMkQ3uSH-P5?@ z2lxX0I(ZBFYlbU-gMpT6-?K?9!m30z|kAaX1NcG zysQ3cRukK;2-6W<2m2kvm0Ta}A;+G0JU#=Lb$;yKzC>bS%r5sx0XdussZ+QR zcF;|GFz%vT>g0>{0IPEUeT}9k&-ffH-BkCFDfcg6-NG?&IaY}sfi1a6I>xMtI{y@0 zi8Zc#OH~W-e{_se{?iQQjDH03I{o!l`${rXU2U%Ob`&wEKuK*ce?!PnEN=)s(=3>4 zjIO|Y#MlAoVkeM35veh)1TRePRKvdn8&r8b{{o_`roHo{2 zM2zS;l-c|X98Eey7-KXs(Uezs9~*216`FV;Hs7ie^#!fS%ZJjjzr}AGC0zeJV;2EA zIs$!Mq_B=jh7)%3Jfv~O_kSQ^z)iw?qAa)}XZ(ZYx38#|2t)6U5Ec&rK64&HD8L2bu;$xf;DOIfLNo!5nhEO4E6-0@E6JI?M-tceVg;kgv|hJjxvqCyqMp zr+GH>T}MegR#y`g9p`t*1RG&^|4nA#%1ajge#3mQ4;|-Q)o>pl8JTa3TdmLjd#L!& z^+=a6H)#z7B;m3%1J4JeBiv8mcE`ObkI~Ap%F~t<*#&JHqC6{5^ySM;6iA^p7J$qP z=wt>(qPqODir6ku={j-bY&EXX*Pt3#K1k}ye!y_$dLw7Nbr;D@b(P5TtTfsbmU^qs zxi-F_j{#WvdL;sB@M`cs@F=Y|EesNRb(N#b?Mb$*LZhV>r%ed1z|g=AyIsV|%RFX? z0JAMyR#s99td_6Jy%rx08Edj%IL_ZA6YMQ6=*!H&6(Am^{c{o!K*aKm!e_h$Ib6Bl z2Q@V&2!?do+`6U3|LnXI|oykh0uj- zJuh3u&6B4diOZZEtAw{%Jj5saOqNz&C!M7v(6PA4h!6Hg-N0Sdm4pD88rKY%u_|X; zo@d*AK=gnH7geymqK#)*Gg^^=3B4Bc2FkQ@IbwN2AkMlT<$?n}2S$H^JW#%m;hPe6a5;xDv0f z~Bs*gur*WyU}l4UdVHF~n4HgRz_>sLdg zh79OgKkP29VSbS>&5a#M%y1h6Emy-7angX?PS=XCR}uhx2wx|AeNoQ%Lj_k}DXgLp zOJc8F3idYCTqupg@w1Yo=V2f{aEjp)W&@l9xutqiCl8J?k3QF*Sl;Sw?pYrBmUNKg zgrsP&ni!S;g@*n2YvGrSGWjU;Zn4L6Fmof*Nb1>EE}8vK5FG1T5uP>%SH6!}32U?RU(ABuNshxe>JyY%nsM$Y79Ot$0Aaq%yV5I_v zRo>+K3|p3=-htw{j?@Bi6t2R~1@6bG${3%w&7}GlP1o>sT$Gci>vpRRyCJ^szt2oC zFY$rlTY7;bIpguSz*qX~vn;c43_vX_*SK2Okc)-B z+qN{pqOO&1Ig+>kjM3Fs8G|c~{jFbuy<|$*M-fDGa=7w9ji}AHHeYWOd_wcRei@$NpE%gP{Rh8%6_YiQvmqLzK@P2gcOD zRu~|diDW|GHq1VfF!mEFVH`IpXZ+1Z&iJ13_6aocwpc|96eVJ*K41)M+HFPNqldm? z36m~3b)=8pV>N~)&1FIzXKFg+j&pHtvnWF-{4Au+Ks@!y;(SeHESrb@*=^Zcex z+p@G`V??mXvC8A&iYl$x_8&2fH^KV&sBHUHP$X+q(l;az5BSrcq?% z@+1~p9eZa8SA25NT?nwK;%hK(;jz|?9eb$dSf=HX(5_F%XMXHGHsGjX^XnRcpWDXt z=l=*O3>~-tQw^EuxcwGq3*?Gm_C>f7is7n@q4bo`=!D_czDOjXlT2MS8!W z3&zV1wu(gwoW2q_ZqM+mQZ+8}NVAN-6g)w_i~_n7@NJlOp{G4){$rE=XS1%#;~IU> z$lJv43MM712_(~ES(8h)Wi1wEYlDY_eT$UB^UjH#aV@KQCccV3fw^3K{~<@oR%wN> ziU{5R8cQo*;Q9B>7n)Zj%@Y=RmhxZAvK)gbfTJ+WGc*fW;$o5vWIusNb?^mi@2C-aSV>USHps zaR2eGe6YO0@=kAV!IqkF>$cJ3ne@)2og1{pXHSDg8=X%3ZfGYKX{JM1QOh$V|L)|w z=v{V2sH8}Aa_k7QW9zIDL~dv>=|Lb{H@g%}uFh$RmXa*KMz|7GaCau8YjZbn-_iu5 zuPN@o#>@VB8kYMLZeO{U1hyc!+R_KR=k^m~myAw23Z#@Gx0V^BP8D&7<3ivf0j&S9 zqROu8F4C}CT%m<>Ik~h<+-ypdv}7r(4y!7c!rx)Sjju~Mq?5o7t3S>&tyX8yZqnuU z?BUs#W0ePqU1eT|mG7cEY)z*h>3-p`Bry62 zMB2AG4gqM4HrN{F>YO@-8RPTlW^pzxE5raZH$##Wbl4~+*iE3~d!Cdq_I{KmLK5=9 zqVe{g_w7w?n;++cCH5AojOiN++P5g~%s|~>DT|G^9?oDfz;5sUGs24oW&USn`edkN z(>xbVA#>@2T+R$P(X?=1U1iJagehkYQVW|hfUeOG%3l476~w8XkQ#g}sf&`^HT&BSPLOb3ZeD=(K+USD(?aDnmRpyaiv}8o2%7BLyr*|uJcY0dS3_9i49OCm z1$NfaAom}T`WL~Jm^x;HP>TA_Z4$;WWfMrMxFEp|KG@59(+>IV^Hi5n#sf9m7>dvF^V=df+COe>g_qY$ z$fm}s)k2S|ei^HfPh_OvAnrAzd(Z7bP;W=Sn8NixG84@DZ^s+Aax%E`G4sJ*ae?KB z@c}H#@&e04+>LNgt{#O?Xe{@UF`HBD+XYJt9UNHi*O-Fy2$MAy5yWtM4x<|GMO@_@ zDej$ULCCpNJYZIFsoq&Ms4>f>0d|qwgj(cPGAw))4Mq0wMxBCu8IuNAZf#tN>?ep- zNW%Do^sM^_5g&}Y?SHaWGD^6dv9byU_yXih_=VO_ZU3P`chf=A?F!`??egO~Ro>~k zTNF!&J%~pBHfa}}VW%A1Owyc5BYNF|NfBN=V=D^xKJCLAiz^z0ov1>d8LTptfO-vK z4d1qWfc?YIk$6lV(**lIhVHNM6g>X4t`oF|PDKRz2Q`4@Hw@b1e6YO0^6+DCU5n?k zn;8nhJ=!T9Z04S#9@@N#ap99GHv^?*wd5$FLcS~4^=C6BEEJK(3cbRtArG?$npoGc z0*fZaT}FiyqgkXx8*)`beErr{+@|FOA2~`BEM}idKGo~=W%b1cdz>4PQz zE?SJ{Yg;!C*o3j>H(_%3OqJ)D9=VeBg&O(WqEBZyb8Jaf-}G+ z=s$aT#Zz0Bkh4J2DWyoWF6}Csv35%fU$1%Ivho;cTj}4xx@N@kr<@P=WRu-18#V!tOip{PoYVXcQ%wUCRz2{jQ{_3W%q(do9GBIh zRl^!fkwVYK+3zEl4yT69CDc$+t@ike0qRE=VcG^q9C@<>HE~w61qgWvGUblvxL^rU zE{@}qt=a-NuEY_G=e?3lun*JMyv*b6r3AD0YOBD)2S@S?EDY~g?7>snc5jfE?!lt8 zp5vf;OGodj9p;y5v|I~~Jc@KDRr+@J*aY{SiF3j#Wje#a@8iw4_P4z40x8ssAG*{a z?9$pUQY)lsM-9Dn6CIv=klRz>N}LI1+aDuV5uy9PV880|?F4Y;B{%VY%W&m=$C>k5 zC<=1U2Ya~5rp=9RN|{_+dK)ubaxit2S)7BT!K#gMaASYVgei(#QgRyj7<&8OkORQe*5+cC%l)C#6lxoAdwoSZ>INS570B&z z$A=2VgzQR#Qy@k=5Q$VDvCF~Nnf^}|Oxrtb=xU}MZlU9i(-Fj@)bPx`VUEo{TQ6t3_Ex3qW5Gw#uFz*7N&j+)6{I|D**K#8BB z^gJR0ub~?~5I*eCo*eff^cV^D>6lDc6)WQFl6<3G#5=0yk>aEFTr3Wcl~#Tyo9zGg z1Wop*gezY#E$1azmOw1uS9;Ej=W<2kN0}TN$q9s&a_rZsx(SCay$&8G?HnCuO-a={ zgf(g3FFJGt;~Bu+`16cPtKH+)3wYj>a(_5rNlYcs``kT=5U_1rMZ@erJVB%6UTgw*@e*`-FSl+m6>`SPxSk>lETKv^B``W< zd_YnsQ!rZC>d-w!Gr*9k87=zcgX+f5sEcL}07>sIskqVr?ZCk|Pm^3UaLy+l2~L9+ zd6|+N=u+0aNykFmf|j?}KmPboSVdTD+{*VwxNg119eG}G<%%2br9PPW_?!zYeBR`I zuqU_}i%-8z*Uv>t^f3cMR%<-_OkJGbs{yi!x(6=cmMNq*8}tUqgeDW1&SclkX$`7U zySM|R0^a`~-2oS^N(Jn}T{|Sajb#=mg^Y811DvT_#Y!Z*;8qFan^?v3{r51+|1-j_ z@6x$(e@2)QZ-Mw=bW=C@VD~IY0!`La+Dc20b>@=Of9TQ$YB&sh4xt5;K2!@wEvoD$ zn=s4NrAxDT#hO_hBFVWl3cja!#xKjbGmfK~jvNH$^ae^gB}hE=j(X~GuS$t|E2n`y z=^RmI1L0Al(#kio$^Ip7#&6CFt^haO{}#J;1Y)!8U&RY7IUnq4$KI5Wy|;0nvq-#u zF%elgHF4ambeOiFdMuC3-Q>#(#qAQYT%O0+`xUwI67%o;Hfp9_9OgIatkT-ViWv=g zV}LkK&mwz-rKx4*8WGqssR}c9Nf^hl%9Sjw5EJY-solQJ2a|#U{-;}rB^7eUTgfH^ zRQEm5yBQ>7W}hWTryDilC>Cw3m-Z7N+ufwqv3Y=&&0$PCTZn~MzRQ`VbrWVqyz66< znp*Vh7IiSW%n~xmH?fQCM+XjYTj6pa!+*}u;t{wC%WeCgv9xjx_Q$7bvOh6gc}an) z{hB*ier($_Rba{aU{B77;Cc5#wT^3avLrK^?a@^h=qyB6Gw(x*H2aS^#i>HS&R|XB zxjG8%?9NUOB88bM*Ey^{ORyc*xc`391>dE4F8B+BG)R%IDQ+P6yhJ8SD!Mkem|z~6 zVuImEYMEec%m-Z2BI1Ob{Lhx|>a+Xdguuy`zh%H2vx?<^+dGgYrA-y>@ z3G}M4(hkKW&$h*xV6oDQK_NQWS0`(-KQUYZZn*y$R#&LN@&{TMIe}~H)xb+WNg!CGXmqNh)J=p~xTz(3Dw$!_hFHLZ&;+OX zph1v(u{!U{1{ku;QYSjzB-y&#V_8Zu@HMiDWsuC4mEB^(ZJJ>3VMQX%OfWXZ2cvHL z_jdKc?pl+?T8UoHpvqMP<%Qm!$V-fYrKgsaZ~`-uCLbhk(W;zm;<5MAb+^cGr+Q|{ zinc=qU9*W(#}=@Ey_v_Zb4!EC1uUyHO%k;Z>g2kUGjL)iS#u7J?k(ZQC_rwHHWhfQ zaVun>ag=WT9lSnuhN%QTWqoGV6|5~4v; zk>MPeB4^{8g_P?|vck+gOfafHyp`pMlrzCpc*6Q%^znA3u+ghCDyKW4*nRp{l=lZc+ccfD+e*FSM4W>P4=t(T9Y#EPa z8CRnAO*xXqPa$H74Oa;eFdC4o^+&x&4QYY6#sWwM?FeF>kOi{@MU-1g9h6)O?8%47 zR+Bwp6`W*`rIjyngMNF?aOFz?^Y^OZ{*MaJTR9Qm+XXx41qS-I^D_-!$^U*lHYQ50%%^>Eoa|>@bq4 z?V#|;44w0`dh9mBXS!}VJ(BZsnD^ii)=0@6cy#$g>3e9n3M6$3?SKe)iw?@f(S>&C zd_PHroEoXuEWx9DlW$v1_7M~8BW|)cKS6!0)7pu{#aHAht>2MEn)MUgeiP?| z@$%&bmM7Q+pLb0~Xe#g+<>QA^z{w(@bov~YZ7kQeliCB&XKApu>bGajne^)V+mvV| zHpdjBp{vTV6=v=-u>m?7jN9Pis5cF1+K8dX37CH4$rW?)vkfWe+Psws7HhK46cdbX zmk$;PEotO~0r}_xcdzu7*QxVht%GfKnzyuWzz7@4MqO;FZ>McD6qw1YLBJd(kCRQ6 zG^qL8A*@)PfBWtW1I6F&ERO zOQ=B5K=xM!v+4Ch(tS#c8|~ZVd!^@C{crT<5eFF7TDuhvHZE!=nYLAIm^HYG9nQU3{aR;nx__idxwDL|S z*p?>PTgZrgu%i!_4L%sZ5ttfjQoJo)cXO{)$rZWiHdv_5xN5+%fw6uDX6kh)>u&Z~ z%mXOZ&`#>EHwZ4aq~mG9SjWGV(zDupwUY+*-edbANx2-OqBWJ=xfLF1ek}z_rGy_M zaXnspV?PjKx%m=9^k3z0h3&QQ$v;(!#=lXD#tQ9;Kl3g11S_$We=)9R+&p}?X(^L0 z^AgI-w6LhsNt-um(9$i-5LV)vGgeCG8**oO5xw{lTOv(*@JY^_;%t^0jC$ZZJPM~n znDLmIQBz_Sp0?7!Be9j99eY0$%yl!x1XD4KxGB7~d--5#ytOuu{jJ1nx_jvWtUy!0 zKjeWbP5hWbpu?gC)gu17%&=%S$tGR7?iZ)-2;a2{We;oI*BN$UQbfdgtGU>W3R^>1RkN{jd!nf@n^Rp8R{4$8FaGI?^^21QSH7f3!TK}9 zmH$;CJGF>8TzRtbYwR%*%vU*)14V(XgGo}1BUra!)JG7qD_GgeT_0^c9YP`ga=C2Xh$6ZBHHw{X_4l*ehWx}EE4Q= zt=z=~!|F20-nDxLav9x*C zOeUKu^iE5}!X4pBNH&EL<5XiV7N|q2Of)&W0 z?_D)zM!6y3KXh>%j)$-+q?-v16deesJ1vlAqbzZ=^hh!Vj(KQ(4_AGO&)RI@15a1x zNvv;KhiRWmg0m9EYlkkg_!P`h*hZPV6di%LGQpG)VnIzX_s>X@`5;@K?E_-|xKbbN z$1xc+?^Zro>Ta;3#{SAwwf>~BzacrV1^ytrDmM4B0n--dz%wkP#K|T^EOjnaF^cg{ zEpW^tnQbXp9D>zC*OP$?`H&VFfl21^9B^Lty zYBW{h5OSFzts7xFgB0vGGR7&uDsZ#FvQt`lD~k``q(CF-X*m+s2cz5k?N)(htF)3j z#KJPh27`FH_sg=g>JdR#m0dCnT1%z5TP+l`e2u21OJ&Ak7J(}$$9W}8FY&JDMqrePGi(qUx7&t zFC~-n*F~@qYA|nux8{}ZMkT%{w-1G&CP1$6vs;jOKDTF{AS%F)=@-vM5RR3DFYu*# zm891>DfU*x&L4p}2h$Xw<&R3yI4`j5%fxx-YIFeFD%DhcYTASOIaNFd#=6+li#}41 zTG^c`D{jrvz->n};^jQ$>!T>Gz4IW92nEz*KQBu5cG`_Wp;d=P7edU{>5)LUy{Bc5 zjzFGlQAH@4B8<0HI^ZKGj#xbJhddopAikex@vZzh@xh{bk?+T`3a7fZ3Q%dh$0psQ z&x%p9^S;BQfbVwBb4fZvsS}*$w`f9NOJ%L~`NrbtZc`lRD`SkkdTRgf}`o)&@uObLHS7831$(kvg zAh_~d-pgMyAMCHJ$npZqzN|`7nNwE6{_xb^%^CUs7C0sG+3sT=rJWV_*Zqjak46qh z>A4F&3Qu=YBg(ec@FXVE#}x@i>)Bd%WbbzfY>RtzSrB{q>`6Fu^ogb7Dq{m(b0QuSI34kd z;N-^+R14X6&hK8p?PODr7VrrBVJ@5h1N1Xq3l>_&v5GRBA)}+~#zd18jwsP9`=}QD zmBcE1%+}CbS0T4OoFMViinX!#kO}rVz9|2a!g7K4KAm zBB;=rCyP~GMeKcm`SL9E(doJl>R@VGnu5G%TAlN94FY;|KI}M_IQ|gHHC;hp`f&$b z(zCkE=*lCXpp404jMyx0!FQk0g3tAtvOEo&c!Yj0ZHLVk6KsnL<#{hLf**tTPuXOG zvHg(;u#6e5yxgM0Wq=RH)?{?TO)Pj58od+oHjE%*Hnw1{tqbU!gAz7C=i~D@Qr;w+ zOa=K4I*UDsMmgyi`Z*AEV5MbBHu{}bVqHpBPZ5i4@He~%D;>M^Gc@V5tN0dl^4+{Y zxU$t`F9L7GDkhkJn-u-xgu<0ya)IR~BbI+BP+ojwB%{E5lRZD-VTn+;8IftxdJhQu zLQ3R&cpRFAwFh<^KiZiXF7_xZvJ|uqVO^ik1?cf}{H4|c`vEAMX!qh*5+ z#&)r-n8K0}47^zeqzQ|nz^2nChJ~#>34K?xsZ4G|CY#K|AQn#Tb)-&X3Cub^s@_?y zJYp0L8Ht{7x>p*`*phv;_m^4dY*X#^ZA`oL^L@N8FdYTeYBVI3R{kAgm6sSE{xXLv z_Zt>i{>!Go!iXhTG~Tbt3|)&lFE-!1r~7b5vG@S&n)q^61gnO%?6V~pa8Jdw1R-mT zdJt*-A7`u~t6^@&`WiJg9y$9f-{oB0kTrgEdIs>A3L(fL(mSABd>tGC^Q^bFA zJ}LaCB%5mSkt}-`IJO8xORN%BU{OYh)HvgnFK~gY0OLzqn^_S;jzmUxsHb>@RVb;n zzzuH0xpNx#XuJBwgjK$frIr7ZxY9}z;mSu`VEHp6mR~ZH&T*U^uI$$uoT0lUi37P4 z%C`+bwCI6!z^}tZb2XTEp;*aCC--wqqcqQgJ1HziEG6=-hi((FWMe(|(^g?x#V2=G zeTQXAQqF2%h-H{@KUOyyF7Zx#OaEBr_3TnA<({_)PVsRoiV23Ll`#ee-(`J2e8&Zr zF&9|Ae-pNOTwuunAB?S{)YO$?its^;z|zq+zJdpUDo*w#42xa$rG65N}^l45^&}B3|IcqvcAb1?hh1g*ONlmvg&3HIx(?}T5oKG<(nf#t12ZW-f)L9|`% zaugUZ#a^yow{5+&?&Lt_!N$W39iC+9f;{P-tCP+-q#9;as5`^GWD-*zXWy_UEy$!x z>M1J?e4c#}Z^55StxFr%(kiM(!`$|BeB9P#|HiWZ4}>fKhNQa$Cb^R6+`bS&nSd+b zF=F|DnGcp1SPqe7Dsc(CtMW?ar~+$I^xfnU^@|3KD>QCAU$xuPMH+W-ZU%4mY4x0a z|Ee*?=QTWBSKxPHUN{$pnR`(81xZKDdk~;VXfe`#o!u68EH`X|1qLVMbkZ}z9rL#B zQ!K5BkH5)26O2vVruz%vyY{@-Tg$P#Vi`az9u3Kx3J+Zt!FQt+_2B3BK;tYE=J(f1 zE{qECwJ3s9&M|% z5;4L439-sG7@xqGiM;G2!j-QnE;Ig(;mVIK>vg=ql1qf`(Msf@ZN@34N_l#=O~%Wo=TNH2PpBkHl2Ml{jdLYl21g12t~t?Ro5h4{i)#`N3Ahz0wEE zK>Lb{_Jk)`G_Xyj>#`qco^D=yT8*<6!gWN+Ce~ZC9`Cv>`k+R7Lr$#sbFA_%6LCjV zgH;*3@X;fC6@uKfj3K?!6&6FuZJ)=73Z!GD6%l6tScKfhXBd8ep2#atXz5rimhmwd zSBzNxNp-L&#F7_S_UJFfQm(5CxQOk10juj!gGmdDBrlVbZr^F#d_ONj*dezYa`d3@ zBY^Ouq+Nl<-2OXzU)Chab)9!|t*oWHx_dTY01!Jt2n0ZI0cBAZL#9MhmPpFt5Acg@ z%a&zJGQ)3v@|z6OL23&s6k$882uThB;v#W_C~hDr00b~S0}#t#FbihunVw#2$)zgO z_nvd}R#s+Jbyam$Pc8Q#BaxNUGu?eF>-+9^*4iS6aYckF<4x);s4jzV(W;ja-?s6w z_V60}B)ME)R;IQaW@_8bEHxU^_pgf3%0;f-R_EpcV81N;mBsJwUrmjSOfA|BC>HWJ z>vj@j@(13ZaO%xLf5!&Ktz&0X5fR+&``@5qm7;Jf<;BE$l{MXuQ9!(4KxGM<(Jt&R ziWni5*Kev;V52q}T4AV|s9JfIYn5w!<9&8gfAYzdD?GsRGE}QfvHVS~c8OBLnh8^n z-Kea96c5xC@JV$U=js3FhSB?j; z{J3{M*vv?D-rZ_NPK-1YZYO1fLHD)}A=SP`q*!#>JFKTw5a(_Fw>BXx^M9wTsB`eQ zpak`bov$ruVHG*E%umZ|X+~|yT{NYE)oR#vXi z^nG7du#CfsRBzArc{v`IEo-m@N3~g=g*`5#nUP)zvv7I!iiVv}wg;T!OSaQ;+HG-J zxoyu~6R;u7rp`ZQ%nf4;@0-FCjj<`u=4(2=RamJGSIM4Wv3-t*7f$mK+|%>)zCTU< z!PcmJ<;m2dkcVrQ^1&o@S4pv~%g0|ET^j1Vm_drggyteHo^UoT^vtHDxOa)WLa>9T ze~8*>s>JCbjM1i12D8B41rNLxt`rZcRT;GI^nKCNftWd6o$kQnA)v+p#Dxw%1 zEGj+>mw2E0l5*PhXByU}Ftu{Mywh+?d=r5gdO?A&>{M%&lw}%%#YOgiJ)z~2V>R|G zvtK+exIdLFUy=D>GZtgfF>c5e%VCMuQ~*#_I4}eWvR!knD4k7!&Hi^fIh&{#B&L*N zE?BL^W4H@y5r^7Eg9PSnSUv=vrfTcQVyUW?ny}CFOt4dY%l(#;D?=+59$;Cc0LuxI zfpS){3b2ga?x10NrKCtHDo5QAhMg>7H;0S4Cbgg2UuHRG6>!yK@GXZA?h^lNOUh|C zpt0pU0t>++PYP@3&@9PO_ET)h-8KV2ELQR3sugB$&d<1&tR)Aq;8L_!hMkiI_p{Wj zg?c>l46xR~dzy@;>R1LgbP-|YHxLhM2*vgGPLI_1aZyZxwD@EdQ|0ImyM@N(#d3PA zt;abls*B7RL}8+8h2dcwS~#iPf@OTRL{7N{ znYBxaGm7>GHang@?YG=>#Xg3SQBxWWgKuG$0Zyz}L^!y4xbe{PO>nBbU1@dtJIrLq zt;lNfcx%qbt@zjYFTXl}Z}}=!u!sRHY$?`gS!ju7Yye9NZJ4<IV7BR;of;ehIT5wwwCHjcv3$Wp+F8}+n9l>u{HRL&>0882Ebz#C}Xr)?xf^V>2 z=bLRMSN5w|D$hY>jZ(r^Wq?I>G#-1hZe)g7Lo9R zPG4TZk7SV(9_cPfdjEpwaA^G`zsaRAt?~t~DUL~LY zR}T9d<9$(sKf&br8t1=$z7+PVQYMu!;4WX4OkSmY~ zu<&KAzC>%x7)VyIr~u129t#G{bz;Aoq&-)~ScWs<_@oa1J5sTDah4r*{#xYPgjae( z?Fj#a@>G02CsC^yBDNDW}%of?V_r6-Akb-w{zWNtu?Hv1P{gn)`oJ@_3 zoME{FD9hOgph?gj$X)lY!iAv~OOx$DiZw8N*u^OAb{QOZH}9#2^82%RbbZK|ICMBr ztMdBsafhs0VVmbT4eTYhspg@TZ%=_%nHssmlwYMwfQ3YhdK^b?1>E7ePO`^LK{X27 z&wBE;#yfNPofhf3NC&h9`E|DC-0<+lBIH_2uD?Rszh+nR#8ifsQdDt`|w`*gL z?iC2iuw#}M_ySkd;tXpQtdm8pf@Ss^Gem@Tao%WzsH&-svYH;UYSr*i7X${k%pD_5tZYGumg3JrVhEsGZbGmNRqTElEy7kkS`2nf&Vi~}Wgjev z9y`q1k8I9{Gc!`N<0N~(WhZ5k{SEaXv=`j_{w29gGd$rwWx}zG@rzMy{MiC(-UHk}IFBR(Iu)drApY zBO}LWG(SYN2W!ZCs(f=e+MuhgmFNkya*{J}P4@t5G8qAR1&ByCy^hL~H)+6fs<&62p3%kBfz^zc8*+)%o+OY^+A3 zA!(mXp_M8(9$MMO(8^gQSH@wd;}&74Se|7|P5~Cr^CSbQr*pitNA1D*GHa@Qb119e z(v`UC+lIphIPdVOAo(Wc+S$0$o2qB@AXdk9!|Z|`zO+}xl+D@ED%ni1_DS|X;+yhy zz8$!t9*5Yz85i86VmXtVaGzb(nOp=-)~p)eW}rRKdc|uIsWlMm?b8vjs{mD9Nyjo*YP~tPfikPP+!*L4=F2t-`t0$!0w#Ag*Cf6Nd0d_6^x?AHDg6Zl~tZ_vD z^r})U84E#nyR7mxuGt*5)#&P2-Ui1Eb>( z_Bf7PkV4!?S}B&^Mmqz{F4*8TvD=~{^eoGj_6mDu7x{MlI(R>r_x{CMV++ETg)I(N zuv|>8+ME>JOU1%)rmiL1gV~tZt2WkhKfR6nX-ix#!iLH9UGHK-g6VnzL1>E<%OZvm z6m+-t%&6y3t6)g4ZjmTdHb%;jl`3pw%(lmDlT7JImCCbRt6b$9=~t)i_nN*jbm!St z`JZ5SmmPm|?b_*`ogMamkkhe_MpUFk%a~}dNQz|v;toVPOb%121-*CGF+T6|MXX>4 z|D@B-!X&U8CN!6jEP0qPPm@~ImZFQ*;td0C6jr$Wn>`B5hF03Oitl-!<5eqbd`ECX zJrwPBf;t+nVPTK=xzy6lPk@Eg3ENl)txyYnc084LifFrw0BrJ=sq z9RnJaFwH|&P6D9j+?u!|d9fZ5c!<$zbp2R`3c0jsKTIgcF4$I?ZJ2j=|Cn!{U*a3- z>q@SS+kV2J;SJb*18Oy>R=<1k;>ESKHP>~eVxcTOI#b|9J;Wn4%Dmy2yo~8L0Xb|K%Bj!Qb=#4@sa_h^^Qme4-G20}wtuos% zvu*S4+px3BH_}sQ`ZT^VXP9F75)ZI68egkc-@b6+!rO1Z&9ozBg0c4|OR91OGGUVlp0K00CM~zF0f~U zIi*;(msUv`p&1bp+8M4@RR7}cCOaCVVtFE#c^)a2IVreL!ApfEr;3QU9k*Qn|c08EGS4CHAl#BO48Ui znDW8c#+Yr7*(RB7mDz@wZJT%ga+TrTI) z*tKbzhGFQsZlKYH9-Df~_y64Jh{VN`bf7rsvTLYrA0YP8hUh7eCE%{k9ZUUWD;1FM z)^l(;7ymO(KF(Mu%zc4kh`Xye6WS8B_A@!JrsE|0L>kx?&-+{IUwlq|;JO=IoCp63 zyay;H?27L@NjDawgXAJ>+KdmZ%OR8md9bRYpDgYvtMQojIk7sTEOr3fRjv=9=IL;R1-r)aQ7fC$rP+4=ka_#DK626&(tLB{>9#Pz7pS3c+}n4;@l13y#d~% zz!uH-Z%YQ=86z+vV9U$Sa}t3sV#LWUf>V>uCaOs+&c}H1EyPlTJCHCuyJLz4$ggzXD3amO{-kF0&ooA?2jSx;r4r>So~rb!rIz@Tv&KCpI>HLh3OV1S4gy2 zmX(dMs9?)TpqXvRJsoluZXfx6+@Wpu9IwiTpe58QjS?rs;hc7q2)&($awN%4ma>%Q za&0$7>#qhU!iL4yXI8Tdx)s^SsmWJ7?`u)Q`XzgvCZh);JpiQ(SF|d9hp#P z+xEN#SO6m_Os9ke(CZSqOXv-m?OkPn+vi2@ZNpsMW|?c3k;{l>{5I?#FI5r53p#!i zV#eI8KU|w4}1=odY6)v8Eb1!h+ zIK8vEra1V!2E2;p+!+WThn06j@hFr^f5iAZpZ|0||IZ7B+eoX>nHi%cnIYCux2Ryt zaEgUzfZ1UBN!qI+F3+22p#%d&<{i#TwGw|_-rw@_v;qwlRzR=f=QZa5rCQHjXnkF< zpbr#Msn7Hhq~r>fQA)+)c^4_P;yt7K7w>IX0q%JQy!U{YXNu*Ao_Aa>CRTi`@6FmYFU1tgl`C-$_^a|94IP%kRIY!a$~DiX~qJyNch$5g7+ay>n8^a;=qJ5bzX> z4c@zWUbG5hrewoI>R;@-;I4Ad<*LGcSbQp-Z=2zR6{9n`m9KUCn%!zzly2$YXh?EU0IMP^?+YT(05e=2 zgapWb#|YJ#0o4W2$1__!kK%9J;6?oSXm%HO9kcqB#<>&J%z2q7_S`ZDjFswN zoX{%FKFh0C*0^j_p_M+3E!2Y;VDXLtF5v%_OG+X4`DtgIvPE)$ln}Qa+HfA0PLb)y zXG^5FZSh~Vs&jlk-~ydIqSs~-mLn0{kzK@QrC7)l`$?)-IW(4vpgB<~-D*^*-&ZoC zf0>@3(vCMG8nXOjUCdQO1rsxbaCZoi# zT@7+2ubEHb%{vB2C0SO9eikEaxqr7KHQUS$!+^2?&c zhm|u>v{6d!&|HRTetcRom$NUMR6<*fjI6OnlaUM;ES?Fxr zHdVGrp+c1{sbGuJE!`}KI;G)&>B{oWQmdiU?3jzeq$PpX2KWp7*1 z;R9VlsW@ZB=Qvk|Ja$;Xxi#xKU?~EV4Z*xNdxAzoveo$qg*b!Q34r(0$jC#; znzBVsbu^wgkUvZ{D`otwTjX?f)4_3(62l5m67A_}ykr#v z=Tlne>Eg43S_R3dIye2WN2OA_1y!hXJ?WG7pvr2!{s*oLLa1DW+RIRVmS^8x19)k6 z7j2fuLapL)AHdzu!pgHyd@mI4gu?xR1uZ;7%yE7@pT9qsyEP?RDA+A7UjWnRN1UeOwS~+y#%}jPd4Ji)+ z3P-K%%!kKL3KbbzNfz0A-c_7+2<~6=XFmi?7ak=L z^(wQSmpocmR4SGtO;#$Vgo@`~sn_3f-7heSLPzZ))J{Y7d7gA|7U0cUU%lC%V*4f@ z?*KUdBHaEW*ZqZ0LH-^n6q#uGV~n(X+;JXpocAQ;LW+>$aHIabJl z?o0Pvc_vCM0pavEI;I#U~ljp+0zPW1~;~7cL6ToBj7l1dfsDldD&7kw4d92FtQ`$A}5c3o~jPZ z(~}j}Xf@Kspo(9BK)Y!PVBJi|XgE_R`NLr2&xuoj1)PsFn|QQ_lX?lIu?3jh%G_0! zHj*MeA}VqkebQpNa>8|gTCe{d1AnSfsh@$`mqp&!Rh%m|4`$BEvvL6sW{(5h_GOM= z1AsaIE3uGY=oFj#Vp(^2*De_qRN> z@>lc1PvbDQbosxc0L$OH?uQ8ENwF}TpU;lQNfYX%C`F1s4bUASZiGUsY+?n4$(=XF z30`NO1Xh5&D7n{gohdPF@)Ph}TytBj_OaQYFgmnK=_XO6kxwd>^h@Cs*FEpL|C31+ z5-RoUJnyUaEa${aGgnEkzyQ)6fG)GOu{i+Qr)9GT|hva(mIx1gyx(at5P$CD!b`Mwe~v(I7O_#57>`KUBsp_ z%;Lqrlh`0t<|z|88(K*;)MxDVBNbZNzpuixg@P?ix5#8LrCYkeF;6YXC1WhhFlB>o6A1>$h2bKH zj7ghHAc{EiP-@U7!-(%qQJAHU8w}Jc*zS|s%gxW{hv<#60@%488&cX;&wGl8R^C>j zmHir9!2DlQfaNLQ|B&b9*di0KGr7Xv0>bvWg>DTYgS!isWl4pOiKY{{FQrPtxK(ip z>N)QApB7KQ9yc_otU$>{XVZd?S_NCUh*6W1=26lFO2<`&3n~Y!Kb0bfXk~iSlU?z= z*If6{sP`k+D(g_c0=2*APsl~wIlVQdf0-^GJ1C|91u z19G{~IL_@%w@4416fMk5v~IdZ-k)3YTcXw>c`)m;^8P4NVQCr?d?={0EZj&%sO0!( zW-=$JiTZmJ@=IWfUYTN8%QW;ksI^#di))nte}nl!C{ihm$=I1@t&moU^8~PJXsKM^4=vM$ox!gjP8N^$SpcflI=xGuoI~$(3P@9))`W?sy4~yu{(b`55GHr(g?{ zD^H+k`9v=FU@rGaRgzhO{UqG2sNxb72M#92peQVs1`mwsS*ujo9c;Qmgp>Ro8ur z7g?U*JIGTCviEIo0X%pDa)+5*dCGBq-uH7-u@F$p5?Go2JBQGHgyyjv0`Y;=3A!s2 zkOqshR7g0vT)Fs*{AZlr!Imce@Ep3A!4Xq{DfMmx0eli97)_l&!IrPGBbQ^k<{4U1%`}dRyiF#MZG; zyB6fa3jdS@OB_C?g$qm67t?{V>}1A&m&T+{s`lda6O@Goa5c_?GhADrO&cIqV`us! zCR$wAWvo`K)pmAv>h<${T=5#zeh6AZ2Wv7@q z&0wKsqsd{x^QK!4Q#x27+1ashQ?tS%biU*{rUl&55n+W}Zkn}961v&S)=E%ljl8GC zF#TqSS!$wvKZx3TEa8NCYc7;c_sR;Dq)JIjltexKST#-h_Ey)hZ+4Qia z({ASZZ-Jb0dEA|fqRnLyQJx^sYs7NOq*?V*5o-EDk5w7T2b*{J(ZD_gxjM#*O60$* z;*Mi-N@jgLV~Td2d+ut6>|s3PRF~vADpp~40Gr8FtJUr8?Hf04Y;A3^KdRL}U#&uY zl{;ErRscOBV~d$vh3X-O_Gx12Alu9LP^GNSbvb{ zMzna4v+Bnr5!p)D^N+DGl{s-a38}Iq z(VAQy2VBR3rSt?BH+a-xN8>MMa(b)?sVrfeV~*BV-0Hv-1%3x-iO%wvsk=Ql6MMTk zm{I`VO{K&_<*Mgh^8F{ogkKUW>sUMY6~4jP#6wl5D7i8M`w5VLglc88*CWu5E$qH_r zr@favB@k>{uv7+36tLtbW13_ly8xqYp2o$ZJrmD)lIMB^RVZzMN-!ncF_psh&DCm^ z__ALABVKv=GIzYGs+AGiDJ;0RUIym~uthEuzQ9z;=H@273yX`3NdPC8Q#PSDC0%AX ziIS=|l(?OdD@>(a^t>m0A6i1C3ho7Pzsw(Kc3cK{8_&v=Tp6XU;lb=a zEI>T|WfU!sfpZt+?xtW1*DWYoc)Z27Z|k93sJ^8)^GV$@WBiw+hQK+nS~Kq#+6I{) zwE6fGEeKj{a4rn+=bD)!!evUGScGCgE>S&hbL`)w#4s-&@E}~YwN?+~S@6bn45uW8 zO3EQ8FI?AUJLY=57DcZ`(S;!RyPX}legUricusrmkJZ?cYCnd?y`bF*hVh>)>sK`G z?%mx7NI*J{)6wOWh3+1>JxkDi7@HK`l8?LW8gL*p?{VlOqlQTIIINr8&#^QI&!?EF z#daEtVArT(NJFhc?VHD4KGbTkAZzRMvzP;O z#|}$&eSGaq;i`7@#`QyWL~Hnya< zGRgh|_y*rwEG~YXfwswZ!{JAR;Gt6KQQOXUgzkP^PBR%TzlHX&MbN2yfh(5M*!=y~ z*x4d_2f9l*m}JhL(na(t?G#|K6f z2D;NKMI3K|dkH)&P1!=B@{)pGC07pKPQ(|F11vqqojs&mav9x%$7fKq9M8%X$$!#s z*DcK;`*M2uuZTJ&D1y`KZk&%>avjWL*%Xbac;_$Cs(2Hf9SVuCo3Q{PDb~ z0Czmb7S?_hF1-rgN8rev;2a{{{uVo2mtB0sw%=>p_t|#2BWQPYIrW3v(+k}N`rsBo ztCF*w{QWrCb#xyx1PaW~4TXQBlIO_0Fqcm$A>_6O`4zB5>l6w_$Dyaudz4I}O)7#J zm#2Rj2g2=S3_J_kF?3(SgJ*oDREn2SDO;-3*Cnr$?RIoh9Es7}{v@Brk~@@zZV@WaiWYgDayj*>Tc#1Z zMa@b*nZ$|ihY=+=3TLhgxjJS};ZJXG;G(nR=_b*ZQ z#O+iJJmqGJq5C|d_ZQO8%~Z-|@Seq@BZO|HQbuJ=swlZKdZVKJBZ%C&M7$+V50l4l z*!F#v^>8=llco8+`LE+OSE5rwfufYpM~7Oj4U@<74M`j2__sheRag?qNzR--s6s2Y z_4G&SHm(wqgb+n%ogX_6CtspShU?9CGLX`d?P9{a5CqqK|8q&I+8 zw-ufqpxps*8^G~64w?Hk)GbG{(EYoXb;P#s>Im9Nmy-;+^zb)LZ`6gR1X>;fh}EWI zhP5UNAV+vGZa}mQ9;PGZ)zg`Ree&9?in zth}XLK8Ev)jtj(Q=xtea{b}32*RmeYriT$?Q%kXAb^e|a^6BzAQPr81_;BxI7OfWt z*)=L74D$Tn dCE{nyGx)`B$S&?qOeNK~%<6|)wPfHG1l(Bxa3VD|#Vt4T|UG@FT zzJD?ZzS*WyJn+tOmExmHsbVZesT3twX2B>=tW4zh2-x?4eH-tCobcEY1^%98t=RTG zR(IsU8uQ!?Z-1ZYnzbW@3mRYkxk$L_QTykJLz)jC|&vyFfd7h7oUQ( zR32ZDaNcJLqKFenw?@qouV}iR%ez=)tzCo>y{ZuIzp2+FyxvOYWn{e0R5KPg0;| z{XTNs!`&1MT@S&3sXv_r3KW?Htu`}l0hggHb`sV3wmDkl+vS|{+jTOLD(9iTC=I&p z=tib_(G3&d#@z$&?UT|ceezs3VL+;sE?R{GDXT&7bjl$YFsj=C|I2MucL7IOD4PYB z)2AS}0@k5)sNAxC(X!r0A(xJdMWS~$(RWa<(@lqN5kGB!7+ICrNcWUE4Kdjx080FF zO;xEfjBVfpX|%O?q`?6FtYsYS#%|Hg0{?$$0)8oi?v6k`kavlIy1Q068w6WH@Y$3^ z;n!!uuYvas0o@yz$ov!av?;kVw?=u=w@UJRl#3P~Z&^ty7CQf`W&Mn09Vhl&X^)((IcXNrDxw1}11~zgzlzK`lq^X5+##D;0D2~NOgZkJeNFks@nno+bybNI{A6^gw2q>AD?gO zaz0V4;Cmc^PI2doF5#M?t<v@;N7*#S`b_gg4crJ zt7+Wc0Dm3)3*f&fp!kppm?izNI{>N)GfM1!yjF8qSrUYLV44NGVfoCUc) zl;Rmwob)MFvVoM8MCqtiV#0fwoq~X;HK$byQQaHhzbdHis-n8NaXH;0b;|=_zl&Gr zvm>KhM6}#A-<=Axq(Hly*QtN>PCA|r2D+)gF8AlR>K?M;*@l?q0iv%*bD4WdR7w3v zoPAXDliP{Qty(^)tOiNM!qBr<&mCxo%z@y#N4i%Qx}`*ES1C2j_1Xx6KPTvxu@n(V zVdt+>>uerx+Qzzh)tgbt6=i$aV~85JO5O4>ugBvAtH?_#1rBT*2WUj(VyFG0`B5$~jGHRNB^tW-q<7 zApVsGM9zNm`T8fh9)HA$E$OlAAyGOBmGh0pW)S>S5ImDqDg45P-~z9k_n&Q}I+fWx zpZ0jl<%A&@>m6V_ZJ-?=pE1oP%et$#XzAv4V&AR@j6-{z{9qhU0q%|$2m?e1+~jZ; z(ft@=V5wNDjBvz8VU|(|8o{s#v-tQ_$~QgH$;RW*?mMIGY|{<5ht?-a7?{<21B!K=LSeL?jOB- z7(?kjp*s;#VV5uC|2`*iy9MCnU8+Fvbenf+4d9%5Zj@Y6HY$4ry->H1Xrc2bz-DZB zSC;%*Q5VyEr)d_tx$Cm${sS)^32(G{2qKdpF=n^rpKFIl5ZOkW7$%Z~ije?nW&2>h z04dMf#?|DU7RJn1?8K6J;bje>mg7RPPZsRRa2@Hbf6gPGliZf|$z^I(7|%6>;JHTQ z`&p_BZlFW%P4Hh4wZR)GQB)vBS#NtBKPoE{x*r7VonSBXfO*#CWSSqctbfM9m=eai z$(7W3Ag@zL8PgH8hlXy^0I+Qq>>7B-IDRh=-)&dfK+s*qFpKWV_*R6VwIJS-8n!pU z4C(#EReFH-aB?LZLg^7sL8~_!uLptGXndXlb)x}k2h%z5+0EFy2BtuN2R9q`G#_a~qA<*u6$W)S@J*jvpI%VE19-xgGSzsRqQ#hA@&S%k~hhb0i+&*uW#OvY_2Vko1ql*iB>gvfDgRjoRFiXzIRTpJMG*D7&#lJ8j z=Alfn+w+xs_~AP0mLBv5nB|r1HJoI)y@bjYq`EVW##4;mI#Asv52OT_A$U%BJ#E#!E&3jGrh-n@l6uK#4EZh5WPxQ`S zbaX#;gzh@!;<_BV>qj_-IHS)zQnrVMLONEB3VN6FxNToZbl>bEOM2k*o}Q*2awX|k z8W6f)M%U8GM&nxq*GYZCudhH*<(*D~H-t*r#$CfDfQ#xmP;y1tq`B@EP`X(1z=Ub* zPO$8xVo6fqZyClyiUK@8sSbl3H8Sg}n9YyJk!ja4yTxGiQ>Av9oQ-M_<)WGnS`;~5;wM8BUW(*omRHKMag|1+)@+`p z5DMuNNp&r@yAF+Qp4J?^BzTS_3ZwOt>RnfMfYL>Ho!-Mi+gt?eXq#e5;I;_77{-03 zS=Q*) zhW8dH(yv6g-4VSzK{t0THJg=2<4?1=EztWMFC(NV3LRT0QB*mKk}Jxl!|uW=&r(Xd z{0dkOn1^`oL5BI{@%u<@w;IOL-sG1IxumN0vu?bB$S-?l#=ZNR#Wv?RNl%-+cB6==+qn_c>rq+9I0|YNJM#31ckYIe7F=)T4z3PSg1JL5Jx*PwA30uO?(wMmqU z%F$JFMcLH9(*W;?Yh9#tG2aK)?O-l|b*v-#fnm`3_mJ?8ndU7ks>L^>PBN+Hb#CP0;|G{ zRH7ha%D56mYy+b8%x~_=r6_RWRv$wcfP(49hTykMHJ8b#d87u6%s z!L#_E+1>TYKn^CtZRu3X>XW^2n@NMA35)E++mX_(EOKR=F$|{&VO|MTZU0WYI~?3(ULkRFOnJtx;LfCW=QX9 z8Xo}ZYgO*n*LdN#wgGTxPpa!kemyQmMN9qA-afxe$8XVzy`nu;O5cj5%C;Xtq_ge* z%5DTD*kM{Fij2KDPcj^lS&HiVCcMkd<~ljy7{f`DOS7F1jSJ9dLU0-yueKx#@!VyV z(5!5F>^3~4*Gb^^17JM>CPU^sIDq$r?%zjXK5Q7r2XZzg5nB#^+0*xweaWOr9iXJ~ zgkG(r0sBv5uu#{uQvWD@kkEYqxIGf+?hfW2o^$-{L)3`eJT#-I(4{m5dbVdwDw8C7 zck?lI7b>sdxz=d>NiXOo*AfHpzi;8Ti+&|`@e>6HO0FoIL+{-oY@)S-{3j^zelQZrR1+6eDW#1cU8-#5N*FyTnXVXws$d#;;Rv0%4WqL!xFMG#$L==z?km?^LB*pckr~a zOsG70@vjWyUWD#@Vh_|{&ZcY%S&ul3Jm1i?Bcxc08dZ5~+7`ePW%70d*gm1V&-;^! z-ubG6z0ha_UB(YubI z&0fCFk3b9==EHlcn9Zi5-%741xuUFP@5TB@NrA27lSqNfU@UhOEy?ST>-s~;g3E?+ zM@QP*Q?c~cFk~)D6DweltnnIr&OI*XNEdsg5Okxc-nS7|oSBE#)An_nbZl01?m*9@TXHj>;$XuKd8 zu7S$rx=IyLHYZ#jr~4kE(Yo?@40VgaHH=|*kS^`Vzcq|SgzjUyezcpXDFxcSy-ppQ zDSMj6^_8cA0h&z^TG6xx=-DWF|H!2$u>Y;NG?tIg)ul76KQLS+jY8wlO6LgRD`y2-V~^R3+QX}2Q`dMQ zr%*9Sh4!8ik`&hODOdVu%7Y=ft+v6Q^#OSN0$>j2khHuS|QMRMwozZAJ5L7 z%A^}~_rT{APEH___b*qvL3iTotC#?$M*(`2oMMCm={N|&r%x7j?+{&ut3 z2*YQa%^ykJ?x<4u#TqoL(D0z~bq>@?eX@hlttO%2;D*#4}ozn zvfv^Zhq}4$1QEvPUo?#O5{nteJxp{AN_)a-r|Yh+m)QU7x>lka4NZ%5z0hs2z-Y;7 ztUNamy~)4Q|BuwW@I86P3r2m6nJj+CpJy3*PUet9xr)fE+SlEpmDVc_@Gx*B)PAVHY3{EVV?}^(PrxL^J z?J(q_@30z1JohWw4Z}i4rDP>aPd8Jo**wF(1n-{+!*5Ht&VqIex^F;phx?V9Z$b0r zHt62QE?%M1C&~tqE2dfnW&PXp?Jpn3q8IMNdj+glS}e%VkAQI(l3WptqaDak*S}*J z-$`m1It=6AqjVu+yPq-Io?#ZoOWV4>z+SFtnyu+3-QU!-(w;+|JD$5y*Ccn_+%pZj zM-DS?xL5@CSTn}reZWr*Lqr#(mFEVK(+e=C0O_Ad+UeNx?S`` zb&zQM(j~gWh%ktv9M>j{`W8YjinQ>u7H-5}!W7IOOKy|&meMC}JQqOoZLUoCaTc1V zge;NAHda`&iz@(cs}GwpWuvoHRlw~4#}T6WyqBjlxczQ0?m^sU2iCwOp*x1_XAI++ z#LMLIADASeL@-@n*7f5_{lb88jooFpwzy)^4R*)Xbzh@cd8gKqJ#bccEY!&%0?A41L?&ujGaiM4k~w^~mTDQDI1aDGYaGS#l!`|929)yPhmiYw!GF3W!u!E^7wC-nG|(}TEaSA3 z$N!-_j5|_FM$+fMwrK0JUu9*Sjyn8g8G77G1nxX5KwwHBODc$^by+bj>DVCw? zDfi|!=$`SF4X3nUFjl)9hC6sK2tzZ9*23Cfgf`T-z;36vj#Ss;IS)ci=;GHGpn0Oj zZDBjZg{rx*GGzyD7c(C^YMM+yee`88Uv9^3c03Bkoe0zngl`4I$;Qd$^`B&XPZGvI zu4xZ3oW6{~6}`5onYZeejnI3Ml6&FAt5s=4++x-nl>CmSO`iO+1xd_{q z&?;Kp*WYTe*Kx=AFkFqI@1%g5{lh7^?jTV%Al!x~`^qLS6l}iHhTBc77+lAfsxn@g zk}Jxl+p>LQ?*up&i z<($8%>t#uEcwW@?qnhS)lv#>R(Od~!m4LX;_+JiCNP%HD&m zlXc7@E3bmFnm}xM{ul>du3oq_Ql z2bU!~@in{nZX04tr_%NK`kHEIqD;vZWixN*I~7J#F{qA531Hzx&|eh%rzf~je*pCR zz`*u3yr;|p=qqUojPNhmj0>;vh)t|m{yZUFS{I#;p96S6)5_@B6a3Y#WEKEcu!D`! zdlKbv{MTPI{t!oi)d8*$Z{bbxCGpEz6ulNj-=#m2)RjEso#aIaxq@1y!PH;~h70wp zT$6*!o~6wCMZID~F}vrWCU(EAb4?-IDp zk6XB^Nd;S)IuEm35irEmZMy$`cJ#n)c?Xg9!9 zOE=uk2$d#IMA<-}QBspg^bVOI0btPmqZC~C!tDm4v)3#3SKv1HF1-oi zYc0f1qPL6FPUwzmWTH&T6=lj=mMsP)dkE91iSzP|ZC(fc^%e`Jk9UK9H)zO+fd-C_ zVy1+5bm%5mG8FhDJlbv|dv&;oiLJxS?DZhbm%f&Fk}rv*8pBtPqQ*5SClCm&R*&MM~@`DdKx+QUIy*u76tCa?QXRA zYxw!YpqG*Gh|h?_N}w-;W^@g?NUG~WdmV{zAo5GO=Tgcf%XWhiULB(ANMn-o*x7~f zTS93h&&dlCAv-8b=zaqeMXsu+Q<*YlUF@YU_iw?f7zxXHoa?23Cm~(X36e|UHaq_^ zX!#howHU*XfaY+ARQG6k2gTAuu8aw~d$^hQK<_4mn-Ep-8e-gzcu7h0y%tahu{$Y= z+ff|imNz{WbRZH+Ve>)MKnpK)1N2m+Z@!{P|1$}YgG>LF7$i^j)9s#Q>? oOqnue%9JTnrcBuc+W!||0F+ELFdeB~^#A|>07*qoM6N<$g5WYFssI20 literal 182957 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%0D-@A83v|O@Fm3(^5okA&9 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

_>eyTk) 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%0D-3JrY3+Dv6*E{JvU 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%0A37ziTX{1R7mTfol*%~%Lo4FYRw?4x@8o6RwZTS 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 From 79a6235811de391d8ae9d0b90bf39c2160dc7907 Mon Sep 17 00:00:00 2001 From: Ray 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 00000000..8582adb4 --- /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(); +}