summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--externals/glad/include/KHR/khrplatform.h12
-rw-r--r--externals/glad/include/glad/glad.h2388
-rw-r--r--externals/glad/src/glad.c1125
-rw-r--r--src/common/file_util.cpp49
-rw-r--r--src/common/file_util.h15
-rw-r--r--src/core/core_timing_util.cpp8
-rw-r--r--src/core/hle/kernel/hle_ipc.cpp7
-rw-r--r--src/core/hle/kernel/hle_ipc.h8
-rw-r--r--src/core/hle/kernel/server_session.cpp2
-rw-r--r--src/core/hle/service/aoc/aoc_u.cpp69
-rw-r--r--src/core/hle/service/vi/vi.cpp2
-rw-r--r--src/core/loader/nso.cpp2
-rw-r--r--src/video_core/engines/shader_bytecode.h20
-rw-r--r--src/video_core/renderer_opengl/gl_device.cpp1
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp8
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.h3
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.cpp120
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.h14
-rw-r--r--src/video_core/renderer_opengl/gl_shader_disk_cache.cpp8
-rw-r--r--src/video_core/renderer_opengl/gl_shader_disk_cache.h7
-rw-r--r--src/video_core/renderer_opengl/gl_shader_gen.cpp9
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.cpp6
-rw-r--r--src/video_core/renderer_opengl/renderer_opengl.h3
-rw-r--r--src/video_core/renderer_opengl/utils.cpp16
-rw-r--r--src/video_core/renderer_opengl/utils.h4
-rw-r--r--src/video_core/shader/decode/memory.cpp82
-rw-r--r--src/video_core/shader/shader_ir.h6
-rw-r--r--src/yuzu/CMakeLists.txt4
-rw-r--r--src/yuzu/applets/error.cpp6
-rw-r--r--src/yuzu/applets/software_keyboard.cpp23
-rw-r--r--src/yuzu/applets/software_keyboard.h1
-rw-r--r--src/yuzu/bootmanager.cpp18
-rw-r--r--src/yuzu/configuration/config.cpp73
-rw-r--r--src/yuzu/configuration/config.h3
-rw-r--r--src/yuzu/configuration/configure_dialog.cpp3
-rw-r--r--src/yuzu/configuration/configure_hotkeys.cpp38
-rw-r--r--src/yuzu/configuration/configure_hotkeys.h6
-rw-r--r--src/yuzu/main.cpp260
-rw-r--r--src/yuzu/util/sequence_dialog/sequence_dialog.cpp13
-rw-r--r--src/yuzu_cmd/config.cpp4
40 files changed, 3518 insertions, 928 deletions
diff --git a/externals/glad/include/KHR/khrplatform.h b/externals/glad/include/KHR/khrplatform.h
index 975bbffed..5b55ea2b9 100644
--- a/externals/glad/include/KHR/khrplatform.h
+++ b/externals/glad/include/KHR/khrplatform.h
@@ -90,12 +90,20 @@
90 * int arg2) KHRONOS_APIATTRIBUTES; 90 * int arg2) KHRONOS_APIATTRIBUTES;
91 */ 91 */
92 92
93#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
94# define KHRONOS_STATIC 1
95#endif
96
93/*------------------------------------------------------------------------- 97/*-------------------------------------------------------------------------
94 * Definition of KHRONOS_APICALL 98 * Definition of KHRONOS_APICALL
95 *------------------------------------------------------------------------- 99 *-------------------------------------------------------------------------
96 * This precedes the return type of the function in the function prototype. 100 * This precedes the return type of the function in the function prototype.
97 */ 101 */
98#if defined(_WIN32) && !defined(__SCITECH_SNAP__) 102#if defined(KHRONOS_STATIC)
103 /* If the preprocessor constant KHRONOS_STATIC is defined, make the
104 * header compatible with static linking. */
105# define KHRONOS_APICALL
106#elif defined(_WIN32)
99# define KHRONOS_APICALL __declspec(dllimport) 107# define KHRONOS_APICALL __declspec(dllimport)
100#elif defined (__SYMBIAN32__) 108#elif defined (__SYMBIAN32__)
101# define KHRONOS_APICALL IMPORT_C 109# define KHRONOS_APICALL IMPORT_C
@@ -111,7 +119,7 @@
111 * This follows the return type of the function and precedes the function 119 * This follows the return type of the function and precedes the function
112 * name in the function prototype. 120 * name in the function prototype.
113 */ 121 */
114#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) 122#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(KHRONOS_STATIC)
115 /* Win32 but not WinCE */ 123 /* Win32 but not WinCE */
116# define KHRONOS_APIENTRY __stdcall 124# define KHRONOS_APIENTRY __stdcall
117#else 125#else
diff --git a/externals/glad/include/glad/glad.h b/externals/glad/include/glad/glad.h
index d638600ff..6e16358ea 100644
--- a/externals/glad/include/glad/glad.h
+++ b/externals/glad/include/glad/glad.h
@@ -1,11 +1,11 @@
1/* 1/*
2 2
3 OpenGL loader generated by glad 0.1.28 on Sat Nov 17 22:59:18 2018. 3 OpenGL loader generated by glad 0.1.29 on Wed May 22 00:45:40 2019.
4 4
5 Language/Generator: C/C++ 5 Language/Generator: C/C++
6 Specification: gl 6 Specification: gl
7 APIs: gl=4.3 7 APIs: gl=4.6
8 Profile: core 8 Profile: compatibility
9 Extensions: 9 Extensions:
10 GL_3DFX_multisample, 10 GL_3DFX_multisample,
11 GL_3DFX_tbuffer, 11 GL_3DFX_tbuffer,
@@ -348,6 +348,7 @@
348 GL_EXT_texture_object, 348 GL_EXT_texture_object,
349 GL_EXT_texture_perturb_normal, 349 GL_EXT_texture_perturb_normal,
350 GL_EXT_texture_sRGB, 350 GL_EXT_texture_sRGB,
351 GL_EXT_texture_sRGB_R8,
351 GL_EXT_texture_sRGB_decode, 352 GL_EXT_texture_sRGB_decode,
352 GL_EXT_texture_shared_exponent, 353 GL_EXT_texture_shared_exponent,
353 GL_EXT_texture_snorm, 354 GL_EXT_texture_snorm,
@@ -611,7 +612,7 @@
611 Reproducible: False 612 Reproducible: False
612 613
613 Commandline: 614 Commandline:
614 --profile="core" --api="gl=4.3" --generator="c" --spec="gl" --extensions="GL_3DFX_multisample,GL_3DFX_tbuffer,GL_3DFX_texture_compression_FXT1,GL_AMD_blend_minmax_factor,GL_AMD_conservative_depth,GL_AMD_debug_output,GL_AMD_depth_clamp_separate,GL_AMD_draw_buffers_blend,GL_AMD_framebuffer_multisample_advanced,GL_AMD_framebuffer_sample_positions,GL_AMD_gcn_shader,GL_AMD_gpu_shader_half_float,GL_AMD_gpu_shader_int16,GL_AMD_gpu_shader_int64,GL_AMD_interleaved_elements,GL_AMD_multi_draw_indirect,GL_AMD_name_gen_delete,GL_AMD_occlusion_query_event,GL_AMD_performance_monitor,GL_AMD_pinned_memory,GL_AMD_query_buffer_object,GL_AMD_sample_positions,GL_AMD_seamless_cubemap_per_texture,GL_AMD_shader_atomic_counter_ops,GL_AMD_shader_ballot,GL_AMD_shader_explicit_vertex_parameter,GL_AMD_shader_gpu_shader_half_float_fetch,GL_AMD_shader_image_load_store_lod,GL_AMD_shader_stencil_export,GL_AMD_shader_trinary_minmax,GL_AMD_sparse_texture,GL_AMD_stencil_operation_extended,GL_AMD_texture_gather_bias_lod,GL_AMD_texture_texture4,GL_AMD_transform_feedback3_lines_triangles,GL_AMD_transform_feedback4,GL_AMD_vertex_shader_layer,GL_AMD_vertex_shader_tessellator,GL_AMD_vertex_shader_viewport_index,GL_APPLE_aux_depth_stencil,GL_APPLE_client_storage,GL_APPLE_element_array,GL_APPLE_fence,GL_APPLE_float_pixels,GL_APPLE_flush_buffer_range,GL_APPLE_object_purgeable,GL_APPLE_rgb_422,GL_APPLE_row_bytes,GL_APPLE_specular_vector,GL_APPLE_texture_range,GL_APPLE_transform_hint,GL_APPLE_vertex_array_object,GL_APPLE_vertex_array_range,GL_APPLE_vertex_program_evaluators,GL_APPLE_ycbcr_422,GL_ARB_ES2_compatibility,GL_ARB_ES3_1_compatibility,GL_ARB_ES3_2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_arrays_of_arrays,GL_ARB_base_instance,GL_ARB_bindless_texture,GL_ARB_blend_func_extended,GL_ARB_buffer_storage,GL_ARB_cl_event,GL_ARB_clear_buffer_object,GL_ARB_clear_texture,GL_ARB_clip_control,GL_ARB_color_buffer_float,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_compute_shader,GL_ARB_compute_variable_group_size,GL_ARB_conditional_render_inverted,GL_ARB_conservative_depth,GL_ARB_copy_buffer,GL_ARB_copy_image,GL_ARB_cull_distance,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_derivative_control,GL_ARB_direct_state_access,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_draw_elements_base_vertex,GL_ARB_draw_indirect,GL_ARB_draw_instanced,GL_ARB_enhanced_layouts,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_coord_conventions,GL_ARB_fragment_layer_viewport,GL_ARB_fragment_program,GL_ARB_fragment_program_shadow,GL_ARB_fragment_shader,GL_ARB_fragment_shader_interlock,GL_ARB_framebuffer_no_attachments,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_geometry_shader4,GL_ARB_get_program_binary,GL_ARB_get_texture_sub_image,GL_ARB_gl_spirv,GL_ARB_gpu_shader5,GL_ARB_gpu_shader_fp64,GL_ARB_gpu_shader_int64,GL_ARB_half_float_pixel,GL_ARB_half_float_vertex,GL_ARB_imaging,GL_ARB_indirect_parameters,GL_ARB_instanced_arrays,GL_ARB_internalformat_query,GL_ARB_internalformat_query2,GL_ARB_invalidate_subdata,GL_ARB_map_buffer_alignment,GL_ARB_map_buffer_range,GL_ARB_matrix_palette,GL_ARB_multi_bind,GL_ARB_multi_draw_indirect,GL_ARB_multisample,GL_ARB_multitexture,GL_ARB_occlusion_query,GL_ARB_occlusion_query2,GL_ARB_parallel_shader_compile,GL_ARB_pipeline_statistics_query,GL_ARB_pixel_buffer_object,GL_ARB_point_parameters,GL_ARB_point_sprite,GL_ARB_polygon_offset_clamp,GL_ARB_post_depth_coverage,GL_ARB_program_interface_query,GL_ARB_provoking_vertex,GL_ARB_query_buffer_object,GL_ARB_robust_buffer_access_behavior,GL_ARB_robustness,GL_ARB_robustness_isolation,GL_ARB_sample_locations,GL_ARB_sample_shading,GL_ARB_sampler_objects,GL_ARB_seamless_cube_map,GL_ARB_seamless_cubemap_per_texture,GL_ARB_separate_shader_objects,GL_ARB_shader_atomic_counter_ops,GL_ARB_shader_atomic_counters,GL_ARB_shader_ballot,GL_ARB_shader_bit_encoding,GL_ARB_shader_clock,GL_ARB_shader_draw_parameters,GL_ARB_shader_group_vote,GL_ARB_shader_image_load_store,GL_ARB_shader_image_size,GL_ARB_shader_objects,GL_ARB_shader_precision,GL_ARB_shader_stencil_export,GL_ARB_shader_storage_buffer_object,GL_ARB_shader_subroutine,GL_ARB_shader_texture_image_samples,GL_ARB_shader_texture_lod,GL_ARB_shader_viewport_layer_array,GL_ARB_shading_language_100,GL_ARB_shading_language_420pack,GL_ARB_shading_language_include,GL_ARB_shading_language_packing,GL_ARB_shadow,GL_ARB_shadow_ambient,GL_ARB_sparse_buffer,GL_ARB_sparse_texture,GL_ARB_sparse_texture2,GL_ARB_sparse_texture_clamp,GL_ARB_spirv_extensions,GL_ARB_stencil_texturing,GL_ARB_sync,GL_ARB_tessellation_shader,GL_ARB_texture_barrier,GL_ARB_texture_border_clamp,GL_ARB_texture_buffer_object,GL_ARB_texture_buffer_object_rgb32,GL_ARB_texture_buffer_range,GL_ARB_texture_compression,GL_ARB_texture_compression_bptc,GL_ARB_texture_compression_rgtc,GL_ARB_texture_cube_map,GL_ARB_texture_cube_map_array,GL_ARB_texture_env_add,GL_ARB_texture_env_combine,GL_ARB_texture_env_crossbar,GL_ARB_texture_env_dot3,GL_ARB_texture_filter_anisotropic,GL_ARB_texture_filter_minmax,GL_ARB_texture_float,GL_ARB_texture_gather,GL_ARB_texture_mirror_clamp_to_edge,GL_ARB_texture_mirrored_repeat,GL_ARB_texture_multisample,GL_ARB_texture_non_power_of_two,GL_ARB_texture_query_levels,GL_ARB_texture_query_lod,GL_ARB_texture_rectangle,GL_ARB_texture_rg,GL_ARB_texture_rgb10_a2ui,GL_ARB_texture_stencil8,GL_ARB_texture_storage,GL_ARB_texture_storage_multisample,GL_ARB_texture_swizzle,GL_ARB_texture_view,GL_ARB_timer_query,GL_ARB_transform_feedback2,GL_ARB_transform_feedback3,GL_ARB_transform_feedback_instanced,GL_ARB_transform_feedback_overflow_query,GL_ARB_transpose_matrix,GL_ARB_uniform_buffer_object,GL_ARB_vertex_array_bgra,GL_ARB_vertex_array_object,GL_ARB_vertex_attrib_64bit,GL_ARB_vertex_attrib_binding,GL_ARB_vertex_blend,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_ARB_vertex_type_10f_11f_11f_rev,GL_ARB_vertex_type_2_10_10_10_rev,GL_ARB_viewport_array,GL_ARB_window_pos,GL_ATI_draw_buffers,GL_ATI_element_array,GL_ATI_envmap_bumpmap,GL_ATI_fragment_shader,GL_ATI_map_object_buffer,GL_ATI_meminfo,GL_ATI_pixel_format_float,GL_ATI_pn_triangles,GL_ATI_separate_stencil,GL_ATI_text_fragment_shader,GL_ATI_texture_env_combine3,GL_ATI_texture_float,GL_ATI_texture_mirror_once,GL_ATI_vertex_array_object,GL_ATI_vertex_attrib_array_object,GL_ATI_vertex_streams,GL_EXT_422_pixels,GL_EXT_EGL_image_storage,GL_EXT_abgr,GL_EXT_bgra,GL_EXT_bindable_uniform,GL_EXT_blend_color,GL_EXT_blend_equation_separate,GL_EXT_blend_func_separate,GL_EXT_blend_logic_op,GL_EXT_blend_minmax,GL_EXT_blend_subtract,GL_EXT_clip_volume_hint,GL_EXT_cmyka,GL_EXT_color_subtable,GL_EXT_compiled_vertex_array,GL_EXT_convolution,GL_EXT_coordinate_frame,GL_EXT_copy_texture,GL_EXT_cull_vertex,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_depth_bounds_test,GL_EXT_direct_state_access,GL_EXT_draw_buffers2,GL_EXT_draw_instanced,GL_EXT_draw_range_elements,GL_EXT_external_buffer,GL_EXT_fog_coord,GL_EXT_framebuffer_blit,GL_EXT_framebuffer_multisample,GL_EXT_framebuffer_multisample_blit_scaled,GL_EXT_framebuffer_object,GL_EXT_framebuffer_sRGB,GL_EXT_geometry_shader4,GL_EXT_gpu_program_parameters,GL_EXT_gpu_shader4,GL_EXT_histogram,GL_EXT_index_array_formats,GL_EXT_index_func,GL_EXT_index_material,GL_EXT_index_texture,GL_EXT_light_texture,GL_EXT_memory_object,GL_EXT_memory_object_fd,GL_EXT_memory_object_win32,GL_EXT_misc_attribute,GL_EXT_multi_draw_arrays,GL_EXT_multisample,GL_EXT_packed_depth_stencil,GL_EXT_packed_float,GL_EXT_packed_pixels,GL_EXT_paletted_texture,GL_EXT_pixel_buffer_object,GL_EXT_pixel_transform,GL_EXT_pixel_transform_color_table,GL_EXT_point_parameters,GL_EXT_polygon_offset,GL_EXT_polygon_offset_clamp,GL_EXT_post_depth_coverage,GL_EXT_provoking_vertex,GL_EXT_raster_multisample,GL_EXT_rescale_normal,GL_EXT_secondary_color,GL_EXT_semaphore,GL_EXT_semaphore_fd,GL_EXT_semaphore_win32,GL_EXT_separate_shader_objects,GL_EXT_separate_specular_color,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_framebuffer_fetch_non_coherent,GL_EXT_shader_image_load_formatted,GL_EXT_shader_image_load_store,GL_EXT_shader_integer_mix,GL_EXT_shadow_funcs,GL_EXT_shared_texture_palette,GL_EXT_sparse_texture2,GL_EXT_stencil_clear_tag,GL_EXT_stencil_two_side,GL_EXT_stencil_wrap,GL_EXT_subtexture,GL_EXT_texture,GL_EXT_texture3D,GL_EXT_texture_array,GL_EXT_texture_buffer_object,GL_EXT_texture_compression_latc,GL_EXT_texture_compression_rgtc,GL_EXT_texture_compression_s3tc,GL_EXT_texture_cube_map,GL_EXT_texture_env_add,GL_EXT_texture_env_combine,GL_EXT_texture_env_dot3,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_filter_minmax,GL_EXT_texture_integer,GL_EXT_texture_lod_bias,GL_EXT_texture_mirror_clamp,GL_EXT_texture_object,GL_EXT_texture_perturb_normal,GL_EXT_texture_sRGB,GL_EXT_texture_sRGB_decode,GL_EXT_texture_shared_exponent,GL_EXT_texture_snorm,GL_EXT_texture_swizzle,GL_EXT_timer_query,GL_EXT_transform_feedback,GL_EXT_vertex_array,GL_EXT_vertex_array_bgra,GL_EXT_vertex_attrib_64bit,GL_EXT_vertex_shader,GL_EXT_vertex_weighting,GL_EXT_win32_keyed_mutex,GL_EXT_window_rectangles,GL_EXT_x11_sync_object,GL_GREMEDY_frame_terminator,GL_GREMEDY_string_marker,GL_HP_convolution_border_modes,GL_HP_image_transform,GL_HP_occlusion_test,GL_HP_texture_lighting,GL_IBM_cull_vertex,GL_IBM_multimode_draw_arrays,GL_IBM_rasterpos_clip,GL_IBM_static_data,GL_IBM_texture_mirrored_repeat,GL_IBM_vertex_array_lists,GL_INGR_blend_func_separate,GL_INGR_color_clamp,GL_INGR_interlace_read,GL_INTEL_blackhole_render,GL_INTEL_conservative_rasterization,GL_INTEL_fragment_shader_ordering,GL_INTEL_framebuffer_CMAA,GL_INTEL_map_texture,GL_INTEL_parallel_arrays,GL_INTEL_performance_query,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_context_flush_control,GL_KHR_debug,GL_KHR_no_error,GL_KHR_parallel_shader_compile,GL_KHR_robust_buffer_access_behavior,GL_KHR_robustness,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_KHR_texture_compression_astc_sliced_3d,GL_MESAX_texture_stack,GL_MESA_pack_invert,GL_MESA_program_binary_formats,GL_MESA_resize_buffers,GL_MESA_shader_integer_functions,GL_MESA_tile_raster_order,GL_MESA_window_pos,GL_MESA_ycbcr_texture,GL_NVX_blend_equation_advanced_multi_draw_buffers,GL_NVX_conditional_render,GL_NVX_gpu_memory_info,GL_NVX_linked_gpu_multicast,GL_NV_alpha_to_coverage_dither_control,GL_NV_bindless_multi_draw_indirect,GL_NV_bindless_multi_draw_indirect_count,GL_NV_bindless_texture,GL_NV_blend_equation_advanced,GL_NV_blend_equation_advanced_coherent,GL_NV_blend_minmax_factor,GL_NV_blend_square,GL_NV_clip_space_w_scaling,GL_NV_command_list,GL_NV_compute_program5,GL_NV_compute_shader_derivatives,GL_NV_conditional_render,GL_NV_conservative_raster,GL_NV_conservative_raster_dilate,GL_NV_conservative_raster_pre_snap,GL_NV_conservative_raster_pre_snap_triangles,GL_NV_conservative_raster_underestimation,GL_NV_copy_depth_to_color,GL_NV_copy_image,GL_NV_deep_texture3D,GL_NV_depth_buffer_float,GL_NV_depth_clamp,GL_NV_draw_texture,GL_NV_draw_vulkan_image,GL_NV_evaluators,GL_NV_explicit_multisample,GL_NV_fence,GL_NV_fill_rectangle,GL_NV_float_buffer,GL_NV_fog_distance,GL_NV_fragment_coverage_to_color,GL_NV_fragment_program,GL_NV_fragment_program2,GL_NV_fragment_program4,GL_NV_fragment_program_option,GL_NV_fragment_shader_barycentric,GL_NV_fragment_shader_interlock,GL_NV_framebuffer_mixed_samples,GL_NV_framebuffer_multisample_coverage,GL_NV_geometry_program4,GL_NV_geometry_shader4,GL_NV_geometry_shader_passthrough,GL_NV_gpu_multicast,GL_NV_gpu_program4,GL_NV_gpu_program5,GL_NV_gpu_program5_mem_extended,GL_NV_gpu_shader5,GL_NV_half_float,GL_NV_internalformat_sample_query,GL_NV_light_max_exponent,GL_NV_memory_attachment,GL_NV_mesh_shader,GL_NV_multisample_coverage,GL_NV_multisample_filter_hint,GL_NV_occlusion_query,GL_NV_packed_depth_stencil,GL_NV_parameter_buffer_object,GL_NV_parameter_buffer_object2,GL_NV_path_rendering,GL_NV_path_rendering_shared_edge,GL_NV_pixel_data_range,GL_NV_point_sprite,GL_NV_present_video,GL_NV_primitive_restart,GL_NV_query_resource,GL_NV_query_resource_tag,GL_NV_register_combiners,GL_NV_register_combiners2,GL_NV_representative_fragment_test,GL_NV_robustness_video_memory_purge,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,GL_NV_scissor_exclusive,GL_NV_shader_atomic_counters,GL_NV_shader_atomic_float,GL_NV_shader_atomic_float64,GL_NV_shader_atomic_fp16_vector,GL_NV_shader_atomic_int64,GL_NV_shader_buffer_load,GL_NV_shader_buffer_store,GL_NV_shader_storage_buffer_object,GL_NV_shader_texture_footprint,GL_NV_shader_thread_group,GL_NV_shader_thread_shuffle,GL_NV_shading_rate_image,GL_NV_stereo_view_rendering,GL_NV_tessellation_program5,GL_NV_texgen_emboss,GL_NV_texgen_reflection,GL_NV_texture_barrier,GL_NV_texture_compression_vtc,GL_NV_texture_env_combine4,GL_NV_texture_expand_normal,GL_NV_texture_multisample,GL_NV_texture_rectangle,GL_NV_texture_rectangle_compressed,GL_NV_texture_shader,GL_NV_texture_shader2,GL_NV_texture_shader3,GL_NV_transform_feedback,GL_NV_transform_feedback2,GL_NV_uniform_buffer_unified_memory,GL_NV_vdpau_interop,GL_NV_vdpau_interop2,GL_NV_vertex_array_range,GL_NV_vertex_array_range2,GL_NV_vertex_attrib_integer_64bit,GL_NV_vertex_buffer_unified_memory,GL_NV_vertex_program,GL_NV_vertex_program1_1,GL_NV_vertex_program2,GL_NV_vertex_program2_option,GL_NV_vertex_program3,GL_NV_vertex_program4,GL_NV_video_capture,GL_NV_viewport_array2,GL_NV_viewport_swizzle,GL_OES_byte_coordinates,GL_OES_compressed_paletted_texture,GL_OES_fixed_point,GL_OES_query_matrix,GL_OES_read_format,GL_OES_single_precision,GL_OML_interlace,GL_OML_resample,GL_OML_subsample,GL_OVR_multiview,GL_OVR_multiview2,GL_PGI_misc_hints,GL_PGI_vertex_hints,GL_REND_screen_coordinates,GL_S3_s3tc,GL_SGIS_detail_texture,GL_SGIS_fog_function,GL_SGIS_generate_mipmap,GL_SGIS_multisample,GL_SGIS_pixel_texture,GL_SGIS_point_line_texgen,GL_SGIS_point_parameters,GL_SGIS_sharpen_texture,GL_SGIS_texture4D,GL_SGIS_texture_border_clamp,GL_SGIS_texture_color_mask,GL_SGIS_texture_edge_clamp,GL_SGIS_texture_filter4,GL_SGIS_texture_lod,GL_SGIS_texture_select,GL_SGIX_async,GL_SGIX_async_histogram,GL_SGIX_async_pixel,GL_SGIX_blend_alpha_minmax,GL_SGIX_calligraphic_fragment,GL_SGIX_clipmap,GL_SGIX_convolution_accuracy,GL_SGIX_depth_pass_instrument,GL_SGIX_depth_texture,GL_SGIX_flush_raster,GL_SGIX_fog_offset,GL_SGIX_fragment_lighting,GL_SGIX_framezoom,GL_SGIX_igloo_interface,GL_SGIX_instruments,GL_SGIX_interlace,GL_SGIX_ir_instrument1,GL_SGIX_list_priority,GL_SGIX_pixel_texture,GL_SGIX_pixel_tiles,GL_SGIX_polynomial_ffd,GL_SGIX_reference_plane,GL_SGIX_resample,GL_SGIX_scalebias_hint,GL_SGIX_shadow,GL_SGIX_shadow_ambient,GL_SGIX_sprite,GL_SGIX_subsample,GL_SGIX_tag_sample_buffer,GL_SGIX_texture_add_env,GL_SGIX_texture_coordinate_clamp,GL_SGIX_texture_lod_bias,GL_SGIX_texture_multi_buffer,GL_SGIX_texture_scale_bias,GL_SGIX_vertex_preclip,GL_SGIX_ycrcb,GL_SGIX_ycrcb_subsample,GL_SGIX_ycrcba,GL_SGI_color_matrix,GL_SGI_color_table,GL_SGI_texture_color_table,GL_SUNX_constant_data,GL_SUN_convolution_border_modes,GL_SUN_global_alpha,GL_SUN_mesh_array,GL_SUN_slice_accum,GL_SUN_triangle_list,GL_SUN_vertex,GL_WIN_phong_shading,GL_WIN_specular_fog" 615 --profile="compatibility" --api="gl=4.6" --generator="c" --spec="gl" --extensions="GL_3DFX_multisample,GL_3DFX_tbuffer,GL_3DFX_texture_compression_FXT1,GL_AMD_blend_minmax_factor,GL_AMD_conservative_depth,GL_AMD_debug_output,GL_AMD_depth_clamp_separate,GL_AMD_draw_buffers_blend,GL_AMD_framebuffer_multisample_advanced,GL_AMD_framebuffer_sample_positions,GL_AMD_gcn_shader,GL_AMD_gpu_shader_half_float,GL_AMD_gpu_shader_int16,GL_AMD_gpu_shader_int64,GL_AMD_interleaved_elements,GL_AMD_multi_draw_indirect,GL_AMD_name_gen_delete,GL_AMD_occlusion_query_event,GL_AMD_performance_monitor,GL_AMD_pinned_memory,GL_AMD_query_buffer_object,GL_AMD_sample_positions,GL_AMD_seamless_cubemap_per_texture,GL_AMD_shader_atomic_counter_ops,GL_AMD_shader_ballot,GL_AMD_shader_explicit_vertex_parameter,GL_AMD_shader_gpu_shader_half_float_fetch,GL_AMD_shader_image_load_store_lod,GL_AMD_shader_stencil_export,GL_AMD_shader_trinary_minmax,GL_AMD_sparse_texture,GL_AMD_stencil_operation_extended,GL_AMD_texture_gather_bias_lod,GL_AMD_texture_texture4,GL_AMD_transform_feedback3_lines_triangles,GL_AMD_transform_feedback4,GL_AMD_vertex_shader_layer,GL_AMD_vertex_shader_tessellator,GL_AMD_vertex_shader_viewport_index,GL_APPLE_aux_depth_stencil,GL_APPLE_client_storage,GL_APPLE_element_array,GL_APPLE_fence,GL_APPLE_float_pixels,GL_APPLE_flush_buffer_range,GL_APPLE_object_purgeable,GL_APPLE_rgb_422,GL_APPLE_row_bytes,GL_APPLE_specular_vector,GL_APPLE_texture_range,GL_APPLE_transform_hint,GL_APPLE_vertex_array_object,GL_APPLE_vertex_array_range,GL_APPLE_vertex_program_evaluators,GL_APPLE_ycbcr_422,GL_ARB_ES2_compatibility,GL_ARB_ES3_1_compatibility,GL_ARB_ES3_2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_arrays_of_arrays,GL_ARB_base_instance,GL_ARB_bindless_texture,GL_ARB_blend_func_extended,GL_ARB_buffer_storage,GL_ARB_cl_event,GL_ARB_clear_buffer_object,GL_ARB_clear_texture,GL_ARB_clip_control,GL_ARB_color_buffer_float,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_compute_shader,GL_ARB_compute_variable_group_size,GL_ARB_conditional_render_inverted,GL_ARB_conservative_depth,GL_ARB_copy_buffer,GL_ARB_copy_image,GL_ARB_cull_distance,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_derivative_control,GL_ARB_direct_state_access,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_draw_elements_base_vertex,GL_ARB_draw_indirect,GL_ARB_draw_instanced,GL_ARB_enhanced_layouts,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_coord_conventions,GL_ARB_fragment_layer_viewport,GL_ARB_fragment_program,GL_ARB_fragment_program_shadow,GL_ARB_fragment_shader,GL_ARB_fragment_shader_interlock,GL_ARB_framebuffer_no_attachments,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_geometry_shader4,GL_ARB_get_program_binary,GL_ARB_get_texture_sub_image,GL_ARB_gl_spirv,GL_ARB_gpu_shader5,GL_ARB_gpu_shader_fp64,GL_ARB_gpu_shader_int64,GL_ARB_half_float_pixel,GL_ARB_half_float_vertex,GL_ARB_imaging,GL_ARB_indirect_parameters,GL_ARB_instanced_arrays,GL_ARB_internalformat_query,GL_ARB_internalformat_query2,GL_ARB_invalidate_subdata,GL_ARB_map_buffer_alignment,GL_ARB_map_buffer_range,GL_ARB_matrix_palette,GL_ARB_multi_bind,GL_ARB_multi_draw_indirect,GL_ARB_multisample,GL_ARB_multitexture,GL_ARB_occlusion_query,GL_ARB_occlusion_query2,GL_ARB_parallel_shader_compile,GL_ARB_pipeline_statistics_query,GL_ARB_pixel_buffer_object,GL_ARB_point_parameters,GL_ARB_point_sprite,GL_ARB_polygon_offset_clamp,GL_ARB_post_depth_coverage,GL_ARB_program_interface_query,GL_ARB_provoking_vertex,GL_ARB_query_buffer_object,GL_ARB_robust_buffer_access_behavior,GL_ARB_robustness,GL_ARB_robustness_isolation,GL_ARB_sample_locations,GL_ARB_sample_shading,GL_ARB_sampler_objects,GL_ARB_seamless_cube_map,GL_ARB_seamless_cubemap_per_texture,GL_ARB_separate_shader_objects,GL_ARB_shader_atomic_counter_ops,GL_ARB_shader_atomic_counters,GL_ARB_shader_ballot,GL_ARB_shader_bit_encoding,GL_ARB_shader_clock,GL_ARB_shader_draw_parameters,GL_ARB_shader_group_vote,GL_ARB_shader_image_load_store,GL_ARB_shader_image_size,GL_ARB_shader_objects,GL_ARB_shader_precision,GL_ARB_shader_stencil_export,GL_ARB_shader_storage_buffer_object,GL_ARB_shader_subroutine,GL_ARB_shader_texture_image_samples,GL_ARB_shader_texture_lod,GL_ARB_shader_viewport_layer_array,GL_ARB_shading_language_100,GL_ARB_shading_language_420pack,GL_ARB_shading_language_include,GL_ARB_shading_language_packing,GL_ARB_shadow,GL_ARB_shadow_ambient,GL_ARB_sparse_buffer,GL_ARB_sparse_texture,GL_ARB_sparse_texture2,GL_ARB_sparse_texture_clamp,GL_ARB_spirv_extensions,GL_ARB_stencil_texturing,GL_ARB_sync,GL_ARB_tessellation_shader,GL_ARB_texture_barrier,GL_ARB_texture_border_clamp,GL_ARB_texture_buffer_object,GL_ARB_texture_buffer_object_rgb32,GL_ARB_texture_buffer_range,GL_ARB_texture_compression,GL_ARB_texture_compression_bptc,GL_ARB_texture_compression_rgtc,GL_ARB_texture_cube_map,GL_ARB_texture_cube_map_array,GL_ARB_texture_env_add,GL_ARB_texture_env_combine,GL_ARB_texture_env_crossbar,GL_ARB_texture_env_dot3,GL_ARB_texture_filter_anisotropic,GL_ARB_texture_filter_minmax,GL_ARB_texture_float,GL_ARB_texture_gather,GL_ARB_texture_mirror_clamp_to_edge,GL_ARB_texture_mirrored_repeat,GL_ARB_texture_multisample,GL_ARB_texture_non_power_of_two,GL_ARB_texture_query_levels,GL_ARB_texture_query_lod,GL_ARB_texture_rectangle,GL_ARB_texture_rg,GL_ARB_texture_rgb10_a2ui,GL_ARB_texture_stencil8,GL_ARB_texture_storage,GL_ARB_texture_storage_multisample,GL_ARB_texture_swizzle,GL_ARB_texture_view,GL_ARB_timer_query,GL_ARB_transform_feedback2,GL_ARB_transform_feedback3,GL_ARB_transform_feedback_instanced,GL_ARB_transform_feedback_overflow_query,GL_ARB_transpose_matrix,GL_ARB_uniform_buffer_object,GL_ARB_vertex_array_bgra,GL_ARB_vertex_array_object,GL_ARB_vertex_attrib_64bit,GL_ARB_vertex_attrib_binding,GL_ARB_vertex_blend,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_ARB_vertex_type_10f_11f_11f_rev,GL_ARB_vertex_type_2_10_10_10_rev,GL_ARB_viewport_array,GL_ARB_window_pos,GL_ATI_draw_buffers,GL_ATI_element_array,GL_ATI_envmap_bumpmap,GL_ATI_fragment_shader,GL_ATI_map_object_buffer,GL_ATI_meminfo,GL_ATI_pixel_format_float,GL_ATI_pn_triangles,GL_ATI_separate_stencil,GL_ATI_text_fragment_shader,GL_ATI_texture_env_combine3,GL_ATI_texture_float,GL_ATI_texture_mirror_once,GL_ATI_vertex_array_object,GL_ATI_vertex_attrib_array_object,GL_ATI_vertex_streams,GL_EXT_422_pixels,GL_EXT_EGL_image_storage,GL_EXT_abgr,GL_EXT_bgra,GL_EXT_bindable_uniform,GL_EXT_blend_color,GL_EXT_blend_equation_separate,GL_EXT_blend_func_separate,GL_EXT_blend_logic_op,GL_EXT_blend_minmax,GL_EXT_blend_subtract,GL_EXT_clip_volume_hint,GL_EXT_cmyka,GL_EXT_color_subtable,GL_EXT_compiled_vertex_array,GL_EXT_convolution,GL_EXT_coordinate_frame,GL_EXT_copy_texture,GL_EXT_cull_vertex,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_depth_bounds_test,GL_EXT_direct_state_access,GL_EXT_draw_buffers2,GL_EXT_draw_instanced,GL_EXT_draw_range_elements,GL_EXT_external_buffer,GL_EXT_fog_coord,GL_EXT_framebuffer_blit,GL_EXT_framebuffer_multisample,GL_EXT_framebuffer_multisample_blit_scaled,GL_EXT_framebuffer_object,GL_EXT_framebuffer_sRGB,GL_EXT_geometry_shader4,GL_EXT_gpu_program_parameters,GL_EXT_gpu_shader4,GL_EXT_histogram,GL_EXT_index_array_formats,GL_EXT_index_func,GL_EXT_index_material,GL_EXT_index_texture,GL_EXT_light_texture,GL_EXT_memory_object,GL_EXT_memory_object_fd,GL_EXT_memory_object_win32,GL_EXT_misc_attribute,GL_EXT_multi_draw_arrays,GL_EXT_multisample,GL_EXT_packed_depth_stencil,GL_EXT_packed_float,GL_EXT_packed_pixels,GL_EXT_paletted_texture,GL_EXT_pixel_buffer_object,GL_EXT_pixel_transform,GL_EXT_pixel_transform_color_table,GL_EXT_point_parameters,GL_EXT_polygon_offset,GL_EXT_polygon_offset_clamp,GL_EXT_post_depth_coverage,GL_EXT_provoking_vertex,GL_EXT_raster_multisample,GL_EXT_rescale_normal,GL_EXT_secondary_color,GL_EXT_semaphore,GL_EXT_semaphore_fd,GL_EXT_semaphore_win32,GL_EXT_separate_shader_objects,GL_EXT_separate_specular_color,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_framebuffer_fetch_non_coherent,GL_EXT_shader_image_load_formatted,GL_EXT_shader_image_load_store,GL_EXT_shader_integer_mix,GL_EXT_shadow_funcs,GL_EXT_shared_texture_palette,GL_EXT_sparse_texture2,GL_EXT_stencil_clear_tag,GL_EXT_stencil_two_side,GL_EXT_stencil_wrap,GL_EXT_subtexture,GL_EXT_texture,GL_EXT_texture3D,GL_EXT_texture_array,GL_EXT_texture_buffer_object,GL_EXT_texture_compression_latc,GL_EXT_texture_compression_rgtc,GL_EXT_texture_compression_s3tc,GL_EXT_texture_cube_map,GL_EXT_texture_env_add,GL_EXT_texture_env_combine,GL_EXT_texture_env_dot3,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_filter_minmax,GL_EXT_texture_integer,GL_EXT_texture_lod_bias,GL_EXT_texture_mirror_clamp,GL_EXT_texture_object,GL_EXT_texture_perturb_normal,GL_EXT_texture_sRGB,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_shared_exponent,GL_EXT_texture_snorm,GL_EXT_texture_swizzle,GL_EXT_timer_query,GL_EXT_transform_feedback,GL_EXT_vertex_array,GL_EXT_vertex_array_bgra,GL_EXT_vertex_attrib_64bit,GL_EXT_vertex_shader,GL_EXT_vertex_weighting,GL_EXT_win32_keyed_mutex,GL_EXT_window_rectangles,GL_EXT_x11_sync_object,GL_GREMEDY_frame_terminator,GL_GREMEDY_string_marker,GL_HP_convolution_border_modes,GL_HP_image_transform,GL_HP_occlusion_test,GL_HP_texture_lighting,GL_IBM_cull_vertex,GL_IBM_multimode_draw_arrays,GL_IBM_rasterpos_clip,GL_IBM_static_data,GL_IBM_texture_mirrored_repeat,GL_IBM_vertex_array_lists,GL_INGR_blend_func_separate,GL_INGR_color_clamp,GL_INGR_interlace_read,GL_INTEL_blackhole_render,GL_INTEL_conservative_rasterization,GL_INTEL_fragment_shader_ordering,GL_INTEL_framebuffer_CMAA,GL_INTEL_map_texture,GL_INTEL_parallel_arrays,GL_INTEL_performance_query,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_context_flush_control,GL_KHR_debug,GL_KHR_no_error,GL_KHR_parallel_shader_compile,GL_KHR_robust_buffer_access_behavior,GL_KHR_robustness,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_KHR_texture_compression_astc_sliced_3d,GL_MESAX_texture_stack,GL_MESA_pack_invert,GL_MESA_program_binary_formats,GL_MESA_resize_buffers,GL_MESA_shader_integer_functions,GL_MESA_tile_raster_order,GL_MESA_window_pos,GL_MESA_ycbcr_texture,GL_NVX_blend_equation_advanced_multi_draw_buffers,GL_NVX_conditional_render,GL_NVX_gpu_memory_info,GL_NVX_linked_gpu_multicast,GL_NV_alpha_to_coverage_dither_control,GL_NV_bindless_multi_draw_indirect,GL_NV_bindless_multi_draw_indirect_count,GL_NV_bindless_texture,GL_NV_blend_equation_advanced,GL_NV_blend_equation_advanced_coherent,GL_NV_blend_minmax_factor,GL_NV_blend_square,GL_NV_clip_space_w_scaling,GL_NV_command_list,GL_NV_compute_program5,GL_NV_compute_shader_derivatives,GL_NV_conditional_render,GL_NV_conservative_raster,GL_NV_conservative_raster_dilate,GL_NV_conservative_raster_pre_snap,GL_NV_conservative_raster_pre_snap_triangles,GL_NV_conservative_raster_underestimation,GL_NV_copy_depth_to_color,GL_NV_copy_image,GL_NV_deep_texture3D,GL_NV_depth_buffer_float,GL_NV_depth_clamp,GL_NV_draw_texture,GL_NV_draw_vulkan_image,GL_NV_evaluators,GL_NV_explicit_multisample,GL_NV_fence,GL_NV_fill_rectangle,GL_NV_float_buffer,GL_NV_fog_distance,GL_NV_fragment_coverage_to_color,GL_NV_fragment_program,GL_NV_fragment_program2,GL_NV_fragment_program4,GL_NV_fragment_program_option,GL_NV_fragment_shader_barycentric,GL_NV_fragment_shader_interlock,GL_NV_framebuffer_mixed_samples,GL_NV_framebuffer_multisample_coverage,GL_NV_geometry_program4,GL_NV_geometry_shader4,GL_NV_geometry_shader_passthrough,GL_NV_gpu_multicast,GL_NV_gpu_program4,GL_NV_gpu_program5,GL_NV_gpu_program5_mem_extended,GL_NV_gpu_shader5,GL_NV_half_float,GL_NV_internalformat_sample_query,GL_NV_light_max_exponent,GL_NV_memory_attachment,GL_NV_mesh_shader,GL_NV_multisample_coverage,GL_NV_multisample_filter_hint,GL_NV_occlusion_query,GL_NV_packed_depth_stencil,GL_NV_parameter_buffer_object,GL_NV_parameter_buffer_object2,GL_NV_path_rendering,GL_NV_path_rendering_shared_edge,GL_NV_pixel_data_range,GL_NV_point_sprite,GL_NV_present_video,GL_NV_primitive_restart,GL_NV_query_resource,GL_NV_query_resource_tag,GL_NV_register_combiners,GL_NV_register_combiners2,GL_NV_representative_fragment_test,GL_NV_robustness_video_memory_purge,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,GL_NV_scissor_exclusive,GL_NV_shader_atomic_counters,GL_NV_shader_atomic_float,GL_NV_shader_atomic_float64,GL_NV_shader_atomic_fp16_vector,GL_NV_shader_atomic_int64,GL_NV_shader_buffer_load,GL_NV_shader_buffer_store,GL_NV_shader_storage_buffer_object,GL_NV_shader_texture_footprint,GL_NV_shader_thread_group,GL_NV_shader_thread_shuffle,GL_NV_shading_rate_image,GL_NV_stereo_view_rendering,GL_NV_tessellation_program5,GL_NV_texgen_emboss,GL_NV_texgen_reflection,GL_NV_texture_barrier,GL_NV_texture_compression_vtc,GL_NV_texture_env_combine4,GL_NV_texture_expand_normal,GL_NV_texture_multisample,GL_NV_texture_rectangle,GL_NV_texture_rectangle_compressed,GL_NV_texture_shader,GL_NV_texture_shader2,GL_NV_texture_shader3,GL_NV_transform_feedback,GL_NV_transform_feedback2,GL_NV_uniform_buffer_unified_memory,GL_NV_vdpau_interop,GL_NV_vdpau_interop2,GL_NV_vertex_array_range,GL_NV_vertex_array_range2,GL_NV_vertex_attrib_integer_64bit,GL_NV_vertex_buffer_unified_memory,GL_NV_vertex_program,GL_NV_vertex_program1_1,GL_NV_vertex_program2,GL_NV_vertex_program2_option,GL_NV_vertex_program3,GL_NV_vertex_program4,GL_NV_video_capture,GL_NV_viewport_array2,GL_NV_viewport_swizzle,GL_OES_byte_coordinates,GL_OES_compressed_paletted_texture,GL_OES_fixed_point,GL_OES_query_matrix,GL_OES_read_format,GL_OES_single_precision,GL_OML_interlace,GL_OML_resample,GL_OML_subsample,GL_OVR_multiview,GL_OVR_multiview2,GL_PGI_misc_hints,GL_PGI_vertex_hints,GL_REND_screen_coordinates,GL_S3_s3tc,GL_SGIS_detail_texture,GL_SGIS_fog_function,GL_SGIS_generate_mipmap,GL_SGIS_multisample,GL_SGIS_pixel_texture,GL_SGIS_point_line_texgen,GL_SGIS_point_parameters,GL_SGIS_sharpen_texture,GL_SGIS_texture4D,GL_SGIS_texture_border_clamp,GL_SGIS_texture_color_mask,GL_SGIS_texture_edge_clamp,GL_SGIS_texture_filter4,GL_SGIS_texture_lod,GL_SGIS_texture_select,GL_SGIX_async,GL_SGIX_async_histogram,GL_SGIX_async_pixel,GL_SGIX_blend_alpha_minmax,GL_SGIX_calligraphic_fragment,GL_SGIX_clipmap,GL_SGIX_convolution_accuracy,GL_SGIX_depth_pass_instrument,GL_SGIX_depth_texture,GL_SGIX_flush_raster,GL_SGIX_fog_offset,GL_SGIX_fragment_lighting,GL_SGIX_framezoom,GL_SGIX_igloo_interface,GL_SGIX_instruments,GL_SGIX_interlace,GL_SGIX_ir_instrument1,GL_SGIX_list_priority,GL_SGIX_pixel_texture,GL_SGIX_pixel_tiles,GL_SGIX_polynomial_ffd,GL_SGIX_reference_plane,GL_SGIX_resample,GL_SGIX_scalebias_hint,GL_SGIX_shadow,GL_SGIX_shadow_ambient,GL_SGIX_sprite,GL_SGIX_subsample,GL_SGIX_tag_sample_buffer,GL_SGIX_texture_add_env,GL_SGIX_texture_coordinate_clamp,GL_SGIX_texture_lod_bias,GL_SGIX_texture_multi_buffer,GL_SGIX_texture_scale_bias,GL_SGIX_vertex_preclip,GL_SGIX_ycrcb,GL_SGIX_ycrcb_subsample,GL_SGIX_ycrcba,GL_SGI_color_matrix,GL_SGI_color_table,GL_SGI_texture_color_table,GL_SUNX_constant_data,GL_SUN_convolution_border_modes,GL_SUN_global_alpha,GL_SUN_mesh_array,GL_SUN_slice_accum,GL_SUN_triangle_list,GL_SUN_vertex,GL_WIN_phong_shading,GL_WIN_specular_fog"
615 Online: 616 Online:
616 Too many extensions 617 Too many extensions
617*/ 618*/
@@ -748,6 +749,7 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
748#define GL_TRIANGLES 0x0004 749#define GL_TRIANGLES 0x0004
749#define GL_TRIANGLE_STRIP 0x0005 750#define GL_TRIANGLE_STRIP 0x0005
750#define GL_TRIANGLE_FAN 0x0006 751#define GL_TRIANGLE_FAN 0x0006
752#define GL_QUADS 0x0007
751#define GL_NEVER 0x0200 753#define GL_NEVER 0x0200
752#define GL_LESS 0x0201 754#define GL_LESS 0x0201
753#define GL_EQUAL 0x0202 755#define GL_EQUAL 0x0202
@@ -856,6 +858,8 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
856#define GL_INT 0x1404 858#define GL_INT 0x1404
857#define GL_UNSIGNED_INT 0x1405 859#define GL_UNSIGNED_INT 0x1405
858#define GL_FLOAT 0x1406 860#define GL_FLOAT 0x1406
861#define GL_STACK_OVERFLOW 0x0503
862#define GL_STACK_UNDERFLOW 0x0504
859#define GL_CLEAR 0x1500 863#define GL_CLEAR 0x1500
860#define GL_AND 0x1501 864#define GL_AND 0x1501
861#define GL_AND_REVERSE 0x1502 865#define GL_AND_REVERSE 0x1502
@@ -906,6 +910,257 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
906#define GL_TEXTURE_WRAP_S 0x2802 910#define GL_TEXTURE_WRAP_S 0x2802
907#define GL_TEXTURE_WRAP_T 0x2803 911#define GL_TEXTURE_WRAP_T 0x2803
908#define GL_REPEAT 0x2901 912#define GL_REPEAT 0x2901
913#define GL_CURRENT_BIT 0x00000001
914#define GL_POINT_BIT 0x00000002
915#define GL_LINE_BIT 0x00000004
916#define GL_POLYGON_BIT 0x00000008
917#define GL_POLYGON_STIPPLE_BIT 0x00000010
918#define GL_PIXEL_MODE_BIT 0x00000020
919#define GL_LIGHTING_BIT 0x00000040
920#define GL_FOG_BIT 0x00000080
921#define GL_ACCUM_BUFFER_BIT 0x00000200
922#define GL_VIEWPORT_BIT 0x00000800
923#define GL_TRANSFORM_BIT 0x00001000
924#define GL_ENABLE_BIT 0x00002000
925#define GL_HINT_BIT 0x00008000
926#define GL_EVAL_BIT 0x00010000
927#define GL_LIST_BIT 0x00020000
928#define GL_TEXTURE_BIT 0x00040000
929#define GL_SCISSOR_BIT 0x00080000
930#define GL_ALL_ATTRIB_BITS 0xFFFFFFFF
931#define GL_QUAD_STRIP 0x0008
932#define GL_POLYGON 0x0009
933#define GL_ACCUM 0x0100
934#define GL_LOAD 0x0101
935#define GL_RETURN 0x0102
936#define GL_MULT 0x0103
937#define GL_ADD 0x0104
938#define GL_AUX0 0x0409
939#define GL_AUX1 0x040A
940#define GL_AUX2 0x040B
941#define GL_AUX3 0x040C
942#define GL_2D 0x0600
943#define GL_3D 0x0601
944#define GL_3D_COLOR 0x0602
945#define GL_3D_COLOR_TEXTURE 0x0603
946#define GL_4D_COLOR_TEXTURE 0x0604
947#define GL_PASS_THROUGH_TOKEN 0x0700
948#define GL_POINT_TOKEN 0x0701
949#define GL_LINE_TOKEN 0x0702
950#define GL_POLYGON_TOKEN 0x0703
951#define GL_BITMAP_TOKEN 0x0704
952#define GL_DRAW_PIXEL_TOKEN 0x0705
953#define GL_COPY_PIXEL_TOKEN 0x0706
954#define GL_LINE_RESET_TOKEN 0x0707
955#define GL_EXP 0x0800
956#define GL_EXP2 0x0801
957#define GL_COEFF 0x0A00
958#define GL_ORDER 0x0A01
959#define GL_DOMAIN 0x0A02
960#define GL_PIXEL_MAP_I_TO_I 0x0C70
961#define GL_PIXEL_MAP_S_TO_S 0x0C71
962#define GL_PIXEL_MAP_I_TO_R 0x0C72
963#define GL_PIXEL_MAP_I_TO_G 0x0C73
964#define GL_PIXEL_MAP_I_TO_B 0x0C74
965#define GL_PIXEL_MAP_I_TO_A 0x0C75
966#define GL_PIXEL_MAP_R_TO_R 0x0C76
967#define GL_PIXEL_MAP_G_TO_G 0x0C77
968#define GL_PIXEL_MAP_B_TO_B 0x0C78
969#define GL_PIXEL_MAP_A_TO_A 0x0C79
970#define GL_CURRENT_COLOR 0x0B00
971#define GL_CURRENT_INDEX 0x0B01
972#define GL_CURRENT_NORMAL 0x0B02
973#define GL_CURRENT_TEXTURE_COORDS 0x0B03
974#define GL_CURRENT_RASTER_COLOR 0x0B04
975#define GL_CURRENT_RASTER_INDEX 0x0B05
976#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06
977#define GL_CURRENT_RASTER_POSITION 0x0B07
978#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08
979#define GL_CURRENT_RASTER_DISTANCE 0x0B09
980#define GL_POINT_SMOOTH 0x0B10
981#define GL_LINE_STIPPLE 0x0B24
982#define GL_LINE_STIPPLE_PATTERN 0x0B25
983#define GL_LINE_STIPPLE_REPEAT 0x0B26
984#define GL_LIST_MODE 0x0B30
985#define GL_MAX_LIST_NESTING 0x0B31
986#define GL_LIST_BASE 0x0B32
987#define GL_LIST_INDEX 0x0B33
988#define GL_POLYGON_STIPPLE 0x0B42
989#define GL_EDGE_FLAG 0x0B43
990#define GL_LIGHTING 0x0B50
991#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51
992#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52
993#define GL_LIGHT_MODEL_AMBIENT 0x0B53
994#define GL_SHADE_MODEL 0x0B54
995#define GL_COLOR_MATERIAL_FACE 0x0B55
996#define GL_COLOR_MATERIAL_PARAMETER 0x0B56
997#define GL_COLOR_MATERIAL 0x0B57
998#define GL_FOG 0x0B60
999#define GL_FOG_INDEX 0x0B61
1000#define GL_FOG_DENSITY 0x0B62
1001#define GL_FOG_START 0x0B63
1002#define GL_FOG_END 0x0B64
1003#define GL_FOG_MODE 0x0B65
1004#define GL_FOG_COLOR 0x0B66
1005#define GL_ACCUM_CLEAR_VALUE 0x0B80
1006#define GL_MATRIX_MODE 0x0BA0
1007#define GL_NORMALIZE 0x0BA1
1008#define GL_MODELVIEW_STACK_DEPTH 0x0BA3
1009#define GL_PROJECTION_STACK_DEPTH 0x0BA4
1010#define GL_TEXTURE_STACK_DEPTH 0x0BA5
1011#define GL_MODELVIEW_MATRIX 0x0BA6
1012#define GL_PROJECTION_MATRIX 0x0BA7
1013#define GL_TEXTURE_MATRIX 0x0BA8
1014#define GL_ATTRIB_STACK_DEPTH 0x0BB0
1015#define GL_ALPHA_TEST 0x0BC0
1016#define GL_ALPHA_TEST_FUNC 0x0BC1
1017#define GL_ALPHA_TEST_REF 0x0BC2
1018#define GL_LOGIC_OP 0x0BF1
1019#define GL_AUX_BUFFERS 0x0C00
1020#define GL_INDEX_CLEAR_VALUE 0x0C20
1021#define GL_INDEX_WRITEMASK 0x0C21
1022#define GL_INDEX_MODE 0x0C30
1023#define GL_RGBA_MODE 0x0C31
1024#define GL_RENDER_MODE 0x0C40
1025#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50
1026#define GL_POINT_SMOOTH_HINT 0x0C51
1027#define GL_FOG_HINT 0x0C54
1028#define GL_TEXTURE_GEN_S 0x0C60
1029#define GL_TEXTURE_GEN_T 0x0C61
1030#define GL_TEXTURE_GEN_R 0x0C62
1031#define GL_TEXTURE_GEN_Q 0x0C63
1032#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0
1033#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1
1034#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2
1035#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3
1036#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4
1037#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5
1038#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6
1039#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7
1040#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8
1041#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9
1042#define GL_MAP_COLOR 0x0D10
1043#define GL_MAP_STENCIL 0x0D11
1044#define GL_INDEX_SHIFT 0x0D12
1045#define GL_INDEX_OFFSET 0x0D13
1046#define GL_RED_SCALE 0x0D14
1047#define GL_RED_BIAS 0x0D15
1048#define GL_ZOOM_X 0x0D16
1049#define GL_ZOOM_Y 0x0D17
1050#define GL_GREEN_SCALE 0x0D18
1051#define GL_GREEN_BIAS 0x0D19
1052#define GL_BLUE_SCALE 0x0D1A
1053#define GL_BLUE_BIAS 0x0D1B
1054#define GL_ALPHA_SCALE 0x0D1C
1055#define GL_ALPHA_BIAS 0x0D1D
1056#define GL_DEPTH_SCALE 0x0D1E
1057#define GL_DEPTH_BIAS 0x0D1F
1058#define GL_MAX_EVAL_ORDER 0x0D30
1059#define GL_MAX_LIGHTS 0x0D31
1060#define GL_MAX_CLIP_PLANES 0x0D32
1061#define GL_MAX_PIXEL_MAP_TABLE 0x0D34
1062#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35
1063#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36
1064#define GL_MAX_NAME_STACK_DEPTH 0x0D37
1065#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38
1066#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39
1067#define GL_INDEX_BITS 0x0D51
1068#define GL_RED_BITS 0x0D52
1069#define GL_GREEN_BITS 0x0D53
1070#define GL_BLUE_BITS 0x0D54
1071#define GL_ALPHA_BITS 0x0D55
1072#define GL_DEPTH_BITS 0x0D56
1073#define GL_STENCIL_BITS 0x0D57
1074#define GL_ACCUM_RED_BITS 0x0D58
1075#define GL_ACCUM_GREEN_BITS 0x0D59
1076#define GL_ACCUM_BLUE_BITS 0x0D5A
1077#define GL_ACCUM_ALPHA_BITS 0x0D5B
1078#define GL_NAME_STACK_DEPTH 0x0D70
1079#define GL_AUTO_NORMAL 0x0D80
1080#define GL_MAP1_COLOR_4 0x0D90
1081#define GL_MAP1_INDEX 0x0D91
1082#define GL_MAP1_NORMAL 0x0D92
1083#define GL_MAP1_TEXTURE_COORD_1 0x0D93
1084#define GL_MAP1_TEXTURE_COORD_2 0x0D94
1085#define GL_MAP1_TEXTURE_COORD_3 0x0D95
1086#define GL_MAP1_TEXTURE_COORD_4 0x0D96
1087#define GL_MAP1_VERTEX_3 0x0D97
1088#define GL_MAP1_VERTEX_4 0x0D98
1089#define GL_MAP2_COLOR_4 0x0DB0
1090#define GL_MAP2_INDEX 0x0DB1
1091#define GL_MAP2_NORMAL 0x0DB2
1092#define GL_MAP2_TEXTURE_COORD_1 0x0DB3
1093#define GL_MAP2_TEXTURE_COORD_2 0x0DB4
1094#define GL_MAP2_TEXTURE_COORD_3 0x0DB5
1095#define GL_MAP2_TEXTURE_COORD_4 0x0DB6
1096#define GL_MAP2_VERTEX_3 0x0DB7
1097#define GL_MAP2_VERTEX_4 0x0DB8
1098#define GL_MAP1_GRID_DOMAIN 0x0DD0
1099#define GL_MAP1_GRID_SEGMENTS 0x0DD1
1100#define GL_MAP2_GRID_DOMAIN 0x0DD2
1101#define GL_MAP2_GRID_SEGMENTS 0x0DD3
1102#define GL_TEXTURE_COMPONENTS 0x1003
1103#define GL_TEXTURE_BORDER 0x1005
1104#define GL_AMBIENT 0x1200
1105#define GL_DIFFUSE 0x1201
1106#define GL_SPECULAR 0x1202
1107#define GL_POSITION 0x1203
1108#define GL_SPOT_DIRECTION 0x1204
1109#define GL_SPOT_EXPONENT 0x1205
1110#define GL_SPOT_CUTOFF 0x1206
1111#define GL_CONSTANT_ATTENUATION 0x1207
1112#define GL_LINEAR_ATTENUATION 0x1208
1113#define GL_QUADRATIC_ATTENUATION 0x1209
1114#define GL_COMPILE 0x1300
1115#define GL_COMPILE_AND_EXECUTE 0x1301
1116#define GL_2_BYTES 0x1407
1117#define GL_3_BYTES 0x1408
1118#define GL_4_BYTES 0x1409
1119#define GL_EMISSION 0x1600
1120#define GL_SHININESS 0x1601
1121#define GL_AMBIENT_AND_DIFFUSE 0x1602
1122#define GL_COLOR_INDEXES 0x1603
1123#define GL_MODELVIEW 0x1700
1124#define GL_PROJECTION 0x1701
1125#define GL_COLOR_INDEX 0x1900
1126#define GL_LUMINANCE 0x1909
1127#define GL_LUMINANCE_ALPHA 0x190A
1128#define GL_BITMAP 0x1A00
1129#define GL_RENDER 0x1C00
1130#define GL_FEEDBACK 0x1C01
1131#define GL_SELECT 0x1C02
1132#define GL_FLAT 0x1D00
1133#define GL_SMOOTH 0x1D01
1134#define GL_S 0x2000
1135#define GL_T 0x2001
1136#define GL_R 0x2002
1137#define GL_Q 0x2003
1138#define GL_MODULATE 0x2100
1139#define GL_DECAL 0x2101
1140#define GL_TEXTURE_ENV_MODE 0x2200
1141#define GL_TEXTURE_ENV_COLOR 0x2201
1142#define GL_TEXTURE_ENV 0x2300
1143#define GL_EYE_LINEAR 0x2400
1144#define GL_OBJECT_LINEAR 0x2401
1145#define GL_SPHERE_MAP 0x2402
1146#define GL_TEXTURE_GEN_MODE 0x2500
1147#define GL_OBJECT_PLANE 0x2501
1148#define GL_EYE_PLANE 0x2502
1149#define GL_CLAMP 0x2900
1150#define GL_CLIP_PLANE0 0x3000
1151#define GL_CLIP_PLANE1 0x3001
1152#define GL_CLIP_PLANE2 0x3002
1153#define GL_CLIP_PLANE3 0x3003
1154#define GL_CLIP_PLANE4 0x3004
1155#define GL_CLIP_PLANE5 0x3005
1156#define GL_LIGHT0 0x4000
1157#define GL_LIGHT1 0x4001
1158#define GL_LIGHT2 0x4002
1159#define GL_LIGHT3 0x4003
1160#define GL_LIGHT4 0x4004
1161#define GL_LIGHT5 0x4005
1162#define GL_LIGHT6 0x4006
1163#define GL_LIGHT7 0x4007
909#define GL_COLOR_LOGIC_OP 0x0BF2 1164#define GL_COLOR_LOGIC_OP 0x0BF2
910#define GL_POLYGON_OFFSET_UNITS 0x2A00 1165#define GL_POLYGON_OFFSET_UNITS 0x2A00
911#define GL_POLYGON_OFFSET_POINT 0x2A01 1166#define GL_POLYGON_OFFSET_POINT 0x2A01
@@ -936,6 +1191,80 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
936#define GL_RGB10_A2 0x8059 1191#define GL_RGB10_A2 0x8059
937#define GL_RGBA12 0x805A 1192#define GL_RGBA12 0x805A
938#define GL_RGBA16 0x805B 1193#define GL_RGBA16 0x805B
1194#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001
1195#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002
1196#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF
1197#define GL_VERTEX_ARRAY_POINTER 0x808E
1198#define GL_NORMAL_ARRAY_POINTER 0x808F
1199#define GL_COLOR_ARRAY_POINTER 0x8090
1200#define GL_INDEX_ARRAY_POINTER 0x8091
1201#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092
1202#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093
1203#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0
1204#define GL_SELECTION_BUFFER_POINTER 0x0DF3
1205#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1
1206#define GL_INDEX_LOGIC_OP 0x0BF1
1207#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B
1208#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1
1209#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2
1210#define GL_SELECTION_BUFFER_SIZE 0x0DF4
1211#define GL_VERTEX_ARRAY 0x8074
1212#define GL_NORMAL_ARRAY 0x8075
1213#define GL_COLOR_ARRAY 0x8076
1214#define GL_INDEX_ARRAY 0x8077
1215#define GL_TEXTURE_COORD_ARRAY 0x8078
1216#define GL_EDGE_FLAG_ARRAY 0x8079
1217#define GL_VERTEX_ARRAY_SIZE 0x807A
1218#define GL_VERTEX_ARRAY_TYPE 0x807B
1219#define GL_VERTEX_ARRAY_STRIDE 0x807C
1220#define GL_NORMAL_ARRAY_TYPE 0x807E
1221#define GL_NORMAL_ARRAY_STRIDE 0x807F
1222#define GL_COLOR_ARRAY_SIZE 0x8081
1223#define GL_COLOR_ARRAY_TYPE 0x8082
1224#define GL_COLOR_ARRAY_STRIDE 0x8083
1225#define GL_INDEX_ARRAY_TYPE 0x8085
1226#define GL_INDEX_ARRAY_STRIDE 0x8086
1227#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088
1228#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089
1229#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A
1230#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C
1231#define GL_TEXTURE_LUMINANCE_SIZE 0x8060
1232#define GL_TEXTURE_INTENSITY_SIZE 0x8061
1233#define GL_TEXTURE_PRIORITY 0x8066
1234#define GL_TEXTURE_RESIDENT 0x8067
1235#define GL_ALPHA4 0x803B
1236#define GL_ALPHA8 0x803C
1237#define GL_ALPHA12 0x803D
1238#define GL_ALPHA16 0x803E
1239#define GL_LUMINANCE4 0x803F
1240#define GL_LUMINANCE8 0x8040
1241#define GL_LUMINANCE12 0x8041
1242#define GL_LUMINANCE16 0x8042
1243#define GL_LUMINANCE4_ALPHA4 0x8043
1244#define GL_LUMINANCE6_ALPHA2 0x8044
1245#define GL_LUMINANCE8_ALPHA8 0x8045
1246#define GL_LUMINANCE12_ALPHA4 0x8046
1247#define GL_LUMINANCE12_ALPHA12 0x8047
1248#define GL_LUMINANCE16_ALPHA16 0x8048
1249#define GL_INTENSITY 0x8049
1250#define GL_INTENSITY4 0x804A
1251#define GL_INTENSITY8 0x804B
1252#define GL_INTENSITY12 0x804C
1253#define GL_INTENSITY16 0x804D
1254#define GL_V2F 0x2A20
1255#define GL_V3F 0x2A21
1256#define GL_C4UB_V2F 0x2A22
1257#define GL_C4UB_V3F 0x2A23
1258#define GL_C3F_V3F 0x2A24
1259#define GL_N3F_V3F 0x2A25
1260#define GL_C4F_N3F_V3F 0x2A26
1261#define GL_T2F_V3F 0x2A27
1262#define GL_T4F_V4F 0x2A28
1263#define GL_T2F_C4UB_V3F 0x2A29
1264#define GL_T2F_C3F_V3F 0x2A2A
1265#define GL_T2F_N3F_V3F 0x2A2B
1266#define GL_T2F_C4F_N3F_V3F 0x2A2C
1267#define GL_T4F_C4F_N3F_V4F 0x2A2D
939#define GL_UNSIGNED_BYTE_3_3_2 0x8032 1268#define GL_UNSIGNED_BYTE_3_3_2 0x8032
940#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 1269#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
941#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 1270#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
@@ -972,6 +1301,11 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
972#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 1301#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
973#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 1302#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
974#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E 1303#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
1304#define GL_RESCALE_NORMAL 0x803A
1305#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8
1306#define GL_SINGLE_COLOR 0x81F9
1307#define GL_SEPARATE_SPECULAR_COLOR 0x81FA
1308#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
975#define GL_TEXTURE0 0x84C0 1309#define GL_TEXTURE0 0x84C0
976#define GL_TEXTURE1 0x84C1 1310#define GL_TEXTURE1 0x84C1
977#define GL_TEXTURE2 0x84C2 1311#define GL_TEXTURE2 0x84C2
@@ -1031,6 +1365,43 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
1031#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 1365#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
1032#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 1366#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
1033#define GL_CLAMP_TO_BORDER 0x812D 1367#define GL_CLAMP_TO_BORDER 0x812D
1368#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1
1369#define GL_MAX_TEXTURE_UNITS 0x84E2
1370#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3
1371#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4
1372#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5
1373#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6
1374#define GL_MULTISAMPLE_BIT 0x20000000
1375#define GL_NORMAL_MAP 0x8511
1376#define GL_REFLECTION_MAP 0x8512
1377#define GL_COMPRESSED_ALPHA 0x84E9
1378#define GL_COMPRESSED_LUMINANCE 0x84EA
1379#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB
1380#define GL_COMPRESSED_INTENSITY 0x84EC
1381#define GL_COMBINE 0x8570
1382#define GL_COMBINE_RGB 0x8571
1383#define GL_COMBINE_ALPHA 0x8572
1384#define GL_SOURCE0_RGB 0x8580
1385#define GL_SOURCE1_RGB 0x8581
1386#define GL_SOURCE2_RGB 0x8582
1387#define GL_SOURCE0_ALPHA 0x8588
1388#define GL_SOURCE1_ALPHA 0x8589
1389#define GL_SOURCE2_ALPHA 0x858A
1390#define GL_OPERAND0_RGB 0x8590
1391#define GL_OPERAND1_RGB 0x8591
1392#define GL_OPERAND2_RGB 0x8592
1393#define GL_OPERAND0_ALPHA 0x8598
1394#define GL_OPERAND1_ALPHA 0x8599
1395#define GL_OPERAND2_ALPHA 0x859A
1396#define GL_RGB_SCALE 0x8573
1397#define GL_ADD_SIGNED 0x8574
1398#define GL_INTERPOLATE 0x8575
1399#define GL_SUBTRACT 0x84E7
1400#define GL_CONSTANT 0x8576
1401#define GL_PRIMARY_COLOR 0x8577
1402#define GL_PREVIOUS 0x8578
1403#define GL_DOT3_RGB 0x86AE
1404#define GL_DOT3_RGBA 0x86AF
1034#define GL_BLEND_DST_RGB 0x80C8 1405#define GL_BLEND_DST_RGB 0x80C8
1035#define GL_BLEND_SRC_RGB 0x80C9 1406#define GL_BLEND_SRC_RGB 0x80C9
1036#define GL_BLEND_DST_ALPHA 0x80CA 1407#define GL_BLEND_DST_ALPHA 0x80CA
@@ -1047,6 +1418,29 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
1047#define GL_TEXTURE_DEPTH_SIZE 0x884A 1418#define GL_TEXTURE_DEPTH_SIZE 0x884A
1048#define GL_TEXTURE_COMPARE_MODE 0x884C 1419#define GL_TEXTURE_COMPARE_MODE 0x884C
1049#define GL_TEXTURE_COMPARE_FUNC 0x884D 1420#define GL_TEXTURE_COMPARE_FUNC 0x884D
1421#define GL_POINT_SIZE_MIN 0x8126
1422#define GL_POINT_SIZE_MAX 0x8127
1423#define GL_POINT_DISTANCE_ATTENUATION 0x8129
1424#define GL_GENERATE_MIPMAP 0x8191
1425#define GL_GENERATE_MIPMAP_HINT 0x8192
1426#define GL_FOG_COORDINATE_SOURCE 0x8450
1427#define GL_FOG_COORDINATE 0x8451
1428#define GL_FRAGMENT_DEPTH 0x8452
1429#define GL_CURRENT_FOG_COORDINATE 0x8453
1430#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454
1431#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455
1432#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456
1433#define GL_FOG_COORDINATE_ARRAY 0x8457
1434#define GL_COLOR_SUM 0x8458
1435#define GL_CURRENT_SECONDARY_COLOR 0x8459
1436#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A
1437#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B
1438#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C
1439#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D
1440#define GL_SECONDARY_COLOR_ARRAY 0x845E
1441#define GL_TEXTURE_FILTER_CONTROL 0x8500
1442#define GL_DEPTH_TEXTURE_MODE 0x884B
1443#define GL_COMPARE_R_TO_TEXTURE 0x884E
1050#define GL_BLEND_COLOR 0x8005 1444#define GL_BLEND_COLOR 0x8005
1051#define GL_BLEND_EQUATION 0x8009 1445#define GL_BLEND_EQUATION 0x8009
1052#define GL_CONSTANT_COLOR 0x8001 1446#define GL_CONSTANT_COLOR 0x8001
@@ -1086,6 +1480,28 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
1086#define GL_DYNAMIC_COPY 0x88EA 1480#define GL_DYNAMIC_COPY 0x88EA
1087#define GL_SAMPLES_PASSED 0x8914 1481#define GL_SAMPLES_PASSED 0x8914
1088#define GL_SRC1_ALPHA 0x8589 1482#define GL_SRC1_ALPHA 0x8589
1483#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896
1484#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897
1485#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898
1486#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899
1487#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A
1488#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B
1489#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C
1490#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D
1491#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E
1492#define GL_FOG_COORD_SRC 0x8450
1493#define GL_FOG_COORD 0x8451
1494#define GL_CURRENT_FOG_COORD 0x8453
1495#define GL_FOG_COORD_ARRAY_TYPE 0x8454
1496#define GL_FOG_COORD_ARRAY_STRIDE 0x8455
1497#define GL_FOG_COORD_ARRAY_POINTER 0x8456
1498#define GL_FOG_COORD_ARRAY 0x8457
1499#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D
1500#define GL_SRC0_RGB 0x8580
1501#define GL_SRC1_RGB 0x8581
1502#define GL_SRC2_RGB 0x8582
1503#define GL_SRC0_ALPHA 0x8588
1504#define GL_SRC2_ALPHA 0x858A
1089#define GL_BLEND_EQUATION_RGB 0x8009 1505#define GL_BLEND_EQUATION_RGB 0x8009
1090#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 1506#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
1091#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 1507#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
@@ -1166,6 +1582,10 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
1166#define GL_STENCIL_BACK_REF 0x8CA3 1582#define GL_STENCIL_BACK_REF 0x8CA3
1167#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 1583#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
1168#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 1584#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
1585#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643
1586#define GL_POINT_SPRITE 0x8861
1587#define GL_COORD_REPLACE 0x8862
1588#define GL_MAX_TEXTURE_COORDS 0x8871
1169#define GL_PIXEL_PACK_BUFFER 0x88EB 1589#define GL_PIXEL_PACK_BUFFER 0x88EB
1170#define GL_PIXEL_UNPACK_BUFFER 0x88EC 1590#define GL_PIXEL_UNPACK_BUFFER 0x88EC
1171#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED 1591#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED
@@ -1182,6 +1602,13 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
1182#define GL_SRGB8_ALPHA8 0x8C43 1602#define GL_SRGB8_ALPHA8 0x8C43
1183#define GL_COMPRESSED_SRGB 0x8C48 1603#define GL_COMPRESSED_SRGB 0x8C48
1184#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 1604#define GL_COMPRESSED_SRGB_ALPHA 0x8C49
1605#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F
1606#define GL_SLUMINANCE_ALPHA 0x8C44
1607#define GL_SLUMINANCE8_ALPHA8 0x8C45
1608#define GL_SLUMINANCE 0x8C46
1609#define GL_SLUMINANCE8 0x8C47
1610#define GL_COMPRESSED_SLUMINANCE 0x8C4A
1611#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B
1185#define GL_COMPARE_REF_TO_TEXTURE 0x884E 1612#define GL_COMPARE_REF_TO_TEXTURE 0x884E
1186#define GL_CLIP_DISTANCE0 0x3000 1613#define GL_CLIP_DISTANCE0 0x3000
1187#define GL_CLIP_DISTANCE1 0x3001 1614#define GL_CLIP_DISTANCE1 0x3001
@@ -1378,6 +1805,9 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
1378#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 1805#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
1379#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 1806#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56
1380#define GL_MAX_SAMPLES 0x8D57 1807#define GL_MAX_SAMPLES 0x8D57
1808#define GL_INDEX 0x8222
1809#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14
1810#define GL_TEXTURE_INTENSITY_TYPE 0x8C15
1381#define GL_FRAMEBUFFER_SRGB 0x8DB9 1811#define GL_FRAMEBUFFER_SRGB 0x8DB9
1382#define GL_HALF_FLOAT 0x140B 1812#define GL_HALF_FLOAT 0x140B
1383#define GL_MAP_READ_BIT 0x0001 1813#define GL_MAP_READ_BIT 0x0001
@@ -1413,6 +1843,9 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
1413#define GL_RG32I 0x823B 1843#define GL_RG32I 0x823B
1414#define GL_RG32UI 0x823C 1844#define GL_RG32UI 0x823C
1415#define GL_VERTEX_ARRAY_BINDING 0x85B5 1845#define GL_VERTEX_ARRAY_BINDING 0x85B5
1846#define GL_CLAMP_VERTEX_COLOR 0x891A
1847#define GL_CLAMP_FRAGMENT_COLOR 0x891B
1848#define GL_ALPHA_INTEGER 0x8D97
1416#define GL_SAMPLER_2D_RECT 0x8B63 1849#define GL_SAMPLER_2D_RECT 0x8B63
1417#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 1850#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64
1418#define GL_SAMPLER_BUFFER 0x8DC2 1851#define GL_SAMPLER_BUFFER 0x8DC2
@@ -1604,7 +2037,6 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
1604#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 2037#define GL_TESS_GEN_VERTEX_ORDER 0x8E78
1605#define GL_TESS_GEN_POINT_MODE 0x8E79 2038#define GL_TESS_GEN_POINT_MODE 0x8E79
1606#define GL_ISOLINES 0x8E7A 2039#define GL_ISOLINES 0x8E7A
1607#define GL_QUADS 0x0007
1608#define GL_FRACTIONAL_ODD 0x8E7B 2040#define GL_FRACTIONAL_ODD 0x8E7B
1609#define GL_FRACTIONAL_EVEN 0x8E7C 2041#define GL_FRACTIONAL_EVEN 0x8E7C
1610#define GL_MAX_PATCH_VERTICES 0x8E7D 2042#define GL_MAX_PATCH_VERTICES 0x8E7D
@@ -1843,7 +2275,6 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
1843#define GL_BUFFER 0x82E0 2275#define GL_BUFFER 0x82E0
1844#define GL_SHADER 0x82E1 2276#define GL_SHADER 0x82E1
1845#define GL_PROGRAM 0x82E2 2277#define GL_PROGRAM 0x82E2
1846#define GL_VERTEX_ARRAY 0x8074
1847#define GL_QUERY 0x82E3 2278#define GL_QUERY 0x82E3
1848#define GL_PROGRAM_PIPELINE 0x82E4 2279#define GL_PROGRAM_PIPELINE 0x82E4
1849#define GL_SAMPLER 0x82E6 2280#define GL_SAMPLER 0x82E6
@@ -2039,8 +2470,69 @@ typedef void (APIENTRY *GLVULKANPROCNV)(void);
2039#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA 2470#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA
2040#define GL_VERTEX_BINDING_BUFFER 0x8F4F 2471#define GL_VERTEX_BINDING_BUFFER 0x8F4F
2041#define GL_DISPLAY_LIST 0x82E7 2472#define GL_DISPLAY_LIST 0x82E7
2042#define GL_STACK_UNDERFLOW 0x0504 2473#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5
2043#define GL_STACK_OVERFLOW 0x0503 2474#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221
2475#define GL_TEXTURE_BUFFER_BINDING 0x8C2A
2476#define GL_MAP_PERSISTENT_BIT 0x0040
2477#define GL_MAP_COHERENT_BIT 0x0080
2478#define GL_DYNAMIC_STORAGE_BIT 0x0100
2479#define GL_CLIENT_STORAGE_BIT 0x0200
2480#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
2481#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F
2482#define GL_BUFFER_STORAGE_FLAGS 0x8220
2483#define GL_CLEAR_TEXTURE 0x9365
2484#define GL_LOCATION_COMPONENT 0x934A
2485#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B
2486#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C
2487#define GL_QUERY_BUFFER 0x9192
2488#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000
2489#define GL_QUERY_BUFFER_BINDING 0x9193
2490#define GL_QUERY_RESULT_NO_WAIT 0x9194
2491#define GL_MIRROR_CLAMP_TO_EDGE 0x8743
2492#define GL_CONTEXT_LOST 0x0507
2493#define GL_NEGATIVE_ONE_TO_ONE 0x935E
2494#define GL_ZERO_TO_ONE 0x935F
2495#define GL_CLIP_ORIGIN 0x935C
2496#define GL_CLIP_DEPTH_MODE 0x935D
2497#define GL_QUERY_WAIT_INVERTED 0x8E17
2498#define GL_QUERY_NO_WAIT_INVERTED 0x8E18
2499#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19
2500#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A
2501#define GL_MAX_CULL_DISTANCES 0x82F9
2502#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA
2503#define GL_TEXTURE_TARGET 0x1006
2504#define GL_QUERY_TARGET 0x82EA
2505#define GL_GUILTY_CONTEXT_RESET 0x8253
2506#define GL_INNOCENT_CONTEXT_RESET 0x8254
2507#define GL_UNKNOWN_CONTEXT_RESET 0x8255
2508#define GL_RESET_NOTIFICATION_STRATEGY 0x8256
2509#define GL_LOSE_CONTEXT_ON_RESET 0x8252
2510#define GL_NO_RESET_NOTIFICATION 0x8261
2511#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004
2512#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB
2513#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC
2514#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551
2515#define GL_SPIR_V_BINARY 0x9552
2516#define GL_PARAMETER_BUFFER 0x80EE
2517#define GL_PARAMETER_BUFFER_BINDING 0x80EF
2518#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008
2519#define GL_VERTICES_SUBMITTED 0x82EE
2520#define GL_PRIMITIVES_SUBMITTED 0x82EF
2521#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0
2522#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1
2523#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2
2524#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3
2525#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4
2526#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5
2527#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6
2528#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7
2529#define GL_POLYGON_OFFSET_CLAMP 0x8E1B
2530#define GL_SPIR_V_EXTENSIONS 0x9553
2531#define GL_NUM_SPIR_V_EXTENSIONS 0x9554
2532#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE
2533#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
2534#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC
2535#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED
2044#ifndef GL_VERSION_1_0 2536#ifndef GL_VERSION_1_0
2045#define GL_VERSION_1_0 1 2537#define GL_VERSION_1_0 1
2046GLAPI int GLAD_GL_VERSION_1_0; 2538GLAPI int GLAD_GL_VERSION_1_0;
@@ -2188,6 +2680,780 @@ GLAPI PFNGLDEPTHRANGEPROC glad_glDepthRange;
2188typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height); 2680typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
2189GLAPI PFNGLVIEWPORTPROC glad_glViewport; 2681GLAPI PFNGLVIEWPORTPROC glad_glViewport;
2190#define glViewport glad_glViewport 2682#define glViewport glad_glViewport
2683typedef void (APIENTRYP PFNGLNEWLISTPROC)(GLuint list, GLenum mode);
2684GLAPI PFNGLNEWLISTPROC glad_glNewList;
2685#define glNewList glad_glNewList
2686typedef void (APIENTRYP PFNGLENDLISTPROC)(void);
2687GLAPI PFNGLENDLISTPROC glad_glEndList;
2688#define glEndList glad_glEndList
2689typedef void (APIENTRYP PFNGLCALLLISTPROC)(GLuint list);
2690GLAPI PFNGLCALLLISTPROC glad_glCallList;
2691#define glCallList glad_glCallList
2692typedef void (APIENTRYP PFNGLCALLLISTSPROC)(GLsizei n, GLenum type, const void *lists);
2693GLAPI PFNGLCALLLISTSPROC glad_glCallLists;
2694#define glCallLists glad_glCallLists
2695typedef void (APIENTRYP PFNGLDELETELISTSPROC)(GLuint list, GLsizei range);
2696GLAPI PFNGLDELETELISTSPROC glad_glDeleteLists;
2697#define glDeleteLists glad_glDeleteLists
2698typedef GLuint (APIENTRYP PFNGLGENLISTSPROC)(GLsizei range);
2699GLAPI PFNGLGENLISTSPROC glad_glGenLists;
2700#define glGenLists glad_glGenLists
2701typedef void (APIENTRYP PFNGLLISTBASEPROC)(GLuint base);
2702GLAPI PFNGLLISTBASEPROC glad_glListBase;
2703#define glListBase glad_glListBase
2704typedef void (APIENTRYP PFNGLBEGINPROC)(GLenum mode);
2705GLAPI PFNGLBEGINPROC glad_glBegin;
2706#define glBegin glad_glBegin
2707typedef void (APIENTRYP PFNGLBITMAPPROC)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
2708GLAPI PFNGLBITMAPPROC glad_glBitmap;
2709#define glBitmap glad_glBitmap
2710typedef void (APIENTRYP PFNGLCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue);
2711GLAPI PFNGLCOLOR3BPROC glad_glColor3b;
2712#define glColor3b glad_glColor3b
2713typedef void (APIENTRYP PFNGLCOLOR3BVPROC)(const GLbyte *v);
2714GLAPI PFNGLCOLOR3BVPROC glad_glColor3bv;
2715#define glColor3bv glad_glColor3bv
2716typedef void (APIENTRYP PFNGLCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue);
2717GLAPI PFNGLCOLOR3DPROC glad_glColor3d;
2718#define glColor3d glad_glColor3d
2719typedef void (APIENTRYP PFNGLCOLOR3DVPROC)(const GLdouble *v);
2720GLAPI PFNGLCOLOR3DVPROC glad_glColor3dv;
2721#define glColor3dv glad_glColor3dv
2722typedef void (APIENTRYP PFNGLCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue);
2723GLAPI PFNGLCOLOR3FPROC glad_glColor3f;
2724#define glColor3f glad_glColor3f
2725typedef void (APIENTRYP PFNGLCOLOR3FVPROC)(const GLfloat *v);
2726GLAPI PFNGLCOLOR3FVPROC glad_glColor3fv;
2727#define glColor3fv glad_glColor3fv
2728typedef void (APIENTRYP PFNGLCOLOR3IPROC)(GLint red, GLint green, GLint blue);
2729GLAPI PFNGLCOLOR3IPROC glad_glColor3i;
2730#define glColor3i glad_glColor3i
2731typedef void (APIENTRYP PFNGLCOLOR3IVPROC)(const GLint *v);
2732GLAPI PFNGLCOLOR3IVPROC glad_glColor3iv;
2733#define glColor3iv glad_glColor3iv
2734typedef void (APIENTRYP PFNGLCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue);
2735GLAPI PFNGLCOLOR3SPROC glad_glColor3s;
2736#define glColor3s glad_glColor3s
2737typedef void (APIENTRYP PFNGLCOLOR3SVPROC)(const GLshort *v);
2738GLAPI PFNGLCOLOR3SVPROC glad_glColor3sv;
2739#define glColor3sv glad_glColor3sv
2740typedef void (APIENTRYP PFNGLCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue);
2741GLAPI PFNGLCOLOR3UBPROC glad_glColor3ub;
2742#define glColor3ub glad_glColor3ub
2743typedef void (APIENTRYP PFNGLCOLOR3UBVPROC)(const GLubyte *v);
2744GLAPI PFNGLCOLOR3UBVPROC glad_glColor3ubv;
2745#define glColor3ubv glad_glColor3ubv
2746typedef void (APIENTRYP PFNGLCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue);
2747GLAPI PFNGLCOLOR3UIPROC glad_glColor3ui;
2748#define glColor3ui glad_glColor3ui
2749typedef void (APIENTRYP PFNGLCOLOR3UIVPROC)(const GLuint *v);
2750GLAPI PFNGLCOLOR3UIVPROC glad_glColor3uiv;
2751#define glColor3uiv glad_glColor3uiv
2752typedef void (APIENTRYP PFNGLCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue);
2753GLAPI PFNGLCOLOR3USPROC glad_glColor3us;
2754#define glColor3us glad_glColor3us
2755typedef void (APIENTRYP PFNGLCOLOR3USVPROC)(const GLushort *v);
2756GLAPI PFNGLCOLOR3USVPROC glad_glColor3usv;
2757#define glColor3usv glad_glColor3usv
2758typedef void (APIENTRYP PFNGLCOLOR4BPROC)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
2759GLAPI PFNGLCOLOR4BPROC glad_glColor4b;
2760#define glColor4b glad_glColor4b
2761typedef void (APIENTRYP PFNGLCOLOR4BVPROC)(const GLbyte *v);
2762GLAPI PFNGLCOLOR4BVPROC glad_glColor4bv;
2763#define glColor4bv glad_glColor4bv
2764typedef void (APIENTRYP PFNGLCOLOR4DPROC)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
2765GLAPI PFNGLCOLOR4DPROC glad_glColor4d;
2766#define glColor4d glad_glColor4d
2767typedef void (APIENTRYP PFNGLCOLOR4DVPROC)(const GLdouble *v);
2768GLAPI PFNGLCOLOR4DVPROC glad_glColor4dv;
2769#define glColor4dv glad_glColor4dv
2770typedef void (APIENTRYP PFNGLCOLOR4FPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
2771GLAPI PFNGLCOLOR4FPROC glad_glColor4f;
2772#define glColor4f glad_glColor4f
2773typedef void (APIENTRYP PFNGLCOLOR4FVPROC)(const GLfloat *v);
2774GLAPI PFNGLCOLOR4FVPROC glad_glColor4fv;
2775#define glColor4fv glad_glColor4fv
2776typedef void (APIENTRYP PFNGLCOLOR4IPROC)(GLint red, GLint green, GLint blue, GLint alpha);
2777GLAPI PFNGLCOLOR4IPROC glad_glColor4i;
2778#define glColor4i glad_glColor4i
2779typedef void (APIENTRYP PFNGLCOLOR4IVPROC)(const GLint *v);
2780GLAPI PFNGLCOLOR4IVPROC glad_glColor4iv;
2781#define glColor4iv glad_glColor4iv
2782typedef void (APIENTRYP PFNGLCOLOR4SPROC)(GLshort red, GLshort green, GLshort blue, GLshort alpha);
2783GLAPI PFNGLCOLOR4SPROC glad_glColor4s;
2784#define glColor4s glad_glColor4s
2785typedef void (APIENTRYP PFNGLCOLOR4SVPROC)(const GLshort *v);
2786GLAPI PFNGLCOLOR4SVPROC glad_glColor4sv;
2787#define glColor4sv glad_glColor4sv
2788typedef void (APIENTRYP PFNGLCOLOR4UBPROC)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
2789GLAPI PFNGLCOLOR4UBPROC glad_glColor4ub;
2790#define glColor4ub glad_glColor4ub
2791typedef void (APIENTRYP PFNGLCOLOR4UBVPROC)(const GLubyte *v);
2792GLAPI PFNGLCOLOR4UBVPROC glad_glColor4ubv;
2793#define glColor4ubv glad_glColor4ubv
2794typedef void (APIENTRYP PFNGLCOLOR4UIPROC)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
2795GLAPI PFNGLCOLOR4UIPROC glad_glColor4ui;
2796#define glColor4ui glad_glColor4ui
2797typedef void (APIENTRYP PFNGLCOLOR4UIVPROC)(const GLuint *v);
2798GLAPI PFNGLCOLOR4UIVPROC glad_glColor4uiv;
2799#define glColor4uiv glad_glColor4uiv
2800typedef void (APIENTRYP PFNGLCOLOR4USPROC)(GLushort red, GLushort green, GLushort blue, GLushort alpha);
2801GLAPI PFNGLCOLOR4USPROC glad_glColor4us;
2802#define glColor4us glad_glColor4us
2803typedef void (APIENTRYP PFNGLCOLOR4USVPROC)(const GLushort *v);
2804GLAPI PFNGLCOLOR4USVPROC glad_glColor4usv;
2805#define glColor4usv glad_glColor4usv
2806typedef void (APIENTRYP PFNGLEDGEFLAGPROC)(GLboolean flag);
2807GLAPI PFNGLEDGEFLAGPROC glad_glEdgeFlag;
2808#define glEdgeFlag glad_glEdgeFlag
2809typedef void (APIENTRYP PFNGLEDGEFLAGVPROC)(const GLboolean *flag);
2810GLAPI PFNGLEDGEFLAGVPROC glad_glEdgeFlagv;
2811#define glEdgeFlagv glad_glEdgeFlagv
2812typedef void (APIENTRYP PFNGLENDPROC)(void);
2813GLAPI PFNGLENDPROC glad_glEnd;
2814#define glEnd glad_glEnd
2815typedef void (APIENTRYP PFNGLINDEXDPROC)(GLdouble c);
2816GLAPI PFNGLINDEXDPROC glad_glIndexd;
2817#define glIndexd glad_glIndexd
2818typedef void (APIENTRYP PFNGLINDEXDVPROC)(const GLdouble *c);
2819GLAPI PFNGLINDEXDVPROC glad_glIndexdv;
2820#define glIndexdv glad_glIndexdv
2821typedef void (APIENTRYP PFNGLINDEXFPROC)(GLfloat c);
2822GLAPI PFNGLINDEXFPROC glad_glIndexf;
2823#define glIndexf glad_glIndexf
2824typedef void (APIENTRYP PFNGLINDEXFVPROC)(const GLfloat *c);
2825GLAPI PFNGLINDEXFVPROC glad_glIndexfv;
2826#define glIndexfv glad_glIndexfv
2827typedef void (APIENTRYP PFNGLINDEXIPROC)(GLint c);
2828GLAPI PFNGLINDEXIPROC glad_glIndexi;
2829#define glIndexi glad_glIndexi
2830typedef void (APIENTRYP PFNGLINDEXIVPROC)(const GLint *c);
2831GLAPI PFNGLINDEXIVPROC glad_glIndexiv;
2832#define glIndexiv glad_glIndexiv
2833typedef void (APIENTRYP PFNGLINDEXSPROC)(GLshort c);
2834GLAPI PFNGLINDEXSPROC glad_glIndexs;
2835#define glIndexs glad_glIndexs
2836typedef void (APIENTRYP PFNGLINDEXSVPROC)(const GLshort *c);
2837GLAPI PFNGLINDEXSVPROC glad_glIndexsv;
2838#define glIndexsv glad_glIndexsv
2839typedef void (APIENTRYP PFNGLNORMAL3BPROC)(GLbyte nx, GLbyte ny, GLbyte nz);
2840GLAPI PFNGLNORMAL3BPROC glad_glNormal3b;
2841#define glNormal3b glad_glNormal3b
2842typedef void (APIENTRYP PFNGLNORMAL3BVPROC)(const GLbyte *v);
2843GLAPI PFNGLNORMAL3BVPROC glad_glNormal3bv;
2844#define glNormal3bv glad_glNormal3bv
2845typedef void (APIENTRYP PFNGLNORMAL3DPROC)(GLdouble nx, GLdouble ny, GLdouble nz);
2846GLAPI PFNGLNORMAL3DPROC glad_glNormal3d;
2847#define glNormal3d glad_glNormal3d
2848typedef void (APIENTRYP PFNGLNORMAL3DVPROC)(const GLdouble *v);
2849GLAPI PFNGLNORMAL3DVPROC glad_glNormal3dv;
2850#define glNormal3dv glad_glNormal3dv
2851typedef void (APIENTRYP PFNGLNORMAL3FPROC)(GLfloat nx, GLfloat ny, GLfloat nz);
2852GLAPI PFNGLNORMAL3FPROC glad_glNormal3f;
2853#define glNormal3f glad_glNormal3f
2854typedef void (APIENTRYP PFNGLNORMAL3FVPROC)(const GLfloat *v);
2855GLAPI PFNGLNORMAL3FVPROC glad_glNormal3fv;
2856#define glNormal3fv glad_glNormal3fv
2857typedef void (APIENTRYP PFNGLNORMAL3IPROC)(GLint nx, GLint ny, GLint nz);
2858GLAPI PFNGLNORMAL3IPROC glad_glNormal3i;
2859#define glNormal3i glad_glNormal3i
2860typedef void (APIENTRYP PFNGLNORMAL3IVPROC)(const GLint *v);
2861GLAPI PFNGLNORMAL3IVPROC glad_glNormal3iv;
2862#define glNormal3iv glad_glNormal3iv
2863typedef void (APIENTRYP PFNGLNORMAL3SPROC)(GLshort nx, GLshort ny, GLshort nz);
2864GLAPI PFNGLNORMAL3SPROC glad_glNormal3s;
2865#define glNormal3s glad_glNormal3s
2866typedef void (APIENTRYP PFNGLNORMAL3SVPROC)(const GLshort *v);
2867GLAPI PFNGLNORMAL3SVPROC glad_glNormal3sv;
2868#define glNormal3sv glad_glNormal3sv
2869typedef void (APIENTRYP PFNGLRASTERPOS2DPROC)(GLdouble x, GLdouble y);
2870GLAPI PFNGLRASTERPOS2DPROC glad_glRasterPos2d;
2871#define glRasterPos2d glad_glRasterPos2d
2872typedef void (APIENTRYP PFNGLRASTERPOS2DVPROC)(const GLdouble *v);
2873GLAPI PFNGLRASTERPOS2DVPROC glad_glRasterPos2dv;
2874#define glRasterPos2dv glad_glRasterPos2dv
2875typedef void (APIENTRYP PFNGLRASTERPOS2FPROC)(GLfloat x, GLfloat y);
2876GLAPI PFNGLRASTERPOS2FPROC glad_glRasterPos2f;
2877#define glRasterPos2f glad_glRasterPos2f
2878typedef void (APIENTRYP PFNGLRASTERPOS2FVPROC)(const GLfloat *v);
2879GLAPI PFNGLRASTERPOS2FVPROC glad_glRasterPos2fv;
2880#define glRasterPos2fv glad_glRasterPos2fv
2881typedef void (APIENTRYP PFNGLRASTERPOS2IPROC)(GLint x, GLint y);
2882GLAPI PFNGLRASTERPOS2IPROC glad_glRasterPos2i;
2883#define glRasterPos2i glad_glRasterPos2i
2884typedef void (APIENTRYP PFNGLRASTERPOS2IVPROC)(const GLint *v);
2885GLAPI PFNGLRASTERPOS2IVPROC glad_glRasterPos2iv;
2886#define glRasterPos2iv glad_glRasterPos2iv
2887typedef void (APIENTRYP PFNGLRASTERPOS2SPROC)(GLshort x, GLshort y);
2888GLAPI PFNGLRASTERPOS2SPROC glad_glRasterPos2s;
2889#define glRasterPos2s glad_glRasterPos2s
2890typedef void (APIENTRYP PFNGLRASTERPOS2SVPROC)(const GLshort *v);
2891GLAPI PFNGLRASTERPOS2SVPROC glad_glRasterPos2sv;
2892#define glRasterPos2sv glad_glRasterPos2sv
2893typedef void (APIENTRYP PFNGLRASTERPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z);
2894GLAPI PFNGLRASTERPOS3DPROC glad_glRasterPos3d;
2895#define glRasterPos3d glad_glRasterPos3d
2896typedef void (APIENTRYP PFNGLRASTERPOS3DVPROC)(const GLdouble *v);
2897GLAPI PFNGLRASTERPOS3DVPROC glad_glRasterPos3dv;
2898#define glRasterPos3dv glad_glRasterPos3dv
2899typedef void (APIENTRYP PFNGLRASTERPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z);
2900GLAPI PFNGLRASTERPOS3FPROC glad_glRasterPos3f;
2901#define glRasterPos3f glad_glRasterPos3f
2902typedef void (APIENTRYP PFNGLRASTERPOS3FVPROC)(const GLfloat *v);
2903GLAPI PFNGLRASTERPOS3FVPROC glad_glRasterPos3fv;
2904#define glRasterPos3fv glad_glRasterPos3fv
2905typedef void (APIENTRYP PFNGLRASTERPOS3IPROC)(GLint x, GLint y, GLint z);
2906GLAPI PFNGLRASTERPOS3IPROC glad_glRasterPos3i;
2907#define glRasterPos3i glad_glRasterPos3i
2908typedef void (APIENTRYP PFNGLRASTERPOS3IVPROC)(const GLint *v);
2909GLAPI PFNGLRASTERPOS3IVPROC glad_glRasterPos3iv;
2910#define glRasterPos3iv glad_glRasterPos3iv
2911typedef void (APIENTRYP PFNGLRASTERPOS3SPROC)(GLshort x, GLshort y, GLshort z);
2912GLAPI PFNGLRASTERPOS3SPROC glad_glRasterPos3s;
2913#define glRasterPos3s glad_glRasterPos3s
2914typedef void (APIENTRYP PFNGLRASTERPOS3SVPROC)(const GLshort *v);
2915GLAPI PFNGLRASTERPOS3SVPROC glad_glRasterPos3sv;
2916#define glRasterPos3sv glad_glRasterPos3sv
2917typedef void (APIENTRYP PFNGLRASTERPOS4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
2918GLAPI PFNGLRASTERPOS4DPROC glad_glRasterPos4d;
2919#define glRasterPos4d glad_glRasterPos4d
2920typedef void (APIENTRYP PFNGLRASTERPOS4DVPROC)(const GLdouble *v);
2921GLAPI PFNGLRASTERPOS4DVPROC glad_glRasterPos4dv;
2922#define glRasterPos4dv glad_glRasterPos4dv
2923typedef void (APIENTRYP PFNGLRASTERPOS4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
2924GLAPI PFNGLRASTERPOS4FPROC glad_glRasterPos4f;
2925#define glRasterPos4f glad_glRasterPos4f
2926typedef void (APIENTRYP PFNGLRASTERPOS4FVPROC)(const GLfloat *v);
2927GLAPI PFNGLRASTERPOS4FVPROC glad_glRasterPos4fv;
2928#define glRasterPos4fv glad_glRasterPos4fv
2929typedef void (APIENTRYP PFNGLRASTERPOS4IPROC)(GLint x, GLint y, GLint z, GLint w);
2930GLAPI PFNGLRASTERPOS4IPROC glad_glRasterPos4i;
2931#define glRasterPos4i glad_glRasterPos4i
2932typedef void (APIENTRYP PFNGLRASTERPOS4IVPROC)(const GLint *v);
2933GLAPI PFNGLRASTERPOS4IVPROC glad_glRasterPos4iv;
2934#define glRasterPos4iv glad_glRasterPos4iv
2935typedef void (APIENTRYP PFNGLRASTERPOS4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w);
2936GLAPI PFNGLRASTERPOS4SPROC glad_glRasterPos4s;
2937#define glRasterPos4s glad_glRasterPos4s
2938typedef void (APIENTRYP PFNGLRASTERPOS4SVPROC)(const GLshort *v);
2939GLAPI PFNGLRASTERPOS4SVPROC glad_glRasterPos4sv;
2940#define glRasterPos4sv glad_glRasterPos4sv
2941typedef void (APIENTRYP PFNGLRECTDPROC)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
2942GLAPI PFNGLRECTDPROC glad_glRectd;
2943#define glRectd glad_glRectd
2944typedef void (APIENTRYP PFNGLRECTDVPROC)(const GLdouble *v1, const GLdouble *v2);
2945GLAPI PFNGLRECTDVPROC glad_glRectdv;
2946#define glRectdv glad_glRectdv
2947typedef void (APIENTRYP PFNGLRECTFPROC)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
2948GLAPI PFNGLRECTFPROC glad_glRectf;
2949#define glRectf glad_glRectf
2950typedef void (APIENTRYP PFNGLRECTFVPROC)(const GLfloat *v1, const GLfloat *v2);
2951GLAPI PFNGLRECTFVPROC glad_glRectfv;
2952#define glRectfv glad_glRectfv
2953typedef void (APIENTRYP PFNGLRECTIPROC)(GLint x1, GLint y1, GLint x2, GLint y2);
2954GLAPI PFNGLRECTIPROC glad_glRecti;
2955#define glRecti glad_glRecti
2956typedef void (APIENTRYP PFNGLRECTIVPROC)(const GLint *v1, const GLint *v2);
2957GLAPI PFNGLRECTIVPROC glad_glRectiv;
2958#define glRectiv glad_glRectiv
2959typedef void (APIENTRYP PFNGLRECTSPROC)(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
2960GLAPI PFNGLRECTSPROC glad_glRects;
2961#define glRects glad_glRects
2962typedef void (APIENTRYP PFNGLRECTSVPROC)(const GLshort *v1, const GLshort *v2);
2963GLAPI PFNGLRECTSVPROC glad_glRectsv;
2964#define glRectsv glad_glRectsv
2965typedef void (APIENTRYP PFNGLTEXCOORD1DPROC)(GLdouble s);
2966GLAPI PFNGLTEXCOORD1DPROC glad_glTexCoord1d;
2967#define glTexCoord1d glad_glTexCoord1d
2968typedef void (APIENTRYP PFNGLTEXCOORD1DVPROC)(const GLdouble *v);
2969GLAPI PFNGLTEXCOORD1DVPROC glad_glTexCoord1dv;
2970#define glTexCoord1dv glad_glTexCoord1dv
2971typedef void (APIENTRYP PFNGLTEXCOORD1FPROC)(GLfloat s);
2972GLAPI PFNGLTEXCOORD1FPROC glad_glTexCoord1f;
2973#define glTexCoord1f glad_glTexCoord1f
2974typedef void (APIENTRYP PFNGLTEXCOORD1FVPROC)(const GLfloat *v);
2975GLAPI PFNGLTEXCOORD1FVPROC glad_glTexCoord1fv;
2976#define glTexCoord1fv glad_glTexCoord1fv
2977typedef void (APIENTRYP PFNGLTEXCOORD1IPROC)(GLint s);
2978GLAPI PFNGLTEXCOORD1IPROC glad_glTexCoord1i;
2979#define glTexCoord1i glad_glTexCoord1i
2980typedef void (APIENTRYP PFNGLTEXCOORD1IVPROC)(const GLint *v);
2981GLAPI PFNGLTEXCOORD1IVPROC glad_glTexCoord1iv;
2982#define glTexCoord1iv glad_glTexCoord1iv
2983typedef void (APIENTRYP PFNGLTEXCOORD1SPROC)(GLshort s);
2984GLAPI PFNGLTEXCOORD1SPROC glad_glTexCoord1s;
2985#define glTexCoord1s glad_glTexCoord1s
2986typedef void (APIENTRYP PFNGLTEXCOORD1SVPROC)(const GLshort *v);
2987GLAPI PFNGLTEXCOORD1SVPROC glad_glTexCoord1sv;
2988#define glTexCoord1sv glad_glTexCoord1sv
2989typedef void (APIENTRYP PFNGLTEXCOORD2DPROC)(GLdouble s, GLdouble t);
2990GLAPI PFNGLTEXCOORD2DPROC glad_glTexCoord2d;
2991#define glTexCoord2d glad_glTexCoord2d
2992typedef void (APIENTRYP PFNGLTEXCOORD2DVPROC)(const GLdouble *v);
2993GLAPI PFNGLTEXCOORD2DVPROC glad_glTexCoord2dv;
2994#define glTexCoord2dv glad_glTexCoord2dv
2995typedef void (APIENTRYP PFNGLTEXCOORD2FPROC)(GLfloat s, GLfloat t);
2996GLAPI PFNGLTEXCOORD2FPROC glad_glTexCoord2f;
2997#define glTexCoord2f glad_glTexCoord2f
2998typedef void (APIENTRYP PFNGLTEXCOORD2FVPROC)(const GLfloat *v);
2999GLAPI PFNGLTEXCOORD2FVPROC glad_glTexCoord2fv;
3000#define glTexCoord2fv glad_glTexCoord2fv
3001typedef void (APIENTRYP PFNGLTEXCOORD2IPROC)(GLint s, GLint t);
3002GLAPI PFNGLTEXCOORD2IPROC glad_glTexCoord2i;
3003#define glTexCoord2i glad_glTexCoord2i
3004typedef void (APIENTRYP PFNGLTEXCOORD2IVPROC)(const GLint *v);
3005GLAPI PFNGLTEXCOORD2IVPROC glad_glTexCoord2iv;
3006#define glTexCoord2iv glad_glTexCoord2iv
3007typedef void (APIENTRYP PFNGLTEXCOORD2SPROC)(GLshort s, GLshort t);
3008GLAPI PFNGLTEXCOORD2SPROC glad_glTexCoord2s;
3009#define glTexCoord2s glad_glTexCoord2s
3010typedef void (APIENTRYP PFNGLTEXCOORD2SVPROC)(const GLshort *v);
3011GLAPI PFNGLTEXCOORD2SVPROC glad_glTexCoord2sv;
3012#define glTexCoord2sv glad_glTexCoord2sv
3013typedef void (APIENTRYP PFNGLTEXCOORD3DPROC)(GLdouble s, GLdouble t, GLdouble r);
3014GLAPI PFNGLTEXCOORD3DPROC glad_glTexCoord3d;
3015#define glTexCoord3d glad_glTexCoord3d
3016typedef void (APIENTRYP PFNGLTEXCOORD3DVPROC)(const GLdouble *v);
3017GLAPI PFNGLTEXCOORD3DVPROC glad_glTexCoord3dv;
3018#define glTexCoord3dv glad_glTexCoord3dv
3019typedef void (APIENTRYP PFNGLTEXCOORD3FPROC)(GLfloat s, GLfloat t, GLfloat r);
3020GLAPI PFNGLTEXCOORD3FPROC glad_glTexCoord3f;
3021#define glTexCoord3f glad_glTexCoord3f
3022typedef void (APIENTRYP PFNGLTEXCOORD3FVPROC)(const GLfloat *v);
3023GLAPI PFNGLTEXCOORD3FVPROC glad_glTexCoord3fv;
3024#define glTexCoord3fv glad_glTexCoord3fv
3025typedef void (APIENTRYP PFNGLTEXCOORD3IPROC)(GLint s, GLint t, GLint r);
3026GLAPI PFNGLTEXCOORD3IPROC glad_glTexCoord3i;
3027#define glTexCoord3i glad_glTexCoord3i
3028typedef void (APIENTRYP PFNGLTEXCOORD3IVPROC)(const GLint *v);
3029GLAPI PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv;
3030#define glTexCoord3iv glad_glTexCoord3iv
3031typedef void (APIENTRYP PFNGLTEXCOORD3SPROC)(GLshort s, GLshort t, GLshort r);
3032GLAPI PFNGLTEXCOORD3SPROC glad_glTexCoord3s;
3033#define glTexCoord3s glad_glTexCoord3s
3034typedef void (APIENTRYP PFNGLTEXCOORD3SVPROC)(const GLshort *v);
3035GLAPI PFNGLTEXCOORD3SVPROC glad_glTexCoord3sv;
3036#define glTexCoord3sv glad_glTexCoord3sv
3037typedef void (APIENTRYP PFNGLTEXCOORD4DPROC)(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
3038GLAPI PFNGLTEXCOORD4DPROC glad_glTexCoord4d;
3039#define glTexCoord4d glad_glTexCoord4d
3040typedef void (APIENTRYP PFNGLTEXCOORD4DVPROC)(const GLdouble *v);
3041GLAPI PFNGLTEXCOORD4DVPROC glad_glTexCoord4dv;
3042#define glTexCoord4dv glad_glTexCoord4dv
3043typedef void (APIENTRYP PFNGLTEXCOORD4FPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
3044GLAPI PFNGLTEXCOORD4FPROC glad_glTexCoord4f;
3045#define glTexCoord4f glad_glTexCoord4f
3046typedef void (APIENTRYP PFNGLTEXCOORD4FVPROC)(const GLfloat *v);
3047GLAPI PFNGLTEXCOORD4FVPROC glad_glTexCoord4fv;
3048#define glTexCoord4fv glad_glTexCoord4fv
3049typedef void (APIENTRYP PFNGLTEXCOORD4IPROC)(GLint s, GLint t, GLint r, GLint q);
3050GLAPI PFNGLTEXCOORD4IPROC glad_glTexCoord4i;
3051#define glTexCoord4i glad_glTexCoord4i
3052typedef void (APIENTRYP PFNGLTEXCOORD4IVPROC)(const GLint *v);
3053GLAPI PFNGLTEXCOORD4IVPROC glad_glTexCoord4iv;
3054#define glTexCoord4iv glad_glTexCoord4iv
3055typedef void (APIENTRYP PFNGLTEXCOORD4SPROC)(GLshort s, GLshort t, GLshort r, GLshort q);
3056GLAPI PFNGLTEXCOORD4SPROC glad_glTexCoord4s;
3057#define glTexCoord4s glad_glTexCoord4s
3058typedef void (APIENTRYP PFNGLTEXCOORD4SVPROC)(const GLshort *v);
3059GLAPI PFNGLTEXCOORD4SVPROC glad_glTexCoord4sv;
3060#define glTexCoord4sv glad_glTexCoord4sv
3061typedef void (APIENTRYP PFNGLVERTEX2DPROC)(GLdouble x, GLdouble y);
3062GLAPI PFNGLVERTEX2DPROC glad_glVertex2d;
3063#define glVertex2d glad_glVertex2d
3064typedef void (APIENTRYP PFNGLVERTEX2DVPROC)(const GLdouble *v);
3065GLAPI PFNGLVERTEX2DVPROC glad_glVertex2dv;
3066#define glVertex2dv glad_glVertex2dv
3067typedef void (APIENTRYP PFNGLVERTEX2FPROC)(GLfloat x, GLfloat y);
3068GLAPI PFNGLVERTEX2FPROC glad_glVertex2f;
3069#define glVertex2f glad_glVertex2f
3070typedef void (APIENTRYP PFNGLVERTEX2FVPROC)(const GLfloat *v);
3071GLAPI PFNGLVERTEX2FVPROC glad_glVertex2fv;
3072#define glVertex2fv glad_glVertex2fv
3073typedef void (APIENTRYP PFNGLVERTEX2IPROC)(GLint x, GLint y);
3074GLAPI PFNGLVERTEX2IPROC glad_glVertex2i;
3075#define glVertex2i glad_glVertex2i
3076typedef void (APIENTRYP PFNGLVERTEX2IVPROC)(const GLint *v);
3077GLAPI PFNGLVERTEX2IVPROC glad_glVertex2iv;
3078#define glVertex2iv glad_glVertex2iv
3079typedef void (APIENTRYP PFNGLVERTEX2SPROC)(GLshort x, GLshort y);
3080GLAPI PFNGLVERTEX2SPROC glad_glVertex2s;
3081#define glVertex2s glad_glVertex2s
3082typedef void (APIENTRYP PFNGLVERTEX2SVPROC)(const GLshort *v);
3083GLAPI PFNGLVERTEX2SVPROC glad_glVertex2sv;
3084#define glVertex2sv glad_glVertex2sv
3085typedef void (APIENTRYP PFNGLVERTEX3DPROC)(GLdouble x, GLdouble y, GLdouble z);
3086GLAPI PFNGLVERTEX3DPROC glad_glVertex3d;
3087#define glVertex3d glad_glVertex3d
3088typedef void (APIENTRYP PFNGLVERTEX3DVPROC)(const GLdouble *v);
3089GLAPI PFNGLVERTEX3DVPROC glad_glVertex3dv;
3090#define glVertex3dv glad_glVertex3dv
3091typedef void (APIENTRYP PFNGLVERTEX3FPROC)(GLfloat x, GLfloat y, GLfloat z);
3092GLAPI PFNGLVERTEX3FPROC glad_glVertex3f;
3093#define glVertex3f glad_glVertex3f
3094typedef void (APIENTRYP PFNGLVERTEX3FVPROC)(const GLfloat *v);
3095GLAPI PFNGLVERTEX3FVPROC glad_glVertex3fv;
3096#define glVertex3fv glad_glVertex3fv
3097typedef void (APIENTRYP PFNGLVERTEX3IPROC)(GLint x, GLint y, GLint z);
3098GLAPI PFNGLVERTEX3IPROC glad_glVertex3i;
3099#define glVertex3i glad_glVertex3i
3100typedef void (APIENTRYP PFNGLVERTEX3IVPROC)(const GLint *v);
3101GLAPI PFNGLVERTEX3IVPROC glad_glVertex3iv;
3102#define glVertex3iv glad_glVertex3iv
3103typedef void (APIENTRYP PFNGLVERTEX3SPROC)(GLshort x, GLshort y, GLshort z);
3104GLAPI PFNGLVERTEX3SPROC glad_glVertex3s;
3105#define glVertex3s glad_glVertex3s
3106typedef void (APIENTRYP PFNGLVERTEX3SVPROC)(const GLshort *v);
3107GLAPI PFNGLVERTEX3SVPROC glad_glVertex3sv;
3108#define glVertex3sv glad_glVertex3sv
3109typedef void (APIENTRYP PFNGLVERTEX4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
3110GLAPI PFNGLVERTEX4DPROC glad_glVertex4d;
3111#define glVertex4d glad_glVertex4d
3112typedef void (APIENTRYP PFNGLVERTEX4DVPROC)(const GLdouble *v);
3113GLAPI PFNGLVERTEX4DVPROC glad_glVertex4dv;
3114#define glVertex4dv glad_glVertex4dv
3115typedef void (APIENTRYP PFNGLVERTEX4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
3116GLAPI PFNGLVERTEX4FPROC glad_glVertex4f;
3117#define glVertex4f glad_glVertex4f
3118typedef void (APIENTRYP PFNGLVERTEX4FVPROC)(const GLfloat *v);
3119GLAPI PFNGLVERTEX4FVPROC glad_glVertex4fv;
3120#define glVertex4fv glad_glVertex4fv
3121typedef void (APIENTRYP PFNGLVERTEX4IPROC)(GLint x, GLint y, GLint z, GLint w);
3122GLAPI PFNGLVERTEX4IPROC glad_glVertex4i;
3123#define glVertex4i glad_glVertex4i
3124typedef void (APIENTRYP PFNGLVERTEX4IVPROC)(const GLint *v);
3125GLAPI PFNGLVERTEX4IVPROC glad_glVertex4iv;
3126#define glVertex4iv glad_glVertex4iv
3127typedef void (APIENTRYP PFNGLVERTEX4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w);
3128GLAPI PFNGLVERTEX4SPROC glad_glVertex4s;
3129#define glVertex4s glad_glVertex4s
3130typedef void (APIENTRYP PFNGLVERTEX4SVPROC)(const GLshort *v);
3131GLAPI PFNGLVERTEX4SVPROC glad_glVertex4sv;
3132#define glVertex4sv glad_glVertex4sv
3133typedef void (APIENTRYP PFNGLCLIPPLANEPROC)(GLenum plane, const GLdouble *equation);
3134GLAPI PFNGLCLIPPLANEPROC glad_glClipPlane;
3135#define glClipPlane glad_glClipPlane
3136typedef void (APIENTRYP PFNGLCOLORMATERIALPROC)(GLenum face, GLenum mode);
3137GLAPI PFNGLCOLORMATERIALPROC glad_glColorMaterial;
3138#define glColorMaterial glad_glColorMaterial
3139typedef void (APIENTRYP PFNGLFOGFPROC)(GLenum pname, GLfloat param);
3140GLAPI PFNGLFOGFPROC glad_glFogf;
3141#define glFogf glad_glFogf
3142typedef void (APIENTRYP PFNGLFOGFVPROC)(GLenum pname, const GLfloat *params);
3143GLAPI PFNGLFOGFVPROC glad_glFogfv;
3144#define glFogfv glad_glFogfv
3145typedef void (APIENTRYP PFNGLFOGIPROC)(GLenum pname, GLint param);
3146GLAPI PFNGLFOGIPROC glad_glFogi;
3147#define glFogi glad_glFogi
3148typedef void (APIENTRYP PFNGLFOGIVPROC)(GLenum pname, const GLint *params);
3149GLAPI PFNGLFOGIVPROC glad_glFogiv;
3150#define glFogiv glad_glFogiv
3151typedef void (APIENTRYP PFNGLLIGHTFPROC)(GLenum light, GLenum pname, GLfloat param);
3152GLAPI PFNGLLIGHTFPROC glad_glLightf;
3153#define glLightf glad_glLightf
3154typedef void (APIENTRYP PFNGLLIGHTFVPROC)(GLenum light, GLenum pname, const GLfloat *params);
3155GLAPI PFNGLLIGHTFVPROC glad_glLightfv;
3156#define glLightfv glad_glLightfv
3157typedef void (APIENTRYP PFNGLLIGHTIPROC)(GLenum light, GLenum pname, GLint param);
3158GLAPI PFNGLLIGHTIPROC glad_glLighti;
3159#define glLighti glad_glLighti
3160typedef void (APIENTRYP PFNGLLIGHTIVPROC)(GLenum light, GLenum pname, const GLint *params);
3161GLAPI PFNGLLIGHTIVPROC glad_glLightiv;
3162#define glLightiv glad_glLightiv
3163typedef void (APIENTRYP PFNGLLIGHTMODELFPROC)(GLenum pname, GLfloat param);
3164GLAPI PFNGLLIGHTMODELFPROC glad_glLightModelf;
3165#define glLightModelf glad_glLightModelf
3166typedef void (APIENTRYP PFNGLLIGHTMODELFVPROC)(GLenum pname, const GLfloat *params);
3167GLAPI PFNGLLIGHTMODELFVPROC glad_glLightModelfv;
3168#define glLightModelfv glad_glLightModelfv
3169typedef void (APIENTRYP PFNGLLIGHTMODELIPROC)(GLenum pname, GLint param);
3170GLAPI PFNGLLIGHTMODELIPROC glad_glLightModeli;
3171#define glLightModeli glad_glLightModeli
3172typedef void (APIENTRYP PFNGLLIGHTMODELIVPROC)(GLenum pname, const GLint *params);
3173GLAPI PFNGLLIGHTMODELIVPROC glad_glLightModeliv;
3174#define glLightModeliv glad_glLightModeliv
3175typedef void (APIENTRYP PFNGLLINESTIPPLEPROC)(GLint factor, GLushort pattern);
3176GLAPI PFNGLLINESTIPPLEPROC glad_glLineStipple;
3177#define glLineStipple glad_glLineStipple
3178typedef void (APIENTRYP PFNGLMATERIALFPROC)(GLenum face, GLenum pname, GLfloat param);
3179GLAPI PFNGLMATERIALFPROC glad_glMaterialf;
3180#define glMaterialf glad_glMaterialf
3181typedef void (APIENTRYP PFNGLMATERIALFVPROC)(GLenum face, GLenum pname, const GLfloat *params);
3182GLAPI PFNGLMATERIALFVPROC glad_glMaterialfv;
3183#define glMaterialfv glad_glMaterialfv
3184typedef void (APIENTRYP PFNGLMATERIALIPROC)(GLenum face, GLenum pname, GLint param);
3185GLAPI PFNGLMATERIALIPROC glad_glMateriali;
3186#define glMateriali glad_glMateriali
3187typedef void (APIENTRYP PFNGLMATERIALIVPROC)(GLenum face, GLenum pname, const GLint *params);
3188GLAPI PFNGLMATERIALIVPROC glad_glMaterialiv;
3189#define glMaterialiv glad_glMaterialiv
3190typedef void (APIENTRYP PFNGLPOLYGONSTIPPLEPROC)(const GLubyte *mask);
3191GLAPI PFNGLPOLYGONSTIPPLEPROC glad_glPolygonStipple;
3192#define glPolygonStipple glad_glPolygonStipple
3193typedef void (APIENTRYP PFNGLSHADEMODELPROC)(GLenum mode);
3194GLAPI PFNGLSHADEMODELPROC glad_glShadeModel;
3195#define glShadeModel glad_glShadeModel
3196typedef void (APIENTRYP PFNGLTEXENVFPROC)(GLenum target, GLenum pname, GLfloat param);
3197GLAPI PFNGLTEXENVFPROC glad_glTexEnvf;
3198#define glTexEnvf glad_glTexEnvf
3199typedef void (APIENTRYP PFNGLTEXENVFVPROC)(GLenum target, GLenum pname, const GLfloat *params);
3200GLAPI PFNGLTEXENVFVPROC glad_glTexEnvfv;
3201#define glTexEnvfv glad_glTexEnvfv
3202typedef void (APIENTRYP PFNGLTEXENVIPROC)(GLenum target, GLenum pname, GLint param);
3203GLAPI PFNGLTEXENVIPROC glad_glTexEnvi;
3204#define glTexEnvi glad_glTexEnvi
3205typedef void (APIENTRYP PFNGLTEXENVIVPROC)(GLenum target, GLenum pname, const GLint *params);
3206GLAPI PFNGLTEXENVIVPROC glad_glTexEnviv;
3207#define glTexEnviv glad_glTexEnviv
3208typedef void (APIENTRYP PFNGLTEXGENDPROC)(GLenum coord, GLenum pname, GLdouble param);
3209GLAPI PFNGLTEXGENDPROC glad_glTexGend;
3210#define glTexGend glad_glTexGend
3211typedef void (APIENTRYP PFNGLTEXGENDVPROC)(GLenum coord, GLenum pname, const GLdouble *params);
3212GLAPI PFNGLTEXGENDVPROC glad_glTexGendv;
3213#define glTexGendv glad_glTexGendv
3214typedef void (APIENTRYP PFNGLTEXGENFPROC)(GLenum coord, GLenum pname, GLfloat param);
3215GLAPI PFNGLTEXGENFPROC glad_glTexGenf;
3216#define glTexGenf glad_glTexGenf
3217typedef void (APIENTRYP PFNGLTEXGENFVPROC)(GLenum coord, GLenum pname, const GLfloat *params);
3218GLAPI PFNGLTEXGENFVPROC glad_glTexGenfv;
3219#define glTexGenfv glad_glTexGenfv
3220typedef void (APIENTRYP PFNGLTEXGENIPROC)(GLenum coord, GLenum pname, GLint param);
3221GLAPI PFNGLTEXGENIPROC glad_glTexGeni;
3222#define glTexGeni glad_glTexGeni
3223typedef void (APIENTRYP PFNGLTEXGENIVPROC)(GLenum coord, GLenum pname, const GLint *params);
3224GLAPI PFNGLTEXGENIVPROC glad_glTexGeniv;
3225#define glTexGeniv glad_glTexGeniv
3226typedef void (APIENTRYP PFNGLFEEDBACKBUFFERPROC)(GLsizei size, GLenum type, GLfloat *buffer);
3227GLAPI PFNGLFEEDBACKBUFFERPROC glad_glFeedbackBuffer;
3228#define glFeedbackBuffer glad_glFeedbackBuffer
3229typedef void (APIENTRYP PFNGLSELECTBUFFERPROC)(GLsizei size, GLuint *buffer);
3230GLAPI PFNGLSELECTBUFFERPROC glad_glSelectBuffer;
3231#define glSelectBuffer glad_glSelectBuffer
3232typedef GLint (APIENTRYP PFNGLRENDERMODEPROC)(GLenum mode);
3233GLAPI PFNGLRENDERMODEPROC glad_glRenderMode;
3234#define glRenderMode glad_glRenderMode
3235typedef void (APIENTRYP PFNGLINITNAMESPROC)(void);
3236GLAPI PFNGLINITNAMESPROC glad_glInitNames;
3237#define glInitNames glad_glInitNames
3238typedef void (APIENTRYP PFNGLLOADNAMEPROC)(GLuint name);
3239GLAPI PFNGLLOADNAMEPROC glad_glLoadName;
3240#define glLoadName glad_glLoadName
3241typedef void (APIENTRYP PFNGLPASSTHROUGHPROC)(GLfloat token);
3242GLAPI PFNGLPASSTHROUGHPROC glad_glPassThrough;
3243#define glPassThrough glad_glPassThrough
3244typedef void (APIENTRYP PFNGLPOPNAMEPROC)(void);
3245GLAPI PFNGLPOPNAMEPROC glad_glPopName;
3246#define glPopName glad_glPopName
3247typedef void (APIENTRYP PFNGLPUSHNAMEPROC)(GLuint name);
3248GLAPI PFNGLPUSHNAMEPROC glad_glPushName;
3249#define glPushName glad_glPushName
3250typedef void (APIENTRYP PFNGLCLEARACCUMPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
3251GLAPI PFNGLCLEARACCUMPROC glad_glClearAccum;
3252#define glClearAccum glad_glClearAccum
3253typedef void (APIENTRYP PFNGLCLEARINDEXPROC)(GLfloat c);
3254GLAPI PFNGLCLEARINDEXPROC glad_glClearIndex;
3255#define glClearIndex glad_glClearIndex
3256typedef void (APIENTRYP PFNGLINDEXMASKPROC)(GLuint mask);
3257GLAPI PFNGLINDEXMASKPROC glad_glIndexMask;
3258#define glIndexMask glad_glIndexMask
3259typedef void (APIENTRYP PFNGLACCUMPROC)(GLenum op, GLfloat value);
3260GLAPI PFNGLACCUMPROC glad_glAccum;
3261#define glAccum glad_glAccum
3262typedef void (APIENTRYP PFNGLPOPATTRIBPROC)(void);
3263GLAPI PFNGLPOPATTRIBPROC glad_glPopAttrib;
3264#define glPopAttrib glad_glPopAttrib
3265typedef void (APIENTRYP PFNGLPUSHATTRIBPROC)(GLbitfield mask);
3266GLAPI PFNGLPUSHATTRIBPROC glad_glPushAttrib;
3267#define glPushAttrib glad_glPushAttrib
3268typedef void (APIENTRYP PFNGLMAP1DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
3269GLAPI PFNGLMAP1DPROC glad_glMap1d;
3270#define glMap1d glad_glMap1d
3271typedef void (APIENTRYP PFNGLMAP1FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
3272GLAPI PFNGLMAP1FPROC glad_glMap1f;
3273#define glMap1f glad_glMap1f
3274typedef void (APIENTRYP PFNGLMAP2DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
3275GLAPI PFNGLMAP2DPROC glad_glMap2d;
3276#define glMap2d glad_glMap2d
3277typedef void (APIENTRYP PFNGLMAP2FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
3278GLAPI PFNGLMAP2FPROC glad_glMap2f;
3279#define glMap2f glad_glMap2f
3280typedef void (APIENTRYP PFNGLMAPGRID1DPROC)(GLint un, GLdouble u1, GLdouble u2);
3281GLAPI PFNGLMAPGRID1DPROC glad_glMapGrid1d;
3282#define glMapGrid1d glad_glMapGrid1d
3283typedef void (APIENTRYP PFNGLMAPGRID1FPROC)(GLint un, GLfloat u1, GLfloat u2);
3284GLAPI PFNGLMAPGRID1FPROC glad_glMapGrid1f;
3285#define glMapGrid1f glad_glMapGrid1f
3286typedef void (APIENTRYP PFNGLMAPGRID2DPROC)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
3287GLAPI PFNGLMAPGRID2DPROC glad_glMapGrid2d;
3288#define glMapGrid2d glad_glMapGrid2d
3289typedef void (APIENTRYP PFNGLMAPGRID2FPROC)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
3290GLAPI PFNGLMAPGRID2FPROC glad_glMapGrid2f;
3291#define glMapGrid2f glad_glMapGrid2f
3292typedef void (APIENTRYP PFNGLEVALCOORD1DPROC)(GLdouble u);
3293GLAPI PFNGLEVALCOORD1DPROC glad_glEvalCoord1d;
3294#define glEvalCoord1d glad_glEvalCoord1d
3295typedef void (APIENTRYP PFNGLEVALCOORD1DVPROC)(const GLdouble *u);
3296GLAPI PFNGLEVALCOORD1DVPROC glad_glEvalCoord1dv;
3297#define glEvalCoord1dv glad_glEvalCoord1dv
3298typedef void (APIENTRYP PFNGLEVALCOORD1FPROC)(GLfloat u);
3299GLAPI PFNGLEVALCOORD1FPROC glad_glEvalCoord1f;
3300#define glEvalCoord1f glad_glEvalCoord1f
3301typedef void (APIENTRYP PFNGLEVALCOORD1FVPROC)(const GLfloat *u);
3302GLAPI PFNGLEVALCOORD1FVPROC glad_glEvalCoord1fv;
3303#define glEvalCoord1fv glad_glEvalCoord1fv
3304typedef void (APIENTRYP PFNGLEVALCOORD2DPROC)(GLdouble u, GLdouble v);
3305GLAPI PFNGLEVALCOORD2DPROC glad_glEvalCoord2d;
3306#define glEvalCoord2d glad_glEvalCoord2d
3307typedef void (APIENTRYP PFNGLEVALCOORD2DVPROC)(const GLdouble *u);
3308GLAPI PFNGLEVALCOORD2DVPROC glad_glEvalCoord2dv;
3309#define glEvalCoord2dv glad_glEvalCoord2dv
3310typedef void (APIENTRYP PFNGLEVALCOORD2FPROC)(GLfloat u, GLfloat v);
3311GLAPI PFNGLEVALCOORD2FPROC glad_glEvalCoord2f;
3312#define glEvalCoord2f glad_glEvalCoord2f
3313typedef void (APIENTRYP PFNGLEVALCOORD2FVPROC)(const GLfloat *u);
3314GLAPI PFNGLEVALCOORD2FVPROC glad_glEvalCoord2fv;
3315#define glEvalCoord2fv glad_glEvalCoord2fv
3316typedef void (APIENTRYP PFNGLEVALMESH1PROC)(GLenum mode, GLint i1, GLint i2);
3317GLAPI PFNGLEVALMESH1PROC glad_glEvalMesh1;
3318#define glEvalMesh1 glad_glEvalMesh1
3319typedef void (APIENTRYP PFNGLEVALPOINT1PROC)(GLint i);
3320GLAPI PFNGLEVALPOINT1PROC glad_glEvalPoint1;
3321#define glEvalPoint1 glad_glEvalPoint1
3322typedef void (APIENTRYP PFNGLEVALMESH2PROC)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
3323GLAPI PFNGLEVALMESH2PROC glad_glEvalMesh2;
3324#define glEvalMesh2 glad_glEvalMesh2
3325typedef void (APIENTRYP PFNGLEVALPOINT2PROC)(GLint i, GLint j);
3326GLAPI PFNGLEVALPOINT2PROC glad_glEvalPoint2;
3327#define glEvalPoint2 glad_glEvalPoint2
3328typedef void (APIENTRYP PFNGLALPHAFUNCPROC)(GLenum func, GLfloat ref);
3329GLAPI PFNGLALPHAFUNCPROC glad_glAlphaFunc;
3330#define glAlphaFunc glad_glAlphaFunc
3331typedef void (APIENTRYP PFNGLPIXELZOOMPROC)(GLfloat xfactor, GLfloat yfactor);
3332GLAPI PFNGLPIXELZOOMPROC glad_glPixelZoom;
3333#define glPixelZoom glad_glPixelZoom
3334typedef void (APIENTRYP PFNGLPIXELTRANSFERFPROC)(GLenum pname, GLfloat param);
3335GLAPI PFNGLPIXELTRANSFERFPROC glad_glPixelTransferf;
3336#define glPixelTransferf glad_glPixelTransferf
3337typedef void (APIENTRYP PFNGLPIXELTRANSFERIPROC)(GLenum pname, GLint param);
3338GLAPI PFNGLPIXELTRANSFERIPROC glad_glPixelTransferi;
3339#define glPixelTransferi glad_glPixelTransferi
3340typedef void (APIENTRYP PFNGLPIXELMAPFVPROC)(GLenum map, GLsizei mapsize, const GLfloat *values);
3341GLAPI PFNGLPIXELMAPFVPROC glad_glPixelMapfv;
3342#define glPixelMapfv glad_glPixelMapfv
3343typedef void (APIENTRYP PFNGLPIXELMAPUIVPROC)(GLenum map, GLsizei mapsize, const GLuint *values);
3344GLAPI PFNGLPIXELMAPUIVPROC glad_glPixelMapuiv;
3345#define glPixelMapuiv glad_glPixelMapuiv
3346typedef void (APIENTRYP PFNGLPIXELMAPUSVPROC)(GLenum map, GLsizei mapsize, const GLushort *values);
3347GLAPI PFNGLPIXELMAPUSVPROC glad_glPixelMapusv;
3348#define glPixelMapusv glad_glPixelMapusv
3349typedef void (APIENTRYP PFNGLCOPYPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
3350GLAPI PFNGLCOPYPIXELSPROC glad_glCopyPixels;
3351#define glCopyPixels glad_glCopyPixels
3352typedef void (APIENTRYP PFNGLDRAWPIXELSPROC)(GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
3353GLAPI PFNGLDRAWPIXELSPROC glad_glDrawPixels;
3354#define glDrawPixels glad_glDrawPixels
3355typedef void (APIENTRYP PFNGLGETCLIPPLANEPROC)(GLenum plane, GLdouble *equation);
3356GLAPI PFNGLGETCLIPPLANEPROC glad_glGetClipPlane;
3357#define glGetClipPlane glad_glGetClipPlane
3358typedef void (APIENTRYP PFNGLGETLIGHTFVPROC)(GLenum light, GLenum pname, GLfloat *params);
3359GLAPI PFNGLGETLIGHTFVPROC glad_glGetLightfv;
3360#define glGetLightfv glad_glGetLightfv
3361typedef void (APIENTRYP PFNGLGETLIGHTIVPROC)(GLenum light, GLenum pname, GLint *params);
3362GLAPI PFNGLGETLIGHTIVPROC glad_glGetLightiv;
3363#define glGetLightiv glad_glGetLightiv
3364typedef void (APIENTRYP PFNGLGETMAPDVPROC)(GLenum target, GLenum query, GLdouble *v);
3365GLAPI PFNGLGETMAPDVPROC glad_glGetMapdv;
3366#define glGetMapdv glad_glGetMapdv
3367typedef void (APIENTRYP PFNGLGETMAPFVPROC)(GLenum target, GLenum query, GLfloat *v);
3368GLAPI PFNGLGETMAPFVPROC glad_glGetMapfv;
3369#define glGetMapfv glad_glGetMapfv
3370typedef void (APIENTRYP PFNGLGETMAPIVPROC)(GLenum target, GLenum query, GLint *v);
3371GLAPI PFNGLGETMAPIVPROC glad_glGetMapiv;
3372#define glGetMapiv glad_glGetMapiv
3373typedef void (APIENTRYP PFNGLGETMATERIALFVPROC)(GLenum face, GLenum pname, GLfloat *params);
3374GLAPI PFNGLGETMATERIALFVPROC glad_glGetMaterialfv;
3375#define glGetMaterialfv glad_glGetMaterialfv
3376typedef void (APIENTRYP PFNGLGETMATERIALIVPROC)(GLenum face, GLenum pname, GLint *params);
3377GLAPI PFNGLGETMATERIALIVPROC glad_glGetMaterialiv;
3378#define glGetMaterialiv glad_glGetMaterialiv
3379typedef void (APIENTRYP PFNGLGETPIXELMAPFVPROC)(GLenum map, GLfloat *values);
3380GLAPI PFNGLGETPIXELMAPFVPROC glad_glGetPixelMapfv;
3381#define glGetPixelMapfv glad_glGetPixelMapfv
3382typedef void (APIENTRYP PFNGLGETPIXELMAPUIVPROC)(GLenum map, GLuint *values);
3383GLAPI PFNGLGETPIXELMAPUIVPROC glad_glGetPixelMapuiv;
3384#define glGetPixelMapuiv glad_glGetPixelMapuiv
3385typedef void (APIENTRYP PFNGLGETPIXELMAPUSVPROC)(GLenum map, GLushort *values);
3386GLAPI PFNGLGETPIXELMAPUSVPROC glad_glGetPixelMapusv;
3387#define glGetPixelMapusv glad_glGetPixelMapusv
3388typedef void (APIENTRYP PFNGLGETPOLYGONSTIPPLEPROC)(GLubyte *mask);
3389GLAPI PFNGLGETPOLYGONSTIPPLEPROC glad_glGetPolygonStipple;
3390#define glGetPolygonStipple glad_glGetPolygonStipple
3391typedef void (APIENTRYP PFNGLGETTEXENVFVPROC)(GLenum target, GLenum pname, GLfloat *params);
3392GLAPI PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv;
3393#define glGetTexEnvfv glad_glGetTexEnvfv
3394typedef void (APIENTRYP PFNGLGETTEXENVIVPROC)(GLenum target, GLenum pname, GLint *params);
3395GLAPI PFNGLGETTEXENVIVPROC glad_glGetTexEnviv;
3396#define glGetTexEnviv glad_glGetTexEnviv
3397typedef void (APIENTRYP PFNGLGETTEXGENDVPROC)(GLenum coord, GLenum pname, GLdouble *params);
3398GLAPI PFNGLGETTEXGENDVPROC glad_glGetTexGendv;
3399#define glGetTexGendv glad_glGetTexGendv
3400typedef void (APIENTRYP PFNGLGETTEXGENFVPROC)(GLenum coord, GLenum pname, GLfloat *params);
3401GLAPI PFNGLGETTEXGENFVPROC glad_glGetTexGenfv;
3402#define glGetTexGenfv glad_glGetTexGenfv
3403typedef void (APIENTRYP PFNGLGETTEXGENIVPROC)(GLenum coord, GLenum pname, GLint *params);
3404GLAPI PFNGLGETTEXGENIVPROC glad_glGetTexGeniv;
3405#define glGetTexGeniv glad_glGetTexGeniv
3406typedef GLboolean (APIENTRYP PFNGLISLISTPROC)(GLuint list);
3407GLAPI PFNGLISLISTPROC glad_glIsList;
3408#define glIsList glad_glIsList
3409typedef void (APIENTRYP PFNGLFRUSTUMPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
3410GLAPI PFNGLFRUSTUMPROC glad_glFrustum;
3411#define glFrustum glad_glFrustum
3412typedef void (APIENTRYP PFNGLLOADIDENTITYPROC)(void);
3413GLAPI PFNGLLOADIDENTITYPROC glad_glLoadIdentity;
3414#define glLoadIdentity glad_glLoadIdentity
3415typedef void (APIENTRYP PFNGLLOADMATRIXFPROC)(const GLfloat *m);
3416GLAPI PFNGLLOADMATRIXFPROC glad_glLoadMatrixf;
3417#define glLoadMatrixf glad_glLoadMatrixf
3418typedef void (APIENTRYP PFNGLLOADMATRIXDPROC)(const GLdouble *m);
3419GLAPI PFNGLLOADMATRIXDPROC glad_glLoadMatrixd;
3420#define glLoadMatrixd glad_glLoadMatrixd
3421typedef void (APIENTRYP PFNGLMATRIXMODEPROC)(GLenum mode);
3422GLAPI PFNGLMATRIXMODEPROC glad_glMatrixMode;
3423#define glMatrixMode glad_glMatrixMode
3424typedef void (APIENTRYP PFNGLMULTMATRIXFPROC)(const GLfloat *m);
3425GLAPI PFNGLMULTMATRIXFPROC glad_glMultMatrixf;
3426#define glMultMatrixf glad_glMultMatrixf
3427typedef void (APIENTRYP PFNGLMULTMATRIXDPROC)(const GLdouble *m);
3428GLAPI PFNGLMULTMATRIXDPROC glad_glMultMatrixd;
3429#define glMultMatrixd glad_glMultMatrixd
3430typedef void (APIENTRYP PFNGLORTHOPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
3431GLAPI PFNGLORTHOPROC glad_glOrtho;
3432#define glOrtho glad_glOrtho
3433typedef void (APIENTRYP PFNGLPOPMATRIXPROC)(void);
3434GLAPI PFNGLPOPMATRIXPROC glad_glPopMatrix;
3435#define glPopMatrix glad_glPopMatrix
3436typedef void (APIENTRYP PFNGLPUSHMATRIXPROC)(void);
3437GLAPI PFNGLPUSHMATRIXPROC glad_glPushMatrix;
3438#define glPushMatrix glad_glPushMatrix
3439typedef void (APIENTRYP PFNGLROTATEDPROC)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
3440GLAPI PFNGLROTATEDPROC glad_glRotated;
3441#define glRotated glad_glRotated
3442typedef void (APIENTRYP PFNGLROTATEFPROC)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
3443GLAPI PFNGLROTATEFPROC glad_glRotatef;
3444#define glRotatef glad_glRotatef
3445typedef void (APIENTRYP PFNGLSCALEDPROC)(GLdouble x, GLdouble y, GLdouble z);
3446GLAPI PFNGLSCALEDPROC glad_glScaled;
3447#define glScaled glad_glScaled
3448typedef void (APIENTRYP PFNGLSCALEFPROC)(GLfloat x, GLfloat y, GLfloat z);
3449GLAPI PFNGLSCALEFPROC glad_glScalef;
3450#define glScalef glad_glScalef
3451typedef void (APIENTRYP PFNGLTRANSLATEDPROC)(GLdouble x, GLdouble y, GLdouble z);
3452GLAPI PFNGLTRANSLATEDPROC glad_glTranslated;
3453#define glTranslated glad_glTranslated
3454typedef void (APIENTRYP PFNGLTRANSLATEFPROC)(GLfloat x, GLfloat y, GLfloat z);
3455GLAPI PFNGLTRANSLATEFPROC glad_glTranslatef;
3456#define glTranslatef glad_glTranslatef
2191#endif 3457#endif
2192#ifndef GL_VERSION_1_1 3458#ifndef GL_VERSION_1_1
2193#define GL_VERSION_1_1 1 3459#define GL_VERSION_1_1 1
@@ -2198,6 +3464,9 @@ GLAPI PFNGLDRAWARRAYSPROC glad_glDrawArrays;
2198typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices); 3464typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices);
2199GLAPI PFNGLDRAWELEMENTSPROC glad_glDrawElements; 3465GLAPI PFNGLDRAWELEMENTSPROC glad_glDrawElements;
2200#define glDrawElements glad_glDrawElements 3466#define glDrawElements glad_glDrawElements
3467typedef void (APIENTRYP PFNGLGETPOINTERVPROC)(GLenum pname, void **params);
3468GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
3469#define glGetPointerv glad_glGetPointerv
2201typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units); 3470typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units);
2202GLAPI PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; 3471GLAPI PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
2203#define glPolygonOffset glad_glPolygonOffset 3472#define glPolygonOffset glad_glPolygonOffset
@@ -2231,6 +3500,54 @@ GLAPI PFNGLGENTEXTURESPROC glad_glGenTextures;
2231typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC)(GLuint texture); 3500typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC)(GLuint texture);
2232GLAPI PFNGLISTEXTUREPROC glad_glIsTexture; 3501GLAPI PFNGLISTEXTUREPROC glad_glIsTexture;
2233#define glIsTexture glad_glIsTexture 3502#define glIsTexture glad_glIsTexture
3503typedef void (APIENTRYP PFNGLARRAYELEMENTPROC)(GLint i);
3504GLAPI PFNGLARRAYELEMENTPROC glad_glArrayElement;
3505#define glArrayElement glad_glArrayElement
3506typedef void (APIENTRYP PFNGLCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer);
3507GLAPI PFNGLCOLORPOINTERPROC glad_glColorPointer;
3508#define glColorPointer glad_glColorPointer
3509typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEPROC)(GLenum array);
3510GLAPI PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState;
3511#define glDisableClientState glad_glDisableClientState
3512typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERPROC)(GLsizei stride, const void *pointer);
3513GLAPI PFNGLEDGEFLAGPOINTERPROC glad_glEdgeFlagPointer;
3514#define glEdgeFlagPointer glad_glEdgeFlagPointer
3515typedef void (APIENTRYP PFNGLENABLECLIENTSTATEPROC)(GLenum array);
3516GLAPI PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState;
3517#define glEnableClientState glad_glEnableClientState
3518typedef void (APIENTRYP PFNGLINDEXPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer);
3519GLAPI PFNGLINDEXPOINTERPROC glad_glIndexPointer;
3520#define glIndexPointer glad_glIndexPointer
3521typedef void (APIENTRYP PFNGLINTERLEAVEDARRAYSPROC)(GLenum format, GLsizei stride, const void *pointer);
3522GLAPI PFNGLINTERLEAVEDARRAYSPROC glad_glInterleavedArrays;
3523#define glInterleavedArrays glad_glInterleavedArrays
3524typedef void (APIENTRYP PFNGLNORMALPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer);
3525GLAPI PFNGLNORMALPOINTERPROC glad_glNormalPointer;
3526#define glNormalPointer glad_glNormalPointer
3527typedef void (APIENTRYP PFNGLTEXCOORDPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer);
3528GLAPI PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer;
3529#define glTexCoordPointer glad_glTexCoordPointer
3530typedef void (APIENTRYP PFNGLVERTEXPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer);
3531GLAPI PFNGLVERTEXPOINTERPROC glad_glVertexPointer;
3532#define glVertexPointer glad_glVertexPointer
3533typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTPROC)(GLsizei n, const GLuint *textures, GLboolean *residences);
3534GLAPI PFNGLARETEXTURESRESIDENTPROC glad_glAreTexturesResident;
3535#define glAreTexturesResident glad_glAreTexturesResident
3536typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESPROC)(GLsizei n, const GLuint *textures, const GLfloat *priorities);
3537GLAPI PFNGLPRIORITIZETEXTURESPROC glad_glPrioritizeTextures;
3538#define glPrioritizeTextures glad_glPrioritizeTextures
3539typedef void (APIENTRYP PFNGLINDEXUBPROC)(GLubyte c);
3540GLAPI PFNGLINDEXUBPROC glad_glIndexub;
3541#define glIndexub glad_glIndexub
3542typedef void (APIENTRYP PFNGLINDEXUBVPROC)(const GLubyte *c);
3543GLAPI PFNGLINDEXUBVPROC glad_glIndexubv;
3544#define glIndexubv glad_glIndexubv
3545typedef void (APIENTRYP PFNGLPOPCLIENTATTRIBPROC)(void);
3546GLAPI PFNGLPOPCLIENTATTRIBPROC glad_glPopClientAttrib;
3547#define glPopClientAttrib glad_glPopClientAttrib
3548typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBPROC)(GLbitfield mask);
3549GLAPI PFNGLPUSHCLIENTATTRIBPROC glad_glPushClientAttrib;
3550#define glPushClientAttrib glad_glPushClientAttrib
2234#endif 3551#endif
2235#ifndef GL_VERSION_1_2 3552#ifndef GL_VERSION_1_2
2236#define GL_VERSION_1_2 1 3553#define GL_VERSION_1_2 1
@@ -2278,6 +3595,117 @@ GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D;
2278typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void *img); 3595typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void *img);
2279GLAPI PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; 3596GLAPI PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage;
2280#define glGetCompressedTexImage glad_glGetCompressedTexImage 3597#define glGetCompressedTexImage glad_glGetCompressedTexImage
3598typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC)(GLenum texture);
3599GLAPI PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture;
3600#define glClientActiveTexture glad_glClientActiveTexture
3601typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC)(GLenum target, GLdouble s);
3602GLAPI PFNGLMULTITEXCOORD1DPROC glad_glMultiTexCoord1d;
3603#define glMultiTexCoord1d glad_glMultiTexCoord1d
3604typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC)(GLenum target, const GLdouble *v);
3605GLAPI PFNGLMULTITEXCOORD1DVPROC glad_glMultiTexCoord1dv;
3606#define glMultiTexCoord1dv glad_glMultiTexCoord1dv
3607typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC)(GLenum target, GLfloat s);
3608GLAPI PFNGLMULTITEXCOORD1FPROC glad_glMultiTexCoord1f;
3609#define glMultiTexCoord1f glad_glMultiTexCoord1f
3610typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC)(GLenum target, const GLfloat *v);
3611GLAPI PFNGLMULTITEXCOORD1FVPROC glad_glMultiTexCoord1fv;
3612#define glMultiTexCoord1fv glad_glMultiTexCoord1fv
3613typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC)(GLenum target, GLint s);
3614GLAPI PFNGLMULTITEXCOORD1IPROC glad_glMultiTexCoord1i;
3615#define glMultiTexCoord1i glad_glMultiTexCoord1i
3616typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC)(GLenum target, const GLint *v);
3617GLAPI PFNGLMULTITEXCOORD1IVPROC glad_glMultiTexCoord1iv;
3618#define glMultiTexCoord1iv glad_glMultiTexCoord1iv
3619typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC)(GLenum target, GLshort s);
3620GLAPI PFNGLMULTITEXCOORD1SPROC glad_glMultiTexCoord1s;
3621#define glMultiTexCoord1s glad_glMultiTexCoord1s
3622typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC)(GLenum target, const GLshort *v);
3623GLAPI PFNGLMULTITEXCOORD1SVPROC glad_glMultiTexCoord1sv;
3624#define glMultiTexCoord1sv glad_glMultiTexCoord1sv
3625typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC)(GLenum target, GLdouble s, GLdouble t);
3626GLAPI PFNGLMULTITEXCOORD2DPROC glad_glMultiTexCoord2d;
3627#define glMultiTexCoord2d glad_glMultiTexCoord2d
3628typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC)(GLenum target, const GLdouble *v);
3629GLAPI PFNGLMULTITEXCOORD2DVPROC glad_glMultiTexCoord2dv;
3630#define glMultiTexCoord2dv glad_glMultiTexCoord2dv
3631typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC)(GLenum target, GLfloat s, GLfloat t);
3632GLAPI PFNGLMULTITEXCOORD2FPROC glad_glMultiTexCoord2f;
3633#define glMultiTexCoord2f glad_glMultiTexCoord2f
3634typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC)(GLenum target, const GLfloat *v);
3635GLAPI PFNGLMULTITEXCOORD2FVPROC glad_glMultiTexCoord2fv;
3636#define glMultiTexCoord2fv glad_glMultiTexCoord2fv
3637typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC)(GLenum target, GLint s, GLint t);
3638GLAPI PFNGLMULTITEXCOORD2IPROC glad_glMultiTexCoord2i;
3639#define glMultiTexCoord2i glad_glMultiTexCoord2i
3640typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC)(GLenum target, const GLint *v);
3641GLAPI PFNGLMULTITEXCOORD2IVPROC glad_glMultiTexCoord2iv;
3642#define glMultiTexCoord2iv glad_glMultiTexCoord2iv
3643typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC)(GLenum target, GLshort s, GLshort t);
3644GLAPI PFNGLMULTITEXCOORD2SPROC glad_glMultiTexCoord2s;
3645#define glMultiTexCoord2s glad_glMultiTexCoord2s
3646typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC)(GLenum target, const GLshort *v);
3647GLAPI PFNGLMULTITEXCOORD2SVPROC glad_glMultiTexCoord2sv;
3648#define glMultiTexCoord2sv glad_glMultiTexCoord2sv
3649typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r);
3650GLAPI PFNGLMULTITEXCOORD3DPROC glad_glMultiTexCoord3d;
3651#define glMultiTexCoord3d glad_glMultiTexCoord3d
3652typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC)(GLenum target, const GLdouble *v);
3653GLAPI PFNGLMULTITEXCOORD3DVPROC glad_glMultiTexCoord3dv;
3654#define glMultiTexCoord3dv glad_glMultiTexCoord3dv
3655typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r);
3656GLAPI PFNGLMULTITEXCOORD3FPROC glad_glMultiTexCoord3f;
3657#define glMultiTexCoord3f glad_glMultiTexCoord3f
3658typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC)(GLenum target, const GLfloat *v);
3659GLAPI PFNGLMULTITEXCOORD3FVPROC glad_glMultiTexCoord3fv;
3660#define glMultiTexCoord3fv glad_glMultiTexCoord3fv
3661typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC)(GLenum target, GLint s, GLint t, GLint r);
3662GLAPI PFNGLMULTITEXCOORD3IPROC glad_glMultiTexCoord3i;
3663#define glMultiTexCoord3i glad_glMultiTexCoord3i
3664typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC)(GLenum target, const GLint *v);
3665GLAPI PFNGLMULTITEXCOORD3IVPROC glad_glMultiTexCoord3iv;
3666#define glMultiTexCoord3iv glad_glMultiTexCoord3iv
3667typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC)(GLenum target, GLshort s, GLshort t, GLshort r);
3668GLAPI PFNGLMULTITEXCOORD3SPROC glad_glMultiTexCoord3s;
3669#define glMultiTexCoord3s glad_glMultiTexCoord3s
3670typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC)(GLenum target, const GLshort *v);
3671GLAPI PFNGLMULTITEXCOORD3SVPROC glad_glMultiTexCoord3sv;
3672#define glMultiTexCoord3sv glad_glMultiTexCoord3sv
3673typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
3674GLAPI PFNGLMULTITEXCOORD4DPROC glad_glMultiTexCoord4d;
3675#define glMultiTexCoord4d glad_glMultiTexCoord4d
3676typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC)(GLenum target, const GLdouble *v);
3677GLAPI PFNGLMULTITEXCOORD4DVPROC glad_glMultiTexCoord4dv;
3678#define glMultiTexCoord4dv glad_glMultiTexCoord4dv
3679typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
3680GLAPI PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f;
3681#define glMultiTexCoord4f glad_glMultiTexCoord4f
3682typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC)(GLenum target, const GLfloat *v);
3683GLAPI PFNGLMULTITEXCOORD4FVPROC glad_glMultiTexCoord4fv;
3684#define glMultiTexCoord4fv glad_glMultiTexCoord4fv
3685typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q);
3686GLAPI PFNGLMULTITEXCOORD4IPROC glad_glMultiTexCoord4i;
3687#define glMultiTexCoord4i glad_glMultiTexCoord4i
3688typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC)(GLenum target, const GLint *v);
3689GLAPI PFNGLMULTITEXCOORD4IVPROC glad_glMultiTexCoord4iv;
3690#define glMultiTexCoord4iv glad_glMultiTexCoord4iv
3691typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
3692GLAPI PFNGLMULTITEXCOORD4SPROC glad_glMultiTexCoord4s;
3693#define glMultiTexCoord4s glad_glMultiTexCoord4s
3694typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC)(GLenum target, const GLshort *v);
3695GLAPI PFNGLMULTITEXCOORD4SVPROC glad_glMultiTexCoord4sv;
3696#define glMultiTexCoord4sv glad_glMultiTexCoord4sv
3697typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC)(const GLfloat *m);
3698GLAPI PFNGLLOADTRANSPOSEMATRIXFPROC glad_glLoadTransposeMatrixf;
3699#define glLoadTransposeMatrixf glad_glLoadTransposeMatrixf
3700typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC)(const GLdouble *m);
3701GLAPI PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd;
3702#define glLoadTransposeMatrixd glad_glLoadTransposeMatrixd
3703typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC)(const GLfloat *m);
3704GLAPI PFNGLMULTTRANSPOSEMATRIXFPROC glad_glMultTransposeMatrixf;
3705#define glMultTransposeMatrixf glad_glMultTransposeMatrixf
3706typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC)(const GLdouble *m);
3707GLAPI PFNGLMULTTRANSPOSEMATRIXDPROC glad_glMultTransposeMatrixd;
3708#define glMultTransposeMatrixd glad_glMultTransposeMatrixd
2281#endif 3709#endif
2282#ifndef GL_VERSION_1_4 3710#ifndef GL_VERSION_1_4
2283#define GL_VERSION_1_4 1 3711#define GL_VERSION_1_4 1
@@ -2303,6 +3731,120 @@ GLAPI PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
2303typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint *params); 3731typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint *params);
2304GLAPI PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; 3732GLAPI PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
2305#define glPointParameteriv glad_glPointParameteriv 3733#define glPointParameteriv glad_glPointParameteriv
3734typedef void (APIENTRYP PFNGLFOGCOORDFPROC)(GLfloat coord);
3735GLAPI PFNGLFOGCOORDFPROC glad_glFogCoordf;
3736#define glFogCoordf glad_glFogCoordf
3737typedef void (APIENTRYP PFNGLFOGCOORDFVPROC)(const GLfloat *coord);
3738GLAPI PFNGLFOGCOORDFVPROC glad_glFogCoordfv;
3739#define glFogCoordfv glad_glFogCoordfv
3740typedef void (APIENTRYP PFNGLFOGCOORDDPROC)(GLdouble coord);
3741GLAPI PFNGLFOGCOORDDPROC glad_glFogCoordd;
3742#define glFogCoordd glad_glFogCoordd
3743typedef void (APIENTRYP PFNGLFOGCOORDDVPROC)(const GLdouble *coord);
3744GLAPI PFNGLFOGCOORDDVPROC glad_glFogCoorddv;
3745#define glFogCoorddv glad_glFogCoorddv
3746typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer);
3747GLAPI PFNGLFOGCOORDPOINTERPROC glad_glFogCoordPointer;
3748#define glFogCoordPointer glad_glFogCoordPointer
3749typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue);
3750GLAPI PFNGLSECONDARYCOLOR3BPROC glad_glSecondaryColor3b;
3751#define glSecondaryColor3b glad_glSecondaryColor3b
3752typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC)(const GLbyte *v);
3753GLAPI PFNGLSECONDARYCOLOR3BVPROC glad_glSecondaryColor3bv;
3754#define glSecondaryColor3bv glad_glSecondaryColor3bv
3755typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue);
3756GLAPI PFNGLSECONDARYCOLOR3DPROC glad_glSecondaryColor3d;
3757#define glSecondaryColor3d glad_glSecondaryColor3d
3758typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC)(const GLdouble *v);
3759GLAPI PFNGLSECONDARYCOLOR3DVPROC glad_glSecondaryColor3dv;
3760#define glSecondaryColor3dv glad_glSecondaryColor3dv
3761typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue);
3762GLAPI PFNGLSECONDARYCOLOR3FPROC glad_glSecondaryColor3f;
3763#define glSecondaryColor3f glad_glSecondaryColor3f
3764typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC)(const GLfloat *v);
3765GLAPI PFNGLSECONDARYCOLOR3FVPROC glad_glSecondaryColor3fv;
3766#define glSecondaryColor3fv glad_glSecondaryColor3fv
3767typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC)(GLint red, GLint green, GLint blue);
3768GLAPI PFNGLSECONDARYCOLOR3IPROC glad_glSecondaryColor3i;
3769#define glSecondaryColor3i glad_glSecondaryColor3i
3770typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC)(const GLint *v);
3771GLAPI PFNGLSECONDARYCOLOR3IVPROC glad_glSecondaryColor3iv;
3772#define glSecondaryColor3iv glad_glSecondaryColor3iv
3773typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue);
3774GLAPI PFNGLSECONDARYCOLOR3SPROC glad_glSecondaryColor3s;
3775#define glSecondaryColor3s glad_glSecondaryColor3s
3776typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC)(const GLshort *v);
3777GLAPI PFNGLSECONDARYCOLOR3SVPROC glad_glSecondaryColor3sv;
3778#define glSecondaryColor3sv glad_glSecondaryColor3sv
3779typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue);
3780GLAPI PFNGLSECONDARYCOLOR3UBPROC glad_glSecondaryColor3ub;
3781#define glSecondaryColor3ub glad_glSecondaryColor3ub
3782typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC)(const GLubyte *v);
3783GLAPI PFNGLSECONDARYCOLOR3UBVPROC glad_glSecondaryColor3ubv;
3784#define glSecondaryColor3ubv glad_glSecondaryColor3ubv
3785typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue);
3786GLAPI PFNGLSECONDARYCOLOR3UIPROC glad_glSecondaryColor3ui;
3787#define glSecondaryColor3ui glad_glSecondaryColor3ui
3788typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC)(const GLuint *v);
3789GLAPI PFNGLSECONDARYCOLOR3UIVPROC glad_glSecondaryColor3uiv;
3790#define glSecondaryColor3uiv glad_glSecondaryColor3uiv
3791typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue);
3792GLAPI PFNGLSECONDARYCOLOR3USPROC glad_glSecondaryColor3us;
3793#define glSecondaryColor3us glad_glSecondaryColor3us
3794typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC)(const GLushort *v);
3795GLAPI PFNGLSECONDARYCOLOR3USVPROC glad_glSecondaryColor3usv;
3796#define glSecondaryColor3usv glad_glSecondaryColor3usv
3797typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer);
3798GLAPI PFNGLSECONDARYCOLORPOINTERPROC glad_glSecondaryColorPointer;
3799#define glSecondaryColorPointer glad_glSecondaryColorPointer
3800typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC)(GLdouble x, GLdouble y);
3801GLAPI PFNGLWINDOWPOS2DPROC glad_glWindowPos2d;
3802#define glWindowPos2d glad_glWindowPos2d
3803typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC)(const GLdouble *v);
3804GLAPI PFNGLWINDOWPOS2DVPROC glad_glWindowPos2dv;
3805#define glWindowPos2dv glad_glWindowPos2dv
3806typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC)(GLfloat x, GLfloat y);
3807GLAPI PFNGLWINDOWPOS2FPROC glad_glWindowPos2f;
3808#define glWindowPos2f glad_glWindowPos2f
3809typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC)(const GLfloat *v);
3810GLAPI PFNGLWINDOWPOS2FVPROC glad_glWindowPos2fv;
3811#define glWindowPos2fv glad_glWindowPos2fv
3812typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC)(GLint x, GLint y);
3813GLAPI PFNGLWINDOWPOS2IPROC glad_glWindowPos2i;
3814#define glWindowPos2i glad_glWindowPos2i
3815typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC)(const GLint *v);
3816GLAPI PFNGLWINDOWPOS2IVPROC glad_glWindowPos2iv;
3817#define glWindowPos2iv glad_glWindowPos2iv
3818typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC)(GLshort x, GLshort y);
3819GLAPI PFNGLWINDOWPOS2SPROC glad_glWindowPos2s;
3820#define glWindowPos2s glad_glWindowPos2s
3821typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC)(const GLshort *v);
3822GLAPI PFNGLWINDOWPOS2SVPROC glad_glWindowPos2sv;
3823#define glWindowPos2sv glad_glWindowPos2sv
3824typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z);
3825GLAPI PFNGLWINDOWPOS3DPROC glad_glWindowPos3d;
3826#define glWindowPos3d glad_glWindowPos3d
3827typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC)(const GLdouble *v);
3828GLAPI PFNGLWINDOWPOS3DVPROC glad_glWindowPos3dv;
3829#define glWindowPos3dv glad_glWindowPos3dv
3830typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z);
3831GLAPI PFNGLWINDOWPOS3FPROC glad_glWindowPos3f;
3832#define glWindowPos3f glad_glWindowPos3f
3833typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC)(const GLfloat *v);
3834GLAPI PFNGLWINDOWPOS3FVPROC glad_glWindowPos3fv;
3835#define glWindowPos3fv glad_glWindowPos3fv
3836typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC)(GLint x, GLint y, GLint z);
3837GLAPI PFNGLWINDOWPOS3IPROC glad_glWindowPos3i;
3838#define glWindowPos3i glad_glWindowPos3i
3839typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC)(const GLint *v);
3840GLAPI PFNGLWINDOWPOS3IVPROC glad_glWindowPos3iv;
3841#define glWindowPos3iv glad_glWindowPos3iv
3842typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC)(GLshort x, GLshort y, GLshort z);
3843GLAPI PFNGLWINDOWPOS3SPROC glad_glWindowPos3s;
3844#define glWindowPos3s glad_glWindowPos3s
3845typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC)(const GLshort *v);
3846GLAPI PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv;
3847#define glWindowPos3sv glad_glWindowPos3sv
2306typedef void (APIENTRYP PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); 3848typedef void (APIENTRYP PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
2307GLAPI PFNGLBLENDCOLORPROC glad_glBlendColor; 3849GLAPI PFNGLBLENDCOLORPROC glad_glBlendColor;
2308#define glBlendColor glad_glBlendColor 3850#define glBlendColor glad_glBlendColor
@@ -3793,9 +5335,423 @@ GLAPI PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel;
3793typedef void (APIENTRYP PFNGLGETOBJECTPTRLABELPROC)(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); 5335typedef void (APIENTRYP PFNGLGETOBJECTPTRLABELPROC)(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
3794GLAPI PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel; 5336GLAPI PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel;
3795#define glGetObjectPtrLabel glad_glGetObjectPtrLabel 5337#define glGetObjectPtrLabel glad_glGetObjectPtrLabel
3796typedef void (APIENTRYP PFNGLGETPOINTERVPROC)(GLenum pname, void **params); 5338#endif
3797GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv; 5339#ifndef GL_VERSION_4_4
3798#define glGetPointerv glad_glGetPointerv 5340#define GL_VERSION_4_4 1
5341GLAPI int GLAD_GL_VERSION_4_4;
5342typedef void (APIENTRYP PFNGLBUFFERSTORAGEPROC)(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
5343GLAPI PFNGLBUFFERSTORAGEPROC glad_glBufferStorage;
5344#define glBufferStorage glad_glBufferStorage
5345typedef void (APIENTRYP PFNGLCLEARTEXIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
5346GLAPI PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage;
5347#define glClearTexImage glad_glClearTexImage
5348typedef void (APIENTRYP PFNGLCLEARTEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
5349GLAPI PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage;
5350#define glClearTexSubImage glad_glClearTexSubImage
5351typedef void (APIENTRYP PFNGLBINDBUFFERSBASEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
5352GLAPI PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase;
5353#define glBindBuffersBase glad_glBindBuffersBase
5354typedef void (APIENTRYP PFNGLBINDBUFFERSRANGEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
5355GLAPI PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange;
5356#define glBindBuffersRange glad_glBindBuffersRange
5357typedef void (APIENTRYP PFNGLBINDTEXTURESPROC)(GLuint first, GLsizei count, const GLuint *textures);
5358GLAPI PFNGLBINDTEXTURESPROC glad_glBindTextures;
5359#define glBindTextures glad_glBindTextures
5360typedef void (APIENTRYP PFNGLBINDSAMPLERSPROC)(GLuint first, GLsizei count, const GLuint *samplers);
5361GLAPI PFNGLBINDSAMPLERSPROC glad_glBindSamplers;
5362#define glBindSamplers glad_glBindSamplers
5363typedef void (APIENTRYP PFNGLBINDIMAGETEXTURESPROC)(GLuint first, GLsizei count, const GLuint *textures);
5364GLAPI PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures;
5365#define glBindImageTextures glad_glBindImageTextures
5366typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERSPROC)(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
5367GLAPI PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers;
5368#define glBindVertexBuffers glad_glBindVertexBuffers
5369#endif
5370#ifndef GL_VERSION_4_5
5371#define GL_VERSION_4_5 1
5372GLAPI int GLAD_GL_VERSION_4_5;
5373typedef void (APIENTRYP PFNGLCLIPCONTROLPROC)(GLenum origin, GLenum depth);
5374GLAPI PFNGLCLIPCONTROLPROC glad_glClipControl;
5375#define glClipControl glad_glClipControl
5376typedef void (APIENTRYP PFNGLCREATETRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids);
5377GLAPI PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks;
5378#define glCreateTransformFeedbacks glad_glCreateTransformFeedbacks
5379typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)(GLuint xfb, GLuint index, GLuint buffer);
5380GLAPI PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase;
5381#define glTransformFeedbackBufferBase glad_glTransformFeedbackBufferBase
5382typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
5383GLAPI PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange;
5384#define glTransformFeedbackBufferRange glad_glTransformFeedbackBufferRange
5385typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKIVPROC)(GLuint xfb, GLenum pname, GLint *param);
5386GLAPI PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv;
5387#define glGetTransformFeedbackiv glad_glGetTransformFeedbackiv
5388typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint *param);
5389GLAPI PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v;
5390#define glGetTransformFeedbacki_v glad_glGetTransformFeedbacki_v
5391typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI64_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
5392GLAPI PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v;
5393#define glGetTransformFeedbacki64_v glad_glGetTransformFeedbacki64_v
5394typedef void (APIENTRYP PFNGLCREATEBUFFERSPROC)(GLsizei n, GLuint *buffers);
5395GLAPI PFNGLCREATEBUFFERSPROC glad_glCreateBuffers;
5396#define glCreateBuffers glad_glCreateBuffers
5397typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEPROC)(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
5398GLAPI PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage;
5399#define glNamedBufferStorage glad_glNamedBufferStorage
5400typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAPROC)(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
5401GLAPI PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData;
5402#define glNamedBufferData glad_glNamedBufferData
5403typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
5404GLAPI PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData;
5405#define glNamedBufferSubData glad_glNamedBufferSubData
5406typedef void (APIENTRYP PFNGLCOPYNAMEDBUFFERSUBDATAPROC)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
5407GLAPI PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData;
5408#define glCopyNamedBufferSubData glad_glCopyNamedBufferSubData
5409typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAPROC)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
5410GLAPI PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData;
5411#define glClearNamedBufferData glad_glClearNamedBufferData
5412typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
5413GLAPI PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData;
5414#define glClearNamedBufferSubData glad_glClearNamedBufferSubData
5415typedef void * (APIENTRYP PFNGLMAPNAMEDBUFFERPROC)(GLuint buffer, GLenum access);
5416GLAPI PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer;
5417#define glMapNamedBuffer glad_glMapNamedBuffer
5418typedef void * (APIENTRYP PFNGLMAPNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
5419GLAPI PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange;
5420#define glMapNamedBufferRange glad_glMapNamedBufferRange
5421typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFERPROC)(GLuint buffer);
5422GLAPI PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer;
5423#define glUnmapNamedBuffer glad_glUnmapNamedBuffer
5424typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length);
5425GLAPI PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange;
5426#define glFlushMappedNamedBufferRange glad_glFlushMappedNamedBufferRange
5427typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVPROC)(GLuint buffer, GLenum pname, GLint *params);
5428GLAPI PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv;
5429#define glGetNamedBufferParameteriv glad_glGetNamedBufferParameteriv
5430typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)(GLuint buffer, GLenum pname, GLint64 *params);
5431GLAPI PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v;
5432#define glGetNamedBufferParameteri64v glad_glGetNamedBufferParameteri64v
5433typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVPROC)(GLuint buffer, GLenum pname, void **params);
5434GLAPI PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv;
5435#define glGetNamedBufferPointerv glad_glGetNamedBufferPointerv
5436typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
5437GLAPI PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData;
5438#define glGetNamedBufferSubData glad_glGetNamedBufferSubData
5439typedef void (APIENTRYP PFNGLCREATEFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers);
5440GLAPI PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers;
5441#define glCreateFramebuffers glad_glCreateFramebuffers
5442typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
5443GLAPI PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer;
5444#define glNamedFramebufferRenderbuffer glad_glNamedFramebufferRenderbuffer
5445typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)(GLuint framebuffer, GLenum pname, GLint param);
5446GLAPI PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri;
5447#define glNamedFramebufferParameteri glad_glNamedFramebufferParameteri
5448typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
5449GLAPI PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture;
5450#define glNamedFramebufferTexture glad_glNamedFramebufferTexture
5451typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
5452GLAPI PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer;
5453#define glNamedFramebufferTextureLayer glad_glNamedFramebufferTextureLayer
5454typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)(GLuint framebuffer, GLenum buf);
5455GLAPI PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer;
5456#define glNamedFramebufferDrawBuffer glad_glNamedFramebufferDrawBuffer
5457typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)(GLuint framebuffer, GLsizei n, const GLenum *bufs);
5458GLAPI PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers;
5459#define glNamedFramebufferDrawBuffers glad_glNamedFramebufferDrawBuffers
5460typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)(GLuint framebuffer, GLenum src);
5461GLAPI PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer;
5462#define glNamedFramebufferReadBuffer glad_glNamedFramebufferReadBuffer
5463typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments);
5464GLAPI PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData;
5465#define glInvalidateNamedFramebufferData glad_glInvalidateNamedFramebufferData
5466typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
5467GLAPI PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData;
5468#define glInvalidateNamedFramebufferSubData glad_glInvalidateNamedFramebufferSubData
5469typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
5470GLAPI PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv;
5471#define glClearNamedFramebufferiv glad_glClearNamedFramebufferiv
5472typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
5473GLAPI PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv;
5474#define glClearNamedFramebufferuiv glad_glClearNamedFramebufferuiv
5475typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
5476GLAPI PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv;
5477#define glClearNamedFramebufferfv glad_glClearNamedFramebufferfv
5478typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
5479GLAPI PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi;
5480#define glClearNamedFramebufferfi glad_glClearNamedFramebufferfi
5481typedef void (APIENTRYP PFNGLBLITNAMEDFRAMEBUFFERPROC)(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
5482GLAPI PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer;
5483#define glBlitNamedFramebuffer glad_glBlitNamedFramebuffer
5484typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)(GLuint framebuffer, GLenum target);
5485GLAPI PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus;
5486#define glCheckNamedFramebufferStatus glad_glCheckNamedFramebufferStatus
5487typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)(GLuint framebuffer, GLenum pname, GLint *param);
5488GLAPI PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv;
5489#define glGetNamedFramebufferParameteriv glad_glGetNamedFramebufferParameteriv
5490typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
5491GLAPI PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv;
5492#define glGetNamedFramebufferAttachmentParameteriv glad_glGetNamedFramebufferAttachmentParameteriv
5493typedef void (APIENTRYP PFNGLCREATERENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers);
5494GLAPI PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers;
5495#define glCreateRenderbuffers glad_glCreateRenderbuffers
5496typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEPROC)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
5497GLAPI PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage;
5498#define glNamedRenderbufferStorage glad_glNamedRenderbufferStorage
5499typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
5500GLAPI PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample;
5501#define glNamedRenderbufferStorageMultisample glad_glNamedRenderbufferStorageMultisample
5502typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)(GLuint renderbuffer, GLenum pname, GLint *params);
5503GLAPI PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv;
5504#define glGetNamedRenderbufferParameteriv glad_glGetNamedRenderbufferParameteriv
5505typedef void (APIENTRYP PFNGLCREATETEXTURESPROC)(GLenum target, GLsizei n, GLuint *textures);
5506GLAPI PFNGLCREATETEXTURESPROC glad_glCreateTextures;
5507#define glCreateTextures glad_glCreateTextures
5508typedef void (APIENTRYP PFNGLTEXTUREBUFFERPROC)(GLuint texture, GLenum internalformat, GLuint buffer);
5509GLAPI PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer;
5510#define glTextureBuffer glad_glTextureBuffer
5511typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEPROC)(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
5512GLAPI PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange;
5513#define glTextureBufferRange glad_glTextureBufferRange
5514typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
5515GLAPI PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D;
5516#define glTextureStorage1D glad_glTextureStorage1D
5517typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
5518GLAPI PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D;
5519#define glTextureStorage2D glad_glTextureStorage2D
5520typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
5521GLAPI PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D;
5522#define glTextureStorage3D glad_glTextureStorage3D
5523typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
5524GLAPI PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample;
5525#define glTextureStorage2DMultisample glad_glTextureStorage2DMultisample
5526typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
5527GLAPI PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample;
5528#define glTextureStorage3DMultisample glad_glTextureStorage3DMultisample
5529typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
5530GLAPI PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D;
5531#define glTextureSubImage1D glad_glTextureSubImage1D
5532typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
5533GLAPI PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D;
5534#define glTextureSubImage2D glad_glTextureSubImage2D
5535typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
5536GLAPI PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D;
5537#define glTextureSubImage3D glad_glTextureSubImage3D
5538typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
5539GLAPI PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D;
5540#define glCompressedTextureSubImage1D glad_glCompressedTextureSubImage1D
5541typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
5542GLAPI PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D;
5543#define glCompressedTextureSubImage2D glad_glCompressedTextureSubImage2D
5544typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
5545GLAPI PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D;
5546#define glCompressedTextureSubImage3D glad_glCompressedTextureSubImage3D
5547typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
5548GLAPI PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D;
5549#define glCopyTextureSubImage1D glad_glCopyTextureSubImage1D
5550typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
5551GLAPI PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D;
5552#define glCopyTextureSubImage2D glad_glCopyTextureSubImage2D
5553typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
5554GLAPI PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D;
5555#define glCopyTextureSubImage3D glad_glCopyTextureSubImage3D
5556typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFPROC)(GLuint texture, GLenum pname, GLfloat param);
5557GLAPI PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf;
5558#define glTextureParameterf glad_glTextureParameterf
5559typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, const GLfloat *param);
5560GLAPI PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv;
5561#define glTextureParameterfv glad_glTextureParameterfv
5562typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIPROC)(GLuint texture, GLenum pname, GLint param);
5563GLAPI PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri;
5564#define glTextureParameteri glad_glTextureParameteri
5565typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, const GLint *params);
5566GLAPI PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv;
5567#define glTextureParameterIiv glad_glTextureParameterIiv
5568typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, const GLuint *params);
5569GLAPI PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv;
5570#define glTextureParameterIuiv glad_glTextureParameterIuiv
5571typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, const GLint *param);
5572GLAPI PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv;
5573#define glTextureParameteriv glad_glTextureParameteriv
5574typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPPROC)(GLuint texture);
5575GLAPI PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap;
5576#define glGenerateTextureMipmap glad_glGenerateTextureMipmap
5577typedef void (APIENTRYP PFNGLBINDTEXTUREUNITPROC)(GLuint unit, GLuint texture);
5578GLAPI PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit;
5579#define glBindTextureUnit glad_glBindTextureUnit
5580typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
5581GLAPI PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage;
5582#define glGetTextureImage glad_glGetTextureImage
5583typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLsizei bufSize, void *pixels);
5584GLAPI PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage;
5585#define glGetCompressedTextureImage glad_glGetCompressedTextureImage
5586typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVPROC)(GLuint texture, GLint level, GLenum pname, GLfloat *params);
5587GLAPI PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv;
5588#define glGetTextureLevelParameterfv glad_glGetTextureLevelParameterfv
5589typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVPROC)(GLuint texture, GLint level, GLenum pname, GLint *params);
5590GLAPI PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv;
5591#define glGetTextureLevelParameteriv glad_glGetTextureLevelParameteriv
5592typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, GLfloat *params);
5593GLAPI PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv;
5594#define glGetTextureParameterfv glad_glGetTextureParameterfv
5595typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, GLint *params);
5596GLAPI PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv;
5597#define glGetTextureParameterIiv glad_glGetTextureParameterIiv
5598typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, GLuint *params);
5599GLAPI PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv;
5600#define glGetTextureParameterIuiv glad_glGetTextureParameterIuiv
5601typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, GLint *params);
5602GLAPI PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv;
5603#define glGetTextureParameteriv glad_glGetTextureParameteriv
5604typedef void (APIENTRYP PFNGLCREATEVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays);
5605GLAPI PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays;
5606#define glCreateVertexArrays glad_glCreateVertexArrays
5607typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
5608GLAPI PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib;
5609#define glDisableVertexArrayAttrib glad_glDisableVertexArrayAttrib
5610typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
5611GLAPI PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib;
5612#define glEnableVertexArrayAttrib glad_glEnableVertexArrayAttrib
5613typedef void (APIENTRYP PFNGLVERTEXARRAYELEMENTBUFFERPROC)(GLuint vaobj, GLuint buffer);
5614GLAPI PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer;
5615#define glVertexArrayElementBuffer glad_glVertexArrayElementBuffer
5616typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERPROC)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
5617GLAPI PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer;
5618#define glVertexArrayVertexBuffer glad_glVertexArrayVertexBuffer
5619typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERSPROC)(GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
5620GLAPI PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers;
5621#define glVertexArrayVertexBuffers glad_glVertexArrayVertexBuffers
5622typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBBINDINGPROC)(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
5623GLAPI PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding;
5624#define glVertexArrayAttribBinding glad_glVertexArrayAttribBinding
5625typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
5626GLAPI PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat;
5627#define glVertexArrayAttribFormat glad_glVertexArrayAttribFormat
5628typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBIFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
5629GLAPI PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat;
5630#define glVertexArrayAttribIFormat glad_glVertexArrayAttribIFormat
5631typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBLFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
5632GLAPI PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat;
5633#define glVertexArrayAttribLFormat glad_glVertexArrayAttribLFormat
5634typedef void (APIENTRYP PFNGLVERTEXARRAYBINDINGDIVISORPROC)(GLuint vaobj, GLuint bindingindex, GLuint divisor);
5635GLAPI PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor;
5636#define glVertexArrayBindingDivisor glad_glVertexArrayBindingDivisor
5637typedef void (APIENTRYP PFNGLGETVERTEXARRAYIVPROC)(GLuint vaobj, GLenum pname, GLint *param);
5638GLAPI PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv;
5639#define glGetVertexArrayiv glad_glGetVertexArrayiv
5640typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXEDIVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint *param);
5641GLAPI PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv;
5642#define glGetVertexArrayIndexediv glad_glGetVertexArrayIndexediv
5643typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXED64IVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint64 *param);
5644GLAPI PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv;
5645#define glGetVertexArrayIndexed64iv glad_glGetVertexArrayIndexed64iv
5646typedef void (APIENTRYP PFNGLCREATESAMPLERSPROC)(GLsizei n, GLuint *samplers);
5647GLAPI PFNGLCREATESAMPLERSPROC glad_glCreateSamplers;
5648#define glCreateSamplers glad_glCreateSamplers
5649typedef void (APIENTRYP PFNGLCREATEPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines);
5650GLAPI PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines;
5651#define glCreateProgramPipelines glad_glCreateProgramPipelines
5652typedef void (APIENTRYP PFNGLCREATEQUERIESPROC)(GLenum target, GLsizei n, GLuint *ids);
5653GLAPI PFNGLCREATEQUERIESPROC glad_glCreateQueries;
5654#define glCreateQueries glad_glCreateQueries
5655typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
5656GLAPI PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v;
5657#define glGetQueryBufferObjecti64v glad_glGetQueryBufferObjecti64v
5658typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
5659GLAPI PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv;
5660#define glGetQueryBufferObjectiv glad_glGetQueryBufferObjectiv
5661typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
5662GLAPI PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v;
5663#define glGetQueryBufferObjectui64v glad_glGetQueryBufferObjectui64v
5664typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
5665GLAPI PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv;
5666#define glGetQueryBufferObjectuiv glad_glGetQueryBufferObjectuiv
5667typedef void (APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC)(GLbitfield barriers);
5668GLAPI PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion;
5669#define glMemoryBarrierByRegion glad_glMemoryBarrierByRegion
5670typedef void (APIENTRYP PFNGLGETTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
5671GLAPI PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage;
5672#define glGetTextureSubImage glad_glGetTextureSubImage
5673typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
5674GLAPI PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage;
5675#define glGetCompressedTextureSubImage glad_glGetCompressedTextureSubImage
5676typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSPROC)(void);
5677GLAPI PFNGLGETGRAPHICSRESETSTATUSPROC glad_glGetGraphicsResetStatus;
5678#define glGetGraphicsResetStatus glad_glGetGraphicsResetStatus
5679typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint lod, GLsizei bufSize, void *pixels);
5680GLAPI PFNGLGETNCOMPRESSEDTEXIMAGEPROC glad_glGetnCompressedTexImage;
5681#define glGetnCompressedTexImage glad_glGetnCompressedTexImage
5682typedef void (APIENTRYP PFNGLGETNTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
5683GLAPI PFNGLGETNTEXIMAGEPROC glad_glGetnTexImage;
5684#define glGetnTexImage glad_glGetnTexImage
5685typedef void (APIENTRYP PFNGLGETNUNIFORMDVPROC)(GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
5686GLAPI PFNGLGETNUNIFORMDVPROC glad_glGetnUniformdv;
5687#define glGetnUniformdv glad_glGetnUniformdv
5688typedef void (APIENTRYP PFNGLGETNUNIFORMFVPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
5689GLAPI PFNGLGETNUNIFORMFVPROC glad_glGetnUniformfv;
5690#define glGetnUniformfv glad_glGetnUniformfv
5691typedef void (APIENTRYP PFNGLGETNUNIFORMIVPROC)(GLuint program, GLint location, GLsizei bufSize, GLint *params);
5692GLAPI PFNGLGETNUNIFORMIVPROC glad_glGetnUniformiv;
5693#define glGetnUniformiv glad_glGetnUniformiv
5694typedef void (APIENTRYP PFNGLGETNUNIFORMUIVPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
5695GLAPI PFNGLGETNUNIFORMUIVPROC glad_glGetnUniformuiv;
5696#define glGetnUniformuiv glad_glGetnUniformuiv
5697typedef void (APIENTRYP PFNGLREADNPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
5698GLAPI PFNGLREADNPIXELSPROC glad_glReadnPixels;
5699#define glReadnPixels glad_glReadnPixels
5700typedef void (APIENTRYP PFNGLGETNMAPDVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
5701GLAPI PFNGLGETNMAPDVPROC glad_glGetnMapdv;
5702#define glGetnMapdv glad_glGetnMapdv
5703typedef void (APIENTRYP PFNGLGETNMAPFVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
5704GLAPI PFNGLGETNMAPFVPROC glad_glGetnMapfv;
5705#define glGetnMapfv glad_glGetnMapfv
5706typedef void (APIENTRYP PFNGLGETNMAPIVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLint *v);
5707GLAPI PFNGLGETNMAPIVPROC glad_glGetnMapiv;
5708#define glGetnMapiv glad_glGetnMapiv
5709typedef void (APIENTRYP PFNGLGETNPIXELMAPFVPROC)(GLenum map, GLsizei bufSize, GLfloat *values);
5710GLAPI PFNGLGETNPIXELMAPFVPROC glad_glGetnPixelMapfv;
5711#define glGetnPixelMapfv glad_glGetnPixelMapfv
5712typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVPROC)(GLenum map, GLsizei bufSize, GLuint *values);
5713GLAPI PFNGLGETNPIXELMAPUIVPROC glad_glGetnPixelMapuiv;
5714#define glGetnPixelMapuiv glad_glGetnPixelMapuiv
5715typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVPROC)(GLenum map, GLsizei bufSize, GLushort *values);
5716GLAPI PFNGLGETNPIXELMAPUSVPROC glad_glGetnPixelMapusv;
5717#define glGetnPixelMapusv glad_glGetnPixelMapusv
5718typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEPROC)(GLsizei bufSize, GLubyte *pattern);
5719GLAPI PFNGLGETNPOLYGONSTIPPLEPROC glad_glGetnPolygonStipple;
5720#define glGetnPolygonStipple glad_glGetnPolygonStipple
5721typedef void (APIENTRYP PFNGLGETNCOLORTABLEPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table);
5722GLAPI PFNGLGETNCOLORTABLEPROC glad_glGetnColorTable;
5723#define glGetnColorTable glad_glGetnColorTable
5724typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image);
5725GLAPI PFNGLGETNCONVOLUTIONFILTERPROC glad_glGetnConvolutionFilter;
5726#define glGetnConvolutionFilter glad_glGetnConvolutionFilter
5727typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERPROC)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span);
5728GLAPI PFNGLGETNSEPARABLEFILTERPROC glad_glGetnSeparableFilter;
5729#define glGetnSeparableFilter glad_glGetnSeparableFilter
5730typedef void (APIENTRYP PFNGLGETNHISTOGRAMPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
5731GLAPI PFNGLGETNHISTOGRAMPROC glad_glGetnHistogram;
5732#define glGetnHistogram glad_glGetnHistogram
5733typedef void (APIENTRYP PFNGLGETNMINMAXPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values);
5734GLAPI PFNGLGETNMINMAXPROC glad_glGetnMinmax;
5735#define glGetnMinmax glad_glGetnMinmax
5736typedef void (APIENTRYP PFNGLTEXTUREBARRIERPROC)(void);
5737GLAPI PFNGLTEXTUREBARRIERPROC glad_glTextureBarrier;
5738#define glTextureBarrier glad_glTextureBarrier
5739#endif
5740#ifndef GL_VERSION_4_6
5741#define GL_VERSION_4_6 1
5742GLAPI int GLAD_GL_VERSION_4_6;
5743typedef void (APIENTRYP PFNGLSPECIALIZESHADERPROC)(GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue);
5744GLAPI PFNGLSPECIALIZESHADERPROC glad_glSpecializeShader;
5745#define glSpecializeShader glad_glSpecializeShader
5746typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)(GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
5747GLAPI PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC glad_glMultiDrawArraysIndirectCount;
5748#define glMultiDrawArraysIndirectCount glad_glMultiDrawArraysIndirectCount
5749typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)(GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
5750GLAPI PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC glad_glMultiDrawElementsIndirectCount;
5751#define glMultiDrawElementsIndirectCount glad_glMultiDrawElementsIndirectCount
5752typedef void (APIENTRYP PFNGLPOLYGONOFFSETCLAMPPROC)(GLfloat factor, GLfloat units, GLfloat clamp);
5753GLAPI PFNGLPOLYGONOFFSETCLAMPPROC glad_glPolygonOffsetClamp;
5754#define glPolygonOffsetClamp glad_glPolygonOffsetClamp
3799#endif 5755#endif
3800#define GL_MULTISAMPLE_3DFX 0x86B2 5756#define GL_MULTISAMPLE_3DFX 0x86B2
3801#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 5757#define GL_SAMPLE_BUFFERS_3DFX 0x86B3
@@ -3977,20 +5933,8 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
3977#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381 5933#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381
3978#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382 5934#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382
3979#define GL_UNSIGNED_INT64_ARB 0x140F 5935#define GL_UNSIGNED_INT64_ARB 0x140F
3980#define GL_MAP_PERSISTENT_BIT 0x0040
3981#define GL_MAP_COHERENT_BIT 0x0080
3982#define GL_DYNAMIC_STORAGE_BIT 0x0100
3983#define GL_CLIENT_STORAGE_BIT 0x0200
3984#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000
3985#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F
3986#define GL_BUFFER_STORAGE_FLAGS 0x8220
3987#define GL_SYNC_CL_EVENT_ARB 0x8240 5936#define GL_SYNC_CL_EVENT_ARB 0x8240
3988#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 5937#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241
3989#define GL_CLEAR_TEXTURE 0x9365
3990#define GL_NEGATIVE_ONE_TO_ONE 0x935E
3991#define GL_ZERO_TO_ONE 0x935F
3992#define GL_CLIP_ORIGIN 0x935C
3993#define GL_CLIP_DEPTH_MODE 0x935D
3994#define GL_RGBA_FLOAT_MODE_ARB 0x8820 5938#define GL_RGBA_FLOAT_MODE_ARB 0x8820
3995#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A 5939#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A
3996#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B 5940#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B
@@ -4000,12 +5944,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
4000#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB 5944#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB 0x90EB
4001#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345 5945#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345
4002#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF 5946#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF
4003#define GL_QUERY_WAIT_INVERTED 0x8E17
4004#define GL_QUERY_NO_WAIT_INVERTED 0x8E18
4005#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19
4006#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A
4007#define GL_MAX_CULL_DISTANCES 0x82F9
4008#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA
4009#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 5947#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242
4010#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 5948#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243
4011#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 5949#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244
@@ -4033,8 +5971,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
4033#define GL_DEPTH_COMPONENT32_ARB 0x81A7 5971#define GL_DEPTH_COMPONENT32_ARB 0x81A7
4034#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A 5972#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A
4035#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B 5973#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B
4036#define GL_TEXTURE_TARGET 0x1006
4037#define GL_QUERY_TARGET 0x82EA
4038#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 5974#define GL_MAX_DRAW_BUFFERS_ARB 0x8824
4039#define GL_DRAW_BUFFER0_ARB 0x8825 5975#define GL_DRAW_BUFFER0_ARB 0x8825
4040#define GL_DRAW_BUFFER1_ARB 0x8826 5976#define GL_DRAW_BUFFER1_ARB 0x8826
@@ -4052,9 +5988,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
4052#define GL_DRAW_BUFFER13_ARB 0x8832 5988#define GL_DRAW_BUFFER13_ARB 0x8832
4053#define GL_DRAW_BUFFER14_ARB 0x8833 5989#define GL_DRAW_BUFFER14_ARB 0x8833
4054#define GL_DRAW_BUFFER15_ARB 0x8834 5990#define GL_DRAW_BUFFER15_ARB 0x8834
4055#define GL_LOCATION_COMPONENT 0x934A
4056#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B
4057#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C
4058#define GL_FRAGMENT_PROGRAM_ARB 0x8804 5991#define GL_FRAGMENT_PROGRAM_ARB 0x8804
4059#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 5992#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
4060#define GL_PROGRAM_LENGTH_ARB 0x8627 5993#define GL_PROGRAM_LENGTH_ARB 0x8627
@@ -4136,7 +6069,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
4136#define GL_FRAGMENT_SHADER_ARB 0x8B30 6069#define GL_FRAGMENT_SHADER_ARB 0x8B30
4137#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 6070#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
4138#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B 6071#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B
4139#define GL_INDEX 0x8222
4140#define GL_LINES_ADJACENCY_ARB 0x000A 6072#define GL_LINES_ADJACENCY_ARB 0x000A
4141#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B 6073#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B
4142#define GL_TRIANGLES_ADJACENCY_ARB 0x000C 6074#define GL_TRIANGLES_ADJACENCY_ARB 0x000C
@@ -4333,11 +6265,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
4333#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 6265#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
4334#define GL_POINT_SPRITE_ARB 0x8861 6266#define GL_POINT_SPRITE_ARB 0x8861
4335#define GL_COORD_REPLACE_ARB 0x8862 6267#define GL_COORD_REPLACE_ARB 0x8862
4336#define GL_POLYGON_OFFSET_CLAMP 0x8E1B
4337#define GL_QUERY_BUFFER 0x9192
4338#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000
4339#define GL_QUERY_BUFFER_BINDING 0x9193
4340#define GL_QUERY_RESULT_NO_WAIT 0x9194
4341#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 6268#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
4342#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 6269#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
4343#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 6270#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253
@@ -4410,8 +6337,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
4410#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199 6337#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB 0x9199
4411#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A 6338#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB 0x919A
4412#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9 6339#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91A9
4413#define GL_SPIR_V_EXTENSIONS 0x9553
4414#define GL_NUM_SPIR_V_EXTENSIONS 0x9554
4415#define GL_CLAMP_TO_BORDER_ARB 0x812D 6340#define GL_CLAMP_TO_BORDER_ARB 0x812D
4416#define GL_TEXTURE_BUFFER_ARB 0x8C2A 6341#define GL_TEXTURE_BUFFER_ARB 0x8C2A
4417#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B 6342#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B
@@ -4476,8 +6401,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
4476#define GL_PREVIOUS_ARB 0x8578 6401#define GL_PREVIOUS_ARB 0x8578
4477#define GL_DOT3_RGB_ARB 0x86AE 6402#define GL_DOT3_RGB_ARB 0x86AE
4478#define GL_DOT3_RGBA_ARB 0x86AF 6403#define GL_DOT3_RGBA_ARB 0x86AF
4479#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE
4480#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF
4481#define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366 6404#define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366
4482#define GL_WEIGHTED_AVERAGE_ARB 0x9367 6405#define GL_WEIGHTED_AVERAGE_ARB 0x9367
4483#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 6406#define GL_TEXTURE_RED_TYPE_ARB 0x8C10
@@ -4503,7 +6426,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
4503#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E 6426#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E
4504#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F 6427#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F
4505#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F 6428#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F
4506#define GL_MIRROR_CLAMP_TO_EDGE 0x8743
4507#define GL_MIRRORED_REPEAT_ARB 0x8370 6429#define GL_MIRRORED_REPEAT_ARB 0x8370
4508#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 6430#define GL_TEXTURE_RECTANGLE_ARB 0x84F5
4509#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 6431#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6
@@ -5410,6 +7332,7 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
5410#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D 7332#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D
5411#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E 7333#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E
5412#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F 7334#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F
7335#define GL_SR8_EXT 0x8FBD
5413#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 7336#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48
5414#define GL_DECODE_EXT 0x8A49 7337#define GL_DECODE_EXT 0x8A49
5415#define GL_SKIP_DECODE_EXT 0x8A4A 7338#define GL_SKIP_DECODE_EXT 0x8A4A
@@ -5728,8 +7651,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
5728#define GL_HSL_COLOR_KHR 0x92AF 7651#define GL_HSL_COLOR_KHR 0x92AF
5729#define GL_HSL_LUMINOSITY_KHR 0x92B0 7652#define GL_HSL_LUMINOSITY_KHR 0x92B0
5730#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285 7653#define GL_BLEND_ADVANCED_COHERENT_KHR 0x9285
5731#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB
5732#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC
5733#define GL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x82FB 7654#define GL_CONTEXT_RELEASE_BEHAVIOR_KHR 0x82FB
5734#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x82FC 7655#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR 0x82FC
5735#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242 7656#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR 0x8242
@@ -5776,13 +7697,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
5776#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0 7697#define GL_MAX_SHADER_COMPILER_THREADS_KHR 0x91B0
5777#define GL_COMPLETION_STATUS_KHR 0x91B1 7698#define GL_COMPLETION_STATUS_KHR 0x91B1
5778#define GL_CONTEXT_ROBUST_ACCESS 0x90F3 7699#define GL_CONTEXT_ROBUST_ACCESS 0x90F3
5779#define GL_LOSE_CONTEXT_ON_RESET 0x8252
5780#define GL_GUILTY_CONTEXT_RESET 0x8253
5781#define GL_INNOCENT_CONTEXT_RESET 0x8254
5782#define GL_UNKNOWN_CONTEXT_RESET 0x8255
5783#define GL_RESET_NOTIFICATION_STRATEGY 0x8256
5784#define GL_NO_RESET_NOTIFICATION 0x8261
5785#define GL_CONTEXT_LOST 0x0507
5786#define GL_CONTEXT_ROBUST_ACCESS_KHR 0x90F3 7700#define GL_CONTEXT_ROBUST_ACCESS_KHR 0x90F3
5787#define GL_LOSE_CONTEXT_ON_RESET_KHR 0x8252 7701#define GL_LOSE_CONTEXT_ON_RESET_KHR 0x8252
5788#define GL_GUILTY_CONTEXT_RESET_KHR 0x8253 7702#define GL_GUILTY_CONTEXT_RESET_KHR 0x8253
@@ -5998,7 +7912,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
5998#define GL_FOG_DISTANCE_MODE_NV 0x855A 7912#define GL_FOG_DISTANCE_MODE_NV 0x855A
5999#define GL_EYE_RADIAL_NV 0x855B 7913#define GL_EYE_RADIAL_NV 0x855B
6000#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C 7914#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C
6001#define GL_EYE_PLANE 0x2502
6002#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD 7915#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV 0x92DD
6003#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE 7916#define GL_FRAGMENT_COVERAGE_COLOR_NV 0x92DE
6004#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 7917#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
@@ -6103,16 +8016,16 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
6103#define GL_MESH_OUTPUT_TYPE_NV 0x957B 8016#define GL_MESH_OUTPUT_TYPE_NV 0x957B
6104#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C 8017#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV 0x959C
6105#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D 8018#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV 0x959D
6106#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E
6107#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F
6108#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0 8019#define GL_REFERENCED_BY_MESH_SHADER_NV 0x95A0
6109#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1 8020#define GL_REFERENCED_BY_TASK_SHADER_NV 0x95A1
8021#define GL_MESH_SHADER_BIT_NV 0x00000040
8022#define GL_TASK_SHADER_BIT_NV 0x00000080
6110#define GL_MESH_SUBROUTINE_NV 0x957C 8023#define GL_MESH_SUBROUTINE_NV 0x957C
6111#define GL_TASK_SUBROUTINE_NV 0x957D 8024#define GL_TASK_SUBROUTINE_NV 0x957D
6112#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E 8025#define GL_MESH_SUBROUTINE_UNIFORM_NV 0x957E
6113#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F 8026#define GL_TASK_SUBROUTINE_UNIFORM_NV 0x957F
6114#define GL_MESH_SHADER_BIT_NV 0x00000040 8027#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV 0x959E
6115#define GL_TASK_SHADER_BIT_NV 0x00000080 8028#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV 0x959F
6116#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 8029#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534
6117#define GL_PIXEL_COUNTER_BITS_NV 0x8864 8030#define GL_PIXEL_COUNTER_BITS_NV 0x8864
6118#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 8031#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
@@ -6274,7 +8187,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
6274#define GL_OBJECT_LINEAR_NV 0x2401 8187#define GL_OBJECT_LINEAR_NV 0x2401
6275#define GL_CONSTANT_NV 0x8576 8188#define GL_CONSTANT_NV 0x8576
6276#define GL_PATH_FOG_GEN_MODE_NV 0x90AC 8189#define GL_PATH_FOG_GEN_MODE_NV 0x90AC
6277#define GL_PRIMARY_COLOR 0x8577
6278#define GL_PRIMARY_COLOR_NV 0x852C 8190#define GL_PRIMARY_COLOR_NV 0x852C
6279#define GL_SECONDARY_COLOR_NV 0x852D 8191#define GL_SECONDARY_COLOR_NV 0x852D
6280#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2 8192#define GL_PATH_GEN_COLOR_FORMAT_NV 0x90B2
@@ -6362,7 +8274,6 @@ GLAPI PFNGLGETPOINTERVPROC glad_glGetPointerv;
6362#define GL_COMBINER5_NV 0x8555 8274#define GL_COMBINER5_NV 0x8555
6363#define GL_COMBINER6_NV 0x8556 8275#define GL_COMBINER6_NV 0x8556
6364#define GL_COMBINER7_NV 0x8557 8276#define GL_COMBINER7_NV 0x8557
6365#define GL_FOG 0x0B60
6366#define GL_PER_STAGE_CONSTANTS_NV 0x8535 8277#define GL_PER_STAGE_CONSTANTS_NV 0x8535
6367#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F 8278#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV 0x937F
6368#define GL_PURGED_CONTEXT_RESET_NV 0x92BB 8279#define GL_PURGED_CONTEXT_RESET_NV 0x92BB
@@ -7604,9 +9515,6 @@ GLAPI int GLAD_GL_ARB_ES2_compatibility;
7604#ifndef GL_ARB_ES3_1_compatibility 9515#ifndef GL_ARB_ES3_1_compatibility
7605#define GL_ARB_ES3_1_compatibility 1 9516#define GL_ARB_ES3_1_compatibility 1
7606GLAPI int GLAD_GL_ARB_ES3_1_compatibility; 9517GLAPI int GLAD_GL_ARB_ES3_1_compatibility;
7607typedef void (APIENTRYP PFNGLMEMORYBARRIERBYREGIONPROC)(GLbitfield barriers);
7608GLAPI PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion;
7609#define glMemoryBarrierByRegion glad_glMemoryBarrierByRegion
7610#endif 9518#endif
7611#ifndef GL_ARB_ES3_2_compatibility 9519#ifndef GL_ARB_ES3_2_compatibility
7612#define GL_ARB_ES3_2_compatibility 1 9520#define GL_ARB_ES3_2_compatibility 1
@@ -7686,9 +9594,6 @@ GLAPI int GLAD_GL_ARB_blend_func_extended;
7686#ifndef GL_ARB_buffer_storage 9594#ifndef GL_ARB_buffer_storage
7687#define GL_ARB_buffer_storage 1 9595#define GL_ARB_buffer_storage 1
7688GLAPI int GLAD_GL_ARB_buffer_storage; 9596GLAPI int GLAD_GL_ARB_buffer_storage;
7689typedef void (APIENTRYP PFNGLBUFFERSTORAGEPROC)(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags);
7690GLAPI PFNGLBUFFERSTORAGEPROC glad_glBufferStorage;
7691#define glBufferStorage glad_glBufferStorage
7692#endif 9597#endif
7693#ifndef GL_ARB_cl_event 9598#ifndef GL_ARB_cl_event
7694#define GL_ARB_cl_event 1 9599#define GL_ARB_cl_event 1
@@ -7704,19 +9609,10 @@ GLAPI int GLAD_GL_ARB_clear_buffer_object;
7704#ifndef GL_ARB_clear_texture 9609#ifndef GL_ARB_clear_texture
7705#define GL_ARB_clear_texture 1 9610#define GL_ARB_clear_texture 1
7706GLAPI int GLAD_GL_ARB_clear_texture; 9611GLAPI int GLAD_GL_ARB_clear_texture;
7707typedef void (APIENTRYP PFNGLCLEARTEXIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, const void *data);
7708GLAPI PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage;
7709#define glClearTexImage glad_glClearTexImage
7710typedef void (APIENTRYP PFNGLCLEARTEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data);
7711GLAPI PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage;
7712#define glClearTexSubImage glad_glClearTexSubImage
7713#endif 9612#endif
7714#ifndef GL_ARB_clip_control 9613#ifndef GL_ARB_clip_control
7715#define GL_ARB_clip_control 1 9614#define GL_ARB_clip_control 1
7716GLAPI int GLAD_GL_ARB_clip_control; 9615GLAPI int GLAD_GL_ARB_clip_control;
7717typedef void (APIENTRYP PFNGLCLIPCONTROLPROC)(GLenum origin, GLenum depth);
7718GLAPI PFNGLCLIPCONTROLPROC glad_glClipControl;
7719#define glClipControl glad_glClipControl
7720#endif 9616#endif
7721#ifndef GL_ARB_color_buffer_float 9617#ifndef GL_ARB_color_buffer_float
7722#define GL_ARB_color_buffer_float 1 9618#define GL_ARB_color_buffer_float 1
@@ -7799,297 +9695,6 @@ GLAPI int GLAD_GL_ARB_derivative_control;
7799#ifndef GL_ARB_direct_state_access 9695#ifndef GL_ARB_direct_state_access
7800#define GL_ARB_direct_state_access 1 9696#define GL_ARB_direct_state_access 1
7801GLAPI int GLAD_GL_ARB_direct_state_access; 9697GLAPI int GLAD_GL_ARB_direct_state_access;
7802typedef void (APIENTRYP PFNGLCREATETRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids);
7803GLAPI PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks;
7804#define glCreateTransformFeedbacks glad_glCreateTransformFeedbacks
7805typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)(GLuint xfb, GLuint index, GLuint buffer);
7806GLAPI PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase;
7807#define glTransformFeedbackBufferBase glad_glTransformFeedbackBufferBase
7808typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
7809GLAPI PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange;
7810#define glTransformFeedbackBufferRange glad_glTransformFeedbackBufferRange
7811typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKIVPROC)(GLuint xfb, GLenum pname, GLint *param);
7812GLAPI PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv;
7813#define glGetTransformFeedbackiv glad_glGetTransformFeedbackiv
7814typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint *param);
7815GLAPI PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v;
7816#define glGetTransformFeedbacki_v glad_glGetTransformFeedbacki_v
7817typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKI64_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint64 *param);
7818GLAPI PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v;
7819#define glGetTransformFeedbacki64_v glad_glGetTransformFeedbacki64_v
7820typedef void (APIENTRYP PFNGLCREATEBUFFERSPROC)(GLsizei n, GLuint *buffers);
7821GLAPI PFNGLCREATEBUFFERSPROC glad_glCreateBuffers;
7822#define glCreateBuffers glad_glCreateBuffers
7823typedef void (APIENTRYP PFNGLNAMEDBUFFERSTORAGEPROC)(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags);
7824GLAPI PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage;
7825#define glNamedBufferStorage glad_glNamedBufferStorage
7826typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAPROC)(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage);
7827GLAPI PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData;
7828#define glNamedBufferData glad_glNamedBufferData
7829typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data);
7830GLAPI PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData;
7831#define glNamedBufferSubData glad_glNamedBufferSubData
7832typedef void (APIENTRYP PFNGLCOPYNAMEDBUFFERSUBDATAPROC)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
7833GLAPI PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData;
7834#define glCopyNamedBufferSubData glad_glCopyNamedBufferSubData
7835typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERDATAPROC)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data);
7836GLAPI PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData;
7837#define glClearNamedBufferData glad_glClearNamedBufferData
7838typedef void (APIENTRYP PFNGLCLEARNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data);
7839GLAPI PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData;
7840#define glClearNamedBufferSubData glad_glClearNamedBufferSubData
7841typedef void * (APIENTRYP PFNGLMAPNAMEDBUFFERPROC)(GLuint buffer, GLenum access);
7842GLAPI PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer;
7843#define glMapNamedBuffer glad_glMapNamedBuffer
7844typedef void * (APIENTRYP PFNGLMAPNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
7845GLAPI PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange;
7846#define glMapNamedBufferRange glad_glMapNamedBufferRange
7847typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFERPROC)(GLuint buffer);
7848GLAPI PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer;
7849#define glUnmapNamedBuffer glad_glUnmapNamedBuffer
7850typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length);
7851GLAPI PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange;
7852#define glFlushMappedNamedBufferRange glad_glFlushMappedNamedBufferRange
7853typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVPROC)(GLuint buffer, GLenum pname, GLint *params);
7854GLAPI PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv;
7855#define glGetNamedBufferParameteriv glad_glGetNamedBufferParameteriv
7856typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)(GLuint buffer, GLenum pname, GLint64 *params);
7857GLAPI PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v;
7858#define glGetNamedBufferParameteri64v glad_glGetNamedBufferParameteri64v
7859typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVPROC)(GLuint buffer, GLenum pname, void **params);
7860GLAPI PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv;
7861#define glGetNamedBufferPointerv glad_glGetNamedBufferPointerv
7862typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data);
7863GLAPI PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData;
7864#define glGetNamedBufferSubData glad_glGetNamedBufferSubData
7865typedef void (APIENTRYP PFNGLCREATEFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers);
7866GLAPI PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers;
7867#define glCreateFramebuffers glad_glCreateFramebuffers
7868typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
7869GLAPI PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer;
7870#define glNamedFramebufferRenderbuffer glad_glNamedFramebufferRenderbuffer
7871typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)(GLuint framebuffer, GLenum pname, GLint param);
7872GLAPI PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri;
7873#define glNamedFramebufferParameteri glad_glNamedFramebufferParameteri
7874typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
7875GLAPI PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture;
7876#define glNamedFramebufferTexture glad_glNamedFramebufferTexture
7877typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
7878GLAPI PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer;
7879#define glNamedFramebufferTextureLayer glad_glNamedFramebufferTextureLayer
7880typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)(GLuint framebuffer, GLenum buf);
7881GLAPI PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer;
7882#define glNamedFramebufferDrawBuffer glad_glNamedFramebufferDrawBuffer
7883typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)(GLuint framebuffer, GLsizei n, const GLenum *bufs);
7884GLAPI PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers;
7885#define glNamedFramebufferDrawBuffers glad_glNamedFramebufferDrawBuffers
7886typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)(GLuint framebuffer, GLenum src);
7887GLAPI PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer;
7888#define glNamedFramebufferReadBuffer glad_glNamedFramebufferReadBuffer
7889typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments);
7890GLAPI PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData;
7891#define glInvalidateNamedFramebufferData glad_glInvalidateNamedFramebufferData
7892typedef void (APIENTRYP PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
7893GLAPI PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData;
7894#define glInvalidateNamedFramebufferSubData glad_glInvalidateNamedFramebufferSubData
7895typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value);
7896GLAPI PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv;
7897#define glClearNamedFramebufferiv glad_glClearNamedFramebufferiv
7898typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value);
7899GLAPI PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv;
7900#define glClearNamedFramebufferuiv glad_glClearNamedFramebufferuiv
7901typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value);
7902GLAPI PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv;
7903#define glClearNamedFramebufferfv glad_glClearNamedFramebufferfv
7904typedef void (APIENTRYP PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
7905GLAPI PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi;
7906#define glClearNamedFramebufferfi glad_glClearNamedFramebufferfi
7907typedef void (APIENTRYP PFNGLBLITNAMEDFRAMEBUFFERPROC)(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
7908GLAPI PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer;
7909#define glBlitNamedFramebuffer glad_glBlitNamedFramebuffer
7910typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)(GLuint framebuffer, GLenum target);
7911GLAPI PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus;
7912#define glCheckNamedFramebufferStatus glad_glCheckNamedFramebufferStatus
7913typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)(GLuint framebuffer, GLenum pname, GLint *param);
7914GLAPI PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv;
7915#define glGetNamedFramebufferParameteriv glad_glGetNamedFramebufferParameteriv
7916typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
7917GLAPI PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv;
7918#define glGetNamedFramebufferAttachmentParameteriv glad_glGetNamedFramebufferAttachmentParameteriv
7919typedef void (APIENTRYP PFNGLCREATERENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers);
7920GLAPI PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers;
7921#define glCreateRenderbuffers glad_glCreateRenderbuffers
7922typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEPROC)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
7923GLAPI PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage;
7924#define glNamedRenderbufferStorage glad_glNamedRenderbufferStorage
7925typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
7926GLAPI PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample;
7927#define glNamedRenderbufferStorageMultisample glad_glNamedRenderbufferStorageMultisample
7928typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)(GLuint renderbuffer, GLenum pname, GLint *params);
7929GLAPI PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv;
7930#define glGetNamedRenderbufferParameteriv glad_glGetNamedRenderbufferParameteriv
7931typedef void (APIENTRYP PFNGLCREATETEXTURESPROC)(GLenum target, GLsizei n, GLuint *textures);
7932GLAPI PFNGLCREATETEXTURESPROC glad_glCreateTextures;
7933#define glCreateTextures glad_glCreateTextures
7934typedef void (APIENTRYP PFNGLTEXTUREBUFFERPROC)(GLuint texture, GLenum internalformat, GLuint buffer);
7935GLAPI PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer;
7936#define glTextureBuffer glad_glTextureBuffer
7937typedef void (APIENTRYP PFNGLTEXTUREBUFFERRANGEPROC)(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
7938GLAPI PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange;
7939#define glTextureBufferRange glad_glTextureBufferRange
7940typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
7941GLAPI PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D;
7942#define glTextureStorage1D glad_glTextureStorage1D
7943typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
7944GLAPI PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D;
7945#define glTextureStorage2D glad_glTextureStorage2D
7946typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
7947GLAPI PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D;
7948#define glTextureStorage3D glad_glTextureStorage3D
7949typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
7950GLAPI PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample;
7951#define glTextureStorage2DMultisample glad_glTextureStorage2DMultisample
7952typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
7953GLAPI PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample;
7954#define glTextureStorage3DMultisample glad_glTextureStorage3DMultisample
7955typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels);
7956GLAPI PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D;
7957#define glTextureSubImage1D glad_glTextureSubImage1D
7958typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
7959GLAPI PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D;
7960#define glTextureSubImage2D glad_glTextureSubImage2D
7961typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels);
7962GLAPI PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D;
7963#define glTextureSubImage3D glad_glTextureSubImage3D
7964typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data);
7965GLAPI PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D;
7966#define glCompressedTextureSubImage1D glad_glCompressedTextureSubImage1D
7967typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data);
7968GLAPI PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D;
7969#define glCompressedTextureSubImage2D glad_glCompressedTextureSubImage2D
7970typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data);
7971GLAPI PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D;
7972#define glCompressedTextureSubImage3D glad_glCompressedTextureSubImage3D
7973typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
7974GLAPI PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D;
7975#define glCopyTextureSubImage1D glad_glCopyTextureSubImage1D
7976typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
7977GLAPI PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D;
7978#define glCopyTextureSubImage2D glad_glCopyTextureSubImage2D
7979typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
7980GLAPI PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D;
7981#define glCopyTextureSubImage3D glad_glCopyTextureSubImage3D
7982typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFPROC)(GLuint texture, GLenum pname, GLfloat param);
7983GLAPI PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf;
7984#define glTextureParameterf glad_glTextureParameterf
7985typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, const GLfloat *param);
7986GLAPI PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv;
7987#define glTextureParameterfv glad_glTextureParameterfv
7988typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIPROC)(GLuint texture, GLenum pname, GLint param);
7989GLAPI PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri;
7990#define glTextureParameteri glad_glTextureParameteri
7991typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, const GLint *params);
7992GLAPI PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv;
7993#define glTextureParameterIiv glad_glTextureParameterIiv
7994typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, const GLuint *params);
7995GLAPI PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv;
7996#define glTextureParameterIuiv glad_glTextureParameterIuiv
7997typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, const GLint *param);
7998GLAPI PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv;
7999#define glTextureParameteriv glad_glTextureParameteriv
8000typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPPROC)(GLuint texture);
8001GLAPI PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap;
8002#define glGenerateTextureMipmap glad_glGenerateTextureMipmap
8003typedef void (APIENTRYP PFNGLBINDTEXTUREUNITPROC)(GLuint unit, GLuint texture);
8004GLAPI PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit;
8005#define glBindTextureUnit glad_glBindTextureUnit
8006typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
8007GLAPI PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage;
8008#define glGetTextureImage glad_glGetTextureImage
8009typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLsizei bufSize, void *pixels);
8010GLAPI PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage;
8011#define glGetCompressedTextureImage glad_glGetCompressedTextureImage
8012typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVPROC)(GLuint texture, GLint level, GLenum pname, GLfloat *params);
8013GLAPI PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv;
8014#define glGetTextureLevelParameterfv glad_glGetTextureLevelParameterfv
8015typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVPROC)(GLuint texture, GLint level, GLenum pname, GLint *params);
8016GLAPI PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv;
8017#define glGetTextureLevelParameteriv glad_glGetTextureLevelParameteriv
8018typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, GLfloat *params);
8019GLAPI PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv;
8020#define glGetTextureParameterfv glad_glGetTextureParameterfv
8021typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, GLint *params);
8022GLAPI PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv;
8023#define glGetTextureParameterIiv glad_glGetTextureParameterIiv
8024typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, GLuint *params);
8025GLAPI PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv;
8026#define glGetTextureParameterIuiv glad_glGetTextureParameterIuiv
8027typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, GLint *params);
8028GLAPI PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv;
8029#define glGetTextureParameteriv glad_glGetTextureParameteriv
8030typedef void (APIENTRYP PFNGLCREATEVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays);
8031GLAPI PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays;
8032#define glCreateVertexArrays glad_glCreateVertexArrays
8033typedef void (APIENTRYP PFNGLDISABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
8034GLAPI PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib;
8035#define glDisableVertexArrayAttrib glad_glDisableVertexArrayAttrib
8036typedef void (APIENTRYP PFNGLENABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
8037GLAPI PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib;
8038#define glEnableVertexArrayAttrib glad_glEnableVertexArrayAttrib
8039typedef void (APIENTRYP PFNGLVERTEXARRAYELEMENTBUFFERPROC)(GLuint vaobj, GLuint buffer);
8040GLAPI PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer;
8041#define glVertexArrayElementBuffer glad_glVertexArrayElementBuffer
8042typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERPROC)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
8043GLAPI PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer;
8044#define glVertexArrayVertexBuffer glad_glVertexArrayVertexBuffer
8045typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXBUFFERSPROC)(GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
8046GLAPI PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers;
8047#define glVertexArrayVertexBuffers glad_glVertexArrayVertexBuffers
8048typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBBINDINGPROC)(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
8049GLAPI PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding;
8050#define glVertexArrayAttribBinding glad_glVertexArrayAttribBinding
8051typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
8052GLAPI PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat;
8053#define glVertexArrayAttribFormat glad_glVertexArrayAttribFormat
8054typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBIFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
8055GLAPI PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat;
8056#define glVertexArrayAttribIFormat glad_glVertexArrayAttribIFormat
8057typedef void (APIENTRYP PFNGLVERTEXARRAYATTRIBLFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
8058GLAPI PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat;
8059#define glVertexArrayAttribLFormat glad_glVertexArrayAttribLFormat
8060typedef void (APIENTRYP PFNGLVERTEXARRAYBINDINGDIVISORPROC)(GLuint vaobj, GLuint bindingindex, GLuint divisor);
8061GLAPI PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor;
8062#define glVertexArrayBindingDivisor glad_glVertexArrayBindingDivisor
8063typedef void (APIENTRYP PFNGLGETVERTEXARRAYIVPROC)(GLuint vaobj, GLenum pname, GLint *param);
8064GLAPI PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv;
8065#define glGetVertexArrayiv glad_glGetVertexArrayiv
8066typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXEDIVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint *param);
8067GLAPI PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv;
8068#define glGetVertexArrayIndexediv glad_glGetVertexArrayIndexediv
8069typedef void (APIENTRYP PFNGLGETVERTEXARRAYINDEXED64IVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint64 *param);
8070GLAPI PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv;
8071#define glGetVertexArrayIndexed64iv glad_glGetVertexArrayIndexed64iv
8072typedef void (APIENTRYP PFNGLCREATESAMPLERSPROC)(GLsizei n, GLuint *samplers);
8073GLAPI PFNGLCREATESAMPLERSPROC glad_glCreateSamplers;
8074#define glCreateSamplers glad_glCreateSamplers
8075typedef void (APIENTRYP PFNGLCREATEPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines);
8076GLAPI PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines;
8077#define glCreateProgramPipelines glad_glCreateProgramPipelines
8078typedef void (APIENTRYP PFNGLCREATEQUERIESPROC)(GLenum target, GLsizei n, GLuint *ids);
8079GLAPI PFNGLCREATEQUERIESPROC glad_glCreateQueries;
8080#define glCreateQueries glad_glCreateQueries
8081typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
8082GLAPI PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v;
8083#define glGetQueryBufferObjecti64v glad_glGetQueryBufferObjecti64v
8084typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
8085GLAPI PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv;
8086#define glGetQueryBufferObjectiv glad_glGetQueryBufferObjectiv
8087typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
8088GLAPI PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v;
8089#define glGetQueryBufferObjectui64v glad_glGetQueryBufferObjectui64v
8090typedef void (APIENTRYP PFNGLGETQUERYBUFFEROBJECTUIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
8091GLAPI PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv;
8092#define glGetQueryBufferObjectuiv glad_glGetQueryBufferObjectuiv
8093#endif 9698#endif
8094#ifndef GL_ARB_draw_buffers 9699#ifndef GL_ARB_draw_buffers
8095#define GL_ARB_draw_buffers 1 9700#define GL_ARB_draw_buffers 1
@@ -8260,12 +9865,6 @@ GLAPI int GLAD_GL_ARB_get_program_binary;
8260#ifndef GL_ARB_get_texture_sub_image 9865#ifndef GL_ARB_get_texture_sub_image
8261#define GL_ARB_get_texture_sub_image 1 9866#define GL_ARB_get_texture_sub_image 1
8262GLAPI int GLAD_GL_ARB_get_texture_sub_image; 9867GLAPI int GLAD_GL_ARB_get_texture_sub_image;
8263typedef void (APIENTRYP PFNGLGETTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels);
8264GLAPI PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage;
8265#define glGetTextureSubImage glad_glGetTextureSubImage
8266typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels);
8267GLAPI PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage;
8268#define glGetCompressedTextureSubImage glad_glGetCompressedTextureSubImage
8269#endif 9868#endif
8270#ifndef GL_ARB_gl_spirv 9869#ifndef GL_ARB_gl_spirv
8271#define GL_ARB_gl_spirv 1 9870#define GL_ARB_gl_spirv 1
@@ -8561,24 +10160,6 @@ GLAPI PFNGLMATRIXINDEXPOINTERARBPROC glad_glMatrixIndexPointerARB;
8561#ifndef GL_ARB_multi_bind 10160#ifndef GL_ARB_multi_bind
8562#define GL_ARB_multi_bind 1 10161#define GL_ARB_multi_bind 1
8563GLAPI int GLAD_GL_ARB_multi_bind; 10162GLAPI int GLAD_GL_ARB_multi_bind;
8564typedef void (APIENTRYP PFNGLBINDBUFFERSBASEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
8565GLAPI PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase;
8566#define glBindBuffersBase glad_glBindBuffersBase
8567typedef void (APIENTRYP PFNGLBINDBUFFERSRANGEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
8568GLAPI PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange;
8569#define glBindBuffersRange glad_glBindBuffersRange
8570typedef void (APIENTRYP PFNGLBINDTEXTURESPROC)(GLuint first, GLsizei count, const GLuint *textures);
8571GLAPI PFNGLBINDTEXTURESPROC glad_glBindTextures;
8572#define glBindTextures glad_glBindTextures
8573typedef void (APIENTRYP PFNGLBINDSAMPLERSPROC)(GLuint first, GLsizei count, const GLuint *samplers);
8574GLAPI PFNGLBINDSAMPLERSPROC glad_glBindSamplers;
8575#define glBindSamplers glad_glBindSamplers
8576typedef void (APIENTRYP PFNGLBINDIMAGETEXTURESPROC)(GLuint first, GLsizei count, const GLuint *textures);
8577GLAPI PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures;
8578#define glBindImageTextures glad_glBindImageTextures
8579typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERSPROC)(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
8580GLAPI PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers;
8581#define glBindVertexBuffers glad_glBindVertexBuffers
8582#endif 10163#endif
8583#ifndef GL_ARB_multi_draw_indirect 10164#ifndef GL_ARB_multi_draw_indirect
8584#define GL_ARB_multi_draw_indirect 1 10165#define GL_ARB_multi_draw_indirect 1
@@ -8761,9 +10342,6 @@ GLAPI int GLAD_GL_ARB_point_sprite;
8761#ifndef GL_ARB_polygon_offset_clamp 10342#ifndef GL_ARB_polygon_offset_clamp
8762#define GL_ARB_polygon_offset_clamp 1 10343#define GL_ARB_polygon_offset_clamp 1
8763GLAPI int GLAD_GL_ARB_polygon_offset_clamp; 10344GLAPI int GLAD_GL_ARB_polygon_offset_clamp;
8764typedef void (APIENTRYP PFNGLPOLYGONOFFSETCLAMPPROC)(GLfloat factor, GLfloat units, GLfloat clamp);
8765GLAPI PFNGLPOLYGONOFFSETCLAMPPROC glad_glPolygonOffsetClamp;
8766#define glPolygonOffsetClamp glad_glPolygonOffsetClamp
8767#endif 10345#endif
8768#ifndef GL_ARB_post_depth_coverage 10346#ifndef GL_ARB_post_depth_coverage
8769#define GL_ARB_post_depth_coverage 1 10347#define GL_ARB_post_depth_coverage 1
@@ -9163,9 +10741,6 @@ GLAPI int GLAD_GL_ARB_tessellation_shader;
9163#ifndef GL_ARB_texture_barrier 10741#ifndef GL_ARB_texture_barrier
9164#define GL_ARB_texture_barrier 1 10742#define GL_ARB_texture_barrier 1
9165GLAPI int GLAD_GL_ARB_texture_barrier; 10743GLAPI int GLAD_GL_ARB_texture_barrier;
9166typedef void (APIENTRYP PFNGLTEXTUREBARRIERPROC)(void);
9167GLAPI PFNGLTEXTUREBARRIERPROC glad_glTextureBarrier;
9168#define glTextureBarrier glad_glTextureBarrier
9169#endif 10744#endif
9170#ifndef GL_ARB_texture_border_clamp 10745#ifndef GL_ARB_texture_border_clamp
9171#define GL_ARB_texture_border_clamp 1 10746#define GL_ARB_texture_border_clamp 1
@@ -11819,6 +13394,10 @@ GLAPI PFNGLTEXTURENORMALEXTPROC glad_glTextureNormalEXT;
11819#define GL_EXT_texture_sRGB 1 13394#define GL_EXT_texture_sRGB 1
11820GLAPI int GLAD_GL_EXT_texture_sRGB; 13395GLAPI int GLAD_GL_EXT_texture_sRGB;
11821#endif 13396#endif
13397#ifndef GL_EXT_texture_sRGB_R8
13398#define GL_EXT_texture_sRGB_R8 1
13399GLAPI int GLAD_GL_EXT_texture_sRGB_R8;
13400#endif
11822#ifndef GL_EXT_texture_sRGB_decode 13401#ifndef GL_EXT_texture_sRGB_decode
11823#define GL_EXT_texture_sRGB_decode 1 13402#define GL_EXT_texture_sRGB_decode 1
11824GLAPI int GLAD_GL_EXT_texture_sRGB_decode; 13403GLAPI int GLAD_GL_EXT_texture_sRGB_decode;
@@ -12378,21 +13957,6 @@ GLAPI int GLAD_GL_KHR_robust_buffer_access_behavior;
12378#ifndef GL_KHR_robustness 13957#ifndef GL_KHR_robustness
12379#define GL_KHR_robustness 1 13958#define GL_KHR_robustness 1
12380GLAPI int GLAD_GL_KHR_robustness; 13959GLAPI int GLAD_GL_KHR_robustness;
12381typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSPROC)(void);
12382GLAPI PFNGLGETGRAPHICSRESETSTATUSPROC glad_glGetGraphicsResetStatus;
12383#define glGetGraphicsResetStatus glad_glGetGraphicsResetStatus
12384typedef void (APIENTRYP PFNGLREADNPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data);
12385GLAPI PFNGLREADNPIXELSPROC glad_glReadnPixels;
12386#define glReadnPixels glad_glReadnPixels
12387typedef void (APIENTRYP PFNGLGETNUNIFORMFVPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
12388GLAPI PFNGLGETNUNIFORMFVPROC glad_glGetnUniformfv;
12389#define glGetnUniformfv glad_glGetnUniformfv
12390typedef void (APIENTRYP PFNGLGETNUNIFORMIVPROC)(GLuint program, GLint location, GLsizei bufSize, GLint *params);
12391GLAPI PFNGLGETNUNIFORMIVPROC glad_glGetnUniformiv;
12392#define glGetnUniformiv glad_glGetnUniformiv
12393typedef void (APIENTRYP PFNGLGETNUNIFORMUIVPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
12394GLAPI PFNGLGETNUNIFORMUIVPROC glad_glGetnUniformuiv;
12395#define glGetnUniformuiv glad_glGetnUniformuiv
12396typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSKHRPROC)(void); 13960typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSKHRPROC)(void);
12397GLAPI PFNGLGETGRAPHICSRESETSTATUSKHRPROC glad_glGetGraphicsResetStatusKHR; 13961GLAPI PFNGLGETGRAPHICSRESETSTATUSKHRPROC glad_glGetGraphicsResetStatusKHR;
12398#define glGetGraphicsResetStatusKHR glad_glGetGraphicsResetStatusKHR 13962#define glGetGraphicsResetStatusKHR glad_glGetGraphicsResetStatusKHR
diff --git a/externals/glad/src/glad.c b/externals/glad/src/glad.c
index 384507806..d3e13163f 100644
--- a/externals/glad/src/glad.c
+++ b/externals/glad/src/glad.c
@@ -1,11 +1,11 @@
1/* 1/*
2 2
3 OpenGL loader generated by glad 0.1.28 on Sat Nov 17 22:59:18 2018. 3 OpenGL loader generated by glad 0.1.29 on Wed May 22 00:45:40 2019.
4 4
5 Language/Generator: C/C++ 5 Language/Generator: C/C++
6 Specification: gl 6 Specification: gl
7 APIs: gl=4.3 7 APIs: gl=4.6
8 Profile: core 8 Profile: compatibility
9 Extensions: 9 Extensions:
10 GL_3DFX_multisample, 10 GL_3DFX_multisample,
11 GL_3DFX_tbuffer, 11 GL_3DFX_tbuffer,
@@ -348,6 +348,7 @@
348 GL_EXT_texture_object, 348 GL_EXT_texture_object,
349 GL_EXT_texture_perturb_normal, 349 GL_EXT_texture_perturb_normal,
350 GL_EXT_texture_sRGB, 350 GL_EXT_texture_sRGB,
351 GL_EXT_texture_sRGB_R8,
351 GL_EXT_texture_sRGB_decode, 352 GL_EXT_texture_sRGB_decode,
352 GL_EXT_texture_shared_exponent, 353 GL_EXT_texture_shared_exponent,
353 GL_EXT_texture_snorm, 354 GL_EXT_texture_snorm,
@@ -611,7 +612,7 @@
611 Reproducible: False 612 Reproducible: False
612 613
613 Commandline: 614 Commandline:
614 --profile="core" --api="gl=4.3" --generator="c" --spec="gl" --extensions="GL_3DFX_multisample,GL_3DFX_tbuffer,GL_3DFX_texture_compression_FXT1,GL_AMD_blend_minmax_factor,GL_AMD_conservative_depth,GL_AMD_debug_output,GL_AMD_depth_clamp_separate,GL_AMD_draw_buffers_blend,GL_AMD_framebuffer_multisample_advanced,GL_AMD_framebuffer_sample_positions,GL_AMD_gcn_shader,GL_AMD_gpu_shader_half_float,GL_AMD_gpu_shader_int16,GL_AMD_gpu_shader_int64,GL_AMD_interleaved_elements,GL_AMD_multi_draw_indirect,GL_AMD_name_gen_delete,GL_AMD_occlusion_query_event,GL_AMD_performance_monitor,GL_AMD_pinned_memory,GL_AMD_query_buffer_object,GL_AMD_sample_positions,GL_AMD_seamless_cubemap_per_texture,GL_AMD_shader_atomic_counter_ops,GL_AMD_shader_ballot,GL_AMD_shader_explicit_vertex_parameter,GL_AMD_shader_gpu_shader_half_float_fetch,GL_AMD_shader_image_load_store_lod,GL_AMD_shader_stencil_export,GL_AMD_shader_trinary_minmax,GL_AMD_sparse_texture,GL_AMD_stencil_operation_extended,GL_AMD_texture_gather_bias_lod,GL_AMD_texture_texture4,GL_AMD_transform_feedback3_lines_triangles,GL_AMD_transform_feedback4,GL_AMD_vertex_shader_layer,GL_AMD_vertex_shader_tessellator,GL_AMD_vertex_shader_viewport_index,GL_APPLE_aux_depth_stencil,GL_APPLE_client_storage,GL_APPLE_element_array,GL_APPLE_fence,GL_APPLE_float_pixels,GL_APPLE_flush_buffer_range,GL_APPLE_object_purgeable,GL_APPLE_rgb_422,GL_APPLE_row_bytes,GL_APPLE_specular_vector,GL_APPLE_texture_range,GL_APPLE_transform_hint,GL_APPLE_vertex_array_object,GL_APPLE_vertex_array_range,GL_APPLE_vertex_program_evaluators,GL_APPLE_ycbcr_422,GL_ARB_ES2_compatibility,GL_ARB_ES3_1_compatibility,GL_ARB_ES3_2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_arrays_of_arrays,GL_ARB_base_instance,GL_ARB_bindless_texture,GL_ARB_blend_func_extended,GL_ARB_buffer_storage,GL_ARB_cl_event,GL_ARB_clear_buffer_object,GL_ARB_clear_texture,GL_ARB_clip_control,GL_ARB_color_buffer_float,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_compute_shader,GL_ARB_compute_variable_group_size,GL_ARB_conditional_render_inverted,GL_ARB_conservative_depth,GL_ARB_copy_buffer,GL_ARB_copy_image,GL_ARB_cull_distance,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_derivative_control,GL_ARB_direct_state_access,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_draw_elements_base_vertex,GL_ARB_draw_indirect,GL_ARB_draw_instanced,GL_ARB_enhanced_layouts,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_coord_conventions,GL_ARB_fragment_layer_viewport,GL_ARB_fragment_program,GL_ARB_fragment_program_shadow,GL_ARB_fragment_shader,GL_ARB_fragment_shader_interlock,GL_ARB_framebuffer_no_attachments,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_geometry_shader4,GL_ARB_get_program_binary,GL_ARB_get_texture_sub_image,GL_ARB_gl_spirv,GL_ARB_gpu_shader5,GL_ARB_gpu_shader_fp64,GL_ARB_gpu_shader_int64,GL_ARB_half_float_pixel,GL_ARB_half_float_vertex,GL_ARB_imaging,GL_ARB_indirect_parameters,GL_ARB_instanced_arrays,GL_ARB_internalformat_query,GL_ARB_internalformat_query2,GL_ARB_invalidate_subdata,GL_ARB_map_buffer_alignment,GL_ARB_map_buffer_range,GL_ARB_matrix_palette,GL_ARB_multi_bind,GL_ARB_multi_draw_indirect,GL_ARB_multisample,GL_ARB_multitexture,GL_ARB_occlusion_query,GL_ARB_occlusion_query2,GL_ARB_parallel_shader_compile,GL_ARB_pipeline_statistics_query,GL_ARB_pixel_buffer_object,GL_ARB_point_parameters,GL_ARB_point_sprite,GL_ARB_polygon_offset_clamp,GL_ARB_post_depth_coverage,GL_ARB_program_interface_query,GL_ARB_provoking_vertex,GL_ARB_query_buffer_object,GL_ARB_robust_buffer_access_behavior,GL_ARB_robustness,GL_ARB_robustness_isolation,GL_ARB_sample_locations,GL_ARB_sample_shading,GL_ARB_sampler_objects,GL_ARB_seamless_cube_map,GL_ARB_seamless_cubemap_per_texture,GL_ARB_separate_shader_objects,GL_ARB_shader_atomic_counter_ops,GL_ARB_shader_atomic_counters,GL_ARB_shader_ballot,GL_ARB_shader_bit_encoding,GL_ARB_shader_clock,GL_ARB_shader_draw_parameters,GL_ARB_shader_group_vote,GL_ARB_shader_image_load_store,GL_ARB_shader_image_size,GL_ARB_shader_objects,GL_ARB_shader_precision,GL_ARB_shader_stencil_export,GL_ARB_shader_storage_buffer_object,GL_ARB_shader_subroutine,GL_ARB_shader_texture_image_samples,GL_ARB_shader_texture_lod,GL_ARB_shader_viewport_layer_array,GL_ARB_shading_language_100,GL_ARB_shading_language_420pack,GL_ARB_shading_language_include,GL_ARB_shading_language_packing,GL_ARB_shadow,GL_ARB_shadow_ambient,GL_ARB_sparse_buffer,GL_ARB_sparse_texture,GL_ARB_sparse_texture2,GL_ARB_sparse_texture_clamp,GL_ARB_spirv_extensions,GL_ARB_stencil_texturing,GL_ARB_sync,GL_ARB_tessellation_shader,GL_ARB_texture_barrier,GL_ARB_texture_border_clamp,GL_ARB_texture_buffer_object,GL_ARB_texture_buffer_object_rgb32,GL_ARB_texture_buffer_range,GL_ARB_texture_compression,GL_ARB_texture_compression_bptc,GL_ARB_texture_compression_rgtc,GL_ARB_texture_cube_map,GL_ARB_texture_cube_map_array,GL_ARB_texture_env_add,GL_ARB_texture_env_combine,GL_ARB_texture_env_crossbar,GL_ARB_texture_env_dot3,GL_ARB_texture_filter_anisotropic,GL_ARB_texture_filter_minmax,GL_ARB_texture_float,GL_ARB_texture_gather,GL_ARB_texture_mirror_clamp_to_edge,GL_ARB_texture_mirrored_repeat,GL_ARB_texture_multisample,GL_ARB_texture_non_power_of_two,GL_ARB_texture_query_levels,GL_ARB_texture_query_lod,GL_ARB_texture_rectangle,GL_ARB_texture_rg,GL_ARB_texture_rgb10_a2ui,GL_ARB_texture_stencil8,GL_ARB_texture_storage,GL_ARB_texture_storage_multisample,GL_ARB_texture_swizzle,GL_ARB_texture_view,GL_ARB_timer_query,GL_ARB_transform_feedback2,GL_ARB_transform_feedback3,GL_ARB_transform_feedback_instanced,GL_ARB_transform_feedback_overflow_query,GL_ARB_transpose_matrix,GL_ARB_uniform_buffer_object,GL_ARB_vertex_array_bgra,GL_ARB_vertex_array_object,GL_ARB_vertex_attrib_64bit,GL_ARB_vertex_attrib_binding,GL_ARB_vertex_blend,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_ARB_vertex_type_10f_11f_11f_rev,GL_ARB_vertex_type_2_10_10_10_rev,GL_ARB_viewport_array,GL_ARB_window_pos,GL_ATI_draw_buffers,GL_ATI_element_array,GL_ATI_envmap_bumpmap,GL_ATI_fragment_shader,GL_ATI_map_object_buffer,GL_ATI_meminfo,GL_ATI_pixel_format_float,GL_ATI_pn_triangles,GL_ATI_separate_stencil,GL_ATI_text_fragment_shader,GL_ATI_texture_env_combine3,GL_ATI_texture_float,GL_ATI_texture_mirror_once,GL_ATI_vertex_array_object,GL_ATI_vertex_attrib_array_object,GL_ATI_vertex_streams,GL_EXT_422_pixels,GL_EXT_EGL_image_storage,GL_EXT_abgr,GL_EXT_bgra,GL_EXT_bindable_uniform,GL_EXT_blend_color,GL_EXT_blend_equation_separate,GL_EXT_blend_func_separate,GL_EXT_blend_logic_op,GL_EXT_blend_minmax,GL_EXT_blend_subtract,GL_EXT_clip_volume_hint,GL_EXT_cmyka,GL_EXT_color_subtable,GL_EXT_compiled_vertex_array,GL_EXT_convolution,GL_EXT_coordinate_frame,GL_EXT_copy_texture,GL_EXT_cull_vertex,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_depth_bounds_test,GL_EXT_direct_state_access,GL_EXT_draw_buffers2,GL_EXT_draw_instanced,GL_EXT_draw_range_elements,GL_EXT_external_buffer,GL_EXT_fog_coord,GL_EXT_framebuffer_blit,GL_EXT_framebuffer_multisample,GL_EXT_framebuffer_multisample_blit_scaled,GL_EXT_framebuffer_object,GL_EXT_framebuffer_sRGB,GL_EXT_geometry_shader4,GL_EXT_gpu_program_parameters,GL_EXT_gpu_shader4,GL_EXT_histogram,GL_EXT_index_array_formats,GL_EXT_index_func,GL_EXT_index_material,GL_EXT_index_texture,GL_EXT_light_texture,GL_EXT_memory_object,GL_EXT_memory_object_fd,GL_EXT_memory_object_win32,GL_EXT_misc_attribute,GL_EXT_multi_draw_arrays,GL_EXT_multisample,GL_EXT_packed_depth_stencil,GL_EXT_packed_float,GL_EXT_packed_pixels,GL_EXT_paletted_texture,GL_EXT_pixel_buffer_object,GL_EXT_pixel_transform,GL_EXT_pixel_transform_color_table,GL_EXT_point_parameters,GL_EXT_polygon_offset,GL_EXT_polygon_offset_clamp,GL_EXT_post_depth_coverage,GL_EXT_provoking_vertex,GL_EXT_raster_multisample,GL_EXT_rescale_normal,GL_EXT_secondary_color,GL_EXT_semaphore,GL_EXT_semaphore_fd,GL_EXT_semaphore_win32,GL_EXT_separate_shader_objects,GL_EXT_separate_specular_color,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_framebuffer_fetch_non_coherent,GL_EXT_shader_image_load_formatted,GL_EXT_shader_image_load_store,GL_EXT_shader_integer_mix,GL_EXT_shadow_funcs,GL_EXT_shared_texture_palette,GL_EXT_sparse_texture2,GL_EXT_stencil_clear_tag,GL_EXT_stencil_two_side,GL_EXT_stencil_wrap,GL_EXT_subtexture,GL_EXT_texture,GL_EXT_texture3D,GL_EXT_texture_array,GL_EXT_texture_buffer_object,GL_EXT_texture_compression_latc,GL_EXT_texture_compression_rgtc,GL_EXT_texture_compression_s3tc,GL_EXT_texture_cube_map,GL_EXT_texture_env_add,GL_EXT_texture_env_combine,GL_EXT_texture_env_dot3,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_filter_minmax,GL_EXT_texture_integer,GL_EXT_texture_lod_bias,GL_EXT_texture_mirror_clamp,GL_EXT_texture_object,GL_EXT_texture_perturb_normal,GL_EXT_texture_sRGB,GL_EXT_texture_sRGB_decode,GL_EXT_texture_shared_exponent,GL_EXT_texture_snorm,GL_EXT_texture_swizzle,GL_EXT_timer_query,GL_EXT_transform_feedback,GL_EXT_vertex_array,GL_EXT_vertex_array_bgra,GL_EXT_vertex_attrib_64bit,GL_EXT_vertex_shader,GL_EXT_vertex_weighting,GL_EXT_win32_keyed_mutex,GL_EXT_window_rectangles,GL_EXT_x11_sync_object,GL_GREMEDY_frame_terminator,GL_GREMEDY_string_marker,GL_HP_convolution_border_modes,GL_HP_image_transform,GL_HP_occlusion_test,GL_HP_texture_lighting,GL_IBM_cull_vertex,GL_IBM_multimode_draw_arrays,GL_IBM_rasterpos_clip,GL_IBM_static_data,GL_IBM_texture_mirrored_repeat,GL_IBM_vertex_array_lists,GL_INGR_blend_func_separate,GL_INGR_color_clamp,GL_INGR_interlace_read,GL_INTEL_blackhole_render,GL_INTEL_conservative_rasterization,GL_INTEL_fragment_shader_ordering,GL_INTEL_framebuffer_CMAA,GL_INTEL_map_texture,GL_INTEL_parallel_arrays,GL_INTEL_performance_query,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_context_flush_control,GL_KHR_debug,GL_KHR_no_error,GL_KHR_parallel_shader_compile,GL_KHR_robust_buffer_access_behavior,GL_KHR_robustness,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_KHR_texture_compression_astc_sliced_3d,GL_MESAX_texture_stack,GL_MESA_pack_invert,GL_MESA_program_binary_formats,GL_MESA_resize_buffers,GL_MESA_shader_integer_functions,GL_MESA_tile_raster_order,GL_MESA_window_pos,GL_MESA_ycbcr_texture,GL_NVX_blend_equation_advanced_multi_draw_buffers,GL_NVX_conditional_render,GL_NVX_gpu_memory_info,GL_NVX_linked_gpu_multicast,GL_NV_alpha_to_coverage_dither_control,GL_NV_bindless_multi_draw_indirect,GL_NV_bindless_multi_draw_indirect_count,GL_NV_bindless_texture,GL_NV_blend_equation_advanced,GL_NV_blend_equation_advanced_coherent,GL_NV_blend_minmax_factor,GL_NV_blend_square,GL_NV_clip_space_w_scaling,GL_NV_command_list,GL_NV_compute_program5,GL_NV_compute_shader_derivatives,GL_NV_conditional_render,GL_NV_conservative_raster,GL_NV_conservative_raster_dilate,GL_NV_conservative_raster_pre_snap,GL_NV_conservative_raster_pre_snap_triangles,GL_NV_conservative_raster_underestimation,GL_NV_copy_depth_to_color,GL_NV_copy_image,GL_NV_deep_texture3D,GL_NV_depth_buffer_float,GL_NV_depth_clamp,GL_NV_draw_texture,GL_NV_draw_vulkan_image,GL_NV_evaluators,GL_NV_explicit_multisample,GL_NV_fence,GL_NV_fill_rectangle,GL_NV_float_buffer,GL_NV_fog_distance,GL_NV_fragment_coverage_to_color,GL_NV_fragment_program,GL_NV_fragment_program2,GL_NV_fragment_program4,GL_NV_fragment_program_option,GL_NV_fragment_shader_barycentric,GL_NV_fragment_shader_interlock,GL_NV_framebuffer_mixed_samples,GL_NV_framebuffer_multisample_coverage,GL_NV_geometry_program4,GL_NV_geometry_shader4,GL_NV_geometry_shader_passthrough,GL_NV_gpu_multicast,GL_NV_gpu_program4,GL_NV_gpu_program5,GL_NV_gpu_program5_mem_extended,GL_NV_gpu_shader5,GL_NV_half_float,GL_NV_internalformat_sample_query,GL_NV_light_max_exponent,GL_NV_memory_attachment,GL_NV_mesh_shader,GL_NV_multisample_coverage,GL_NV_multisample_filter_hint,GL_NV_occlusion_query,GL_NV_packed_depth_stencil,GL_NV_parameter_buffer_object,GL_NV_parameter_buffer_object2,GL_NV_path_rendering,GL_NV_path_rendering_shared_edge,GL_NV_pixel_data_range,GL_NV_point_sprite,GL_NV_present_video,GL_NV_primitive_restart,GL_NV_query_resource,GL_NV_query_resource_tag,GL_NV_register_combiners,GL_NV_register_combiners2,GL_NV_representative_fragment_test,GL_NV_robustness_video_memory_purge,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,GL_NV_scissor_exclusive,GL_NV_shader_atomic_counters,GL_NV_shader_atomic_float,GL_NV_shader_atomic_float64,GL_NV_shader_atomic_fp16_vector,GL_NV_shader_atomic_int64,GL_NV_shader_buffer_load,GL_NV_shader_buffer_store,GL_NV_shader_storage_buffer_object,GL_NV_shader_texture_footprint,GL_NV_shader_thread_group,GL_NV_shader_thread_shuffle,GL_NV_shading_rate_image,GL_NV_stereo_view_rendering,GL_NV_tessellation_program5,GL_NV_texgen_emboss,GL_NV_texgen_reflection,GL_NV_texture_barrier,GL_NV_texture_compression_vtc,GL_NV_texture_env_combine4,GL_NV_texture_expand_normal,GL_NV_texture_multisample,GL_NV_texture_rectangle,GL_NV_texture_rectangle_compressed,GL_NV_texture_shader,GL_NV_texture_shader2,GL_NV_texture_shader3,GL_NV_transform_feedback,GL_NV_transform_feedback2,GL_NV_uniform_buffer_unified_memory,GL_NV_vdpau_interop,GL_NV_vdpau_interop2,GL_NV_vertex_array_range,GL_NV_vertex_array_range2,GL_NV_vertex_attrib_integer_64bit,GL_NV_vertex_buffer_unified_memory,GL_NV_vertex_program,GL_NV_vertex_program1_1,GL_NV_vertex_program2,GL_NV_vertex_program2_option,GL_NV_vertex_program3,GL_NV_vertex_program4,GL_NV_video_capture,GL_NV_viewport_array2,GL_NV_viewport_swizzle,GL_OES_byte_coordinates,GL_OES_compressed_paletted_texture,GL_OES_fixed_point,GL_OES_query_matrix,GL_OES_read_format,GL_OES_single_precision,GL_OML_interlace,GL_OML_resample,GL_OML_subsample,GL_OVR_multiview,GL_OVR_multiview2,GL_PGI_misc_hints,GL_PGI_vertex_hints,GL_REND_screen_coordinates,GL_S3_s3tc,GL_SGIS_detail_texture,GL_SGIS_fog_function,GL_SGIS_generate_mipmap,GL_SGIS_multisample,GL_SGIS_pixel_texture,GL_SGIS_point_line_texgen,GL_SGIS_point_parameters,GL_SGIS_sharpen_texture,GL_SGIS_texture4D,GL_SGIS_texture_border_clamp,GL_SGIS_texture_color_mask,GL_SGIS_texture_edge_clamp,GL_SGIS_texture_filter4,GL_SGIS_texture_lod,GL_SGIS_texture_select,GL_SGIX_async,GL_SGIX_async_histogram,GL_SGIX_async_pixel,GL_SGIX_blend_alpha_minmax,GL_SGIX_calligraphic_fragment,GL_SGIX_clipmap,GL_SGIX_convolution_accuracy,GL_SGIX_depth_pass_instrument,GL_SGIX_depth_texture,GL_SGIX_flush_raster,GL_SGIX_fog_offset,GL_SGIX_fragment_lighting,GL_SGIX_framezoom,GL_SGIX_igloo_interface,GL_SGIX_instruments,GL_SGIX_interlace,GL_SGIX_ir_instrument1,GL_SGIX_list_priority,GL_SGIX_pixel_texture,GL_SGIX_pixel_tiles,GL_SGIX_polynomial_ffd,GL_SGIX_reference_plane,GL_SGIX_resample,GL_SGIX_scalebias_hint,GL_SGIX_shadow,GL_SGIX_shadow_ambient,GL_SGIX_sprite,GL_SGIX_subsample,GL_SGIX_tag_sample_buffer,GL_SGIX_texture_add_env,GL_SGIX_texture_coordinate_clamp,GL_SGIX_texture_lod_bias,GL_SGIX_texture_multi_buffer,GL_SGIX_texture_scale_bias,GL_SGIX_vertex_preclip,GL_SGIX_ycrcb,GL_SGIX_ycrcb_subsample,GL_SGIX_ycrcba,GL_SGI_color_matrix,GL_SGI_color_table,GL_SGI_texture_color_table,GL_SUNX_constant_data,GL_SUN_convolution_border_modes,GL_SUN_global_alpha,GL_SUN_mesh_array,GL_SUN_slice_accum,GL_SUN_triangle_list,GL_SUN_vertex,GL_WIN_phong_shading,GL_WIN_specular_fog" 615 --profile="compatibility" --api="gl=4.6" --generator="c" --spec="gl" --extensions="GL_3DFX_multisample,GL_3DFX_tbuffer,GL_3DFX_texture_compression_FXT1,GL_AMD_blend_minmax_factor,GL_AMD_conservative_depth,GL_AMD_debug_output,GL_AMD_depth_clamp_separate,GL_AMD_draw_buffers_blend,GL_AMD_framebuffer_multisample_advanced,GL_AMD_framebuffer_sample_positions,GL_AMD_gcn_shader,GL_AMD_gpu_shader_half_float,GL_AMD_gpu_shader_int16,GL_AMD_gpu_shader_int64,GL_AMD_interleaved_elements,GL_AMD_multi_draw_indirect,GL_AMD_name_gen_delete,GL_AMD_occlusion_query_event,GL_AMD_performance_monitor,GL_AMD_pinned_memory,GL_AMD_query_buffer_object,GL_AMD_sample_positions,GL_AMD_seamless_cubemap_per_texture,GL_AMD_shader_atomic_counter_ops,GL_AMD_shader_ballot,GL_AMD_shader_explicit_vertex_parameter,GL_AMD_shader_gpu_shader_half_float_fetch,GL_AMD_shader_image_load_store_lod,GL_AMD_shader_stencil_export,GL_AMD_shader_trinary_minmax,GL_AMD_sparse_texture,GL_AMD_stencil_operation_extended,GL_AMD_texture_gather_bias_lod,GL_AMD_texture_texture4,GL_AMD_transform_feedback3_lines_triangles,GL_AMD_transform_feedback4,GL_AMD_vertex_shader_layer,GL_AMD_vertex_shader_tessellator,GL_AMD_vertex_shader_viewport_index,GL_APPLE_aux_depth_stencil,GL_APPLE_client_storage,GL_APPLE_element_array,GL_APPLE_fence,GL_APPLE_float_pixels,GL_APPLE_flush_buffer_range,GL_APPLE_object_purgeable,GL_APPLE_rgb_422,GL_APPLE_row_bytes,GL_APPLE_specular_vector,GL_APPLE_texture_range,GL_APPLE_transform_hint,GL_APPLE_vertex_array_object,GL_APPLE_vertex_array_range,GL_APPLE_vertex_program_evaluators,GL_APPLE_ycbcr_422,GL_ARB_ES2_compatibility,GL_ARB_ES3_1_compatibility,GL_ARB_ES3_2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_arrays_of_arrays,GL_ARB_base_instance,GL_ARB_bindless_texture,GL_ARB_blend_func_extended,GL_ARB_buffer_storage,GL_ARB_cl_event,GL_ARB_clear_buffer_object,GL_ARB_clear_texture,GL_ARB_clip_control,GL_ARB_color_buffer_float,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_compute_shader,GL_ARB_compute_variable_group_size,GL_ARB_conditional_render_inverted,GL_ARB_conservative_depth,GL_ARB_copy_buffer,GL_ARB_copy_image,GL_ARB_cull_distance,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_derivative_control,GL_ARB_direct_state_access,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_draw_elements_base_vertex,GL_ARB_draw_indirect,GL_ARB_draw_instanced,GL_ARB_enhanced_layouts,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_coord_conventions,GL_ARB_fragment_layer_viewport,GL_ARB_fragment_program,GL_ARB_fragment_program_shadow,GL_ARB_fragment_shader,GL_ARB_fragment_shader_interlock,GL_ARB_framebuffer_no_attachments,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_geometry_shader4,GL_ARB_get_program_binary,GL_ARB_get_texture_sub_image,GL_ARB_gl_spirv,GL_ARB_gpu_shader5,GL_ARB_gpu_shader_fp64,GL_ARB_gpu_shader_int64,GL_ARB_half_float_pixel,GL_ARB_half_float_vertex,GL_ARB_imaging,GL_ARB_indirect_parameters,GL_ARB_instanced_arrays,GL_ARB_internalformat_query,GL_ARB_internalformat_query2,GL_ARB_invalidate_subdata,GL_ARB_map_buffer_alignment,GL_ARB_map_buffer_range,GL_ARB_matrix_palette,GL_ARB_multi_bind,GL_ARB_multi_draw_indirect,GL_ARB_multisample,GL_ARB_multitexture,GL_ARB_occlusion_query,GL_ARB_occlusion_query2,GL_ARB_parallel_shader_compile,GL_ARB_pipeline_statistics_query,GL_ARB_pixel_buffer_object,GL_ARB_point_parameters,GL_ARB_point_sprite,GL_ARB_polygon_offset_clamp,GL_ARB_post_depth_coverage,GL_ARB_program_interface_query,GL_ARB_provoking_vertex,GL_ARB_query_buffer_object,GL_ARB_robust_buffer_access_behavior,GL_ARB_robustness,GL_ARB_robustness_isolation,GL_ARB_sample_locations,GL_ARB_sample_shading,GL_ARB_sampler_objects,GL_ARB_seamless_cube_map,GL_ARB_seamless_cubemap_per_texture,GL_ARB_separate_shader_objects,GL_ARB_shader_atomic_counter_ops,GL_ARB_shader_atomic_counters,GL_ARB_shader_ballot,GL_ARB_shader_bit_encoding,GL_ARB_shader_clock,GL_ARB_shader_draw_parameters,GL_ARB_shader_group_vote,GL_ARB_shader_image_load_store,GL_ARB_shader_image_size,GL_ARB_shader_objects,GL_ARB_shader_precision,GL_ARB_shader_stencil_export,GL_ARB_shader_storage_buffer_object,GL_ARB_shader_subroutine,GL_ARB_shader_texture_image_samples,GL_ARB_shader_texture_lod,GL_ARB_shader_viewport_layer_array,GL_ARB_shading_language_100,GL_ARB_shading_language_420pack,GL_ARB_shading_language_include,GL_ARB_shading_language_packing,GL_ARB_shadow,GL_ARB_shadow_ambient,GL_ARB_sparse_buffer,GL_ARB_sparse_texture,GL_ARB_sparse_texture2,GL_ARB_sparse_texture_clamp,GL_ARB_spirv_extensions,GL_ARB_stencil_texturing,GL_ARB_sync,GL_ARB_tessellation_shader,GL_ARB_texture_barrier,GL_ARB_texture_border_clamp,GL_ARB_texture_buffer_object,GL_ARB_texture_buffer_object_rgb32,GL_ARB_texture_buffer_range,GL_ARB_texture_compression,GL_ARB_texture_compression_bptc,GL_ARB_texture_compression_rgtc,GL_ARB_texture_cube_map,GL_ARB_texture_cube_map_array,GL_ARB_texture_env_add,GL_ARB_texture_env_combine,GL_ARB_texture_env_crossbar,GL_ARB_texture_env_dot3,GL_ARB_texture_filter_anisotropic,GL_ARB_texture_filter_minmax,GL_ARB_texture_float,GL_ARB_texture_gather,GL_ARB_texture_mirror_clamp_to_edge,GL_ARB_texture_mirrored_repeat,GL_ARB_texture_multisample,GL_ARB_texture_non_power_of_two,GL_ARB_texture_query_levels,GL_ARB_texture_query_lod,GL_ARB_texture_rectangle,GL_ARB_texture_rg,GL_ARB_texture_rgb10_a2ui,GL_ARB_texture_stencil8,GL_ARB_texture_storage,GL_ARB_texture_storage_multisample,GL_ARB_texture_swizzle,GL_ARB_texture_view,GL_ARB_timer_query,GL_ARB_transform_feedback2,GL_ARB_transform_feedback3,GL_ARB_transform_feedback_instanced,GL_ARB_transform_feedback_overflow_query,GL_ARB_transpose_matrix,GL_ARB_uniform_buffer_object,GL_ARB_vertex_array_bgra,GL_ARB_vertex_array_object,GL_ARB_vertex_attrib_64bit,GL_ARB_vertex_attrib_binding,GL_ARB_vertex_blend,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_ARB_vertex_type_10f_11f_11f_rev,GL_ARB_vertex_type_2_10_10_10_rev,GL_ARB_viewport_array,GL_ARB_window_pos,GL_ATI_draw_buffers,GL_ATI_element_array,GL_ATI_envmap_bumpmap,GL_ATI_fragment_shader,GL_ATI_map_object_buffer,GL_ATI_meminfo,GL_ATI_pixel_format_float,GL_ATI_pn_triangles,GL_ATI_separate_stencil,GL_ATI_text_fragment_shader,GL_ATI_texture_env_combine3,GL_ATI_texture_float,GL_ATI_texture_mirror_once,GL_ATI_vertex_array_object,GL_ATI_vertex_attrib_array_object,GL_ATI_vertex_streams,GL_EXT_422_pixels,GL_EXT_EGL_image_storage,GL_EXT_abgr,GL_EXT_bgra,GL_EXT_bindable_uniform,GL_EXT_blend_color,GL_EXT_blend_equation_separate,GL_EXT_blend_func_separate,GL_EXT_blend_logic_op,GL_EXT_blend_minmax,GL_EXT_blend_subtract,GL_EXT_clip_volume_hint,GL_EXT_cmyka,GL_EXT_color_subtable,GL_EXT_compiled_vertex_array,GL_EXT_convolution,GL_EXT_coordinate_frame,GL_EXT_copy_texture,GL_EXT_cull_vertex,GL_EXT_debug_label,GL_EXT_debug_marker,GL_EXT_depth_bounds_test,GL_EXT_direct_state_access,GL_EXT_draw_buffers2,GL_EXT_draw_instanced,GL_EXT_draw_range_elements,GL_EXT_external_buffer,GL_EXT_fog_coord,GL_EXT_framebuffer_blit,GL_EXT_framebuffer_multisample,GL_EXT_framebuffer_multisample_blit_scaled,GL_EXT_framebuffer_object,GL_EXT_framebuffer_sRGB,GL_EXT_geometry_shader4,GL_EXT_gpu_program_parameters,GL_EXT_gpu_shader4,GL_EXT_histogram,GL_EXT_index_array_formats,GL_EXT_index_func,GL_EXT_index_material,GL_EXT_index_texture,GL_EXT_light_texture,GL_EXT_memory_object,GL_EXT_memory_object_fd,GL_EXT_memory_object_win32,GL_EXT_misc_attribute,GL_EXT_multi_draw_arrays,GL_EXT_multisample,GL_EXT_packed_depth_stencil,GL_EXT_packed_float,GL_EXT_packed_pixels,GL_EXT_paletted_texture,GL_EXT_pixel_buffer_object,GL_EXT_pixel_transform,GL_EXT_pixel_transform_color_table,GL_EXT_point_parameters,GL_EXT_polygon_offset,GL_EXT_polygon_offset_clamp,GL_EXT_post_depth_coverage,GL_EXT_provoking_vertex,GL_EXT_raster_multisample,GL_EXT_rescale_normal,GL_EXT_secondary_color,GL_EXT_semaphore,GL_EXT_semaphore_fd,GL_EXT_semaphore_win32,GL_EXT_separate_shader_objects,GL_EXT_separate_specular_color,GL_EXT_shader_framebuffer_fetch,GL_EXT_shader_framebuffer_fetch_non_coherent,GL_EXT_shader_image_load_formatted,GL_EXT_shader_image_load_store,GL_EXT_shader_integer_mix,GL_EXT_shadow_funcs,GL_EXT_shared_texture_palette,GL_EXT_sparse_texture2,GL_EXT_stencil_clear_tag,GL_EXT_stencil_two_side,GL_EXT_stencil_wrap,GL_EXT_subtexture,GL_EXT_texture,GL_EXT_texture3D,GL_EXT_texture_array,GL_EXT_texture_buffer_object,GL_EXT_texture_compression_latc,GL_EXT_texture_compression_rgtc,GL_EXT_texture_compression_s3tc,GL_EXT_texture_cube_map,GL_EXT_texture_env_add,GL_EXT_texture_env_combine,GL_EXT_texture_env_dot3,GL_EXT_texture_filter_anisotropic,GL_EXT_texture_filter_minmax,GL_EXT_texture_integer,GL_EXT_texture_lod_bias,GL_EXT_texture_mirror_clamp,GL_EXT_texture_object,GL_EXT_texture_perturb_normal,GL_EXT_texture_sRGB,GL_EXT_texture_sRGB_R8,GL_EXT_texture_sRGB_decode,GL_EXT_texture_shared_exponent,GL_EXT_texture_snorm,GL_EXT_texture_swizzle,GL_EXT_timer_query,GL_EXT_transform_feedback,GL_EXT_vertex_array,GL_EXT_vertex_array_bgra,GL_EXT_vertex_attrib_64bit,GL_EXT_vertex_shader,GL_EXT_vertex_weighting,GL_EXT_win32_keyed_mutex,GL_EXT_window_rectangles,GL_EXT_x11_sync_object,GL_GREMEDY_frame_terminator,GL_GREMEDY_string_marker,GL_HP_convolution_border_modes,GL_HP_image_transform,GL_HP_occlusion_test,GL_HP_texture_lighting,GL_IBM_cull_vertex,GL_IBM_multimode_draw_arrays,GL_IBM_rasterpos_clip,GL_IBM_static_data,GL_IBM_texture_mirrored_repeat,GL_IBM_vertex_array_lists,GL_INGR_blend_func_separate,GL_INGR_color_clamp,GL_INGR_interlace_read,GL_INTEL_blackhole_render,GL_INTEL_conservative_rasterization,GL_INTEL_fragment_shader_ordering,GL_INTEL_framebuffer_CMAA,GL_INTEL_map_texture,GL_INTEL_parallel_arrays,GL_INTEL_performance_query,GL_KHR_blend_equation_advanced,GL_KHR_blend_equation_advanced_coherent,GL_KHR_context_flush_control,GL_KHR_debug,GL_KHR_no_error,GL_KHR_parallel_shader_compile,GL_KHR_robust_buffer_access_behavior,GL_KHR_robustness,GL_KHR_texture_compression_astc_hdr,GL_KHR_texture_compression_astc_ldr,GL_KHR_texture_compression_astc_sliced_3d,GL_MESAX_texture_stack,GL_MESA_pack_invert,GL_MESA_program_binary_formats,GL_MESA_resize_buffers,GL_MESA_shader_integer_functions,GL_MESA_tile_raster_order,GL_MESA_window_pos,GL_MESA_ycbcr_texture,GL_NVX_blend_equation_advanced_multi_draw_buffers,GL_NVX_conditional_render,GL_NVX_gpu_memory_info,GL_NVX_linked_gpu_multicast,GL_NV_alpha_to_coverage_dither_control,GL_NV_bindless_multi_draw_indirect,GL_NV_bindless_multi_draw_indirect_count,GL_NV_bindless_texture,GL_NV_blend_equation_advanced,GL_NV_blend_equation_advanced_coherent,GL_NV_blend_minmax_factor,GL_NV_blend_square,GL_NV_clip_space_w_scaling,GL_NV_command_list,GL_NV_compute_program5,GL_NV_compute_shader_derivatives,GL_NV_conditional_render,GL_NV_conservative_raster,GL_NV_conservative_raster_dilate,GL_NV_conservative_raster_pre_snap,GL_NV_conservative_raster_pre_snap_triangles,GL_NV_conservative_raster_underestimation,GL_NV_copy_depth_to_color,GL_NV_copy_image,GL_NV_deep_texture3D,GL_NV_depth_buffer_float,GL_NV_depth_clamp,GL_NV_draw_texture,GL_NV_draw_vulkan_image,GL_NV_evaluators,GL_NV_explicit_multisample,GL_NV_fence,GL_NV_fill_rectangle,GL_NV_float_buffer,GL_NV_fog_distance,GL_NV_fragment_coverage_to_color,GL_NV_fragment_program,GL_NV_fragment_program2,GL_NV_fragment_program4,GL_NV_fragment_program_option,GL_NV_fragment_shader_barycentric,GL_NV_fragment_shader_interlock,GL_NV_framebuffer_mixed_samples,GL_NV_framebuffer_multisample_coverage,GL_NV_geometry_program4,GL_NV_geometry_shader4,GL_NV_geometry_shader_passthrough,GL_NV_gpu_multicast,GL_NV_gpu_program4,GL_NV_gpu_program5,GL_NV_gpu_program5_mem_extended,GL_NV_gpu_shader5,GL_NV_half_float,GL_NV_internalformat_sample_query,GL_NV_light_max_exponent,GL_NV_memory_attachment,GL_NV_mesh_shader,GL_NV_multisample_coverage,GL_NV_multisample_filter_hint,GL_NV_occlusion_query,GL_NV_packed_depth_stencil,GL_NV_parameter_buffer_object,GL_NV_parameter_buffer_object2,GL_NV_path_rendering,GL_NV_path_rendering_shared_edge,GL_NV_pixel_data_range,GL_NV_point_sprite,GL_NV_present_video,GL_NV_primitive_restart,GL_NV_query_resource,GL_NV_query_resource_tag,GL_NV_register_combiners,GL_NV_register_combiners2,GL_NV_representative_fragment_test,GL_NV_robustness_video_memory_purge,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,GL_NV_scissor_exclusive,GL_NV_shader_atomic_counters,GL_NV_shader_atomic_float,GL_NV_shader_atomic_float64,GL_NV_shader_atomic_fp16_vector,GL_NV_shader_atomic_int64,GL_NV_shader_buffer_load,GL_NV_shader_buffer_store,GL_NV_shader_storage_buffer_object,GL_NV_shader_texture_footprint,GL_NV_shader_thread_group,GL_NV_shader_thread_shuffle,GL_NV_shading_rate_image,GL_NV_stereo_view_rendering,GL_NV_tessellation_program5,GL_NV_texgen_emboss,GL_NV_texgen_reflection,GL_NV_texture_barrier,GL_NV_texture_compression_vtc,GL_NV_texture_env_combine4,GL_NV_texture_expand_normal,GL_NV_texture_multisample,GL_NV_texture_rectangle,GL_NV_texture_rectangle_compressed,GL_NV_texture_shader,GL_NV_texture_shader2,GL_NV_texture_shader3,GL_NV_transform_feedback,GL_NV_transform_feedback2,GL_NV_uniform_buffer_unified_memory,GL_NV_vdpau_interop,GL_NV_vdpau_interop2,GL_NV_vertex_array_range,GL_NV_vertex_array_range2,GL_NV_vertex_attrib_integer_64bit,GL_NV_vertex_buffer_unified_memory,GL_NV_vertex_program,GL_NV_vertex_program1_1,GL_NV_vertex_program2,GL_NV_vertex_program2_option,GL_NV_vertex_program3,GL_NV_vertex_program4,GL_NV_video_capture,GL_NV_viewport_array2,GL_NV_viewport_swizzle,GL_OES_byte_coordinates,GL_OES_compressed_paletted_texture,GL_OES_fixed_point,GL_OES_query_matrix,GL_OES_read_format,GL_OES_single_precision,GL_OML_interlace,GL_OML_resample,GL_OML_subsample,GL_OVR_multiview,GL_OVR_multiview2,GL_PGI_misc_hints,GL_PGI_vertex_hints,GL_REND_screen_coordinates,GL_S3_s3tc,GL_SGIS_detail_texture,GL_SGIS_fog_function,GL_SGIS_generate_mipmap,GL_SGIS_multisample,GL_SGIS_pixel_texture,GL_SGIS_point_line_texgen,GL_SGIS_point_parameters,GL_SGIS_sharpen_texture,GL_SGIS_texture4D,GL_SGIS_texture_border_clamp,GL_SGIS_texture_color_mask,GL_SGIS_texture_edge_clamp,GL_SGIS_texture_filter4,GL_SGIS_texture_lod,GL_SGIS_texture_select,GL_SGIX_async,GL_SGIX_async_histogram,GL_SGIX_async_pixel,GL_SGIX_blend_alpha_minmax,GL_SGIX_calligraphic_fragment,GL_SGIX_clipmap,GL_SGIX_convolution_accuracy,GL_SGIX_depth_pass_instrument,GL_SGIX_depth_texture,GL_SGIX_flush_raster,GL_SGIX_fog_offset,GL_SGIX_fragment_lighting,GL_SGIX_framezoom,GL_SGIX_igloo_interface,GL_SGIX_instruments,GL_SGIX_interlace,GL_SGIX_ir_instrument1,GL_SGIX_list_priority,GL_SGIX_pixel_texture,GL_SGIX_pixel_tiles,GL_SGIX_polynomial_ffd,GL_SGIX_reference_plane,GL_SGIX_resample,GL_SGIX_scalebias_hint,GL_SGIX_shadow,GL_SGIX_shadow_ambient,GL_SGIX_sprite,GL_SGIX_subsample,GL_SGIX_tag_sample_buffer,GL_SGIX_texture_add_env,GL_SGIX_texture_coordinate_clamp,GL_SGIX_texture_lod_bias,GL_SGIX_texture_multi_buffer,GL_SGIX_texture_scale_bias,GL_SGIX_vertex_preclip,GL_SGIX_ycrcb,GL_SGIX_ycrcb_subsample,GL_SGIX_ycrcba,GL_SGI_color_matrix,GL_SGI_color_table,GL_SGI_texture_color_table,GL_SUNX_constant_data,GL_SUN_convolution_border_modes,GL_SUN_global_alpha,GL_SUN_mesh_array,GL_SUN_slice_accum,GL_SUN_triangle_list,GL_SUN_vertex,GL_WIN_phong_shading,GL_WIN_specular_fog"
615 Online: 616 Online:
616 Too many extensions 617 Too many extensions
617*/ 618*/
@@ -775,11 +776,7 @@ static int get_exts(void) {
775 num_exts_i = 0; 776 num_exts_i = 0;
776 glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i); 777 glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i);
777 if (num_exts_i > 0) { 778 if (num_exts_i > 0) {
778 char **tmp_exts_i = (char **)realloc((void *)exts_i, (size_t)num_exts_i * (sizeof *exts_i)); 779 exts_i = (char **)malloc((size_t)num_exts_i * (sizeof *exts_i));
779 if (tmp_exts_i == NULL) {
780 return 0;
781 }
782 exts_i = tmp_exts_i;
783 } 780 }
784 781
785 if (exts_i == NULL) { 782 if (exts_i == NULL) {
@@ -869,9 +866,17 @@ int GLAD_GL_VERSION_4_0 = 0;
869int GLAD_GL_VERSION_4_1 = 0; 866int GLAD_GL_VERSION_4_1 = 0;
870int GLAD_GL_VERSION_4_2 = 0; 867int GLAD_GL_VERSION_4_2 = 0;
871int GLAD_GL_VERSION_4_3 = 0; 868int GLAD_GL_VERSION_4_3 = 0;
869int GLAD_GL_VERSION_4_4 = 0;
870int GLAD_GL_VERSION_4_5 = 0;
871int GLAD_GL_VERSION_4_6 = 0;
872PFNGLACCUMPROC glad_glAccum = NULL;
872PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram = NULL; 873PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram = NULL;
873PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL; 874PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL;
875PFNGLALPHAFUNCPROC glad_glAlphaFunc = NULL;
876PFNGLARETEXTURESRESIDENTPROC glad_glAreTexturesResident = NULL;
877PFNGLARRAYELEMENTPROC glad_glArrayElement = NULL;
874PFNGLATTACHSHADERPROC glad_glAttachShader = NULL; 878PFNGLATTACHSHADERPROC glad_glAttachShader = NULL;
879PFNGLBEGINPROC glad_glBegin = NULL;
875PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender = NULL; 880PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender = NULL;
876PFNGLBEGINQUERYPROC glad_glBeginQuery = NULL; 881PFNGLBEGINQUERYPROC glad_glBeginQuery = NULL;
877PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed = NULL; 882PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed = NULL;
@@ -880,17 +885,25 @@ PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL;
880PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL; 885PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL;
881PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase = NULL; 886PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase = NULL;
882PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange = NULL; 887PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange = NULL;
888PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase = NULL;
889PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange = NULL;
883PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation = NULL; 890PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation = NULL;
884PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed = NULL; 891PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed = NULL;
885PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL; 892PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL;
886PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture = NULL; 893PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture = NULL;
894PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures = NULL;
887PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline = NULL; 895PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline = NULL;
888PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL; 896PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL;
889PFNGLBINDSAMPLERPROC glad_glBindSampler = NULL; 897PFNGLBINDSAMPLERPROC glad_glBindSampler = NULL;
898PFNGLBINDSAMPLERSPROC glad_glBindSamplers = NULL;
890PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL; 899PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL;
900PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit = NULL;
901PFNGLBINDTEXTURESPROC glad_glBindTextures = NULL;
891PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback = NULL; 902PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback = NULL;
892PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray = NULL; 903PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray = NULL;
893PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer = NULL; 904PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer = NULL;
905PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers = NULL;
906PFNGLBITMAPPROC glad_glBitmap = NULL;
894PFNGLBLENDCOLORPROC glad_glBlendColor = NULL; 907PFNGLBLENDCOLORPROC glad_glBlendColor = NULL;
895PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL; 908PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL;
896PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL; 909PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL;
@@ -901,11 +914,17 @@ PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL;
901PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei = NULL; 914PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei = NULL;
902PFNGLBLENDFUNCIPROC glad_glBlendFunci = NULL; 915PFNGLBLENDFUNCIPROC glad_glBlendFunci = NULL;
903PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer = NULL; 916PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer = NULL;
917PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer = NULL;
904PFNGLBUFFERDATAPROC glad_glBufferData = NULL; 918PFNGLBUFFERDATAPROC glad_glBufferData = NULL;
919PFNGLBUFFERSTORAGEPROC glad_glBufferStorage = NULL;
905PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL; 920PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL;
921PFNGLCALLLISTPROC glad_glCallList = NULL;
922PFNGLCALLLISTSPROC glad_glCallLists = NULL;
906PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL; 923PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL;
924PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus = NULL;
907PFNGLCLAMPCOLORPROC glad_glClampColor = NULL; 925PFNGLCLAMPCOLORPROC glad_glClampColor = NULL;
908PFNGLCLEARPROC glad_glClear = NULL; 926PFNGLCLEARPROC glad_glClear = NULL;
927PFNGLCLEARACCUMPROC glad_glClearAccum = NULL;
909PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData = NULL; 928PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData = NULL;
910PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData = NULL; 929PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData = NULL;
911PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi = NULL; 930PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi = NULL;
@@ -915,14 +934,60 @@ PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv = NULL;
915PFNGLCLEARCOLORPROC glad_glClearColor = NULL; 934PFNGLCLEARCOLORPROC glad_glClearColor = NULL;
916PFNGLCLEARDEPTHPROC glad_glClearDepth = NULL; 935PFNGLCLEARDEPTHPROC glad_glClearDepth = NULL;
917PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL; 936PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL;
937PFNGLCLEARINDEXPROC glad_glClearIndex = NULL;
938PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData = NULL;
939PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData = NULL;
940PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi = NULL;
941PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv = NULL;
942PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv = NULL;
943PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv = NULL;
918PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL; 944PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL;
945PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage = NULL;
946PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage = NULL;
947PFNGLCLIENTACTIVETEXTUREPROC glad_glClientActiveTexture = NULL;
919PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync = NULL; 948PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync = NULL;
949PFNGLCLIPCONTROLPROC glad_glClipControl = NULL;
950PFNGLCLIPPLANEPROC glad_glClipPlane = NULL;
951PFNGLCOLOR3BPROC glad_glColor3b = NULL;
952PFNGLCOLOR3BVPROC glad_glColor3bv = NULL;
953PFNGLCOLOR3DPROC glad_glColor3d = NULL;
954PFNGLCOLOR3DVPROC glad_glColor3dv = NULL;
955PFNGLCOLOR3FPROC glad_glColor3f = NULL;
956PFNGLCOLOR3FVPROC glad_glColor3fv = NULL;
957PFNGLCOLOR3IPROC glad_glColor3i = NULL;
958PFNGLCOLOR3IVPROC glad_glColor3iv = NULL;
959PFNGLCOLOR3SPROC glad_glColor3s = NULL;
960PFNGLCOLOR3SVPROC glad_glColor3sv = NULL;
961PFNGLCOLOR3UBPROC glad_glColor3ub = NULL;
962PFNGLCOLOR3UBVPROC glad_glColor3ubv = NULL;
963PFNGLCOLOR3UIPROC glad_glColor3ui = NULL;
964PFNGLCOLOR3UIVPROC glad_glColor3uiv = NULL;
965PFNGLCOLOR3USPROC glad_glColor3us = NULL;
966PFNGLCOLOR3USVPROC glad_glColor3usv = NULL;
967PFNGLCOLOR4BPROC glad_glColor4b = NULL;
968PFNGLCOLOR4BVPROC glad_glColor4bv = NULL;
969PFNGLCOLOR4DPROC glad_glColor4d = NULL;
970PFNGLCOLOR4DVPROC glad_glColor4dv = NULL;
971PFNGLCOLOR4FPROC glad_glColor4f = NULL;
972PFNGLCOLOR4FVPROC glad_glColor4fv = NULL;
973PFNGLCOLOR4IPROC glad_glColor4i = NULL;
974PFNGLCOLOR4IVPROC glad_glColor4iv = NULL;
975PFNGLCOLOR4SPROC glad_glColor4s = NULL;
976PFNGLCOLOR4SVPROC glad_glColor4sv = NULL;
977PFNGLCOLOR4UBPROC glad_glColor4ub = NULL;
978PFNGLCOLOR4UBVPROC glad_glColor4ubv = NULL;
979PFNGLCOLOR4UIPROC glad_glColor4ui = NULL;
980PFNGLCOLOR4UIVPROC glad_glColor4uiv = NULL;
981PFNGLCOLOR4USPROC glad_glColor4us = NULL;
982PFNGLCOLOR4USVPROC glad_glColor4usv = NULL;
920PFNGLCOLORMASKPROC glad_glColorMask = NULL; 983PFNGLCOLORMASKPROC glad_glColorMask = NULL;
921PFNGLCOLORMASKIPROC glad_glColorMaski = NULL; 984PFNGLCOLORMASKIPROC glad_glColorMaski = NULL;
985PFNGLCOLORMATERIALPROC glad_glColorMaterial = NULL;
922PFNGLCOLORP3UIPROC glad_glColorP3ui = NULL; 986PFNGLCOLORP3UIPROC glad_glColorP3ui = NULL;
923PFNGLCOLORP3UIVPROC glad_glColorP3uiv = NULL; 987PFNGLCOLORP3UIVPROC glad_glColorP3uiv = NULL;
924PFNGLCOLORP4UIPROC glad_glColorP4ui = NULL; 988PFNGLCOLORP4UIPROC glad_glColorP4ui = NULL;
925PFNGLCOLORP4UIVPROC glad_glColorP4uiv = NULL; 989PFNGLCOLORP4UIVPROC glad_glColorP4uiv = NULL;
990PFNGLCOLORPOINTERPROC glad_glColorPointer = NULL;
926PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL; 991PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL;
927PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D = NULL; 992PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D = NULL;
928PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL; 993PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL;
@@ -930,22 +995,40 @@ PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D = NULL;
930PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D = NULL; 995PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D = NULL;
931PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL; 996PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL;
932PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D = NULL; 997PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D = NULL;
998PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D = NULL;
999PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D = NULL;
1000PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D = NULL;
933PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData = NULL; 1001PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData = NULL;
934PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData = NULL; 1002PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData = NULL;
1003PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData = NULL;
1004PFNGLCOPYPIXELSPROC glad_glCopyPixels = NULL;
935PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D = NULL; 1005PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D = NULL;
936PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL; 1006PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL;
937PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D = NULL; 1007PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D = NULL;
938PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL; 1008PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL;
939PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D = NULL; 1009PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D = NULL;
1010PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D = NULL;
1011PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D = NULL;
1012PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D = NULL;
1013PFNGLCREATEBUFFERSPROC glad_glCreateBuffers = NULL;
1014PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers = NULL;
940PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL; 1015PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL;
1016PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines = NULL;
1017PFNGLCREATEQUERIESPROC glad_glCreateQueries = NULL;
1018PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers = NULL;
1019PFNGLCREATESAMPLERSPROC glad_glCreateSamplers = NULL;
941PFNGLCREATESHADERPROC glad_glCreateShader = NULL; 1020PFNGLCREATESHADERPROC glad_glCreateShader = NULL;
942PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv = NULL; 1021PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv = NULL;
1022PFNGLCREATETEXTURESPROC glad_glCreateTextures = NULL;
1023PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks = NULL;
1024PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays = NULL;
943PFNGLCULLFACEPROC glad_glCullFace = NULL; 1025PFNGLCULLFACEPROC glad_glCullFace = NULL;
944PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback = NULL; 1026PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback = NULL;
945PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl = NULL; 1027PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl = NULL;
946PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert = NULL; 1028PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert = NULL;
947PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL; 1029PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL;
948PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL; 1030PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL;
1031PFNGLDELETELISTSPROC glad_glDeleteLists = NULL;
949PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL; 1032PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL;
950PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines = NULL; 1033PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines = NULL;
951PFNGLDELETEQUERIESPROC glad_glDeleteQueries = NULL; 1034PFNGLDELETEQUERIESPROC glad_glDeleteQueries = NULL;
@@ -964,6 +1047,8 @@ PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed = NULL;
964PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL; 1047PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL;
965PFNGLDETACHSHADERPROC glad_glDetachShader = NULL; 1048PFNGLDETACHSHADERPROC glad_glDetachShader = NULL;
966PFNGLDISABLEPROC glad_glDisable = NULL; 1049PFNGLDISABLEPROC glad_glDisable = NULL;
1050PFNGLDISABLECLIENTSTATEPROC glad_glDisableClientState = NULL;
1051PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib = NULL;
967PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL; 1052PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL;
968PFNGLDISABLEIPROC glad_glDisablei = NULL; 1053PFNGLDISABLEIPROC glad_glDisablei = NULL;
969PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute = NULL; 1054PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute = NULL;
@@ -981,23 +1066,54 @@ PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced = NULL;
981PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance = NULL; 1066PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance = NULL;
982PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex = NULL; 1067PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex = NULL;
983PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance = NULL; 1068PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance = NULL;
1069PFNGLDRAWPIXELSPROC glad_glDrawPixels = NULL;
984PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements = NULL; 1070PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements = NULL;
985PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex = NULL; 1071PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex = NULL;
986PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback = NULL; 1072PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback = NULL;
987PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced = NULL; 1073PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced = NULL;
988PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream = NULL; 1074PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream = NULL;
989PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced = NULL; 1075PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced = NULL;
1076PFNGLEDGEFLAGPROC glad_glEdgeFlag = NULL;
1077PFNGLEDGEFLAGPOINTERPROC glad_glEdgeFlagPointer = NULL;
1078PFNGLEDGEFLAGVPROC glad_glEdgeFlagv = NULL;
990PFNGLENABLEPROC glad_glEnable = NULL; 1079PFNGLENABLEPROC glad_glEnable = NULL;
1080PFNGLENABLECLIENTSTATEPROC glad_glEnableClientState = NULL;
1081PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib = NULL;
991PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL; 1082PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL;
992PFNGLENABLEIPROC glad_glEnablei = NULL; 1083PFNGLENABLEIPROC glad_glEnablei = NULL;
1084PFNGLENDPROC glad_glEnd = NULL;
993PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender = NULL; 1085PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender = NULL;
1086PFNGLENDLISTPROC glad_glEndList = NULL;
994PFNGLENDQUERYPROC glad_glEndQuery = NULL; 1087PFNGLENDQUERYPROC glad_glEndQuery = NULL;
995PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed = NULL; 1088PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed = NULL;
996PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback = NULL; 1089PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback = NULL;
1090PFNGLEVALCOORD1DPROC glad_glEvalCoord1d = NULL;
1091PFNGLEVALCOORD1DVPROC glad_glEvalCoord1dv = NULL;
1092PFNGLEVALCOORD1FPROC glad_glEvalCoord1f = NULL;
1093PFNGLEVALCOORD1FVPROC glad_glEvalCoord1fv = NULL;
1094PFNGLEVALCOORD2DPROC glad_glEvalCoord2d = NULL;
1095PFNGLEVALCOORD2DVPROC glad_glEvalCoord2dv = NULL;
1096PFNGLEVALCOORD2FPROC glad_glEvalCoord2f = NULL;
1097PFNGLEVALCOORD2FVPROC glad_glEvalCoord2fv = NULL;
1098PFNGLEVALMESH1PROC glad_glEvalMesh1 = NULL;
1099PFNGLEVALMESH2PROC glad_glEvalMesh2 = NULL;
1100PFNGLEVALPOINT1PROC glad_glEvalPoint1 = NULL;
1101PFNGLEVALPOINT2PROC glad_glEvalPoint2 = NULL;
1102PFNGLFEEDBACKBUFFERPROC glad_glFeedbackBuffer = NULL;
997PFNGLFENCESYNCPROC glad_glFenceSync = NULL; 1103PFNGLFENCESYNCPROC glad_glFenceSync = NULL;
998PFNGLFINISHPROC glad_glFinish = NULL; 1104PFNGLFINISHPROC glad_glFinish = NULL;
999PFNGLFLUSHPROC glad_glFlush = NULL; 1105PFNGLFLUSHPROC glad_glFlush = NULL;
1000PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange = NULL; 1106PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange = NULL;
1107PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange = NULL;
1108PFNGLFOGCOORDPOINTERPROC glad_glFogCoordPointer = NULL;
1109PFNGLFOGCOORDDPROC glad_glFogCoordd = NULL;
1110PFNGLFOGCOORDDVPROC glad_glFogCoorddv = NULL;
1111PFNGLFOGCOORDFPROC glad_glFogCoordf = NULL;
1112PFNGLFOGCOORDFVPROC glad_glFogCoordfv = NULL;
1113PFNGLFOGFPROC glad_glFogf = NULL;
1114PFNGLFOGFVPROC glad_glFogfv = NULL;
1115PFNGLFOGIPROC glad_glFogi = NULL;
1116PFNGLFOGIVPROC glad_glFogiv = NULL;
1001PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri = NULL; 1117PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri = NULL;
1002PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL; 1118PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL;
1003PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture = NULL; 1119PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture = NULL;
@@ -1006,8 +1122,10 @@ PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL;
1006PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D = NULL; 1122PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D = NULL;
1007PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer = NULL; 1123PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer = NULL;
1008PFNGLFRONTFACEPROC glad_glFrontFace = NULL; 1124PFNGLFRONTFACEPROC glad_glFrontFace = NULL;
1125PFNGLFRUSTUMPROC glad_glFrustum = NULL;
1009PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL; 1126PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL;
1010PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL; 1127PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL;
1128PFNGLGENLISTSPROC glad_glGenLists = NULL;
1011PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines = NULL; 1129PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines = NULL;
1012PFNGLGENQUERIESPROC glad_glGenQueries = NULL; 1130PFNGLGENQUERIESPROC glad_glGenQueries = NULL;
1013PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL; 1131PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL;
@@ -1016,6 +1134,7 @@ PFNGLGENTEXTURESPROC glad_glGenTextures = NULL;
1016PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks = NULL; 1134PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks = NULL;
1017PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays = NULL; 1135PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays = NULL;
1018PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL; 1136PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL;
1137PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap = NULL;
1019PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv = NULL; 1138PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv = NULL;
1020PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL; 1139PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL;
1021PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName = NULL; 1140PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName = NULL;
@@ -1034,7 +1153,10 @@ PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v = NULL;
1034PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL; 1153PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL;
1035PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv = NULL; 1154PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv = NULL;
1036PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData = NULL; 1155PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData = NULL;
1156PFNGLGETCLIPPLANEPROC glad_glGetClipPlane = NULL;
1037PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage = NULL; 1157PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage = NULL;
1158PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage = NULL;
1159PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage = NULL;
1038PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog = NULL; 1160PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog = NULL;
1039PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v = NULL; 1161PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v = NULL;
1040PFNGLGETDOUBLEVPROC glad_glGetDoublev = NULL; 1162PFNGLGETDOUBLEVPROC glad_glGetDoublev = NULL;
@@ -1045,16 +1167,35 @@ PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex = NULL;
1045PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL; 1167PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL;
1046PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL; 1168PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL;
1047PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv = NULL; 1169PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv = NULL;
1170PFNGLGETGRAPHICSRESETSTATUSPROC glad_glGetGraphicsResetStatus = NULL;
1048PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL; 1171PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL;
1049PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL; 1172PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL;
1050PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL; 1173PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL;
1051PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL; 1174PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL;
1052PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v = NULL; 1175PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v = NULL;
1053PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ = NULL; 1176PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ = NULL;
1177PFNGLGETLIGHTFVPROC glad_glGetLightfv = NULL;
1178PFNGLGETLIGHTIVPROC glad_glGetLightiv = NULL;
1179PFNGLGETMAPDVPROC glad_glGetMapdv = NULL;
1180PFNGLGETMAPFVPROC glad_glGetMapfv = NULL;
1181PFNGLGETMAPIVPROC glad_glGetMapiv = NULL;
1182PFNGLGETMATERIALFVPROC glad_glGetMaterialfv = NULL;
1183PFNGLGETMATERIALIVPROC glad_glGetMaterialiv = NULL;
1054PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv = NULL; 1184PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv = NULL;
1185PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v = NULL;
1186PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv = NULL;
1187PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv = NULL;
1188PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData = NULL;
1189PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv = NULL;
1190PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv = NULL;
1191PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv = NULL;
1055PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel = NULL; 1192PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel = NULL;
1056PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel = NULL; 1193PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel = NULL;
1194PFNGLGETPIXELMAPFVPROC glad_glGetPixelMapfv = NULL;
1195PFNGLGETPIXELMAPUIVPROC glad_glGetPixelMapuiv = NULL;
1196PFNGLGETPIXELMAPUSVPROC glad_glGetPixelMapusv = NULL;
1057PFNGLGETPOINTERVPROC glad_glGetPointerv = NULL; 1197PFNGLGETPOINTERVPROC glad_glGetPointerv = NULL;
1198PFNGLGETPOLYGONSTIPPLEPROC glad_glGetPolygonStipple = NULL;
1058PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary = NULL; 1199PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary = NULL;
1059PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL; 1200PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL;
1060PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv = NULL; 1201PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv = NULL;
@@ -1067,6 +1208,10 @@ PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName = NULL;
1067PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv = NULL; 1208PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv = NULL;
1068PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv = NULL; 1209PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv = NULL;
1069PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL; 1210PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL;
1211PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v = NULL;
1212PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv = NULL;
1213PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v = NULL;
1214PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv = NULL;
1070PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv = NULL; 1215PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv = NULL;
1071PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v = NULL; 1216PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v = NULL;
1072PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv = NULL; 1217PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv = NULL;
@@ -1087,6 +1232,11 @@ PFNGLGETSTRINGIPROC glad_glGetStringi = NULL;
1087PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex = NULL; 1232PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex = NULL;
1088PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation = NULL; 1233PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation = NULL;
1089PFNGLGETSYNCIVPROC glad_glGetSynciv = NULL; 1234PFNGLGETSYNCIVPROC glad_glGetSynciv = NULL;
1235PFNGLGETTEXENVFVPROC glad_glGetTexEnvfv = NULL;
1236PFNGLGETTEXENVIVPROC glad_glGetTexEnviv = NULL;
1237PFNGLGETTEXGENDVPROC glad_glGetTexGendv = NULL;
1238PFNGLGETTEXGENFVPROC glad_glGetTexGenfv = NULL;
1239PFNGLGETTEXGENIVPROC glad_glGetTexGeniv = NULL;
1090PFNGLGETTEXIMAGEPROC glad_glGetTexImage = NULL; 1240PFNGLGETTEXIMAGEPROC glad_glGetTexImage = NULL;
1091PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv = NULL; 1241PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv = NULL;
1092PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv = NULL; 1242PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv = NULL;
@@ -1094,7 +1244,18 @@ PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv = NULL;
1094PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv = NULL; 1244PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv = NULL;
1095PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL; 1245PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL;
1096PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL; 1246PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL;
1247PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage = NULL;
1248PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv = NULL;
1249PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv = NULL;
1250PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv = NULL;
1251PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv = NULL;
1252PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv = NULL;
1253PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv = NULL;
1254PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage = NULL;
1097PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL; 1255PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL;
1256PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v = NULL;
1257PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v = NULL;
1258PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv = NULL;
1098PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex = NULL; 1259PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex = NULL;
1099PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices = NULL; 1260PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices = NULL;
1100PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL; 1261PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL;
@@ -1103,6 +1264,9 @@ PFNGLGETUNIFORMDVPROC glad_glGetUniformdv = NULL;
1103PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL; 1264PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL;
1104PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL; 1265PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL;
1105PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv = NULL; 1266PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv = NULL;
1267PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv = NULL;
1268PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv = NULL;
1269PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv = NULL;
1106PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL; 1270PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL;
1107PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL; 1271PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL;
1108PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv = NULL; 1272PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv = NULL;
@@ -1110,10 +1274,44 @@ PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL;
1110PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv = NULL; 1274PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv = NULL;
1111PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL; 1275PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL;
1112PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL; 1276PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL;
1277PFNGLGETNCOLORTABLEPROC glad_glGetnColorTable = NULL;
1278PFNGLGETNCOMPRESSEDTEXIMAGEPROC glad_glGetnCompressedTexImage = NULL;
1279PFNGLGETNCONVOLUTIONFILTERPROC glad_glGetnConvolutionFilter = NULL;
1280PFNGLGETNHISTOGRAMPROC glad_glGetnHistogram = NULL;
1281PFNGLGETNMAPDVPROC glad_glGetnMapdv = NULL;
1282PFNGLGETNMAPFVPROC glad_glGetnMapfv = NULL;
1283PFNGLGETNMAPIVPROC glad_glGetnMapiv = NULL;
1284PFNGLGETNMINMAXPROC glad_glGetnMinmax = NULL;
1285PFNGLGETNPIXELMAPFVPROC glad_glGetnPixelMapfv = NULL;
1286PFNGLGETNPIXELMAPUIVPROC glad_glGetnPixelMapuiv = NULL;
1287PFNGLGETNPIXELMAPUSVPROC glad_glGetnPixelMapusv = NULL;
1288PFNGLGETNPOLYGONSTIPPLEPROC glad_glGetnPolygonStipple = NULL;
1289PFNGLGETNSEPARABLEFILTERPROC glad_glGetnSeparableFilter = NULL;
1290PFNGLGETNTEXIMAGEPROC glad_glGetnTexImage = NULL;
1291PFNGLGETNUNIFORMDVPROC glad_glGetnUniformdv = NULL;
1292PFNGLGETNUNIFORMFVPROC glad_glGetnUniformfv = NULL;
1293PFNGLGETNUNIFORMIVPROC glad_glGetnUniformiv = NULL;
1294PFNGLGETNUNIFORMUIVPROC glad_glGetnUniformuiv = NULL;
1113PFNGLHINTPROC glad_glHint = NULL; 1295PFNGLHINTPROC glad_glHint = NULL;
1296PFNGLINDEXMASKPROC glad_glIndexMask = NULL;
1297PFNGLINDEXPOINTERPROC glad_glIndexPointer = NULL;
1298PFNGLINDEXDPROC glad_glIndexd = NULL;
1299PFNGLINDEXDVPROC glad_glIndexdv = NULL;
1300PFNGLINDEXFPROC glad_glIndexf = NULL;
1301PFNGLINDEXFVPROC glad_glIndexfv = NULL;
1302PFNGLINDEXIPROC glad_glIndexi = NULL;
1303PFNGLINDEXIVPROC glad_glIndexiv = NULL;
1304PFNGLINDEXSPROC glad_glIndexs = NULL;
1305PFNGLINDEXSVPROC glad_glIndexsv = NULL;
1306PFNGLINDEXUBPROC glad_glIndexub = NULL;
1307PFNGLINDEXUBVPROC glad_glIndexubv = NULL;
1308PFNGLINITNAMESPROC glad_glInitNames = NULL;
1309PFNGLINTERLEAVEDARRAYSPROC glad_glInterleavedArrays = NULL;
1114PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData = NULL; 1310PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData = NULL;
1115PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData = NULL; 1311PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData = NULL;
1116PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer = NULL; 1312PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer = NULL;
1313PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData = NULL;
1314PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData = NULL;
1117PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer = NULL; 1315PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer = NULL;
1118PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage = NULL; 1316PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage = NULL;
1119PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage = NULL; 1317PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage = NULL;
@@ -1121,6 +1319,7 @@ PFNGLISBUFFERPROC glad_glIsBuffer = NULL;
1121PFNGLISENABLEDPROC glad_glIsEnabled = NULL; 1319PFNGLISENABLEDPROC glad_glIsEnabled = NULL;
1122PFNGLISENABLEDIPROC glad_glIsEnabledi = NULL; 1320PFNGLISENABLEDIPROC glad_glIsEnabledi = NULL;
1123PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL; 1321PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL;
1322PFNGLISLISTPROC glad_glIsList = NULL;
1124PFNGLISPROGRAMPROC glad_glIsProgram = NULL; 1323PFNGLISPROGRAMPROC glad_glIsProgram = NULL;
1125PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline = NULL; 1324PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline = NULL;
1126PFNGLISQUERYPROC glad_glIsQuery = NULL; 1325PFNGLISQUERYPROC glad_glIsQuery = NULL;
@@ -1131,18 +1330,88 @@ PFNGLISSYNCPROC glad_glIsSync = NULL;
1131PFNGLISTEXTUREPROC glad_glIsTexture = NULL; 1330PFNGLISTEXTUREPROC glad_glIsTexture = NULL;
1132PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback = NULL; 1331PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback = NULL;
1133PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL; 1332PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL;
1333PFNGLLIGHTMODELFPROC glad_glLightModelf = NULL;
1334PFNGLLIGHTMODELFVPROC glad_glLightModelfv = NULL;
1335PFNGLLIGHTMODELIPROC glad_glLightModeli = NULL;
1336PFNGLLIGHTMODELIVPROC glad_glLightModeliv = NULL;
1337PFNGLLIGHTFPROC glad_glLightf = NULL;
1338PFNGLLIGHTFVPROC glad_glLightfv = NULL;
1339PFNGLLIGHTIPROC glad_glLighti = NULL;
1340PFNGLLIGHTIVPROC glad_glLightiv = NULL;
1341PFNGLLINESTIPPLEPROC glad_glLineStipple = NULL;
1134PFNGLLINEWIDTHPROC glad_glLineWidth = NULL; 1342PFNGLLINEWIDTHPROC glad_glLineWidth = NULL;
1135PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL; 1343PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL;
1344PFNGLLISTBASEPROC glad_glListBase = NULL;
1345PFNGLLOADIDENTITYPROC glad_glLoadIdentity = NULL;
1346PFNGLLOADMATRIXDPROC glad_glLoadMatrixd = NULL;
1347PFNGLLOADMATRIXFPROC glad_glLoadMatrixf = NULL;
1348PFNGLLOADNAMEPROC glad_glLoadName = NULL;
1349PFNGLLOADTRANSPOSEMATRIXDPROC glad_glLoadTransposeMatrixd = NULL;
1350PFNGLLOADTRANSPOSEMATRIXFPROC glad_glLoadTransposeMatrixf = NULL;
1136PFNGLLOGICOPPROC glad_glLogicOp = NULL; 1351PFNGLLOGICOPPROC glad_glLogicOp = NULL;
1352PFNGLMAP1DPROC glad_glMap1d = NULL;
1353PFNGLMAP1FPROC glad_glMap1f = NULL;
1354PFNGLMAP2DPROC glad_glMap2d = NULL;
1355PFNGLMAP2FPROC glad_glMap2f = NULL;
1137PFNGLMAPBUFFERPROC glad_glMapBuffer = NULL; 1356PFNGLMAPBUFFERPROC glad_glMapBuffer = NULL;
1138PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange = NULL; 1357PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange = NULL;
1358PFNGLMAPGRID1DPROC glad_glMapGrid1d = NULL;
1359PFNGLMAPGRID1FPROC glad_glMapGrid1f = NULL;
1360PFNGLMAPGRID2DPROC glad_glMapGrid2d = NULL;
1361PFNGLMAPGRID2FPROC glad_glMapGrid2f = NULL;
1362PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer = NULL;
1363PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange = NULL;
1364PFNGLMATERIALFPROC glad_glMaterialf = NULL;
1365PFNGLMATERIALFVPROC glad_glMaterialfv = NULL;
1366PFNGLMATERIALIPROC glad_glMateriali = NULL;
1367PFNGLMATERIALIVPROC glad_glMaterialiv = NULL;
1368PFNGLMATRIXMODEPROC glad_glMatrixMode = NULL;
1139PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier = NULL; 1369PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier = NULL;
1370PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion = NULL;
1140PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading = NULL; 1371PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading = NULL;
1372PFNGLMULTMATRIXDPROC glad_glMultMatrixd = NULL;
1373PFNGLMULTMATRIXFPROC glad_glMultMatrixf = NULL;
1374PFNGLMULTTRANSPOSEMATRIXDPROC glad_glMultTransposeMatrixd = NULL;
1375PFNGLMULTTRANSPOSEMATRIXFPROC glad_glMultTransposeMatrixf = NULL;
1141PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays = NULL; 1376PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays = NULL;
1142PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect = NULL; 1377PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect = NULL;
1378PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC glad_glMultiDrawArraysIndirectCount = NULL;
1143PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements = NULL; 1379PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements = NULL;
1144PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex = NULL; 1380PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex = NULL;
1145PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect = NULL; 1381PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect = NULL;
1382PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC glad_glMultiDrawElementsIndirectCount = NULL;
1383PFNGLMULTITEXCOORD1DPROC glad_glMultiTexCoord1d = NULL;
1384PFNGLMULTITEXCOORD1DVPROC glad_glMultiTexCoord1dv = NULL;
1385PFNGLMULTITEXCOORD1FPROC glad_glMultiTexCoord1f = NULL;
1386PFNGLMULTITEXCOORD1FVPROC glad_glMultiTexCoord1fv = NULL;
1387PFNGLMULTITEXCOORD1IPROC glad_glMultiTexCoord1i = NULL;
1388PFNGLMULTITEXCOORD1IVPROC glad_glMultiTexCoord1iv = NULL;
1389PFNGLMULTITEXCOORD1SPROC glad_glMultiTexCoord1s = NULL;
1390PFNGLMULTITEXCOORD1SVPROC glad_glMultiTexCoord1sv = NULL;
1391PFNGLMULTITEXCOORD2DPROC glad_glMultiTexCoord2d = NULL;
1392PFNGLMULTITEXCOORD2DVPROC glad_glMultiTexCoord2dv = NULL;
1393PFNGLMULTITEXCOORD2FPROC glad_glMultiTexCoord2f = NULL;
1394PFNGLMULTITEXCOORD2FVPROC glad_glMultiTexCoord2fv = NULL;
1395PFNGLMULTITEXCOORD2IPROC glad_glMultiTexCoord2i = NULL;
1396PFNGLMULTITEXCOORD2IVPROC glad_glMultiTexCoord2iv = NULL;
1397PFNGLMULTITEXCOORD2SPROC glad_glMultiTexCoord2s = NULL;
1398PFNGLMULTITEXCOORD2SVPROC glad_glMultiTexCoord2sv = NULL;
1399PFNGLMULTITEXCOORD3DPROC glad_glMultiTexCoord3d = NULL;
1400PFNGLMULTITEXCOORD3DVPROC glad_glMultiTexCoord3dv = NULL;
1401PFNGLMULTITEXCOORD3FPROC glad_glMultiTexCoord3f = NULL;
1402PFNGLMULTITEXCOORD3FVPROC glad_glMultiTexCoord3fv = NULL;
1403PFNGLMULTITEXCOORD3IPROC glad_glMultiTexCoord3i = NULL;
1404PFNGLMULTITEXCOORD3IVPROC glad_glMultiTexCoord3iv = NULL;
1405PFNGLMULTITEXCOORD3SPROC glad_glMultiTexCoord3s = NULL;
1406PFNGLMULTITEXCOORD3SVPROC glad_glMultiTexCoord3sv = NULL;
1407PFNGLMULTITEXCOORD4DPROC glad_glMultiTexCoord4d = NULL;
1408PFNGLMULTITEXCOORD4DVPROC glad_glMultiTexCoord4dv = NULL;
1409PFNGLMULTITEXCOORD4FPROC glad_glMultiTexCoord4f = NULL;
1410PFNGLMULTITEXCOORD4FVPROC glad_glMultiTexCoord4fv = NULL;
1411PFNGLMULTITEXCOORD4IPROC glad_glMultiTexCoord4i = NULL;
1412PFNGLMULTITEXCOORD4IVPROC glad_glMultiTexCoord4iv = NULL;
1413PFNGLMULTITEXCOORD4SPROC glad_glMultiTexCoord4s = NULL;
1414PFNGLMULTITEXCOORD4SVPROC glad_glMultiTexCoord4sv = NULL;
1146PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui = NULL; 1415PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui = NULL;
1147PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv = NULL; 1416PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv = NULL;
1148PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui = NULL; 1417PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui = NULL;
@@ -1151,15 +1420,47 @@ PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui = NULL;
1151PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv = NULL; 1420PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv = NULL;
1152PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui = NULL; 1421PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui = NULL;
1153PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv = NULL; 1422PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv = NULL;
1423PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData = NULL;
1424PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage = NULL;
1425PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData = NULL;
1426PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer = NULL;
1427PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers = NULL;
1428PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri = NULL;
1429PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer = NULL;
1430PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer = NULL;
1431PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture = NULL;
1432PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer = NULL;
1433PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage = NULL;
1434PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample = NULL;
1435PFNGLNEWLISTPROC glad_glNewList = NULL;
1436PFNGLNORMAL3BPROC glad_glNormal3b = NULL;
1437PFNGLNORMAL3BVPROC glad_glNormal3bv = NULL;
1438PFNGLNORMAL3DPROC glad_glNormal3d = NULL;
1439PFNGLNORMAL3DVPROC glad_glNormal3dv = NULL;
1440PFNGLNORMAL3FPROC glad_glNormal3f = NULL;
1441PFNGLNORMAL3FVPROC glad_glNormal3fv = NULL;
1442PFNGLNORMAL3IPROC glad_glNormal3i = NULL;
1443PFNGLNORMAL3IVPROC glad_glNormal3iv = NULL;
1444PFNGLNORMAL3SPROC glad_glNormal3s = NULL;
1445PFNGLNORMAL3SVPROC glad_glNormal3sv = NULL;
1154PFNGLNORMALP3UIPROC glad_glNormalP3ui = NULL; 1446PFNGLNORMALP3UIPROC glad_glNormalP3ui = NULL;
1155PFNGLNORMALP3UIVPROC glad_glNormalP3uiv = NULL; 1447PFNGLNORMALP3UIVPROC glad_glNormalP3uiv = NULL;
1448PFNGLNORMALPOINTERPROC glad_glNormalPointer = NULL;
1156PFNGLOBJECTLABELPROC glad_glObjectLabel = NULL; 1449PFNGLOBJECTLABELPROC glad_glObjectLabel = NULL;
1157PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel = NULL; 1450PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel = NULL;
1451PFNGLORTHOPROC glad_glOrtho = NULL;
1452PFNGLPASSTHROUGHPROC glad_glPassThrough = NULL;
1158PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv = NULL; 1453PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv = NULL;
1159PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri = NULL; 1454PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri = NULL;
1160PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback = NULL; 1455PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback = NULL;
1456PFNGLPIXELMAPFVPROC glad_glPixelMapfv = NULL;
1457PFNGLPIXELMAPUIVPROC glad_glPixelMapuiv = NULL;
1458PFNGLPIXELMAPUSVPROC glad_glPixelMapusv = NULL;
1161PFNGLPIXELSTOREFPROC glad_glPixelStoref = NULL; 1459PFNGLPIXELSTOREFPROC glad_glPixelStoref = NULL;
1162PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL; 1460PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL;
1461PFNGLPIXELTRANSFERFPROC glad_glPixelTransferf = NULL;
1462PFNGLPIXELTRANSFERIPROC glad_glPixelTransferi = NULL;
1463PFNGLPIXELZOOMPROC glad_glPixelZoom = NULL;
1163PFNGLPOINTPARAMETERFPROC glad_glPointParameterf = NULL; 1464PFNGLPOINTPARAMETERFPROC glad_glPointParameterf = NULL;
1164PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv = NULL; 1465PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv = NULL;
1165PFNGLPOINTPARAMETERIPROC glad_glPointParameteri = NULL; 1466PFNGLPOINTPARAMETERIPROC glad_glPointParameteri = NULL;
@@ -1167,8 +1468,15 @@ PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv = NULL;
1167PFNGLPOINTSIZEPROC glad_glPointSize = NULL; 1468PFNGLPOINTSIZEPROC glad_glPointSize = NULL;
1168PFNGLPOLYGONMODEPROC glad_glPolygonMode = NULL; 1469PFNGLPOLYGONMODEPROC glad_glPolygonMode = NULL;
1169PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL; 1470PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL;
1471PFNGLPOLYGONOFFSETCLAMPPROC glad_glPolygonOffsetClamp = NULL;
1472PFNGLPOLYGONSTIPPLEPROC glad_glPolygonStipple = NULL;
1473PFNGLPOPATTRIBPROC glad_glPopAttrib = NULL;
1474PFNGLPOPCLIENTATTRIBPROC glad_glPopClientAttrib = NULL;
1170PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup = NULL; 1475PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup = NULL;
1476PFNGLPOPMATRIXPROC glad_glPopMatrix = NULL;
1477PFNGLPOPNAMEPROC glad_glPopName = NULL;
1171PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex = NULL; 1478PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex = NULL;
1479PFNGLPRIORITIZETEXTURESPROC glad_glPrioritizeTextures = NULL;
1172PFNGLPROGRAMBINARYPROC glad_glProgramBinary = NULL; 1480PFNGLPROGRAMBINARYPROC glad_glProgramBinary = NULL;
1173PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri = NULL; 1481PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri = NULL;
1174PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d = NULL; 1482PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d = NULL;
@@ -1222,14 +1530,54 @@ PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv = NULL;
1222PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv = NULL; 1530PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv = NULL;
1223PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv = NULL; 1531PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv = NULL;
1224PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex = NULL; 1532PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex = NULL;
1533PFNGLPUSHATTRIBPROC glad_glPushAttrib = NULL;
1534PFNGLPUSHCLIENTATTRIBPROC glad_glPushClientAttrib = NULL;
1225PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup = NULL; 1535PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup = NULL;
1536PFNGLPUSHMATRIXPROC glad_glPushMatrix = NULL;
1537PFNGLPUSHNAMEPROC glad_glPushName = NULL;
1226PFNGLQUERYCOUNTERPROC glad_glQueryCounter = NULL; 1538PFNGLQUERYCOUNTERPROC glad_glQueryCounter = NULL;
1539PFNGLRASTERPOS2DPROC glad_glRasterPos2d = NULL;
1540PFNGLRASTERPOS2DVPROC glad_glRasterPos2dv = NULL;
1541PFNGLRASTERPOS2FPROC glad_glRasterPos2f = NULL;
1542PFNGLRASTERPOS2FVPROC glad_glRasterPos2fv = NULL;
1543PFNGLRASTERPOS2IPROC glad_glRasterPos2i = NULL;
1544PFNGLRASTERPOS2IVPROC glad_glRasterPos2iv = NULL;
1545PFNGLRASTERPOS2SPROC glad_glRasterPos2s = NULL;
1546PFNGLRASTERPOS2SVPROC glad_glRasterPos2sv = NULL;
1547PFNGLRASTERPOS3DPROC glad_glRasterPos3d = NULL;
1548PFNGLRASTERPOS3DVPROC glad_glRasterPos3dv = NULL;
1549PFNGLRASTERPOS3FPROC glad_glRasterPos3f = NULL;
1550PFNGLRASTERPOS3FVPROC glad_glRasterPos3fv = NULL;
1551PFNGLRASTERPOS3IPROC glad_glRasterPos3i = NULL;
1552PFNGLRASTERPOS3IVPROC glad_glRasterPos3iv = NULL;
1553PFNGLRASTERPOS3SPROC glad_glRasterPos3s = NULL;
1554PFNGLRASTERPOS3SVPROC glad_glRasterPos3sv = NULL;
1555PFNGLRASTERPOS4DPROC glad_glRasterPos4d = NULL;
1556PFNGLRASTERPOS4DVPROC glad_glRasterPos4dv = NULL;
1557PFNGLRASTERPOS4FPROC glad_glRasterPos4f = NULL;
1558PFNGLRASTERPOS4FVPROC glad_glRasterPos4fv = NULL;
1559PFNGLRASTERPOS4IPROC glad_glRasterPos4i = NULL;
1560PFNGLRASTERPOS4IVPROC glad_glRasterPos4iv = NULL;
1561PFNGLRASTERPOS4SPROC glad_glRasterPos4s = NULL;
1562PFNGLRASTERPOS4SVPROC glad_glRasterPos4sv = NULL;
1227PFNGLREADBUFFERPROC glad_glReadBuffer = NULL; 1563PFNGLREADBUFFERPROC glad_glReadBuffer = NULL;
1228PFNGLREADPIXELSPROC glad_glReadPixels = NULL; 1564PFNGLREADPIXELSPROC glad_glReadPixels = NULL;
1565PFNGLREADNPIXELSPROC glad_glReadnPixels = NULL;
1566PFNGLRECTDPROC glad_glRectd = NULL;
1567PFNGLRECTDVPROC glad_glRectdv = NULL;
1568PFNGLRECTFPROC glad_glRectf = NULL;
1569PFNGLRECTFVPROC glad_glRectfv = NULL;
1570PFNGLRECTIPROC glad_glRecti = NULL;
1571PFNGLRECTIVPROC glad_glRectiv = NULL;
1572PFNGLRECTSPROC glad_glRects = NULL;
1573PFNGLRECTSVPROC glad_glRectsv = NULL;
1229PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL; 1574PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL;
1575PFNGLRENDERMODEPROC glad_glRenderMode = NULL;
1230PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL; 1576PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL;
1231PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample = NULL; 1577PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample = NULL;
1232PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback = NULL; 1578PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback = NULL;
1579PFNGLROTATEDPROC glad_glRotated = NULL;
1580PFNGLROTATEFPROC glad_glRotatef = NULL;
1233PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL; 1581PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL;
1234PFNGLSAMPLEMASKIPROC glad_glSampleMaski = NULL; 1582PFNGLSAMPLEMASKIPROC glad_glSampleMaski = NULL;
1235PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv = NULL; 1583PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv = NULL;
@@ -1238,15 +1586,37 @@ PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf = NULL;
1238PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv = NULL; 1586PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv = NULL;
1239PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri = NULL; 1587PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri = NULL;
1240PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv = NULL; 1588PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv = NULL;
1589PFNGLSCALEDPROC glad_glScaled = NULL;
1590PFNGLSCALEFPROC glad_glScalef = NULL;
1241PFNGLSCISSORPROC glad_glScissor = NULL; 1591PFNGLSCISSORPROC glad_glScissor = NULL;
1242PFNGLSCISSORARRAYVPROC glad_glScissorArrayv = NULL; 1592PFNGLSCISSORARRAYVPROC glad_glScissorArrayv = NULL;
1243PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed = NULL; 1593PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed = NULL;
1244PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv = NULL; 1594PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv = NULL;
1595PFNGLSECONDARYCOLOR3BPROC glad_glSecondaryColor3b = NULL;
1596PFNGLSECONDARYCOLOR3BVPROC glad_glSecondaryColor3bv = NULL;
1597PFNGLSECONDARYCOLOR3DPROC glad_glSecondaryColor3d = NULL;
1598PFNGLSECONDARYCOLOR3DVPROC glad_glSecondaryColor3dv = NULL;
1599PFNGLSECONDARYCOLOR3FPROC glad_glSecondaryColor3f = NULL;
1600PFNGLSECONDARYCOLOR3FVPROC glad_glSecondaryColor3fv = NULL;
1601PFNGLSECONDARYCOLOR3IPROC glad_glSecondaryColor3i = NULL;
1602PFNGLSECONDARYCOLOR3IVPROC glad_glSecondaryColor3iv = NULL;
1603PFNGLSECONDARYCOLOR3SPROC glad_glSecondaryColor3s = NULL;
1604PFNGLSECONDARYCOLOR3SVPROC glad_glSecondaryColor3sv = NULL;
1605PFNGLSECONDARYCOLOR3UBPROC glad_glSecondaryColor3ub = NULL;
1606PFNGLSECONDARYCOLOR3UBVPROC glad_glSecondaryColor3ubv = NULL;
1607PFNGLSECONDARYCOLOR3UIPROC glad_glSecondaryColor3ui = NULL;
1608PFNGLSECONDARYCOLOR3UIVPROC glad_glSecondaryColor3uiv = NULL;
1609PFNGLSECONDARYCOLOR3USPROC glad_glSecondaryColor3us = NULL;
1610PFNGLSECONDARYCOLOR3USVPROC glad_glSecondaryColor3usv = NULL;
1245PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui = NULL; 1611PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui = NULL;
1246PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv = NULL; 1612PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv = NULL;
1613PFNGLSECONDARYCOLORPOINTERPROC glad_glSecondaryColorPointer = NULL;
1614PFNGLSELECTBUFFERPROC glad_glSelectBuffer = NULL;
1615PFNGLSHADEMODELPROC glad_glShadeModel = NULL;
1247PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL; 1616PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL;
1248PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL; 1617PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL;
1249PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding = NULL; 1618PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding = NULL;
1619PFNGLSPECIALIZESHADERPROC glad_glSpecializeShader = NULL;
1250PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL; 1620PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL;
1251PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL; 1621PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL;
1252PFNGLSTENCILMASKPROC glad_glStencilMask = NULL; 1622PFNGLSTENCILMASKPROC glad_glStencilMask = NULL;
@@ -1255,6 +1625,38 @@ PFNGLSTENCILOPPROC glad_glStencilOp = NULL;
1255PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL; 1625PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL;
1256PFNGLTEXBUFFERPROC glad_glTexBuffer = NULL; 1626PFNGLTEXBUFFERPROC glad_glTexBuffer = NULL;
1257PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange = NULL; 1627PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange = NULL;
1628PFNGLTEXCOORD1DPROC glad_glTexCoord1d = NULL;
1629PFNGLTEXCOORD1DVPROC glad_glTexCoord1dv = NULL;
1630PFNGLTEXCOORD1FPROC glad_glTexCoord1f = NULL;
1631PFNGLTEXCOORD1FVPROC glad_glTexCoord1fv = NULL;
1632PFNGLTEXCOORD1IPROC glad_glTexCoord1i = NULL;
1633PFNGLTEXCOORD1IVPROC glad_glTexCoord1iv = NULL;
1634PFNGLTEXCOORD1SPROC glad_glTexCoord1s = NULL;
1635PFNGLTEXCOORD1SVPROC glad_glTexCoord1sv = NULL;
1636PFNGLTEXCOORD2DPROC glad_glTexCoord2d = NULL;
1637PFNGLTEXCOORD2DVPROC glad_glTexCoord2dv = NULL;
1638PFNGLTEXCOORD2FPROC glad_glTexCoord2f = NULL;
1639PFNGLTEXCOORD2FVPROC glad_glTexCoord2fv = NULL;
1640PFNGLTEXCOORD2IPROC glad_glTexCoord2i = NULL;
1641PFNGLTEXCOORD2IVPROC glad_glTexCoord2iv = NULL;
1642PFNGLTEXCOORD2SPROC glad_glTexCoord2s = NULL;
1643PFNGLTEXCOORD2SVPROC glad_glTexCoord2sv = NULL;
1644PFNGLTEXCOORD3DPROC glad_glTexCoord3d = NULL;
1645PFNGLTEXCOORD3DVPROC glad_glTexCoord3dv = NULL;
1646PFNGLTEXCOORD3FPROC glad_glTexCoord3f = NULL;
1647PFNGLTEXCOORD3FVPROC glad_glTexCoord3fv = NULL;
1648PFNGLTEXCOORD3IPROC glad_glTexCoord3i = NULL;
1649PFNGLTEXCOORD3IVPROC glad_glTexCoord3iv = NULL;
1650PFNGLTEXCOORD3SPROC glad_glTexCoord3s = NULL;
1651PFNGLTEXCOORD3SVPROC glad_glTexCoord3sv = NULL;
1652PFNGLTEXCOORD4DPROC glad_glTexCoord4d = NULL;
1653PFNGLTEXCOORD4DVPROC glad_glTexCoord4dv = NULL;
1654PFNGLTEXCOORD4FPROC glad_glTexCoord4f = NULL;
1655PFNGLTEXCOORD4FVPROC glad_glTexCoord4fv = NULL;
1656PFNGLTEXCOORD4IPROC glad_glTexCoord4i = NULL;
1657PFNGLTEXCOORD4IVPROC glad_glTexCoord4iv = NULL;
1658PFNGLTEXCOORD4SPROC glad_glTexCoord4s = NULL;
1659PFNGLTEXCOORD4SVPROC glad_glTexCoord4sv = NULL;
1258PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui = NULL; 1660PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui = NULL;
1259PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv = NULL; 1661PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv = NULL;
1260PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui = NULL; 1662PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui = NULL;
@@ -1263,6 +1665,17 @@ PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui = NULL;
1263PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv = NULL; 1665PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv = NULL;
1264PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui = NULL; 1666PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui = NULL;
1265PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv = NULL; 1667PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv = NULL;
1668PFNGLTEXCOORDPOINTERPROC glad_glTexCoordPointer = NULL;
1669PFNGLTEXENVFPROC glad_glTexEnvf = NULL;
1670PFNGLTEXENVFVPROC glad_glTexEnvfv = NULL;
1671PFNGLTEXENVIPROC glad_glTexEnvi = NULL;
1672PFNGLTEXENVIVPROC glad_glTexEnviv = NULL;
1673PFNGLTEXGENDPROC glad_glTexGend = NULL;
1674PFNGLTEXGENDVPROC glad_glTexGendv = NULL;
1675PFNGLTEXGENFPROC glad_glTexGenf = NULL;
1676PFNGLTEXGENFVPROC glad_glTexGenfv = NULL;
1677PFNGLTEXGENIPROC glad_glTexGeni = NULL;
1678PFNGLTEXGENIVPROC glad_glTexGeniv = NULL;
1266PFNGLTEXIMAGE1DPROC glad_glTexImage1D = NULL; 1679PFNGLTEXIMAGE1DPROC glad_glTexImage1D = NULL;
1267PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL; 1680PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL;
1268PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample = NULL; 1681PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample = NULL;
@@ -1282,8 +1695,29 @@ PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample = NULL;
1282PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D = NULL; 1695PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D = NULL;
1283PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL; 1696PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL;
1284PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D = NULL; 1697PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D = NULL;
1698PFNGLTEXTUREBARRIERPROC glad_glTextureBarrier = NULL;
1699PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer = NULL;
1700PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange = NULL;
1701PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv = NULL;
1702PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv = NULL;
1703PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf = NULL;
1704PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv = NULL;
1705PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri = NULL;
1706PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv = NULL;
1707PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D = NULL;
1708PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D = NULL;
1709PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample = NULL;
1710PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D = NULL;
1711PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample = NULL;
1712PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D = NULL;
1713PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D = NULL;
1714PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D = NULL;
1285PFNGLTEXTUREVIEWPROC glad_glTextureView = NULL; 1715PFNGLTEXTUREVIEWPROC glad_glTextureView = NULL;
1716PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase = NULL;
1717PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange = NULL;
1286PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings = NULL; 1718PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings = NULL;
1719PFNGLTRANSLATEDPROC glad_glTranslated = NULL;
1720PFNGLTRANSLATEFPROC glad_glTranslatef = NULL;
1287PFNGLUNIFORM1DPROC glad_glUniform1d = NULL; 1721PFNGLUNIFORM1DPROC glad_glUniform1d = NULL;
1288PFNGLUNIFORM1DVPROC glad_glUniform1dv = NULL; 1722PFNGLUNIFORM1DVPROC glad_glUniform1dv = NULL;
1289PFNGLUNIFORM1FPROC glad_glUniform1f = NULL; 1723PFNGLUNIFORM1FPROC glad_glUniform1f = NULL;
@@ -1337,10 +1771,43 @@ PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv = NULL;
1337PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv = NULL; 1771PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv = NULL;
1338PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv = NULL; 1772PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv = NULL;
1339PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer = NULL; 1773PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer = NULL;
1774PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer = NULL;
1340PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL; 1775PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL;
1341PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages = NULL; 1776PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages = NULL;
1342PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL; 1777PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL;
1343PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline = NULL; 1778PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline = NULL;
1779PFNGLVERTEX2DPROC glad_glVertex2d = NULL;
1780PFNGLVERTEX2DVPROC glad_glVertex2dv = NULL;
1781PFNGLVERTEX2FPROC glad_glVertex2f = NULL;
1782PFNGLVERTEX2FVPROC glad_glVertex2fv = NULL;
1783PFNGLVERTEX2IPROC glad_glVertex2i = NULL;
1784PFNGLVERTEX2IVPROC glad_glVertex2iv = NULL;
1785PFNGLVERTEX2SPROC glad_glVertex2s = NULL;
1786PFNGLVERTEX2SVPROC glad_glVertex2sv = NULL;
1787PFNGLVERTEX3DPROC glad_glVertex3d = NULL;
1788PFNGLVERTEX3DVPROC glad_glVertex3dv = NULL;
1789PFNGLVERTEX3FPROC glad_glVertex3f = NULL;
1790PFNGLVERTEX3FVPROC glad_glVertex3fv = NULL;
1791PFNGLVERTEX3IPROC glad_glVertex3i = NULL;
1792PFNGLVERTEX3IVPROC glad_glVertex3iv = NULL;
1793PFNGLVERTEX3SPROC glad_glVertex3s = NULL;
1794PFNGLVERTEX3SVPROC glad_glVertex3sv = NULL;
1795PFNGLVERTEX4DPROC glad_glVertex4d = NULL;
1796PFNGLVERTEX4DVPROC glad_glVertex4dv = NULL;
1797PFNGLVERTEX4FPROC glad_glVertex4f = NULL;
1798PFNGLVERTEX4FVPROC glad_glVertex4fv = NULL;
1799PFNGLVERTEX4IPROC glad_glVertex4i = NULL;
1800PFNGLVERTEX4IVPROC glad_glVertex4iv = NULL;
1801PFNGLVERTEX4SPROC glad_glVertex4s = NULL;
1802PFNGLVERTEX4SVPROC glad_glVertex4sv = NULL;
1803PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding = NULL;
1804PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat = NULL;
1805PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat = NULL;
1806PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat = NULL;
1807PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor = NULL;
1808PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer = NULL;
1809PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer = NULL;
1810PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers = NULL;
1344PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d = NULL; 1811PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d = NULL;
1345PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv = NULL; 1812PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv = NULL;
1346PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL; 1813PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL;
@@ -1428,11 +1895,28 @@ PFNGLVERTEXP3UIPROC glad_glVertexP3ui = NULL;
1428PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv = NULL; 1895PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv = NULL;
1429PFNGLVERTEXP4UIPROC glad_glVertexP4ui = NULL; 1896PFNGLVERTEXP4UIPROC glad_glVertexP4ui = NULL;
1430PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv = NULL; 1897PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv = NULL;
1898PFNGLVERTEXPOINTERPROC glad_glVertexPointer = NULL;
1431PFNGLVIEWPORTPROC glad_glViewport = NULL; 1899PFNGLVIEWPORTPROC glad_glViewport = NULL;
1432PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv = NULL; 1900PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv = NULL;
1433PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf = NULL; 1901PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf = NULL;
1434PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv = NULL; 1902PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv = NULL;
1435PFNGLWAITSYNCPROC glad_glWaitSync = NULL; 1903PFNGLWAITSYNCPROC glad_glWaitSync = NULL;
1904PFNGLWINDOWPOS2DPROC glad_glWindowPos2d = NULL;
1905PFNGLWINDOWPOS2DVPROC glad_glWindowPos2dv = NULL;
1906PFNGLWINDOWPOS2FPROC glad_glWindowPos2f = NULL;
1907PFNGLWINDOWPOS2FVPROC glad_glWindowPos2fv = NULL;
1908PFNGLWINDOWPOS2IPROC glad_glWindowPos2i = NULL;
1909PFNGLWINDOWPOS2IVPROC glad_glWindowPos2iv = NULL;
1910PFNGLWINDOWPOS2SPROC glad_glWindowPos2s = NULL;
1911PFNGLWINDOWPOS2SVPROC glad_glWindowPos2sv = NULL;
1912PFNGLWINDOWPOS3DPROC glad_glWindowPos3d = NULL;
1913PFNGLWINDOWPOS3DVPROC glad_glWindowPos3dv = NULL;
1914PFNGLWINDOWPOS3FPROC glad_glWindowPos3f = NULL;
1915PFNGLWINDOWPOS3FVPROC glad_glWindowPos3fv = NULL;
1916PFNGLWINDOWPOS3IPROC glad_glWindowPos3i = NULL;
1917PFNGLWINDOWPOS3IVPROC glad_glWindowPos3iv = NULL;
1918PFNGLWINDOWPOS3SPROC glad_glWindowPos3s = NULL;
1919PFNGLWINDOWPOS3SVPROC glad_glWindowPos3sv = NULL;
1436int GLAD_GL_3DFX_multisample = 0; 1920int GLAD_GL_3DFX_multisample = 0;
1437int GLAD_GL_3DFX_tbuffer = 0; 1921int GLAD_GL_3DFX_tbuffer = 0;
1438int GLAD_GL_3DFX_texture_compression_FXT1 = 0; 1922int GLAD_GL_3DFX_texture_compression_FXT1 = 0;
@@ -1774,6 +2258,7 @@ int GLAD_GL_EXT_texture_mirror_clamp = 0;
1774int GLAD_GL_EXT_texture_object = 0; 2258int GLAD_GL_EXT_texture_object = 0;
1775int GLAD_GL_EXT_texture_perturb_normal = 0; 2259int GLAD_GL_EXT_texture_perturb_normal = 0;
1776int GLAD_GL_EXT_texture_sRGB = 0; 2260int GLAD_GL_EXT_texture_sRGB = 0;
2261int GLAD_GL_EXT_texture_sRGB_R8 = 0;
1777int GLAD_GL_EXT_texture_sRGB_decode = 0; 2262int GLAD_GL_EXT_texture_sRGB_decode = 0;
1778int GLAD_GL_EXT_texture_shared_exponent = 0; 2263int GLAD_GL_EXT_texture_shared_exponent = 0;
1779int GLAD_GL_EXT_texture_snorm = 0; 2264int GLAD_GL_EXT_texture_snorm = 0;
@@ -2138,7 +2623,6 @@ PFNGLMAPVERTEXATTRIB1DAPPLEPROC glad_glMapVertexAttrib1dAPPLE = NULL;
2138PFNGLMAPVERTEXATTRIB1FAPPLEPROC glad_glMapVertexAttrib1fAPPLE = NULL; 2623PFNGLMAPVERTEXATTRIB1FAPPLEPROC glad_glMapVertexAttrib1fAPPLE = NULL;
2139PFNGLMAPVERTEXATTRIB2DAPPLEPROC glad_glMapVertexAttrib2dAPPLE = NULL; 2624PFNGLMAPVERTEXATTRIB2DAPPLEPROC glad_glMapVertexAttrib2dAPPLE = NULL;
2140PFNGLMAPVERTEXATTRIB2FAPPLEPROC glad_glMapVertexAttrib2fAPPLE = NULL; 2625PFNGLMAPVERTEXATTRIB2FAPPLEPROC glad_glMapVertexAttrib2fAPPLE = NULL;
2141PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion = NULL;
2142PFNGLPRIMITIVEBOUNDINGBOXARBPROC glad_glPrimitiveBoundingBoxARB = NULL; 2626PFNGLPRIMITIVEBOUNDINGBOXARBPROC glad_glPrimitiveBoundingBoxARB = NULL;
2143PFNGLGETTEXTUREHANDLEARBPROC glad_glGetTextureHandleARB = NULL; 2627PFNGLGETTEXTUREHANDLEARBPROC glad_glGetTextureHandleARB = NULL;
2144PFNGLGETTEXTURESAMPLERHANDLEARBPROC glad_glGetTextureSamplerHandleARB = NULL; 2628PFNGLGETTEXTURESAMPLERHANDLEARBPROC glad_glGetTextureSamplerHandleARB = NULL;
@@ -2156,114 +2640,13 @@ PFNGLISIMAGEHANDLERESIDENTARBPROC glad_glIsImageHandleResidentARB = NULL;
2156PFNGLVERTEXATTRIBL1UI64ARBPROC glad_glVertexAttribL1ui64ARB = NULL; 2640PFNGLVERTEXATTRIBL1UI64ARBPROC glad_glVertexAttribL1ui64ARB = NULL;
2157PFNGLVERTEXATTRIBL1UI64VARBPROC glad_glVertexAttribL1ui64vARB = NULL; 2641PFNGLVERTEXATTRIBL1UI64VARBPROC glad_glVertexAttribL1ui64vARB = NULL;
2158PFNGLGETVERTEXATTRIBLUI64VARBPROC glad_glGetVertexAttribLui64vARB = NULL; 2642PFNGLGETVERTEXATTRIBLUI64VARBPROC glad_glGetVertexAttribLui64vARB = NULL;
2159PFNGLBUFFERSTORAGEPROC glad_glBufferStorage = NULL;
2160PFNGLCREATESYNCFROMCLEVENTARBPROC glad_glCreateSyncFromCLeventARB = NULL; 2643PFNGLCREATESYNCFROMCLEVENTARBPROC glad_glCreateSyncFromCLeventARB = NULL;
2161PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage = NULL;
2162PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage = NULL;
2163PFNGLCLIPCONTROLPROC glad_glClipControl = NULL;
2164PFNGLCLAMPCOLORARBPROC glad_glClampColorARB = NULL; 2644PFNGLCLAMPCOLORARBPROC glad_glClampColorARB = NULL;
2165PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC glad_glDispatchComputeGroupSizeARB = NULL; 2645PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC glad_glDispatchComputeGroupSizeARB = NULL;
2166PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB = NULL; 2646PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB = NULL;
2167PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB = NULL; 2647PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB = NULL;
2168PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB = NULL; 2648PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB = NULL;
2169PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB = NULL; 2649PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB = NULL;
2170PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks = NULL;
2171PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase = NULL;
2172PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange = NULL;
2173PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv = NULL;
2174PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v = NULL;
2175PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v = NULL;
2176PFNGLCREATEBUFFERSPROC glad_glCreateBuffers = NULL;
2177PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage = NULL;
2178PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData = NULL;
2179PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData = NULL;
2180PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData = NULL;
2181PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData = NULL;
2182PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData = NULL;
2183PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer = NULL;
2184PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange = NULL;
2185PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer = NULL;
2186PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange = NULL;
2187PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv = NULL;
2188PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v = NULL;
2189PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv = NULL;
2190PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData = NULL;
2191PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers = NULL;
2192PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer = NULL;
2193PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri = NULL;
2194PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture = NULL;
2195PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer = NULL;
2196PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer = NULL;
2197PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers = NULL;
2198PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer = NULL;
2199PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData = NULL;
2200PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData = NULL;
2201PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv = NULL;
2202PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv = NULL;
2203PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv = NULL;
2204PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi = NULL;
2205PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer = NULL;
2206PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus = NULL;
2207PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv = NULL;
2208PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv = NULL;
2209PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers = NULL;
2210PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage = NULL;
2211PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample = NULL;
2212PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv = NULL;
2213PFNGLCREATETEXTURESPROC glad_glCreateTextures = NULL;
2214PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer = NULL;
2215PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange = NULL;
2216PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D = NULL;
2217PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D = NULL;
2218PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D = NULL;
2219PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample = NULL;
2220PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample = NULL;
2221PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D = NULL;
2222PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D = NULL;
2223PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D = NULL;
2224PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D = NULL;
2225PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D = NULL;
2226PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D = NULL;
2227PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D = NULL;
2228PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D = NULL;
2229PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D = NULL;
2230PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf = NULL;
2231PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv = NULL;
2232PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri = NULL;
2233PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv = NULL;
2234PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv = NULL;
2235PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv = NULL;
2236PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap = NULL;
2237PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit = NULL;
2238PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage = NULL;
2239PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage = NULL;
2240PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv = NULL;
2241PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv = NULL;
2242PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv = NULL;
2243PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv = NULL;
2244PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv = NULL;
2245PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv = NULL;
2246PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays = NULL;
2247PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib = NULL;
2248PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib = NULL;
2249PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer = NULL;
2250PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer = NULL;
2251PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers = NULL;
2252PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding = NULL;
2253PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat = NULL;
2254PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat = NULL;
2255PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat = NULL;
2256PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor = NULL;
2257PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv = NULL;
2258PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv = NULL;
2259PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv = NULL;
2260PFNGLCREATESAMPLERSPROC glad_glCreateSamplers = NULL;
2261PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines = NULL;
2262PFNGLCREATEQUERIESPROC glad_glCreateQueries = NULL;
2263PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v = NULL;
2264PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv = NULL;
2265PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v = NULL;
2266PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv = NULL;
2267PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB = NULL; 2650PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB = NULL;
2268PFNGLBLENDEQUATIONIARBPROC glad_glBlendEquationiARB = NULL; 2651PFNGLBLENDEQUATIONIARBPROC glad_glBlendEquationiARB = NULL;
2269PFNGLBLENDEQUATIONSEPARATEIARBPROC glad_glBlendEquationSeparateiARB = NULL; 2652PFNGLBLENDEQUATIONSEPARATEIARBPROC glad_glBlendEquationSeparateiARB = NULL;
@@ -2294,8 +2677,6 @@ PFNGLPROGRAMPARAMETERIARBPROC glad_glProgramParameteriARB = NULL;
2294PFNGLFRAMEBUFFERTEXTUREARBPROC glad_glFramebufferTextureARB = NULL; 2677PFNGLFRAMEBUFFERTEXTUREARBPROC glad_glFramebufferTextureARB = NULL;
2295PFNGLFRAMEBUFFERTEXTURELAYERARBPROC glad_glFramebufferTextureLayerARB = NULL; 2678PFNGLFRAMEBUFFERTEXTURELAYERARBPROC glad_glFramebufferTextureLayerARB = NULL;
2296PFNGLFRAMEBUFFERTEXTUREFACEARBPROC glad_glFramebufferTextureFaceARB = NULL; 2679PFNGLFRAMEBUFFERTEXTUREFACEARBPROC glad_glFramebufferTextureFaceARB = NULL;
2297PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage = NULL;
2298PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage = NULL;
2299PFNGLSPECIALIZESHADERARBPROC glad_glSpecializeShaderARB = NULL; 2680PFNGLSPECIALIZESHADERARBPROC glad_glSpecializeShaderARB = NULL;
2300PFNGLUNIFORM1I64ARBPROC glad_glUniform1i64ARB = NULL; 2681PFNGLUNIFORM1I64ARBPROC glad_glUniform1i64ARB = NULL;
2301PFNGLUNIFORM2I64ARBPROC glad_glUniform2i64ARB = NULL; 2682PFNGLUNIFORM2I64ARBPROC glad_glUniform2i64ARB = NULL;
@@ -2373,12 +2754,6 @@ PFNGLMATRIXINDEXUBVARBPROC glad_glMatrixIndexubvARB = NULL;
2373PFNGLMATRIXINDEXUSVARBPROC glad_glMatrixIndexusvARB = NULL; 2754PFNGLMATRIXINDEXUSVARBPROC glad_glMatrixIndexusvARB = NULL;
2374PFNGLMATRIXINDEXUIVARBPROC glad_glMatrixIndexuivARB = NULL; 2755PFNGLMATRIXINDEXUIVARBPROC glad_glMatrixIndexuivARB = NULL;
2375PFNGLMATRIXINDEXPOINTERARBPROC glad_glMatrixIndexPointerARB = NULL; 2756PFNGLMATRIXINDEXPOINTERARBPROC glad_glMatrixIndexPointerARB = NULL;
2376PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase = NULL;
2377PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange = NULL;
2378PFNGLBINDTEXTURESPROC glad_glBindTextures = NULL;
2379PFNGLBINDSAMPLERSPROC glad_glBindSamplers = NULL;
2380PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures = NULL;
2381PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers = NULL;
2382PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB = NULL; 2757PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB = NULL;
2383PFNGLACTIVETEXTUREARBPROC glad_glActiveTextureARB = NULL; 2758PFNGLACTIVETEXTUREARBPROC glad_glActiveTextureARB = NULL;
2384PFNGLCLIENTACTIVETEXTUREARBPROC glad_glClientActiveTextureARB = NULL; 2759PFNGLCLIENTACTIVETEXTUREARBPROC glad_glClientActiveTextureARB = NULL;
@@ -2425,7 +2800,6 @@ PFNGLGETQUERYOBJECTUIVARBPROC glad_glGetQueryObjectuivARB = NULL;
2425PFNGLMAXSHADERCOMPILERTHREADSARBPROC glad_glMaxShaderCompilerThreadsARB = NULL; 2800PFNGLMAXSHADERCOMPILERTHREADSARBPROC glad_glMaxShaderCompilerThreadsARB = NULL;
2426PFNGLPOINTPARAMETERFARBPROC glad_glPointParameterfARB = NULL; 2801PFNGLPOINTPARAMETERFARBPROC glad_glPointParameterfARB = NULL;
2427PFNGLPOINTPARAMETERFVARBPROC glad_glPointParameterfvARB = NULL; 2802PFNGLPOINTPARAMETERFVARBPROC glad_glPointParameterfvARB = NULL;
2428PFNGLPOLYGONOFFSETCLAMPPROC glad_glPolygonOffsetClamp = NULL;
2429PFNGLGETGRAPHICSRESETSTATUSARBPROC glad_glGetGraphicsResetStatusARB = NULL; 2803PFNGLGETGRAPHICSRESETSTATUSARBPROC glad_glGetGraphicsResetStatusARB = NULL;
2430PFNGLGETNTEXIMAGEARBPROC glad_glGetnTexImageARB = NULL; 2804PFNGLGETNTEXIMAGEARBPROC glad_glGetnTexImageARB = NULL;
2431PFNGLREADNPIXELSARBPROC glad_glReadnPixelsARB = NULL; 2805PFNGLREADNPIXELSARBPROC glad_glReadnPixelsARB = NULL;
@@ -2499,7 +2873,6 @@ PFNGLBUFFERPAGECOMMITMENTARBPROC glad_glBufferPageCommitmentARB = NULL;
2499PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC glad_glNamedBufferPageCommitmentEXT = NULL; 2873PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC glad_glNamedBufferPageCommitmentEXT = NULL;
2500PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC glad_glNamedBufferPageCommitmentARB = NULL; 2874PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC glad_glNamedBufferPageCommitmentARB = NULL;
2501PFNGLTEXPAGECOMMITMENTARBPROC glad_glTexPageCommitmentARB = NULL; 2875PFNGLTEXPAGECOMMITMENTARBPROC glad_glTexPageCommitmentARB = NULL;
2502PFNGLTEXTUREBARRIERPROC glad_glTextureBarrier = NULL;
2503PFNGLTEXBUFFERARBPROC glad_glTexBufferARB = NULL; 2876PFNGLTEXBUFFERARBPROC glad_glTexBufferARB = NULL;
2504PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB = NULL; 2877PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB = NULL;
2505PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB = NULL; 2878PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB = NULL;
@@ -3292,11 +3665,6 @@ PFNGLOBJECTPTRLABELKHRPROC glad_glObjectPtrLabelKHR = NULL;
3292PFNGLGETOBJECTPTRLABELKHRPROC glad_glGetObjectPtrLabelKHR = NULL; 3665PFNGLGETOBJECTPTRLABELKHRPROC glad_glGetObjectPtrLabelKHR = NULL;
3293PFNGLGETPOINTERVKHRPROC glad_glGetPointervKHR = NULL; 3666PFNGLGETPOINTERVKHRPROC glad_glGetPointervKHR = NULL;
3294PFNGLMAXSHADERCOMPILERTHREADSKHRPROC glad_glMaxShaderCompilerThreadsKHR = NULL; 3667PFNGLMAXSHADERCOMPILERTHREADSKHRPROC glad_glMaxShaderCompilerThreadsKHR = NULL;
3295PFNGLGETGRAPHICSRESETSTATUSPROC glad_glGetGraphicsResetStatus = NULL;
3296PFNGLREADNPIXELSPROC glad_glReadnPixels = NULL;
3297PFNGLGETNUNIFORMFVPROC glad_glGetnUniformfv = NULL;
3298PFNGLGETNUNIFORMIVPROC glad_glGetnUniformiv = NULL;
3299PFNGLGETNUNIFORMUIVPROC glad_glGetnUniformuiv = NULL;
3300PFNGLGETGRAPHICSRESETSTATUSKHRPROC glad_glGetGraphicsResetStatusKHR = NULL; 3668PFNGLGETGRAPHICSRESETSTATUSKHRPROC glad_glGetGraphicsResetStatusKHR = NULL;
3301PFNGLREADNPIXELSKHRPROC glad_glReadnPixelsKHR = NULL; 3669PFNGLREADNPIXELSKHRPROC glad_glReadnPixelsKHR = NULL;
3302PFNGLGETNUNIFORMFVKHRPROC glad_glGetnUniformfvKHR = NULL; 3670PFNGLGETNUNIFORMFVKHRPROC glad_glGetnUniformfvKHR = NULL;
@@ -4128,11 +4496,270 @@ static void load_GL_VERSION_1_0(GLADloadproc load) {
4128 glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled"); 4496 glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled");
4129 glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange"); 4497 glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange");
4130 glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport"); 4498 glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport");
4499 glad_glNewList = (PFNGLNEWLISTPROC)load("glNewList");
4500 glad_glEndList = (PFNGLENDLISTPROC)load("glEndList");
4501 glad_glCallList = (PFNGLCALLLISTPROC)load("glCallList");
4502 glad_glCallLists = (PFNGLCALLLISTSPROC)load("glCallLists");
4503 glad_glDeleteLists = (PFNGLDELETELISTSPROC)load("glDeleteLists");
4504 glad_glGenLists = (PFNGLGENLISTSPROC)load("glGenLists");
4505 glad_glListBase = (PFNGLLISTBASEPROC)load("glListBase");
4506 glad_glBegin = (PFNGLBEGINPROC)load("glBegin");
4507 glad_glBitmap = (PFNGLBITMAPPROC)load("glBitmap");
4508 glad_glColor3b = (PFNGLCOLOR3BPROC)load("glColor3b");
4509 glad_glColor3bv = (PFNGLCOLOR3BVPROC)load("glColor3bv");
4510 glad_glColor3d = (PFNGLCOLOR3DPROC)load("glColor3d");
4511 glad_glColor3dv = (PFNGLCOLOR3DVPROC)load("glColor3dv");
4512 glad_glColor3f = (PFNGLCOLOR3FPROC)load("glColor3f");
4513 glad_glColor3fv = (PFNGLCOLOR3FVPROC)load("glColor3fv");
4514 glad_glColor3i = (PFNGLCOLOR3IPROC)load("glColor3i");
4515 glad_glColor3iv = (PFNGLCOLOR3IVPROC)load("glColor3iv");
4516 glad_glColor3s = (PFNGLCOLOR3SPROC)load("glColor3s");
4517 glad_glColor3sv = (PFNGLCOLOR3SVPROC)load("glColor3sv");
4518 glad_glColor3ub = (PFNGLCOLOR3UBPROC)load("glColor3ub");
4519 glad_glColor3ubv = (PFNGLCOLOR3UBVPROC)load("glColor3ubv");
4520 glad_glColor3ui = (PFNGLCOLOR3UIPROC)load("glColor3ui");
4521 glad_glColor3uiv = (PFNGLCOLOR3UIVPROC)load("glColor3uiv");
4522 glad_glColor3us = (PFNGLCOLOR3USPROC)load("glColor3us");
4523 glad_glColor3usv = (PFNGLCOLOR3USVPROC)load("glColor3usv");
4524 glad_glColor4b = (PFNGLCOLOR4BPROC)load("glColor4b");
4525 glad_glColor4bv = (PFNGLCOLOR4BVPROC)load("glColor4bv");
4526 glad_glColor4d = (PFNGLCOLOR4DPROC)load("glColor4d");
4527 glad_glColor4dv = (PFNGLCOLOR4DVPROC)load("glColor4dv");
4528 glad_glColor4f = (PFNGLCOLOR4FPROC)load("glColor4f");
4529 glad_glColor4fv = (PFNGLCOLOR4FVPROC)load("glColor4fv");
4530 glad_glColor4i = (PFNGLCOLOR4IPROC)load("glColor4i");
4531 glad_glColor4iv = (PFNGLCOLOR4IVPROC)load("glColor4iv");
4532 glad_glColor4s = (PFNGLCOLOR4SPROC)load("glColor4s");
4533 glad_glColor4sv = (PFNGLCOLOR4SVPROC)load("glColor4sv");
4534 glad_glColor4ub = (PFNGLCOLOR4UBPROC)load("glColor4ub");
4535 glad_glColor4ubv = (PFNGLCOLOR4UBVPROC)load("glColor4ubv");
4536 glad_glColor4ui = (PFNGLCOLOR4UIPROC)load("glColor4ui");
4537 glad_glColor4uiv = (PFNGLCOLOR4UIVPROC)load("glColor4uiv");
4538 glad_glColor4us = (PFNGLCOLOR4USPROC)load("glColor4us");
4539 glad_glColor4usv = (PFNGLCOLOR4USVPROC)load("glColor4usv");
4540 glad_glEdgeFlag = (PFNGLEDGEFLAGPROC)load("glEdgeFlag");
4541 glad_glEdgeFlagv = (PFNGLEDGEFLAGVPROC)load("glEdgeFlagv");
4542 glad_glEnd = (PFNGLENDPROC)load("glEnd");
4543 glad_glIndexd = (PFNGLINDEXDPROC)load("glIndexd");
4544 glad_glIndexdv = (PFNGLINDEXDVPROC)load("glIndexdv");
4545 glad_glIndexf = (PFNGLINDEXFPROC)load("glIndexf");
4546 glad_glIndexfv = (PFNGLINDEXFVPROC)load("glIndexfv");
4547 glad_glIndexi = (PFNGLINDEXIPROC)load("glIndexi");
4548 glad_glIndexiv = (PFNGLINDEXIVPROC)load("glIndexiv");
4549 glad_glIndexs = (PFNGLINDEXSPROC)load("glIndexs");
4550 glad_glIndexsv = (PFNGLINDEXSVPROC)load("glIndexsv");
4551 glad_glNormal3b = (PFNGLNORMAL3BPROC)load("glNormal3b");
4552 glad_glNormal3bv = (PFNGLNORMAL3BVPROC)load("glNormal3bv");
4553 glad_glNormal3d = (PFNGLNORMAL3DPROC)load("glNormal3d");
4554 glad_glNormal3dv = (PFNGLNORMAL3DVPROC)load("glNormal3dv");
4555 glad_glNormal3f = (PFNGLNORMAL3FPROC)load("glNormal3f");
4556 glad_glNormal3fv = (PFNGLNORMAL3FVPROC)load("glNormal3fv");
4557 glad_glNormal3i = (PFNGLNORMAL3IPROC)load("glNormal3i");
4558 glad_glNormal3iv = (PFNGLNORMAL3IVPROC)load("glNormal3iv");
4559 glad_glNormal3s = (PFNGLNORMAL3SPROC)load("glNormal3s");
4560 glad_glNormal3sv = (PFNGLNORMAL3SVPROC)load("glNormal3sv");
4561 glad_glRasterPos2d = (PFNGLRASTERPOS2DPROC)load("glRasterPos2d");
4562 glad_glRasterPos2dv = (PFNGLRASTERPOS2DVPROC)load("glRasterPos2dv");
4563 glad_glRasterPos2f = (PFNGLRASTERPOS2FPROC)load("glRasterPos2f");
4564 glad_glRasterPos2fv = (PFNGLRASTERPOS2FVPROC)load("glRasterPos2fv");
4565 glad_glRasterPos2i = (PFNGLRASTERPOS2IPROC)load("glRasterPos2i");
4566 glad_glRasterPos2iv = (PFNGLRASTERPOS2IVPROC)load("glRasterPos2iv");
4567 glad_glRasterPos2s = (PFNGLRASTERPOS2SPROC)load("glRasterPos2s");
4568 glad_glRasterPos2sv = (PFNGLRASTERPOS2SVPROC)load("glRasterPos2sv");
4569 glad_glRasterPos3d = (PFNGLRASTERPOS3DPROC)load("glRasterPos3d");
4570 glad_glRasterPos3dv = (PFNGLRASTERPOS3DVPROC)load("glRasterPos3dv");
4571 glad_glRasterPos3f = (PFNGLRASTERPOS3FPROC)load("glRasterPos3f");
4572 glad_glRasterPos3fv = (PFNGLRASTERPOS3FVPROC)load("glRasterPos3fv");
4573 glad_glRasterPos3i = (PFNGLRASTERPOS3IPROC)load("glRasterPos3i");
4574 glad_glRasterPos3iv = (PFNGLRASTERPOS3IVPROC)load("glRasterPos3iv");
4575 glad_glRasterPos3s = (PFNGLRASTERPOS3SPROC)load("glRasterPos3s");
4576 glad_glRasterPos3sv = (PFNGLRASTERPOS3SVPROC)load("glRasterPos3sv");
4577 glad_glRasterPos4d = (PFNGLRASTERPOS4DPROC)load("glRasterPos4d");
4578 glad_glRasterPos4dv = (PFNGLRASTERPOS4DVPROC)load("glRasterPos4dv");
4579 glad_glRasterPos4f = (PFNGLRASTERPOS4FPROC)load("glRasterPos4f");
4580 glad_glRasterPos4fv = (PFNGLRASTERPOS4FVPROC)load("glRasterPos4fv");
4581 glad_glRasterPos4i = (PFNGLRASTERPOS4IPROC)load("glRasterPos4i");
4582 glad_glRasterPos4iv = (PFNGLRASTERPOS4IVPROC)load("glRasterPos4iv");
4583 glad_glRasterPos4s = (PFNGLRASTERPOS4SPROC)load("glRasterPos4s");
4584 glad_glRasterPos4sv = (PFNGLRASTERPOS4SVPROC)load("glRasterPos4sv");
4585 glad_glRectd = (PFNGLRECTDPROC)load("glRectd");
4586 glad_glRectdv = (PFNGLRECTDVPROC)load("glRectdv");
4587 glad_glRectf = (PFNGLRECTFPROC)load("glRectf");
4588 glad_glRectfv = (PFNGLRECTFVPROC)load("glRectfv");
4589 glad_glRecti = (PFNGLRECTIPROC)load("glRecti");
4590 glad_glRectiv = (PFNGLRECTIVPROC)load("glRectiv");
4591 glad_glRects = (PFNGLRECTSPROC)load("glRects");
4592 glad_glRectsv = (PFNGLRECTSVPROC)load("glRectsv");
4593 glad_glTexCoord1d = (PFNGLTEXCOORD1DPROC)load("glTexCoord1d");
4594 glad_glTexCoord1dv = (PFNGLTEXCOORD1DVPROC)load("glTexCoord1dv");
4595 glad_glTexCoord1f = (PFNGLTEXCOORD1FPROC)load("glTexCoord1f");
4596 glad_glTexCoord1fv = (PFNGLTEXCOORD1FVPROC)load("glTexCoord1fv");
4597 glad_glTexCoord1i = (PFNGLTEXCOORD1IPROC)load("glTexCoord1i");
4598 glad_glTexCoord1iv = (PFNGLTEXCOORD1IVPROC)load("glTexCoord1iv");
4599 glad_glTexCoord1s = (PFNGLTEXCOORD1SPROC)load("glTexCoord1s");
4600 glad_glTexCoord1sv = (PFNGLTEXCOORD1SVPROC)load("glTexCoord1sv");
4601 glad_glTexCoord2d = (PFNGLTEXCOORD2DPROC)load("glTexCoord2d");
4602 glad_glTexCoord2dv = (PFNGLTEXCOORD2DVPROC)load("glTexCoord2dv");
4603 glad_glTexCoord2f = (PFNGLTEXCOORD2FPROC)load("glTexCoord2f");
4604 glad_glTexCoord2fv = (PFNGLTEXCOORD2FVPROC)load("glTexCoord2fv");
4605 glad_glTexCoord2i = (PFNGLTEXCOORD2IPROC)load("glTexCoord2i");
4606 glad_glTexCoord2iv = (PFNGLTEXCOORD2IVPROC)load("glTexCoord2iv");
4607 glad_glTexCoord2s = (PFNGLTEXCOORD2SPROC)load("glTexCoord2s");
4608 glad_glTexCoord2sv = (PFNGLTEXCOORD2SVPROC)load("glTexCoord2sv");
4609 glad_glTexCoord3d = (PFNGLTEXCOORD3DPROC)load("glTexCoord3d");
4610 glad_glTexCoord3dv = (PFNGLTEXCOORD3DVPROC)load("glTexCoord3dv");
4611 glad_glTexCoord3f = (PFNGLTEXCOORD3FPROC)load("glTexCoord3f");
4612 glad_glTexCoord3fv = (PFNGLTEXCOORD3FVPROC)load("glTexCoord3fv");
4613 glad_glTexCoord3i = (PFNGLTEXCOORD3IPROC)load("glTexCoord3i");
4614 glad_glTexCoord3iv = (PFNGLTEXCOORD3IVPROC)load("glTexCoord3iv");
4615 glad_glTexCoord3s = (PFNGLTEXCOORD3SPROC)load("glTexCoord3s");
4616 glad_glTexCoord3sv = (PFNGLTEXCOORD3SVPROC)load("glTexCoord3sv");
4617 glad_glTexCoord4d = (PFNGLTEXCOORD4DPROC)load("glTexCoord4d");
4618 glad_glTexCoord4dv = (PFNGLTEXCOORD4DVPROC)load("glTexCoord4dv");
4619 glad_glTexCoord4f = (PFNGLTEXCOORD4FPROC)load("glTexCoord4f");
4620 glad_glTexCoord4fv = (PFNGLTEXCOORD4FVPROC)load("glTexCoord4fv");
4621 glad_glTexCoord4i = (PFNGLTEXCOORD4IPROC)load("glTexCoord4i");
4622 glad_glTexCoord4iv = (PFNGLTEXCOORD4IVPROC)load("glTexCoord4iv");
4623 glad_glTexCoord4s = (PFNGLTEXCOORD4SPROC)load("glTexCoord4s");
4624 glad_glTexCoord4sv = (PFNGLTEXCOORD4SVPROC)load("glTexCoord4sv");
4625 glad_glVertex2d = (PFNGLVERTEX2DPROC)load("glVertex2d");
4626 glad_glVertex2dv = (PFNGLVERTEX2DVPROC)load("glVertex2dv");
4627 glad_glVertex2f = (PFNGLVERTEX2FPROC)load("glVertex2f");
4628 glad_glVertex2fv = (PFNGLVERTEX2FVPROC)load("glVertex2fv");
4629 glad_glVertex2i = (PFNGLVERTEX2IPROC)load("glVertex2i");
4630 glad_glVertex2iv = (PFNGLVERTEX2IVPROC)load("glVertex2iv");
4631 glad_glVertex2s = (PFNGLVERTEX2SPROC)load("glVertex2s");
4632 glad_glVertex2sv = (PFNGLVERTEX2SVPROC)load("glVertex2sv");
4633 glad_glVertex3d = (PFNGLVERTEX3DPROC)load("glVertex3d");
4634 glad_glVertex3dv = (PFNGLVERTEX3DVPROC)load("glVertex3dv");
4635 glad_glVertex3f = (PFNGLVERTEX3FPROC)load("glVertex3f");
4636 glad_glVertex3fv = (PFNGLVERTEX3FVPROC)load("glVertex3fv");
4637 glad_glVertex3i = (PFNGLVERTEX3IPROC)load("glVertex3i");
4638 glad_glVertex3iv = (PFNGLVERTEX3IVPROC)load("glVertex3iv");
4639 glad_glVertex3s = (PFNGLVERTEX3SPROC)load("glVertex3s");
4640 glad_glVertex3sv = (PFNGLVERTEX3SVPROC)load("glVertex3sv");
4641 glad_glVertex4d = (PFNGLVERTEX4DPROC)load("glVertex4d");
4642 glad_glVertex4dv = (PFNGLVERTEX4DVPROC)load("glVertex4dv");
4643 glad_glVertex4f = (PFNGLVERTEX4FPROC)load("glVertex4f");
4644 glad_glVertex4fv = (PFNGLVERTEX4FVPROC)load("glVertex4fv");
4645 glad_glVertex4i = (PFNGLVERTEX4IPROC)load("glVertex4i");
4646 glad_glVertex4iv = (PFNGLVERTEX4IVPROC)load("glVertex4iv");
4647 glad_glVertex4s = (PFNGLVERTEX4SPROC)load("glVertex4s");
4648 glad_glVertex4sv = (PFNGLVERTEX4SVPROC)load("glVertex4sv");
4649 glad_glClipPlane = (PFNGLCLIPPLANEPROC)load("glClipPlane");
4650 glad_glColorMaterial = (PFNGLCOLORMATERIALPROC)load("glColorMaterial");
4651 glad_glFogf = (PFNGLFOGFPROC)load("glFogf");
4652 glad_glFogfv = (PFNGLFOGFVPROC)load("glFogfv");
4653 glad_glFogi = (PFNGLFOGIPROC)load("glFogi");
4654 glad_glFogiv = (PFNGLFOGIVPROC)load("glFogiv");
4655 glad_glLightf = (PFNGLLIGHTFPROC)load("glLightf");
4656 glad_glLightfv = (PFNGLLIGHTFVPROC)load("glLightfv");
4657 glad_glLighti = (PFNGLLIGHTIPROC)load("glLighti");
4658 glad_glLightiv = (PFNGLLIGHTIVPROC)load("glLightiv");
4659 glad_glLightModelf = (PFNGLLIGHTMODELFPROC)load("glLightModelf");
4660 glad_glLightModelfv = (PFNGLLIGHTMODELFVPROC)load("glLightModelfv");
4661 glad_glLightModeli = (PFNGLLIGHTMODELIPROC)load("glLightModeli");
4662 glad_glLightModeliv = (PFNGLLIGHTMODELIVPROC)load("glLightModeliv");
4663 glad_glLineStipple = (PFNGLLINESTIPPLEPROC)load("glLineStipple");
4664 glad_glMaterialf = (PFNGLMATERIALFPROC)load("glMaterialf");
4665 glad_glMaterialfv = (PFNGLMATERIALFVPROC)load("glMaterialfv");
4666 glad_glMateriali = (PFNGLMATERIALIPROC)load("glMateriali");
4667 glad_glMaterialiv = (PFNGLMATERIALIVPROC)load("glMaterialiv");
4668 glad_glPolygonStipple = (PFNGLPOLYGONSTIPPLEPROC)load("glPolygonStipple");
4669 glad_glShadeModel = (PFNGLSHADEMODELPROC)load("glShadeModel");
4670 glad_glTexEnvf = (PFNGLTEXENVFPROC)load("glTexEnvf");
4671 glad_glTexEnvfv = (PFNGLTEXENVFVPROC)load("glTexEnvfv");
4672 glad_glTexEnvi = (PFNGLTEXENVIPROC)load("glTexEnvi");
4673 glad_glTexEnviv = (PFNGLTEXENVIVPROC)load("glTexEnviv");
4674 glad_glTexGend = (PFNGLTEXGENDPROC)load("glTexGend");
4675 glad_glTexGendv = (PFNGLTEXGENDVPROC)load("glTexGendv");
4676 glad_glTexGenf = (PFNGLTEXGENFPROC)load("glTexGenf");
4677 glad_glTexGenfv = (PFNGLTEXGENFVPROC)load("glTexGenfv");
4678 glad_glTexGeni = (PFNGLTEXGENIPROC)load("glTexGeni");
4679 glad_glTexGeniv = (PFNGLTEXGENIVPROC)load("glTexGeniv");
4680 glad_glFeedbackBuffer = (PFNGLFEEDBACKBUFFERPROC)load("glFeedbackBuffer");
4681 glad_glSelectBuffer = (PFNGLSELECTBUFFERPROC)load("glSelectBuffer");
4682 glad_glRenderMode = (PFNGLRENDERMODEPROC)load("glRenderMode");
4683 glad_glInitNames = (PFNGLINITNAMESPROC)load("glInitNames");
4684 glad_glLoadName = (PFNGLLOADNAMEPROC)load("glLoadName");
4685 glad_glPassThrough = (PFNGLPASSTHROUGHPROC)load("glPassThrough");
4686 glad_glPopName = (PFNGLPOPNAMEPROC)load("glPopName");
4687 glad_glPushName = (PFNGLPUSHNAMEPROC)load("glPushName");
4688 glad_glClearAccum = (PFNGLCLEARACCUMPROC)load("glClearAccum");
4689 glad_glClearIndex = (PFNGLCLEARINDEXPROC)load("glClearIndex");
4690 glad_glIndexMask = (PFNGLINDEXMASKPROC)load("glIndexMask");
4691 glad_glAccum = (PFNGLACCUMPROC)load("glAccum");
4692 glad_glPopAttrib = (PFNGLPOPATTRIBPROC)load("glPopAttrib");
4693 glad_glPushAttrib = (PFNGLPUSHATTRIBPROC)load("glPushAttrib");
4694 glad_glMap1d = (PFNGLMAP1DPROC)load("glMap1d");
4695 glad_glMap1f = (PFNGLMAP1FPROC)load("glMap1f");
4696 glad_glMap2d = (PFNGLMAP2DPROC)load("glMap2d");
4697 glad_glMap2f = (PFNGLMAP2FPROC)load("glMap2f");
4698 glad_glMapGrid1d = (PFNGLMAPGRID1DPROC)load("glMapGrid1d");
4699 glad_glMapGrid1f = (PFNGLMAPGRID1FPROC)load("glMapGrid1f");
4700 glad_glMapGrid2d = (PFNGLMAPGRID2DPROC)load("glMapGrid2d");
4701 glad_glMapGrid2f = (PFNGLMAPGRID2FPROC)load("glMapGrid2f");
4702 glad_glEvalCoord1d = (PFNGLEVALCOORD1DPROC)load("glEvalCoord1d");
4703 glad_glEvalCoord1dv = (PFNGLEVALCOORD1DVPROC)load("glEvalCoord1dv");
4704 glad_glEvalCoord1f = (PFNGLEVALCOORD1FPROC)load("glEvalCoord1f");
4705 glad_glEvalCoord1fv = (PFNGLEVALCOORD1FVPROC)load("glEvalCoord1fv");
4706 glad_glEvalCoord2d = (PFNGLEVALCOORD2DPROC)load("glEvalCoord2d");
4707 glad_glEvalCoord2dv = (PFNGLEVALCOORD2DVPROC)load("glEvalCoord2dv");
4708 glad_glEvalCoord2f = (PFNGLEVALCOORD2FPROC)load("glEvalCoord2f");
4709 glad_glEvalCoord2fv = (PFNGLEVALCOORD2FVPROC)load("glEvalCoord2fv");
4710 glad_glEvalMesh1 = (PFNGLEVALMESH1PROC)load("glEvalMesh1");
4711 glad_glEvalPoint1 = (PFNGLEVALPOINT1PROC)load("glEvalPoint1");
4712 glad_glEvalMesh2 = (PFNGLEVALMESH2PROC)load("glEvalMesh2");
4713 glad_glEvalPoint2 = (PFNGLEVALPOINT2PROC)load("glEvalPoint2");
4714 glad_glAlphaFunc = (PFNGLALPHAFUNCPROC)load("glAlphaFunc");
4715 glad_glPixelZoom = (PFNGLPIXELZOOMPROC)load("glPixelZoom");
4716 glad_glPixelTransferf = (PFNGLPIXELTRANSFERFPROC)load("glPixelTransferf");
4717 glad_glPixelTransferi = (PFNGLPIXELTRANSFERIPROC)load("glPixelTransferi");
4718 glad_glPixelMapfv = (PFNGLPIXELMAPFVPROC)load("glPixelMapfv");
4719 glad_glPixelMapuiv = (PFNGLPIXELMAPUIVPROC)load("glPixelMapuiv");
4720 glad_glPixelMapusv = (PFNGLPIXELMAPUSVPROC)load("glPixelMapusv");
4721 glad_glCopyPixels = (PFNGLCOPYPIXELSPROC)load("glCopyPixels");
4722 glad_glDrawPixels = (PFNGLDRAWPIXELSPROC)load("glDrawPixels");
4723 glad_glGetClipPlane = (PFNGLGETCLIPPLANEPROC)load("glGetClipPlane");
4724 glad_glGetLightfv = (PFNGLGETLIGHTFVPROC)load("glGetLightfv");
4725 glad_glGetLightiv = (PFNGLGETLIGHTIVPROC)load("glGetLightiv");
4726 glad_glGetMapdv = (PFNGLGETMAPDVPROC)load("glGetMapdv");
4727 glad_glGetMapfv = (PFNGLGETMAPFVPROC)load("glGetMapfv");
4728 glad_glGetMapiv = (PFNGLGETMAPIVPROC)load("glGetMapiv");
4729 glad_glGetMaterialfv = (PFNGLGETMATERIALFVPROC)load("glGetMaterialfv");
4730 glad_glGetMaterialiv = (PFNGLGETMATERIALIVPROC)load("glGetMaterialiv");
4731 glad_glGetPixelMapfv = (PFNGLGETPIXELMAPFVPROC)load("glGetPixelMapfv");
4732 glad_glGetPixelMapuiv = (PFNGLGETPIXELMAPUIVPROC)load("glGetPixelMapuiv");
4733 glad_glGetPixelMapusv = (PFNGLGETPIXELMAPUSVPROC)load("glGetPixelMapusv");
4734 glad_glGetPolygonStipple = (PFNGLGETPOLYGONSTIPPLEPROC)load("glGetPolygonStipple");
4735 glad_glGetTexEnvfv = (PFNGLGETTEXENVFVPROC)load("glGetTexEnvfv");
4736 glad_glGetTexEnviv = (PFNGLGETTEXENVIVPROC)load("glGetTexEnviv");
4737 glad_glGetTexGendv = (PFNGLGETTEXGENDVPROC)load("glGetTexGendv");
4738 glad_glGetTexGenfv = (PFNGLGETTEXGENFVPROC)load("glGetTexGenfv");
4739 glad_glGetTexGeniv = (PFNGLGETTEXGENIVPROC)load("glGetTexGeniv");
4740 glad_glIsList = (PFNGLISLISTPROC)load("glIsList");
4741 glad_glFrustum = (PFNGLFRUSTUMPROC)load("glFrustum");
4742 glad_glLoadIdentity = (PFNGLLOADIDENTITYPROC)load("glLoadIdentity");
4743 glad_glLoadMatrixf = (PFNGLLOADMATRIXFPROC)load("glLoadMatrixf");
4744 glad_glLoadMatrixd = (PFNGLLOADMATRIXDPROC)load("glLoadMatrixd");
4745 glad_glMatrixMode = (PFNGLMATRIXMODEPROC)load("glMatrixMode");
4746 glad_glMultMatrixf = (PFNGLMULTMATRIXFPROC)load("glMultMatrixf");
4747 glad_glMultMatrixd = (PFNGLMULTMATRIXDPROC)load("glMultMatrixd");
4748 glad_glOrtho = (PFNGLORTHOPROC)load("glOrtho");
4749 glad_glPopMatrix = (PFNGLPOPMATRIXPROC)load("glPopMatrix");
4750 glad_glPushMatrix = (PFNGLPUSHMATRIXPROC)load("glPushMatrix");
4751 glad_glRotated = (PFNGLROTATEDPROC)load("glRotated");
4752 glad_glRotatef = (PFNGLROTATEFPROC)load("glRotatef");
4753 glad_glScaled = (PFNGLSCALEDPROC)load("glScaled");
4754 glad_glScalef = (PFNGLSCALEFPROC)load("glScalef");
4755 glad_glTranslated = (PFNGLTRANSLATEDPROC)load("glTranslated");
4756 glad_glTranslatef = (PFNGLTRANSLATEFPROC)load("glTranslatef");
4131} 4757}
4132static void load_GL_VERSION_1_1(GLADloadproc load) { 4758static void load_GL_VERSION_1_1(GLADloadproc load) {
4133 if(!GLAD_GL_VERSION_1_1) return; 4759 if(!GLAD_GL_VERSION_1_1) return;
4134 glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays"); 4760 glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays");
4135 glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements"); 4761 glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements");
4762 glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv");
4136 glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset"); 4763 glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset");
4137 glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D"); 4764 glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D");
4138 glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D"); 4765 glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D");
@@ -4144,6 +4771,22 @@ static void load_GL_VERSION_1_1(GLADloadproc load) {
4144 glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures"); 4771 glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures");
4145 glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures"); 4772 glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures");
4146 glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture"); 4773 glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture");
4774 glad_glArrayElement = (PFNGLARRAYELEMENTPROC)load("glArrayElement");
4775 glad_glColorPointer = (PFNGLCOLORPOINTERPROC)load("glColorPointer");
4776 glad_glDisableClientState = (PFNGLDISABLECLIENTSTATEPROC)load("glDisableClientState");
4777 glad_glEdgeFlagPointer = (PFNGLEDGEFLAGPOINTERPROC)load("glEdgeFlagPointer");
4778 glad_glEnableClientState = (PFNGLENABLECLIENTSTATEPROC)load("glEnableClientState");
4779 glad_glIndexPointer = (PFNGLINDEXPOINTERPROC)load("glIndexPointer");
4780 glad_glInterleavedArrays = (PFNGLINTERLEAVEDARRAYSPROC)load("glInterleavedArrays");
4781 glad_glNormalPointer = (PFNGLNORMALPOINTERPROC)load("glNormalPointer");
4782 glad_glTexCoordPointer = (PFNGLTEXCOORDPOINTERPROC)load("glTexCoordPointer");
4783 glad_glVertexPointer = (PFNGLVERTEXPOINTERPROC)load("glVertexPointer");
4784 glad_glAreTexturesResident = (PFNGLARETEXTURESRESIDENTPROC)load("glAreTexturesResident");
4785 glad_glPrioritizeTextures = (PFNGLPRIORITIZETEXTURESPROC)load("glPrioritizeTextures");
4786 glad_glIndexub = (PFNGLINDEXUBPROC)load("glIndexub");
4787 glad_glIndexubv = (PFNGLINDEXUBVPROC)load("glIndexubv");
4788 glad_glPopClientAttrib = (PFNGLPOPCLIENTATTRIBPROC)load("glPopClientAttrib");
4789 glad_glPushClientAttrib = (PFNGLPUSHCLIENTATTRIBPROC)load("glPushClientAttrib");
4147} 4790}
4148static void load_GL_VERSION_1_2(GLADloadproc load) { 4791static void load_GL_VERSION_1_2(GLADloadproc load) {
4149 if(!GLAD_GL_VERSION_1_2) return; 4792 if(!GLAD_GL_VERSION_1_2) return;
@@ -4163,6 +4806,43 @@ static void load_GL_VERSION_1_3(GLADloadproc load) {
4163 glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D"); 4806 glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D");
4164 glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D"); 4807 glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D");
4165 glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage"); 4808 glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage");
4809 glad_glClientActiveTexture = (PFNGLCLIENTACTIVETEXTUREPROC)load("glClientActiveTexture");
4810 glad_glMultiTexCoord1d = (PFNGLMULTITEXCOORD1DPROC)load("glMultiTexCoord1d");
4811 glad_glMultiTexCoord1dv = (PFNGLMULTITEXCOORD1DVPROC)load("glMultiTexCoord1dv");
4812 glad_glMultiTexCoord1f = (PFNGLMULTITEXCOORD1FPROC)load("glMultiTexCoord1f");
4813 glad_glMultiTexCoord1fv = (PFNGLMULTITEXCOORD1FVPROC)load("glMultiTexCoord1fv");
4814 glad_glMultiTexCoord1i = (PFNGLMULTITEXCOORD1IPROC)load("glMultiTexCoord1i");
4815 glad_glMultiTexCoord1iv = (PFNGLMULTITEXCOORD1IVPROC)load("glMultiTexCoord1iv");
4816 glad_glMultiTexCoord1s = (PFNGLMULTITEXCOORD1SPROC)load("glMultiTexCoord1s");
4817 glad_glMultiTexCoord1sv = (PFNGLMULTITEXCOORD1SVPROC)load("glMultiTexCoord1sv");
4818 glad_glMultiTexCoord2d = (PFNGLMULTITEXCOORD2DPROC)load("glMultiTexCoord2d");
4819 glad_glMultiTexCoord2dv = (PFNGLMULTITEXCOORD2DVPROC)load("glMultiTexCoord2dv");
4820 glad_glMultiTexCoord2f = (PFNGLMULTITEXCOORD2FPROC)load("glMultiTexCoord2f");
4821 glad_glMultiTexCoord2fv = (PFNGLMULTITEXCOORD2FVPROC)load("glMultiTexCoord2fv");
4822 glad_glMultiTexCoord2i = (PFNGLMULTITEXCOORD2IPROC)load("glMultiTexCoord2i");
4823 glad_glMultiTexCoord2iv = (PFNGLMULTITEXCOORD2IVPROC)load("glMultiTexCoord2iv");
4824 glad_glMultiTexCoord2s = (PFNGLMULTITEXCOORD2SPROC)load("glMultiTexCoord2s");
4825 glad_glMultiTexCoord2sv = (PFNGLMULTITEXCOORD2SVPROC)load("glMultiTexCoord2sv");
4826 glad_glMultiTexCoord3d = (PFNGLMULTITEXCOORD3DPROC)load("glMultiTexCoord3d");
4827 glad_glMultiTexCoord3dv = (PFNGLMULTITEXCOORD3DVPROC)load("glMultiTexCoord3dv");
4828 glad_glMultiTexCoord3f = (PFNGLMULTITEXCOORD3FPROC)load("glMultiTexCoord3f");
4829 glad_glMultiTexCoord3fv = (PFNGLMULTITEXCOORD3FVPROC)load("glMultiTexCoord3fv");
4830 glad_glMultiTexCoord3i = (PFNGLMULTITEXCOORD3IPROC)load("glMultiTexCoord3i");
4831 glad_glMultiTexCoord3iv = (PFNGLMULTITEXCOORD3IVPROC)load("glMultiTexCoord3iv");
4832 glad_glMultiTexCoord3s = (PFNGLMULTITEXCOORD3SPROC)load("glMultiTexCoord3s");
4833 glad_glMultiTexCoord3sv = (PFNGLMULTITEXCOORD3SVPROC)load("glMultiTexCoord3sv");
4834 glad_glMultiTexCoord4d = (PFNGLMULTITEXCOORD4DPROC)load("glMultiTexCoord4d");
4835 glad_glMultiTexCoord4dv = (PFNGLMULTITEXCOORD4DVPROC)load("glMultiTexCoord4dv");
4836 glad_glMultiTexCoord4f = (PFNGLMULTITEXCOORD4FPROC)load("glMultiTexCoord4f");
4837 glad_glMultiTexCoord4fv = (PFNGLMULTITEXCOORD4FVPROC)load("glMultiTexCoord4fv");
4838 glad_glMultiTexCoord4i = (PFNGLMULTITEXCOORD4IPROC)load("glMultiTexCoord4i");
4839 glad_glMultiTexCoord4iv = (PFNGLMULTITEXCOORD4IVPROC)load("glMultiTexCoord4iv");
4840 glad_glMultiTexCoord4s = (PFNGLMULTITEXCOORD4SPROC)load("glMultiTexCoord4s");
4841 glad_glMultiTexCoord4sv = (PFNGLMULTITEXCOORD4SVPROC)load("glMultiTexCoord4sv");
4842 glad_glLoadTransposeMatrixf = (PFNGLLOADTRANSPOSEMATRIXFPROC)load("glLoadTransposeMatrixf");
4843 glad_glLoadTransposeMatrixd = (PFNGLLOADTRANSPOSEMATRIXDPROC)load("glLoadTransposeMatrixd");
4844 glad_glMultTransposeMatrixf = (PFNGLMULTTRANSPOSEMATRIXFPROC)load("glMultTransposeMatrixf");
4845 glad_glMultTransposeMatrixd = (PFNGLMULTTRANSPOSEMATRIXDPROC)load("glMultTransposeMatrixd");
4166} 4846}
4167static void load_GL_VERSION_1_4(GLADloadproc load) { 4847static void load_GL_VERSION_1_4(GLADloadproc load) {
4168 if(!GLAD_GL_VERSION_1_4) return; 4848 if(!GLAD_GL_VERSION_1_4) return;
@@ -4173,6 +4853,44 @@ static void load_GL_VERSION_1_4(GLADloadproc load) {
4173 glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv"); 4853 glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv");
4174 glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri"); 4854 glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri");
4175 glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv"); 4855 glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv");
4856 glad_glFogCoordf = (PFNGLFOGCOORDFPROC)load("glFogCoordf");
4857 glad_glFogCoordfv = (PFNGLFOGCOORDFVPROC)load("glFogCoordfv");
4858 glad_glFogCoordd = (PFNGLFOGCOORDDPROC)load("glFogCoordd");
4859 glad_glFogCoorddv = (PFNGLFOGCOORDDVPROC)load("glFogCoorddv");
4860 glad_glFogCoordPointer = (PFNGLFOGCOORDPOINTERPROC)load("glFogCoordPointer");
4861 glad_glSecondaryColor3b = (PFNGLSECONDARYCOLOR3BPROC)load("glSecondaryColor3b");
4862 glad_glSecondaryColor3bv = (PFNGLSECONDARYCOLOR3BVPROC)load("glSecondaryColor3bv");
4863 glad_glSecondaryColor3d = (PFNGLSECONDARYCOLOR3DPROC)load("glSecondaryColor3d");
4864 glad_glSecondaryColor3dv = (PFNGLSECONDARYCOLOR3DVPROC)load("glSecondaryColor3dv");
4865 glad_glSecondaryColor3f = (PFNGLSECONDARYCOLOR3FPROC)load("glSecondaryColor3f");
4866 glad_glSecondaryColor3fv = (PFNGLSECONDARYCOLOR3FVPROC)load("glSecondaryColor3fv");
4867 glad_glSecondaryColor3i = (PFNGLSECONDARYCOLOR3IPROC)load("glSecondaryColor3i");
4868 glad_glSecondaryColor3iv = (PFNGLSECONDARYCOLOR3IVPROC)load("glSecondaryColor3iv");
4869 glad_glSecondaryColor3s = (PFNGLSECONDARYCOLOR3SPROC)load("glSecondaryColor3s");
4870 glad_glSecondaryColor3sv = (PFNGLSECONDARYCOLOR3SVPROC)load("glSecondaryColor3sv");
4871 glad_glSecondaryColor3ub = (PFNGLSECONDARYCOLOR3UBPROC)load("glSecondaryColor3ub");
4872 glad_glSecondaryColor3ubv = (PFNGLSECONDARYCOLOR3UBVPROC)load("glSecondaryColor3ubv");
4873 glad_glSecondaryColor3ui = (PFNGLSECONDARYCOLOR3UIPROC)load("glSecondaryColor3ui");
4874 glad_glSecondaryColor3uiv = (PFNGLSECONDARYCOLOR3UIVPROC)load("glSecondaryColor3uiv");
4875 glad_glSecondaryColor3us = (PFNGLSECONDARYCOLOR3USPROC)load("glSecondaryColor3us");
4876 glad_glSecondaryColor3usv = (PFNGLSECONDARYCOLOR3USVPROC)load("glSecondaryColor3usv");
4877 glad_glSecondaryColorPointer = (PFNGLSECONDARYCOLORPOINTERPROC)load("glSecondaryColorPointer");
4878 glad_glWindowPos2d = (PFNGLWINDOWPOS2DPROC)load("glWindowPos2d");
4879 glad_glWindowPos2dv = (PFNGLWINDOWPOS2DVPROC)load("glWindowPos2dv");
4880 glad_glWindowPos2f = (PFNGLWINDOWPOS2FPROC)load("glWindowPos2f");
4881 glad_glWindowPos2fv = (PFNGLWINDOWPOS2FVPROC)load("glWindowPos2fv");
4882 glad_glWindowPos2i = (PFNGLWINDOWPOS2IPROC)load("glWindowPos2i");
4883 glad_glWindowPos2iv = (PFNGLWINDOWPOS2IVPROC)load("glWindowPos2iv");
4884 glad_glWindowPos2s = (PFNGLWINDOWPOS2SPROC)load("glWindowPos2s");
4885 glad_glWindowPos2sv = (PFNGLWINDOWPOS2SVPROC)load("glWindowPos2sv");
4886 glad_glWindowPos3d = (PFNGLWINDOWPOS3DPROC)load("glWindowPos3d");
4887 glad_glWindowPos3dv = (PFNGLWINDOWPOS3DVPROC)load("glWindowPos3dv");
4888 glad_glWindowPos3f = (PFNGLWINDOWPOS3FPROC)load("glWindowPos3f");
4889 glad_glWindowPos3fv = (PFNGLWINDOWPOS3FVPROC)load("glWindowPos3fv");
4890 glad_glWindowPos3i = (PFNGLWINDOWPOS3IPROC)load("glWindowPos3i");
4891 glad_glWindowPos3iv = (PFNGLWINDOWPOS3IVPROC)load("glWindowPos3iv");
4892 glad_glWindowPos3s = (PFNGLWINDOWPOS3SPROC)load("glWindowPos3s");
4893 glad_glWindowPos3sv = (PFNGLWINDOWPOS3SVPROC)load("glWindowPos3sv");
4176 glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor"); 4894 glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor");
4177 glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation"); 4895 glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation");
4178} 4896}
@@ -4694,6 +5412,150 @@ static void load_GL_VERSION_4_3(GLADloadproc load) {
4694 glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC)load("glGetObjectPtrLabel"); 5412 glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC)load("glGetObjectPtrLabel");
4695 glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv"); 5413 glad_glGetPointerv = (PFNGLGETPOINTERVPROC)load("glGetPointerv");
4696} 5414}
5415static void load_GL_VERSION_4_4(GLADloadproc load) {
5416 if(!GLAD_GL_VERSION_4_4) return;
5417 glad_glBufferStorage = (PFNGLBUFFERSTORAGEPROC)load("glBufferStorage");
5418 glad_glClearTexImage = (PFNGLCLEARTEXIMAGEPROC)load("glClearTexImage");
5419 glad_glClearTexSubImage = (PFNGLCLEARTEXSUBIMAGEPROC)load("glClearTexSubImage");
5420 glad_glBindBuffersBase = (PFNGLBINDBUFFERSBASEPROC)load("glBindBuffersBase");
5421 glad_glBindBuffersRange = (PFNGLBINDBUFFERSRANGEPROC)load("glBindBuffersRange");
5422 glad_glBindTextures = (PFNGLBINDTEXTURESPROC)load("glBindTextures");
5423 glad_glBindSamplers = (PFNGLBINDSAMPLERSPROC)load("glBindSamplers");
5424 glad_glBindImageTextures = (PFNGLBINDIMAGETEXTURESPROC)load("glBindImageTextures");
5425 glad_glBindVertexBuffers = (PFNGLBINDVERTEXBUFFERSPROC)load("glBindVertexBuffers");
5426}
5427static void load_GL_VERSION_4_5(GLADloadproc load) {
5428 if(!GLAD_GL_VERSION_4_5) return;
5429 glad_glClipControl = (PFNGLCLIPCONTROLPROC)load("glClipControl");
5430 glad_glCreateTransformFeedbacks = (PFNGLCREATETRANSFORMFEEDBACKSPROC)load("glCreateTransformFeedbacks");
5431 glad_glTransformFeedbackBufferBase = (PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)load("glTransformFeedbackBufferBase");
5432 glad_glTransformFeedbackBufferRange = (PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)load("glTransformFeedbackBufferRange");
5433 glad_glGetTransformFeedbackiv = (PFNGLGETTRANSFORMFEEDBACKIVPROC)load("glGetTransformFeedbackiv");
5434 glad_glGetTransformFeedbacki_v = (PFNGLGETTRANSFORMFEEDBACKI_VPROC)load("glGetTransformFeedbacki_v");
5435 glad_glGetTransformFeedbacki64_v = (PFNGLGETTRANSFORMFEEDBACKI64_VPROC)load("glGetTransformFeedbacki64_v");
5436 glad_glCreateBuffers = (PFNGLCREATEBUFFERSPROC)load("glCreateBuffers");
5437 glad_glNamedBufferStorage = (PFNGLNAMEDBUFFERSTORAGEPROC)load("glNamedBufferStorage");
5438 glad_glNamedBufferData = (PFNGLNAMEDBUFFERDATAPROC)load("glNamedBufferData");
5439 glad_glNamedBufferSubData = (PFNGLNAMEDBUFFERSUBDATAPROC)load("glNamedBufferSubData");
5440 glad_glCopyNamedBufferSubData = (PFNGLCOPYNAMEDBUFFERSUBDATAPROC)load("glCopyNamedBufferSubData");
5441 glad_glClearNamedBufferData = (PFNGLCLEARNAMEDBUFFERDATAPROC)load("glClearNamedBufferData");
5442 glad_glClearNamedBufferSubData = (PFNGLCLEARNAMEDBUFFERSUBDATAPROC)load("glClearNamedBufferSubData");
5443 glad_glMapNamedBuffer = (PFNGLMAPNAMEDBUFFERPROC)load("glMapNamedBuffer");
5444 glad_glMapNamedBufferRange = (PFNGLMAPNAMEDBUFFERRANGEPROC)load("glMapNamedBufferRange");
5445 glad_glUnmapNamedBuffer = (PFNGLUNMAPNAMEDBUFFERPROC)load("glUnmapNamedBuffer");
5446 glad_glFlushMappedNamedBufferRange = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)load("glFlushMappedNamedBufferRange");
5447 glad_glGetNamedBufferParameteriv = (PFNGLGETNAMEDBUFFERPARAMETERIVPROC)load("glGetNamedBufferParameteriv");
5448 glad_glGetNamedBufferParameteri64v = (PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)load("glGetNamedBufferParameteri64v");
5449 glad_glGetNamedBufferPointerv = (PFNGLGETNAMEDBUFFERPOINTERVPROC)load("glGetNamedBufferPointerv");
5450 glad_glGetNamedBufferSubData = (PFNGLGETNAMEDBUFFERSUBDATAPROC)load("glGetNamedBufferSubData");
5451 glad_glCreateFramebuffers = (PFNGLCREATEFRAMEBUFFERSPROC)load("glCreateFramebuffers");
5452 glad_glNamedFramebufferRenderbuffer = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)load("glNamedFramebufferRenderbuffer");
5453 glad_glNamedFramebufferParameteri = (PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)load("glNamedFramebufferParameteri");
5454 glad_glNamedFramebufferTexture = (PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)load("glNamedFramebufferTexture");
5455 glad_glNamedFramebufferTextureLayer = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)load("glNamedFramebufferTextureLayer");
5456 glad_glNamedFramebufferDrawBuffer = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)load("glNamedFramebufferDrawBuffer");
5457 glad_glNamedFramebufferDrawBuffers = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)load("glNamedFramebufferDrawBuffers");
5458 glad_glNamedFramebufferReadBuffer = (PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)load("glNamedFramebufferReadBuffer");
5459 glad_glInvalidateNamedFramebufferData = (PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)load("glInvalidateNamedFramebufferData");
5460 glad_glInvalidateNamedFramebufferSubData = (PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)load("glInvalidateNamedFramebufferSubData");
5461 glad_glClearNamedFramebufferiv = (PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)load("glClearNamedFramebufferiv");
5462 glad_glClearNamedFramebufferuiv = (PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)load("glClearNamedFramebufferuiv");
5463 glad_glClearNamedFramebufferfv = (PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)load("glClearNamedFramebufferfv");
5464 glad_glClearNamedFramebufferfi = (PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)load("glClearNamedFramebufferfi");
5465 glad_glBlitNamedFramebuffer = (PFNGLBLITNAMEDFRAMEBUFFERPROC)load("glBlitNamedFramebuffer");
5466 glad_glCheckNamedFramebufferStatus = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)load("glCheckNamedFramebufferStatus");
5467 glad_glGetNamedFramebufferParameteriv = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)load("glGetNamedFramebufferParameteriv");
5468 glad_glGetNamedFramebufferAttachmentParameteriv = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetNamedFramebufferAttachmentParameteriv");
5469 glad_glCreateRenderbuffers = (PFNGLCREATERENDERBUFFERSPROC)load("glCreateRenderbuffers");
5470 glad_glNamedRenderbufferStorage = (PFNGLNAMEDRENDERBUFFERSTORAGEPROC)load("glNamedRenderbufferStorage");
5471 glad_glNamedRenderbufferStorageMultisample = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glNamedRenderbufferStorageMultisample");
5472 glad_glGetNamedRenderbufferParameteriv = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)load("glGetNamedRenderbufferParameteriv");
5473 glad_glCreateTextures = (PFNGLCREATETEXTURESPROC)load("glCreateTextures");
5474 glad_glTextureBuffer = (PFNGLTEXTUREBUFFERPROC)load("glTextureBuffer");
5475 glad_glTextureBufferRange = (PFNGLTEXTUREBUFFERRANGEPROC)load("glTextureBufferRange");
5476 glad_glTextureStorage1D = (PFNGLTEXTURESTORAGE1DPROC)load("glTextureStorage1D");
5477 glad_glTextureStorage2D = (PFNGLTEXTURESTORAGE2DPROC)load("glTextureStorage2D");
5478 glad_glTextureStorage3D = (PFNGLTEXTURESTORAGE3DPROC)load("glTextureStorage3D");
5479 glad_glTextureStorage2DMultisample = (PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)load("glTextureStorage2DMultisample");
5480 glad_glTextureStorage3DMultisample = (PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)load("glTextureStorage3DMultisample");
5481 glad_glTextureSubImage1D = (PFNGLTEXTURESUBIMAGE1DPROC)load("glTextureSubImage1D");
5482 glad_glTextureSubImage2D = (PFNGLTEXTURESUBIMAGE2DPROC)load("glTextureSubImage2D");
5483 glad_glTextureSubImage3D = (PFNGLTEXTURESUBIMAGE3DPROC)load("glTextureSubImage3D");
5484 glad_glCompressedTextureSubImage1D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)load("glCompressedTextureSubImage1D");
5485 glad_glCompressedTextureSubImage2D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)load("glCompressedTextureSubImage2D");
5486 glad_glCompressedTextureSubImage3D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)load("glCompressedTextureSubImage3D");
5487 glad_glCopyTextureSubImage1D = (PFNGLCOPYTEXTURESUBIMAGE1DPROC)load("glCopyTextureSubImage1D");
5488 glad_glCopyTextureSubImage2D = (PFNGLCOPYTEXTURESUBIMAGE2DPROC)load("glCopyTextureSubImage2D");
5489 glad_glCopyTextureSubImage3D = (PFNGLCOPYTEXTURESUBIMAGE3DPROC)load("glCopyTextureSubImage3D");
5490 glad_glTextureParameterf = (PFNGLTEXTUREPARAMETERFPROC)load("glTextureParameterf");
5491 glad_glTextureParameterfv = (PFNGLTEXTUREPARAMETERFVPROC)load("glTextureParameterfv");
5492 glad_glTextureParameteri = (PFNGLTEXTUREPARAMETERIPROC)load("glTextureParameteri");
5493 glad_glTextureParameterIiv = (PFNGLTEXTUREPARAMETERIIVPROC)load("glTextureParameterIiv");
5494 glad_glTextureParameterIuiv = (PFNGLTEXTUREPARAMETERIUIVPROC)load("glTextureParameterIuiv");
5495 glad_glTextureParameteriv = (PFNGLTEXTUREPARAMETERIVPROC)load("glTextureParameteriv");
5496 glad_glGenerateTextureMipmap = (PFNGLGENERATETEXTUREMIPMAPPROC)load("glGenerateTextureMipmap");
5497 glad_glBindTextureUnit = (PFNGLBINDTEXTUREUNITPROC)load("glBindTextureUnit");
5498 glad_glGetTextureImage = (PFNGLGETTEXTUREIMAGEPROC)load("glGetTextureImage");
5499 glad_glGetCompressedTextureImage = (PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)load("glGetCompressedTextureImage");
5500 glad_glGetTextureLevelParameterfv = (PFNGLGETTEXTURELEVELPARAMETERFVPROC)load("glGetTextureLevelParameterfv");
5501 glad_glGetTextureLevelParameteriv = (PFNGLGETTEXTURELEVELPARAMETERIVPROC)load("glGetTextureLevelParameteriv");
5502 glad_glGetTextureParameterfv = (PFNGLGETTEXTUREPARAMETERFVPROC)load("glGetTextureParameterfv");
5503 glad_glGetTextureParameterIiv = (PFNGLGETTEXTUREPARAMETERIIVPROC)load("glGetTextureParameterIiv");
5504 glad_glGetTextureParameterIuiv = (PFNGLGETTEXTUREPARAMETERIUIVPROC)load("glGetTextureParameterIuiv");
5505 glad_glGetTextureParameteriv = (PFNGLGETTEXTUREPARAMETERIVPROC)load("glGetTextureParameteriv");
5506 glad_glCreateVertexArrays = (PFNGLCREATEVERTEXARRAYSPROC)load("glCreateVertexArrays");
5507 glad_glDisableVertexArrayAttrib = (PFNGLDISABLEVERTEXARRAYATTRIBPROC)load("glDisableVertexArrayAttrib");
5508 glad_glEnableVertexArrayAttrib = (PFNGLENABLEVERTEXARRAYATTRIBPROC)load("glEnableVertexArrayAttrib");
5509 glad_glVertexArrayElementBuffer = (PFNGLVERTEXARRAYELEMENTBUFFERPROC)load("glVertexArrayElementBuffer");
5510 glad_glVertexArrayVertexBuffer = (PFNGLVERTEXARRAYVERTEXBUFFERPROC)load("glVertexArrayVertexBuffer");
5511 glad_glVertexArrayVertexBuffers = (PFNGLVERTEXARRAYVERTEXBUFFERSPROC)load("glVertexArrayVertexBuffers");
5512 glad_glVertexArrayAttribBinding = (PFNGLVERTEXARRAYATTRIBBINDINGPROC)load("glVertexArrayAttribBinding");
5513 glad_glVertexArrayAttribFormat = (PFNGLVERTEXARRAYATTRIBFORMATPROC)load("glVertexArrayAttribFormat");
5514 glad_glVertexArrayAttribIFormat = (PFNGLVERTEXARRAYATTRIBIFORMATPROC)load("glVertexArrayAttribIFormat");
5515 glad_glVertexArrayAttribLFormat = (PFNGLVERTEXARRAYATTRIBLFORMATPROC)load("glVertexArrayAttribLFormat");
5516 glad_glVertexArrayBindingDivisor = (PFNGLVERTEXARRAYBINDINGDIVISORPROC)load("glVertexArrayBindingDivisor");
5517 glad_glGetVertexArrayiv = (PFNGLGETVERTEXARRAYIVPROC)load("glGetVertexArrayiv");
5518 glad_glGetVertexArrayIndexediv = (PFNGLGETVERTEXARRAYINDEXEDIVPROC)load("glGetVertexArrayIndexediv");
5519 glad_glGetVertexArrayIndexed64iv = (PFNGLGETVERTEXARRAYINDEXED64IVPROC)load("glGetVertexArrayIndexed64iv");
5520 glad_glCreateSamplers = (PFNGLCREATESAMPLERSPROC)load("glCreateSamplers");
5521 glad_glCreateProgramPipelines = (PFNGLCREATEPROGRAMPIPELINESPROC)load("glCreateProgramPipelines");
5522 glad_glCreateQueries = (PFNGLCREATEQUERIESPROC)load("glCreateQueries");
5523 glad_glGetQueryBufferObjecti64v = (PFNGLGETQUERYBUFFEROBJECTI64VPROC)load("glGetQueryBufferObjecti64v");
5524 glad_glGetQueryBufferObjectiv = (PFNGLGETQUERYBUFFEROBJECTIVPROC)load("glGetQueryBufferObjectiv");
5525 glad_glGetQueryBufferObjectui64v = (PFNGLGETQUERYBUFFEROBJECTUI64VPROC)load("glGetQueryBufferObjectui64v");
5526 glad_glGetQueryBufferObjectuiv = (PFNGLGETQUERYBUFFEROBJECTUIVPROC)load("glGetQueryBufferObjectuiv");
5527 glad_glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC)load("glMemoryBarrierByRegion");
5528 glad_glGetTextureSubImage = (PFNGLGETTEXTURESUBIMAGEPROC)load("glGetTextureSubImage");
5529 glad_glGetCompressedTextureSubImage = (PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)load("glGetCompressedTextureSubImage");
5530 glad_glGetGraphicsResetStatus = (PFNGLGETGRAPHICSRESETSTATUSPROC)load("glGetGraphicsResetStatus");
5531 glad_glGetnCompressedTexImage = (PFNGLGETNCOMPRESSEDTEXIMAGEPROC)load("glGetnCompressedTexImage");
5532 glad_glGetnTexImage = (PFNGLGETNTEXIMAGEPROC)load("glGetnTexImage");
5533 glad_glGetnUniformdv = (PFNGLGETNUNIFORMDVPROC)load("glGetnUniformdv");
5534 glad_glGetnUniformfv = (PFNGLGETNUNIFORMFVPROC)load("glGetnUniformfv");
5535 glad_glGetnUniformiv = (PFNGLGETNUNIFORMIVPROC)load("glGetnUniformiv");
5536 glad_glGetnUniformuiv = (PFNGLGETNUNIFORMUIVPROC)load("glGetnUniformuiv");
5537 glad_glReadnPixels = (PFNGLREADNPIXELSPROC)load("glReadnPixels");
5538 glad_glGetnMapdv = (PFNGLGETNMAPDVPROC)load("glGetnMapdv");
5539 glad_glGetnMapfv = (PFNGLGETNMAPFVPROC)load("glGetnMapfv");
5540 glad_glGetnMapiv = (PFNGLGETNMAPIVPROC)load("glGetnMapiv");
5541 glad_glGetnPixelMapfv = (PFNGLGETNPIXELMAPFVPROC)load("glGetnPixelMapfv");
5542 glad_glGetnPixelMapuiv = (PFNGLGETNPIXELMAPUIVPROC)load("glGetnPixelMapuiv");
5543 glad_glGetnPixelMapusv = (PFNGLGETNPIXELMAPUSVPROC)load("glGetnPixelMapusv");
5544 glad_glGetnPolygonStipple = (PFNGLGETNPOLYGONSTIPPLEPROC)load("glGetnPolygonStipple");
5545 glad_glGetnColorTable = (PFNGLGETNCOLORTABLEPROC)load("glGetnColorTable");
5546 glad_glGetnConvolutionFilter = (PFNGLGETNCONVOLUTIONFILTERPROC)load("glGetnConvolutionFilter");
5547 glad_glGetnSeparableFilter = (PFNGLGETNSEPARABLEFILTERPROC)load("glGetnSeparableFilter");
5548 glad_glGetnHistogram = (PFNGLGETNHISTOGRAMPROC)load("glGetnHistogram");
5549 glad_glGetnMinmax = (PFNGLGETNMINMAXPROC)load("glGetnMinmax");
5550 glad_glTextureBarrier = (PFNGLTEXTUREBARRIERPROC)load("glTextureBarrier");
5551}
5552static void load_GL_VERSION_4_6(GLADloadproc load) {
5553 if(!GLAD_GL_VERSION_4_6) return;
5554 glad_glSpecializeShader = (PFNGLSPECIALIZESHADERPROC)load("glSpecializeShader");
5555 glad_glMultiDrawArraysIndirectCount = (PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)load("glMultiDrawArraysIndirectCount");
5556 glad_glMultiDrawElementsIndirectCount = (PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)load("glMultiDrawElementsIndirectCount");
5557 glad_glPolygonOffsetClamp = (PFNGLPOLYGONOFFSETCLAMPPROC)load("glPolygonOffsetClamp");
5558}
4697static void load_GL_3DFX_tbuffer(GLADloadproc load) { 5559static void load_GL_3DFX_tbuffer(GLADloadproc load) {
4698 if(!GLAD_GL_3DFX_tbuffer) return; 5560 if(!GLAD_GL_3DFX_tbuffer) return;
4699 glad_glTbufferMask3DFX = (PFNGLTBUFFERMASK3DFXPROC)load("glTbufferMask3DFX"); 5561 glad_glTbufferMask3DFX = (PFNGLTBUFFERMASK3DFXPROC)load("glTbufferMask3DFX");
@@ -8445,6 +9307,7 @@ static int find_extensionsGL(void) {
8445 GLAD_GL_EXT_texture_object = has_ext("GL_EXT_texture_object"); 9307 GLAD_GL_EXT_texture_object = has_ext("GL_EXT_texture_object");
8446 GLAD_GL_EXT_texture_perturb_normal = has_ext("GL_EXT_texture_perturb_normal"); 9308 GLAD_GL_EXT_texture_perturb_normal = has_ext("GL_EXT_texture_perturb_normal");
8447 GLAD_GL_EXT_texture_sRGB = has_ext("GL_EXT_texture_sRGB"); 9309 GLAD_GL_EXT_texture_sRGB = has_ext("GL_EXT_texture_sRGB");
9310 GLAD_GL_EXT_texture_sRGB_R8 = has_ext("GL_EXT_texture_sRGB_R8");
8448 GLAD_GL_EXT_texture_sRGB_decode = has_ext("GL_EXT_texture_sRGB_decode"); 9311 GLAD_GL_EXT_texture_sRGB_decode = has_ext("GL_EXT_texture_sRGB_decode");
8449 GLAD_GL_EXT_texture_shared_exponent = has_ext("GL_EXT_texture_shared_exponent"); 9312 GLAD_GL_EXT_texture_shared_exponent = has_ext("GL_EXT_texture_shared_exponent");
8450 GLAD_GL_EXT_texture_snorm = has_ext("GL_EXT_texture_snorm"); 9313 GLAD_GL_EXT_texture_snorm = has_ext("GL_EXT_texture_snorm");
@@ -8758,9 +9621,12 @@ static void find_coreGL(void) {
8758 GLAD_GL_VERSION_4_1 = (major == 4 && minor >= 1) || major > 4; 9621 GLAD_GL_VERSION_4_1 = (major == 4 && minor >= 1) || major > 4;
8759 GLAD_GL_VERSION_4_2 = (major == 4 && minor >= 2) || major > 4; 9622 GLAD_GL_VERSION_4_2 = (major == 4 && minor >= 2) || major > 4;
8760 GLAD_GL_VERSION_4_3 = (major == 4 && minor >= 3) || major > 4; 9623 GLAD_GL_VERSION_4_3 = (major == 4 && minor >= 3) || major > 4;
8761 if (GLVersion.major > 4 || (GLVersion.major >= 4 && GLVersion.minor >= 3)) { 9624 GLAD_GL_VERSION_4_4 = (major == 4 && minor >= 4) || major > 4;
9625 GLAD_GL_VERSION_4_5 = (major == 4 && minor >= 5) || major > 4;
9626 GLAD_GL_VERSION_4_6 = (major == 4 && minor >= 6) || major > 4;
9627 if (GLVersion.major > 4 || (GLVersion.major >= 4 && GLVersion.minor >= 6)) {
8762 max_loaded_major = 4; 9628 max_loaded_major = 4;
8763 max_loaded_minor = 3; 9629 max_loaded_minor = 6;
8764 } 9630 }
8765} 9631}
8766 9632
@@ -8786,6 +9652,9 @@ int gladLoadGLLoader(GLADloadproc load) {
8786 load_GL_VERSION_4_1(load); 9652 load_GL_VERSION_4_1(load);
8787 load_GL_VERSION_4_2(load); 9653 load_GL_VERSION_4_2(load);
8788 load_GL_VERSION_4_3(load); 9654 load_GL_VERSION_4_3(load);
9655 load_GL_VERSION_4_4(load);
9656 load_GL_VERSION_4_5(load);
9657 load_GL_VERSION_4_6(load);
8789 9658
8790 if (!find_extensionsGL()) return 0; 9659 if (!find_extensionsGL()) return 0;
8791 load_GL_3DFX_tbuffer(load); 9660 load_GL_3DFX_tbuffer(load);
diff --git a/src/common/file_util.cpp b/src/common/file_util.cpp
index aecb66c32..2d9374783 100644
--- a/src/common/file_util.cpp
+++ b/src/common/file_util.cpp
@@ -78,16 +78,17 @@ namespace FileUtil {
78// Remove any ending forward slashes from directory paths 78// Remove any ending forward slashes from directory paths
79// Modifies argument. 79// Modifies argument.
80static void StripTailDirSlashes(std::string& fname) { 80static void StripTailDirSlashes(std::string& fname) {
81 if (fname.length() > 1) { 81 if (fname.length() <= 1) {
82 std::size_t i = fname.length(); 82 return;
83 while (i > 0 && fname[i - 1] == DIR_SEP_CHR) 83 }
84 --i; 84
85 fname.resize(i); 85 std::size_t i = fname.length();
86 while (i > 0 && fname[i - 1] == DIR_SEP_CHR) {
87 --i;
86 } 88 }
87 return; 89 fname.resize(i);
88} 90}
89 91
90// Returns true if file filename exists
91bool Exists(const std::string& filename) { 92bool Exists(const std::string& filename) {
92 struct stat file_info; 93 struct stat file_info;
93 94
@@ -107,7 +108,6 @@ bool Exists(const std::string& filename) {
107 return (result == 0); 108 return (result == 0);
108} 109}
109 110
110// Returns true if filename is a directory
111bool IsDirectory(const std::string& filename) { 111bool IsDirectory(const std::string& filename) {
112 struct stat file_info; 112 struct stat file_info;
113 113
@@ -132,8 +132,6 @@ bool IsDirectory(const std::string& filename) {
132 return S_ISDIR(file_info.st_mode); 132 return S_ISDIR(file_info.st_mode);
133} 133}
134 134
135// Deletes a given filename, return true on success
136// Doesn't supports deleting a directory
137bool Delete(const std::string& filename) { 135bool Delete(const std::string& filename) {
138 LOG_TRACE(Common_Filesystem, "file {}", filename); 136 LOG_TRACE(Common_Filesystem, "file {}", filename);
139 137
@@ -165,7 +163,6 @@ bool Delete(const std::string& filename) {
165 return true; 163 return true;
166} 164}
167 165
168// Returns true if successful, or path already exists.
169bool CreateDir(const std::string& path) { 166bool CreateDir(const std::string& path) {
170 LOG_TRACE(Common_Filesystem, "directory {}", path); 167 LOG_TRACE(Common_Filesystem, "directory {}", path);
171#ifdef _WIN32 168#ifdef _WIN32
@@ -194,7 +191,6 @@ bool CreateDir(const std::string& path) {
194#endif 191#endif
195} 192}
196 193
197// Creates the full path of fullPath returns true on success
198bool CreateFullPath(const std::string& fullPath) { 194bool CreateFullPath(const std::string& fullPath) {
199 int panicCounter = 100; 195 int panicCounter = 100;
200 LOG_TRACE(Common_Filesystem, "path {}", fullPath); 196 LOG_TRACE(Common_Filesystem, "path {}", fullPath);
@@ -230,7 +226,6 @@ bool CreateFullPath(const std::string& fullPath) {
230 } 226 }
231} 227}
232 228
233// Deletes a directory filename, returns true on success
234bool DeleteDir(const std::string& filename) { 229bool DeleteDir(const std::string& filename) {
235 LOG_TRACE(Common_Filesystem, "directory {}", filename); 230 LOG_TRACE(Common_Filesystem, "directory {}", filename);
236 231
@@ -252,7 +247,6 @@ bool DeleteDir(const std::string& filename) {
252 return false; 247 return false;
253} 248}
254 249
255// renames file srcFilename to destFilename, returns true on success
256bool Rename(const std::string& srcFilename, const std::string& destFilename) { 250bool Rename(const std::string& srcFilename, const std::string& destFilename) {
257 LOG_TRACE(Common_Filesystem, "{} --> {}", srcFilename, destFilename); 251 LOG_TRACE(Common_Filesystem, "{} --> {}", srcFilename, destFilename);
258#ifdef _WIN32 252#ifdef _WIN32
@@ -268,7 +262,6 @@ bool Rename(const std::string& srcFilename, const std::string& destFilename) {
268 return false; 262 return false;
269} 263}
270 264
271// copies file srcFilename to destFilename, returns true on success
272bool Copy(const std::string& srcFilename, const std::string& destFilename) { 265bool Copy(const std::string& srcFilename, const std::string& destFilename) {
273 LOG_TRACE(Common_Filesystem, "{} --> {}", srcFilename, destFilename); 266 LOG_TRACE(Common_Filesystem, "{} --> {}", srcFilename, destFilename);
274#ifdef _WIN32 267#ifdef _WIN32
@@ -324,7 +317,6 @@ bool Copy(const std::string& srcFilename, const std::string& destFilename) {
324#endif 317#endif
325} 318}
326 319
327// Returns the size of filename (64bit)
328u64 GetSize(const std::string& filename) { 320u64 GetSize(const std::string& filename) {
329 if (!Exists(filename)) { 321 if (!Exists(filename)) {
330 LOG_ERROR(Common_Filesystem, "failed {}: No such file", filename); 322 LOG_ERROR(Common_Filesystem, "failed {}: No such file", filename);
@@ -351,7 +343,6 @@ u64 GetSize(const std::string& filename) {
351 return 0; 343 return 0;
352} 344}
353 345
354// Overloaded GetSize, accepts file descriptor
355u64 GetSize(const int fd) { 346u64 GetSize(const int fd) {
356 struct stat buf; 347 struct stat buf;
357 if (fstat(fd, &buf) != 0) { 348 if (fstat(fd, &buf) != 0) {
@@ -361,7 +352,6 @@ u64 GetSize(const int fd) {
361 return buf.st_size; 352 return buf.st_size;
362} 353}
363 354
364// Overloaded GetSize, accepts FILE*
365u64 GetSize(FILE* f) { 355u64 GetSize(FILE* f) {
366 // can't use off_t here because it can be 32-bit 356 // can't use off_t here because it can be 32-bit
367 u64 pos = ftello(f); 357 u64 pos = ftello(f);
@@ -377,7 +367,6 @@ u64 GetSize(FILE* f) {
377 return size; 367 return size;
378} 368}
379 369
380// creates an empty file filename, returns true on success
381bool CreateEmptyFile(const std::string& filename) { 370bool CreateEmptyFile(const std::string& filename) {
382 LOG_TRACE(Common_Filesystem, "{}", filename); 371 LOG_TRACE(Common_Filesystem, "{}", filename);
383 372
@@ -502,7 +491,6 @@ bool DeleteDirRecursively(const std::string& directory, unsigned int recursion)
502 return true; 491 return true;
503} 492}
504 493
505// Create directory and copy contents (does not overwrite existing files)
506void CopyDir(const std::string& source_path, const std::string& dest_path) { 494void CopyDir(const std::string& source_path, const std::string& dest_path) {
507#ifndef _WIN32 495#ifndef _WIN32
508 if (source_path == dest_path) 496 if (source_path == dest_path)
@@ -539,8 +527,7 @@ void CopyDir(const std::string& source_path, const std::string& dest_path) {
539#endif 527#endif
540} 528}
541 529
542// Returns the current directory 530std::optional<std::string> GetCurrentDir() {
543std::string GetCurrentDir() {
544// Get the current working directory (getcwd uses malloc) 531// Get the current working directory (getcwd uses malloc)
545#ifdef _WIN32 532#ifdef _WIN32
546 wchar_t* dir; 533 wchar_t* dir;
@@ -550,7 +537,7 @@ std::string GetCurrentDir() {
550 if (!(dir = getcwd(nullptr, 0))) { 537 if (!(dir = getcwd(nullptr, 0))) {
551#endif 538#endif
552 LOG_ERROR(Common_Filesystem, "GetCurrentDirectory failed: {}", GetLastErrorMsg()); 539 LOG_ERROR(Common_Filesystem, "GetCurrentDirectory failed: {}", GetLastErrorMsg());
553 return nullptr; 540 return {};
554 } 541 }
555#ifdef _WIN32 542#ifdef _WIN32
556 std::string strDir = Common::UTF16ToUTF8(dir); 543 std::string strDir = Common::UTF16ToUTF8(dir);
@@ -561,7 +548,6 @@ std::string GetCurrentDir() {
561 return strDir; 548 return strDir;
562} 549}
563 550
564// Sets the current directory to the given directory
565bool SetCurrentDir(const std::string& directory) { 551bool SetCurrentDir(const std::string& directory) {
566#ifdef _WIN32 552#ifdef _WIN32
567 return _wchdir(Common::UTF8ToUTF16W(directory).c_str()) == 0; 553 return _wchdir(Common::UTF8ToUTF16W(directory).c_str()) == 0;
@@ -673,8 +659,6 @@ std::string GetSysDirectory() {
673 return sysDir; 659 return sysDir;
674} 660}
675 661
676// Returns a string with a yuzu data dir or file in the user's home
677// directory. To be used in "multi-user" mode (that is, installed).
678const std::string& GetUserPath(UserPath path, const std::string& new_path) { 662const std::string& GetUserPath(UserPath path, const std::string& new_path) {
679 static std::unordered_map<UserPath, std::string> paths; 663 static std::unordered_map<UserPath, std::string> paths;
680 auto& user_path = paths[UserPath::UserDir]; 664 auto& user_path = paths[UserPath::UserDir];
@@ -762,11 +746,11 @@ std::string GetNANDRegistrationDir(bool system) {
762 return GetUserPath(UserPath::NANDDir) + "user/Contents/registered/"; 746 return GetUserPath(UserPath::NANDDir) + "user/Contents/registered/";
763} 747}
764 748
765std::size_t WriteStringToFile(bool text_file, const std::string& str, const char* filename) { 749std::size_t WriteStringToFile(bool text_file, const std::string& filename, std::string_view str) {
766 return FileUtil::IOFile(filename, text_file ? "w" : "wb").WriteBytes(str.data(), str.size()); 750 return IOFile(filename, text_file ? "w" : "wb").WriteString(str);
767} 751}
768 752
769std::size_t ReadFileToString(bool text_file, const char* filename, std::string& str) { 753std::size_t ReadFileToString(bool text_file, const std::string& filename, std::string& str) {
770 IOFile file(filename, text_file ? "r" : "rb"); 754 IOFile file(filename, text_file ? "r" : "rb");
771 755
772 if (!file.IsOpen()) 756 if (!file.IsOpen())
@@ -776,13 +760,6 @@ std::size_t ReadFileToString(bool text_file, const char* filename, std::string&
776 return file.ReadArray(&str[0], str.size()); 760 return file.ReadArray(&str[0], str.size());
777} 761}
778 762
779/**
780 * Splits the filename into 8.3 format
781 * Loosely implemented following https://en.wikipedia.org/wiki/8.3_filename
782 * @param filename The normal filename to use
783 * @param short_name A 9-char array in which the short name will be written
784 * @param extension A 4-char array in which the extension will be written
785 */
786void SplitFilename83(const std::string& filename, std::array<char, 9>& short_name, 763void SplitFilename83(const std::string& filename, std::array<char, 9>& short_name,
787 std::array<char, 4>& extension) { 764 std::array<char, 4>& extension) {
788 const std::string forbidden_characters = ".\"/\\[]:;=, "; 765 const std::string forbidden_characters = ".\"/\\[]:;=, ";
diff --git a/src/common/file_util.h b/src/common/file_util.h
index 38cc7f059..cde7ddf2d 100644
--- a/src/common/file_util.h
+++ b/src/common/file_util.h
@@ -9,6 +9,7 @@
9#include <fstream> 9#include <fstream>
10#include <functional> 10#include <functional>
11#include <limits> 11#include <limits>
12#include <optional>
12#include <string> 13#include <string>
13#include <string_view> 14#include <string_view>
14#include <type_traits> 15#include <type_traits>
@@ -118,7 +119,7 @@ u64 ScanDirectoryTree(const std::string& directory, FSTEntry& parent_entry,
118bool DeleteDirRecursively(const std::string& directory, unsigned int recursion = 256); 119bool DeleteDirRecursively(const std::string& directory, unsigned int recursion = 256);
119 120
120// Returns the current directory 121// Returns the current directory
121std::string GetCurrentDir(); 122std::optional<std::string> GetCurrentDir();
122 123
123// Create directory and copy contents (does not overwrite existing files) 124// Create directory and copy contents (does not overwrite existing files)
124void CopyDir(const std::string& source_path, const std::string& dest_path); 125void CopyDir(const std::string& source_path, const std::string& dest_path);
@@ -146,9 +147,9 @@ const std::string& GetExeDirectory();
146std::string AppDataRoamingDirectory(); 147std::string AppDataRoamingDirectory();
147#endif 148#endif
148 149
149std::size_t WriteStringToFile(bool text_file, const std::string& str, const char* filename); 150std::size_t WriteStringToFile(bool text_file, const std::string& filename, std::string_view str);
150 151
151std::size_t ReadFileToString(bool text_file, const char* filename, std::string& str); 152std::size_t ReadFileToString(bool text_file, const std::string& filename, std::string& str);
152 153
153/** 154/**
154 * Splits the filename into 8.3 format 155 * Splits the filename into 8.3 format
@@ -257,8 +258,8 @@ public:
257 return WriteArray(&object, 1); 258 return WriteArray(&object, 1);
258 } 259 }
259 260
260 std::size_t WriteString(const std::string& str) { 261 std::size_t WriteString(std::string_view str) {
261 return WriteArray(str.c_str(), str.length()); 262 return WriteArray(str.data(), str.length());
262 } 263 }
263 264
264 bool IsOpen() const { 265 bool IsOpen() const {
@@ -286,8 +287,8 @@ private:
286template <typename T> 287template <typename T>
287void OpenFStream(T& fstream, const std::string& filename, std::ios_base::openmode openmode) { 288void OpenFStream(T& fstream, const std::string& filename, std::ios_base::openmode openmode) {
288#ifdef _MSC_VER 289#ifdef _MSC_VER
289 fstream.open(Common::UTF8ToUTF16W(filename).c_str(), openmode); 290 fstream.open(Common::UTF8ToUTF16W(filename), openmode);
290#else 291#else
291 fstream.open(filename.c_str(), openmode); 292 fstream.open(filename, openmode);
292#endif 293#endif
293} 294}
diff --git a/src/core/core_timing_util.cpp b/src/core/core_timing_util.cpp
index 7942f30d6..c0f08cddb 100644
--- a/src/core/core_timing_util.cpp
+++ b/src/core/core_timing_util.cpp
@@ -14,11 +14,11 @@ namespace Core::Timing {
14constexpr u64 MAX_VALUE_TO_MULTIPLY = std::numeric_limits<s64>::max() / BASE_CLOCK_RATE; 14constexpr u64 MAX_VALUE_TO_MULTIPLY = std::numeric_limits<s64>::max() / BASE_CLOCK_RATE;
15 15
16s64 usToCycles(s64 us) { 16s64 usToCycles(s64 us) {
17 if (us / 1000000 > MAX_VALUE_TO_MULTIPLY) { 17 if (static_cast<u64>(us / 1000000) > MAX_VALUE_TO_MULTIPLY) {
18 LOG_ERROR(Core_Timing, "Integer overflow, use max value"); 18 LOG_ERROR(Core_Timing, "Integer overflow, use max value");
19 return std::numeric_limits<s64>::max(); 19 return std::numeric_limits<s64>::max();
20 } 20 }
21 if (us > MAX_VALUE_TO_MULTIPLY) { 21 if (static_cast<u64>(us) > MAX_VALUE_TO_MULTIPLY) {
22 LOG_DEBUG(Core_Timing, "Time very big, do rounding"); 22 LOG_DEBUG(Core_Timing, "Time very big, do rounding");
23 return BASE_CLOCK_RATE * (us / 1000000); 23 return BASE_CLOCK_RATE * (us / 1000000);
24 } 24 }
@@ -38,11 +38,11 @@ s64 usToCycles(u64 us) {
38} 38}
39 39
40s64 nsToCycles(s64 ns) { 40s64 nsToCycles(s64 ns) {
41 if (ns / 1000000000 > MAX_VALUE_TO_MULTIPLY) { 41 if (static_cast<u64>(ns / 1000000000) > MAX_VALUE_TO_MULTIPLY) {
42 LOG_ERROR(Core_Timing, "Integer overflow, use max value"); 42 LOG_ERROR(Core_Timing, "Integer overflow, use max value");
43 return std::numeric_limits<s64>::max(); 43 return std::numeric_limits<s64>::max();
44 } 44 }
45 if (ns > MAX_VALUE_TO_MULTIPLY) { 45 if (static_cast<u64>(ns) > MAX_VALUE_TO_MULTIPLY) {
46 LOG_DEBUG(Core_Timing, "Time very big, do rounding"); 46 LOG_DEBUG(Core_Timing, "Time very big, do rounding");
47 return BASE_CLOCK_RATE * (ns / 1000000000); 47 return BASE_CLOCK_RATE * (ns / 1000000000);
48 } 48 }
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp
index 42d9dd844..f3da525d6 100644
--- a/src/core/hle/kernel/hle_ipc.cpp
+++ b/src/core/hle/kernel/hle_ipc.cpp
@@ -43,7 +43,7 @@ void SessionRequestHandler::ClientDisconnected(const SharedPtr<ServerSession>& s
43} 43}
44 44
45SharedPtr<WritableEvent> HLERequestContext::SleepClientThread( 45SharedPtr<WritableEvent> HLERequestContext::SleepClientThread(
46 SharedPtr<Thread> thread, const std::string& reason, u64 timeout, WakeupCallback&& callback, 46 const std::string& reason, u64 timeout, WakeupCallback&& callback,
47 SharedPtr<WritableEvent> writable_event) { 47 SharedPtr<WritableEvent> writable_event) {
48 // Put the client thread to sleep until the wait event is signaled or the timeout expires. 48 // Put the client thread to sleep until the wait event is signaled or the timeout expires.
49 thread->SetWakeupCallback([context = *this, callback]( 49 thread->SetWakeupCallback([context = *this, callback](
@@ -76,8 +76,9 @@ SharedPtr<WritableEvent> HLERequestContext::SleepClientThread(
76 return writable_event; 76 return writable_event;
77} 77}
78 78
79HLERequestContext::HLERequestContext(SharedPtr<Kernel::ServerSession> server_session) 79HLERequestContext::HLERequestContext(SharedPtr<Kernel::ServerSession> server_session,
80 : server_session(std::move(server_session)) { 80 SharedPtr<Thread> thread)
81 : server_session(std::move(server_session)), thread(std::move(thread)) {
81 cmd_buf[0] = 0; 82 cmd_buf[0] = 0;
82} 83}
83 84
diff --git a/src/core/hle/kernel/hle_ipc.h b/src/core/hle/kernel/hle_ipc.h
index 2bdd9f02c..ccf5e56aa 100644
--- a/src/core/hle/kernel/hle_ipc.h
+++ b/src/core/hle/kernel/hle_ipc.h
@@ -97,7 +97,7 @@ protected:
97 */ 97 */
98class HLERequestContext { 98class HLERequestContext {
99public: 99public:
100 explicit HLERequestContext(SharedPtr<ServerSession> session); 100 explicit HLERequestContext(SharedPtr<ServerSession> session, SharedPtr<Thread> thread);
101 ~HLERequestContext(); 101 ~HLERequestContext();
102 102
103 /// Returns a pointer to the IPC command buffer for this request. 103 /// Returns a pointer to the IPC command buffer for this request.
@@ -119,7 +119,6 @@ public:
119 /** 119 /**
120 * Puts the specified guest thread to sleep until the returned event is signaled or until the 120 * Puts the specified guest thread to sleep until the returned event is signaled or until the
121 * specified timeout expires. 121 * specified timeout expires.
122 * @param thread Thread to be put to sleep.
123 * @param reason Reason for pausing the thread, to be used for debugging purposes. 122 * @param reason Reason for pausing the thread, to be used for debugging purposes.
124 * @param timeout Timeout in nanoseconds after which the thread will be awoken and the callback 123 * @param timeout Timeout in nanoseconds after which the thread will be awoken and the callback
125 * invoked with a Timeout reason. 124 * invoked with a Timeout reason.
@@ -130,8 +129,8 @@ public:
130 * created. 129 * created.
131 * @returns Event that when signaled will resume the thread and call the callback function. 130 * @returns Event that when signaled will resume the thread and call the callback function.
132 */ 131 */
133 SharedPtr<WritableEvent> SleepClientThread(SharedPtr<Thread> thread, const std::string& reason, 132 SharedPtr<WritableEvent> SleepClientThread(const std::string& reason, u64 timeout,
134 u64 timeout, WakeupCallback&& callback, 133 WakeupCallback&& callback,
135 SharedPtr<WritableEvent> writable_event = nullptr); 134 SharedPtr<WritableEvent> writable_event = nullptr);
136 135
137 /// Populates this context with data from the requesting process/thread. 136 /// Populates this context with data from the requesting process/thread.
@@ -268,6 +267,7 @@ private:
268 267
269 std::array<u32, IPC::COMMAND_BUFFER_LENGTH> cmd_buf; 268 std::array<u32, IPC::COMMAND_BUFFER_LENGTH> cmd_buf;
270 SharedPtr<Kernel::ServerSession> server_session; 269 SharedPtr<Kernel::ServerSession> server_session;
270 SharedPtr<Thread> thread;
271 // TODO(yuriks): Check common usage of this and optimize size accordingly 271 // TODO(yuriks): Check common usage of this and optimize size accordingly
272 boost::container::small_vector<SharedPtr<Object>, 8> move_objects; 272 boost::container::small_vector<SharedPtr<Object>, 8> move_objects;
273 boost::container::small_vector<SharedPtr<Object>, 8> copy_objects; 273 boost::container::small_vector<SharedPtr<Object>, 8> copy_objects;
diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp
index 696a82cd9..30b2bfb5a 100644
--- a/src/core/hle/kernel/server_session.cpp
+++ b/src/core/hle/kernel/server_session.cpp
@@ -130,7 +130,7 @@ ResultCode ServerSession::HandleSyncRequest(SharedPtr<Thread> thread) {
130 // The ServerSession received a sync request, this means that there's new data available 130 // The ServerSession received a sync request, this means that there's new data available
131 // from its ClientSession, so wake up any threads that may be waiting on a svcReplyAndReceive or 131 // from its ClientSession, so wake up any threads that may be waiting on a svcReplyAndReceive or
132 // similar. 132 // similar.
133 Kernel::HLERequestContext context(this); 133 Kernel::HLERequestContext context(this, thread);
134 u32* cmd_buf = (u32*)Memory::GetPointer(thread->GetTLSAddress()); 134 u32* cmd_buf = (u32*)Memory::GetPointer(thread->GetTLSAddress());
135 context.PopulateFromIncomingCommandBuffer(kernel.CurrentProcess()->GetHandleTable(), cmd_buf); 135 context.PopulateFromIncomingCommandBuffer(kernel.CurrentProcess()->GetHandleTable(), cmd_buf);
136 136
diff --git a/src/core/hle/service/aoc/aoc_u.cpp b/src/core/hle/service/aoc/aoc_u.cpp
index bd4e38461..d3e97776b 100644
--- a/src/core/hle/service/aoc/aoc_u.cpp
+++ b/src/core/hle/service/aoc/aoc_u.cpp
@@ -9,7 +9,6 @@
9#include "core/file_sys/content_archive.h" 9#include "core/file_sys/content_archive.h"
10#include "core/file_sys/control_metadata.h" 10#include "core/file_sys/control_metadata.h"
11#include "core/file_sys/nca_metadata.h" 11#include "core/file_sys/nca_metadata.h"
12#include "core/file_sys/partition_filesystem.h"
13#include "core/file_sys/patch_manager.h" 12#include "core/file_sys/patch_manager.h"
14#include "core/file_sys/registered_cache.h" 13#include "core/file_sys/registered_cache.h"
15#include "core/hle/ipc_helpers.h" 14#include "core/hle/ipc_helpers.h"
@@ -18,7 +17,6 @@
18#include "core/hle/kernel/readable_event.h" 17#include "core/hle/kernel/readable_event.h"
19#include "core/hle/kernel/writable_event.h" 18#include "core/hle/kernel/writable_event.h"
20#include "core/hle/service/aoc/aoc_u.h" 19#include "core/hle/service/aoc/aoc_u.h"
21#include "core/hle/service/filesystem/filesystem.h"
22#include "core/loader/loader.h" 20#include "core/loader/loader.h"
23#include "core/settings.h" 21#include "core/settings.h"
24 22
@@ -75,7 +73,15 @@ AOC_U::AOC_U() : ServiceFramework("aoc:u"), add_on_content(AccumulateAOCTitleIDs
75AOC_U::~AOC_U() = default; 73AOC_U::~AOC_U() = default;
76 74
77void AOC_U::CountAddOnContent(Kernel::HLERequestContext& ctx) { 75void AOC_U::CountAddOnContent(Kernel::HLERequestContext& ctx) {
78 LOG_DEBUG(Service_AOC, "called"); 76 struct Parameters {
77 u64 process_id;
78 };
79 static_assert(sizeof(Parameters) == 8);
80
81 IPC::RequestParser rp{ctx};
82 const auto params = rp.PopRaw<Parameters>();
83
84 LOG_DEBUG(Service_AOC, "called. process_id={}", params.process_id);
79 85
80 IPC::ResponseBuilder rb{ctx, 3}; 86 IPC::ResponseBuilder rb{ctx, 3};
81 rb.Push(RESULT_SUCCESS); 87 rb.Push(RESULT_SUCCESS);
@@ -94,23 +100,32 @@ void AOC_U::CountAddOnContent(Kernel::HLERequestContext& ctx) {
94} 100}
95 101
96void AOC_U::ListAddOnContent(Kernel::HLERequestContext& ctx) { 102void AOC_U::ListAddOnContent(Kernel::HLERequestContext& ctx) {
103 struct Parameters {
104 u32 offset;
105 u32 count;
106 u64 process_id;
107 };
108 static_assert(sizeof(Parameters) == 16);
109
97 IPC::RequestParser rp{ctx}; 110 IPC::RequestParser rp{ctx};
111 const auto [offset, count, process_id] = rp.PopRaw<Parameters>();
98 112
99 const auto offset = rp.PopRaw<u32>(); 113 LOG_DEBUG(Service_AOC, "called with offset={}, count={}, process_id={}", offset, count,
100 auto count = rp.PopRaw<u32>(); 114 process_id);
101 LOG_DEBUG(Service_AOC, "called with offset={}, count={}", offset, count);
102 115
103 const auto current = Core::System::GetInstance().CurrentProcess()->GetTitleID(); 116 const auto current = Core::System::GetInstance().CurrentProcess()->GetTitleID();
104 117
105 std::vector<u32> out; 118 std::vector<u32> out;
106 for (size_t i = 0; i < add_on_content.size(); ++i) {
107 if ((add_on_content[i] & DLC_BASE_TITLE_ID_MASK) == current)
108 out.push_back(static_cast<u32>(add_on_content[i] & 0x7FF));
109 }
110
111 const auto& disabled = Settings::values.disabled_addons[current]; 119 const auto& disabled = Settings::values.disabled_addons[current];
112 if (std::find(disabled.begin(), disabled.end(), "DLC") != disabled.end()) 120 if (std::find(disabled.begin(), disabled.end(), "DLC") == disabled.end()) {
113 out = {}; 121 for (u64 content_id : add_on_content) {
122 if ((content_id & DLC_BASE_TITLE_ID_MASK) != current) {
123 continue;
124 }
125
126 out.push_back(static_cast<u32>(content_id & 0x7FF));
127 }
128 }
114 129
115 if (out.size() < offset) { 130 if (out.size() < offset) {
116 IPC::ResponseBuilder rb{ctx, 2}; 131 IPC::ResponseBuilder rb{ctx, 2};
@@ -119,22 +134,31 @@ void AOC_U::ListAddOnContent(Kernel::HLERequestContext& ctx) {
119 return; 134 return;
120 } 135 }
121 136
122 count = static_cast<u32>(std::min<size_t>(out.size() - offset, count)); 137 const auto out_count = static_cast<u32>(std::min<size_t>(out.size() - offset, count));
123 std::rotate(out.begin(), out.begin() + offset, out.end()); 138 std::rotate(out.begin(), out.begin() + offset, out.end());
124 out.resize(count); 139 out.resize(out_count);
125 140
126 ctx.WriteBuffer(out); 141 ctx.WriteBuffer(out);
127 142
128 IPC::ResponseBuilder rb{ctx, 3}; 143 IPC::ResponseBuilder rb{ctx, 3};
129 rb.Push(RESULT_SUCCESS); 144 rb.Push(RESULT_SUCCESS);
130 rb.Push(count); 145 rb.Push(out_count);
131} 146}
132 147
133void AOC_U::GetAddOnContentBaseId(Kernel::HLERequestContext& ctx) { 148void AOC_U::GetAddOnContentBaseId(Kernel::HLERequestContext& ctx) {
134 LOG_DEBUG(Service_AOC, "called"); 149 struct Parameters {
150 u64 process_id;
151 };
152 static_assert(sizeof(Parameters) == 8);
153
154 IPC::RequestParser rp{ctx};
155 const auto params = rp.PopRaw<Parameters>();
156
157 LOG_DEBUG(Service_AOC, "called. process_id={}", params.process_id);
135 158
136 IPC::ResponseBuilder rb{ctx, 4}; 159 IPC::ResponseBuilder rb{ctx, 4};
137 rb.Push(RESULT_SUCCESS); 160 rb.Push(RESULT_SUCCESS);
161
138 const auto title_id = Core::System::GetInstance().CurrentProcess()->GetTitleID(); 162 const auto title_id = Core::System::GetInstance().CurrentProcess()->GetTitleID();
139 FileSys::PatchManager pm{title_id}; 163 FileSys::PatchManager pm{title_id};
140 164
@@ -148,10 +172,17 @@ void AOC_U::GetAddOnContentBaseId(Kernel::HLERequestContext& ctx) {
148} 172}
149 173
150void AOC_U::PrepareAddOnContent(Kernel::HLERequestContext& ctx) { 174void AOC_U::PrepareAddOnContent(Kernel::HLERequestContext& ctx) {
175 struct Parameters {
176 s32 addon_index;
177 u64 process_id;
178 };
179 static_assert(sizeof(Parameters) == 16);
180
151 IPC::RequestParser rp{ctx}; 181 IPC::RequestParser rp{ctx};
182 const auto [addon_index, process_id] = rp.PopRaw<Parameters>();
152 183
153 const auto aoc_id = rp.PopRaw<u32>(); 184 LOG_WARNING(Service_AOC, "(STUBBED) called with addon_index={}, process_id={}", addon_index,
154 LOG_WARNING(Service_AOC, "(STUBBED) called with aoc_id={:08X}", aoc_id); 185 process_id);
155 186
156 IPC::ResponseBuilder rb{ctx, 2}; 187 IPC::ResponseBuilder rb{ctx, 2};
157 rb.Push(RESULT_SUCCESS); 188 rb.Push(RESULT_SUCCESS);
diff --git a/src/core/hle/service/vi/vi.cpp b/src/core/hle/service/vi/vi.cpp
index 4e17249a9..f1fa6ccd1 100644
--- a/src/core/hle/service/vi/vi.cpp
+++ b/src/core/hle/service/vi/vi.cpp
@@ -556,7 +556,7 @@ private:
556 } else { 556 } else {
557 // Wait the current thread until a buffer becomes available 557 // Wait the current thread until a buffer becomes available
558 ctx.SleepClientThread( 558 ctx.SleepClientThread(
559 Kernel::GetCurrentThread(), "IHOSBinderDriver::DequeueBuffer", -1, 559 "IHOSBinderDriver::DequeueBuffer", -1,
560 [=](Kernel::SharedPtr<Kernel::Thread> thread, Kernel::HLERequestContext& ctx, 560 [=](Kernel::SharedPtr<Kernel::Thread> thread, Kernel::HLERequestContext& ctx,
561 Kernel::ThreadWakeupReason reason) { 561 Kernel::ThreadWakeupReason reason) {
562 // Repeat TransactParcel DequeueBuffer when a buffer is available 562 // Repeat TransactParcel DequeueBuffer when a buffer is available
diff --git a/src/core/loader/nso.cpp b/src/core/loader/nso.cpp
index 8592b1f44..62c090353 100644
--- a/src/core/loader/nso.cpp
+++ b/src/core/loader/nso.cpp
@@ -39,7 +39,7 @@ std::vector<u8> DecompressSegment(const std::vector<u8>& compressed_data,
39 const std::vector<u8> uncompressed_data = 39 const std::vector<u8> uncompressed_data =
40 Common::Compression::DecompressDataLZ4(compressed_data, header.size); 40 Common::Compression::DecompressDataLZ4(compressed_data, header.size);
41 41
42 ASSERT_MSG(uncompressed_data.size() == static_cast<int>(header.size), "{} != {}", header.size, 42 ASSERT_MSG(uncompressed_data.size() == header.size, "{} != {}", header.size,
43 uncompressed_data.size()); 43 uncompressed_data.size());
44 44
45 return uncompressed_data; 45 return uncompressed_data;
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h
index 7bbc556da..e83f25fa1 100644
--- a/src/video_core/engines/shader_bytecode.h
+++ b/src/video_core/engines/shader_bytecode.h
@@ -530,6 +530,11 @@ union Instruction {
530 BitField<48, 16, u64> opcode; 530 BitField<48, 16, u64> opcode;
531 531
532 union { 532 union {
533 BitField<8, 8, Register> gpr;
534 BitField<20, 24, s64> offset;
535 } gmem;
536
537 union {
533 BitField<20, 16, u64> imm20_16; 538 BitField<20, 16, u64> imm20_16;
534 BitField<20, 19, u64> imm20_19; 539 BitField<20, 19, u64> imm20_19;
535 BitField<20, 32, s64> imm20_32; 540 BitField<20, 32, s64> imm20_32;
@@ -812,13 +817,11 @@ union Instruction {
812 union { 817 union {
813 BitField<48, 3, UniformType> type; 818 BitField<48, 3, UniformType> type;
814 BitField<46, 2, u64> cache_mode; 819 BitField<46, 2, u64> cache_mode;
815 BitField<20, 24, s64> immediate_offset;
816 } ldg; 820 } ldg;
817 821
818 union { 822 union {
819 BitField<48, 3, UniformType> type; 823 BitField<48, 3, UniformType> type;
820 BitField<46, 2, u64> cache_mode; 824 BitField<46, 2, u64> cache_mode;
821 BitField<20, 24, s64> immediate_offset;
822 } stg; 825 } stg;
823 826
824 union { 827 union {
@@ -828,6 +831,11 @@ union Instruction {
828 } al2p; 831 } al2p;
829 832
830 union { 833 union {
834 BitField<53, 3, UniformType> type;
835 BitField<52, 1, u64> extended;
836 } generic;
837
838 union {
831 BitField<0, 3, u64> pred0; 839 BitField<0, 3, u64> pred0;
832 BitField<3, 3, u64> pred3; 840 BitField<3, 3, u64> pred3;
833 BitField<7, 1, u64> abs_a; 841 BitField<7, 1, u64> abs_a;
@@ -1387,10 +1395,12 @@ public:
1387 LD_L, 1395 LD_L,
1388 LD_S, 1396 LD_S,
1389 LD_C, 1397 LD_C,
1398 LD, // Load from generic memory
1399 LDG, // Load from global memory
1390 ST_A, 1400 ST_A,
1391 ST_L, 1401 ST_L,
1392 ST_S, 1402 ST_S,
1393 LDG, // Load from global memory 1403 ST, // Store in generic memory
1394 STG, // Store in global memory 1404 STG, // Store in global memory
1395 AL2P, // Transforms attribute memory into physical memory 1405 AL2P, // Transforms attribute memory into physical memory
1396 TEX, 1406 TEX,
@@ -1658,10 +1668,12 @@ private:
1658 INST("1110111101001---", Id::LD_S, Type::Memory, "LD_S"), 1668 INST("1110111101001---", Id::LD_S, Type::Memory, "LD_S"),
1659 INST("1110111101000---", Id::LD_L, Type::Memory, "LD_L"), 1669 INST("1110111101000---", Id::LD_L, Type::Memory, "LD_L"),
1660 INST("1110111110010---", Id::LD_C, Type::Memory, "LD_C"), 1670 INST("1110111110010---", Id::LD_C, Type::Memory, "LD_C"),
1671 INST("100-------------", Id::LD, Type::Memory, "LD"),
1672 INST("1110111011010---", Id::LDG, Type::Memory, "LDG"),
1661 INST("1110111111110---", Id::ST_A, Type::Memory, "ST_A"), 1673 INST("1110111111110---", Id::ST_A, Type::Memory, "ST_A"),
1662 INST("1110111101011---", Id::ST_S, Type::Memory, "ST_S"), 1674 INST("1110111101011---", Id::ST_S, Type::Memory, "ST_S"),
1663 INST("1110111101010---", Id::ST_L, Type::Memory, "ST_L"), 1675 INST("1110111101010---", Id::ST_L, Type::Memory, "ST_L"),
1664 INST("1110111011010---", Id::LDG, Type::Memory, "LDG"), 1676 INST("101-------------", Id::ST, Type::Memory, "ST"),
1665 INST("1110111011011---", Id::STG, Type::Memory, "STG"), 1677 INST("1110111011011---", Id::STG, Type::Memory, "STG"),
1666 INST("1110111110100---", Id::AL2P, Type::Memory, "AL2P"), 1678 INST("1110111110100---", Id::AL2P, Type::Memory, "AL2P"),
1667 INST("110000----111---", Id::TEX, Type::Texture, "TEX"), 1679 INST("110000----111---", Id::TEX, Type::Texture, "TEX"),
diff --git a/src/video_core/renderer_opengl/gl_device.cpp b/src/video_core/renderer_opengl/gl_device.cpp
index 38497678a..1d1581f49 100644
--- a/src/video_core/renderer_opengl/gl_device.cpp
+++ b/src/video_core/renderer_opengl/gl_device.cpp
@@ -35,6 +35,7 @@ Device::Device(std::nullptr_t) {
35 35
36bool Device::TestVariableAoffi() { 36bool Device::TestVariableAoffi() {
37 const GLchar* AOFFI_TEST = R"(#version 430 core 37 const GLchar* AOFFI_TEST = R"(#version 430 core
38// This is a unit test, please ignore me on apitrace bug reports.
38uniform sampler2D tex; 39uniform sampler2D tex;
39uniform ivec2 variable_offset; 40uniform ivec2 variable_offset;
40void main() { 41void main() {
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index dbd8049f5..f9b6dfeea 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -98,9 +98,11 @@ struct FramebufferCacheKey {
98 } 98 }
99}; 99};
100 100
101RasterizerOpenGL::RasterizerOpenGL(Core::System& system, ScreenInfo& info) 101RasterizerOpenGL::RasterizerOpenGL(Core::System& system, Core::Frontend::EmuWindow& emu_window,
102 : res_cache{*this}, shader_cache{*this, system, device}, global_cache{*this}, system{system}, 102 ScreenInfo& info)
103 screen_info{info}, buffer_cache(*this, STREAM_BUFFER_SIZE) { 103 : res_cache{*this}, shader_cache{*this, system, emu_window, device},
104 global_cache{*this}, system{system}, screen_info{info},
105 buffer_cache(*this, STREAM_BUFFER_SIZE) {
104 OpenGLState::ApplyDefaultState(); 106 OpenGLState::ApplyDefaultState();
105 107
106 shader_program_manager = std::make_unique<GLShader::ProgramManager>(); 108 shader_program_manager = std::make_unique<GLShader::ProgramManager>();
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.h b/src/video_core/renderer_opengl/gl_rasterizer.h
index 71b9c5ead..d78094138 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.h
+++ b/src/video_core/renderer_opengl/gl_rasterizer.h
@@ -48,7 +48,8 @@ struct FramebufferCacheKey;
48 48
49class RasterizerOpenGL : public VideoCore::RasterizerInterface { 49class RasterizerOpenGL : public VideoCore::RasterizerInterface {
50public: 50public:
51 explicit RasterizerOpenGL(Core::System& system, ScreenInfo& info); 51 explicit RasterizerOpenGL(Core::System& system, Core::Frontend::EmuWindow& emu_window,
52 ScreenInfo& info);
52 ~RasterizerOpenGL() override; 53 ~RasterizerOpenGL() override;
53 54
54 void DrawArrays() override; 55 void DrawArrays() override;
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp
index f700dc89a..d66252224 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp
@@ -2,10 +2,14 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include <mutex>
6#include <thread>
5#include <boost/functional/hash.hpp> 7#include <boost/functional/hash.hpp>
6#include "common/assert.h" 8#include "common/assert.h"
7#include "common/hash.h" 9#include "common/hash.h"
10#include "common/scope_exit.h"
8#include "core/core.h" 11#include "core/core.h"
12#include "core/frontend/emu_window.h"
9#include "video_core/engines/maxwell_3d.h" 13#include "video_core/engines/maxwell_3d.h"
10#include "video_core/memory_manager.h" 14#include "video_core/memory_manager.h"
11#include "video_core/renderer_opengl/gl_rasterizer.h" 15#include "video_core/renderer_opengl/gl_rasterizer.h"
@@ -166,7 +170,8 @@ GLShader::ProgramResult CreateProgram(const Device& device, Maxwell::ShaderProgr
166CachedProgram SpecializeShader(const std::string& code, const GLShader::ShaderEntries& entries, 170CachedProgram SpecializeShader(const std::string& code, const GLShader::ShaderEntries& entries,
167 Maxwell::ShaderProgram program_type, BaseBindings base_bindings, 171 Maxwell::ShaderProgram program_type, BaseBindings base_bindings,
168 GLenum primitive_mode, bool hint_retrievable = false) { 172 GLenum primitive_mode, bool hint_retrievable = false) {
169 std::string source = "#version 430 core\n"; 173 std::string source = "#version 430 core\n"
174 "#extension GL_ARB_separate_shader_objects : enable\n\n";
170 source += fmt::format("#define EMULATION_UBO_BINDING {}\n", base_bindings.cbuf++); 175 source += fmt::format("#define EMULATION_UBO_BINDING {}\n", base_bindings.cbuf++);
171 176
172 for (const auto& cbuf : entries.const_buffers) { 177 for (const auto& cbuf : entries.const_buffers) {
@@ -344,8 +349,8 @@ ShaderDiskCacheUsage CachedShader::GetUsage(GLenum primitive_mode,
344} 349}
345 350
346ShaderCacheOpenGL::ShaderCacheOpenGL(RasterizerOpenGL& rasterizer, Core::System& system, 351ShaderCacheOpenGL::ShaderCacheOpenGL(RasterizerOpenGL& rasterizer, Core::System& system,
347 const Device& device) 352 Core::Frontend::EmuWindow& emu_window, const Device& device)
348 : RasterizerCache{rasterizer}, device{device}, disk_cache{system} {} 353 : RasterizerCache{rasterizer}, emu_window{emu_window}, device{device}, disk_cache{system} {}
349 354
350void ShaderCacheOpenGL::LoadDiskCache(const std::atomic_bool& stop_loading, 355void ShaderCacheOpenGL::LoadDiskCache(const std::atomic_bool& stop_loading,
351 const VideoCore::DiskResourceLoadCallback& callback) { 356 const VideoCore::DiskResourceLoadCallback& callback) {
@@ -353,62 +358,107 @@ void ShaderCacheOpenGL::LoadDiskCache(const std::atomic_bool& stop_loading,
353 if (!transferable) { 358 if (!transferable) {
354 return; 359 return;
355 } 360 }
356 const auto [raws, usages] = *transferable; 361 const auto [raws, shader_usages] = *transferable;
357 362
358 auto [decompiled, dumps] = disk_cache.LoadPrecompiled(); 363 auto [decompiled, dumps] = disk_cache.LoadPrecompiled();
359 364
360 const auto supported_formats{GetSupportedFormats()}; 365 const auto supported_formats{GetSupportedFormats()};
361 const auto unspecialized{ 366 const auto unspecialized_shaders{
362 GenerateUnspecializedShaders(stop_loading, callback, raws, decompiled)}; 367 GenerateUnspecializedShaders(stop_loading, callback, raws, decompiled)};
363 if (stop_loading) 368 if (stop_loading) {
364 return; 369 return;
370 }
365 371
366 // Track if precompiled cache was altered during loading to know if we have to serialize the 372 // Track if precompiled cache was altered during loading to know if we have to serialize the
367 // virtual precompiled cache file back to the hard drive 373 // virtual precompiled cache file back to the hard drive
368 bool precompiled_cache_altered = false; 374 bool precompiled_cache_altered = false;
369 375
370 // Build shaders 376 // Inform the frontend about shader build initialization
371 if (callback) 377 if (callback) {
372 callback(VideoCore::LoadCallbackStage::Build, 0, usages.size()); 378 callback(VideoCore::LoadCallbackStage::Build, 0, shader_usages.size());
373 for (std::size_t i = 0; i < usages.size(); ++i) { 379 }
374 if (stop_loading)
375 return;
376 380
377 const auto& usage{usages[i]}; 381 std::mutex mutex;
378 LOG_INFO(Render_OpenGL, "Building shader {:016x} ({} of {})", usage.unique_identifier, 382 std::size_t built_shaders = 0; // It doesn't have be atomic since it's used behind a mutex
379 i + 1, usages.size()); 383 std::atomic_bool compilation_failed = false;
380 384
381 const auto& unspec{unspecialized.at(usage.unique_identifier)}; 385 const auto Worker = [&](Core::Frontend::GraphicsContext* context, std::size_t begin,
382 const auto dump_it = dumps.find(usage); 386 std::size_t end, const std::vector<ShaderDiskCacheUsage>& shader_usages,
387 const ShaderDumpsMap& dumps) {
388 context->MakeCurrent();
389 SCOPE_EXIT({ return context->DoneCurrent(); });
383 390
384 CachedProgram shader; 391 for (std::size_t i = begin; i < end; ++i) {
385 if (dump_it != dumps.end()) { 392 if (stop_loading || compilation_failed) {
386 // If the shader is dumped, attempt to load it with 393 return;
387 shader = GeneratePrecompiledProgram(dump_it->second, supported_formats); 394 }
395 const auto& usage{shader_usages[i]};
396 LOG_INFO(Render_OpenGL, "Building shader {:016x} (index {} of {})",
397 usage.unique_identifier, i, shader_usages.size());
398
399 const auto& unspecialized{unspecialized_shaders.at(usage.unique_identifier)};
400 const auto dump{dumps.find(usage)};
401
402 CachedProgram shader;
403 if (dump != dumps.end()) {
404 // If the shader is dumped, attempt to load it with
405 shader = GeneratePrecompiledProgram(dump->second, supported_formats);
406 if (!shader) {
407 compilation_failed = true;
408 return;
409 }
410 }
388 if (!shader) { 411 if (!shader) {
389 // Invalidate the precompiled cache if a shader dumped shader was rejected 412 shader = SpecializeShader(unspecialized.code, unspecialized.entries,
390 disk_cache.InvalidatePrecompiled(); 413 unspecialized.program_type, usage.bindings,
391 precompiled_cache_altered = true; 414 usage.primitive, true);
392 dumps.clear();
393 } 415 }
416
417 std::scoped_lock lock(mutex);
418 if (callback) {
419 callback(VideoCore::LoadCallbackStage::Build, ++built_shaders,
420 shader_usages.size());
421 }
422
423 precompiled_programs.emplace(usage, std::move(shader));
394 } 424 }
395 if (!shader) { 425 };
396 shader = SpecializeShader(unspec.code, unspec.entries, unspec.program_type, 426
397 usage.bindings, usage.primitive, true); 427 const auto num_workers{static_cast<std::size_t>(std::thread::hardware_concurrency() + 1)};
398 } 428 const std::size_t bucket_size{shader_usages.size() / num_workers};
399 precompiled_programs.insert({usage, std::move(shader)}); 429 std::vector<std::unique_ptr<Core::Frontend::GraphicsContext>> contexts(num_workers);
430 std::vector<std::thread> threads(num_workers);
431 for (std::size_t i = 0; i < num_workers; ++i) {
432 const bool is_last_worker = i + 1 == num_workers;
433 const std::size_t start{bucket_size * i};
434 const std::size_t end{is_last_worker ? shader_usages.size() : start + bucket_size};
435
436 // On some platforms the shared context has to be created from the GUI thread
437 contexts[i] = emu_window.CreateSharedContext();
438 threads[i] = std::thread(Worker, contexts[i].get(), start, end, shader_usages, dumps);
439 }
440 for (auto& thread : threads) {
441 thread.join();
442 }
400 443
401 if (callback) 444 if (compilation_failed) {
402 callback(VideoCore::LoadCallbackStage::Build, i + 1, usages.size()); 445 // Invalidate the precompiled cache if a shader dumped shader was rejected
446 disk_cache.InvalidatePrecompiled();
447 dumps.clear();
448 precompiled_cache_altered = true;
449 return;
450 }
451 if (stop_loading) {
452 return;
403 } 453 }
404 454
405 // TODO(Rodrigo): Do state tracking for transferable shaders and do a dummy draw before 455 // TODO(Rodrigo): Do state tracking for transferable shaders and do a dummy draw before
406 // precompiling them 456 // precompiling them
407 457
408 for (std::size_t i = 0; i < usages.size(); ++i) { 458 for (std::size_t i = 0; i < shader_usages.size(); ++i) {
409 const auto& usage{usages[i]}; 459 const auto& usage{shader_usages[i]};
410 if (dumps.find(usage) == dumps.end()) { 460 if (dumps.find(usage) == dumps.end()) {
411 const auto& program = precompiled_programs.at(usage); 461 const auto& program{precompiled_programs.at(usage)};
412 disk_cache.SaveDump(usage, program->handle); 462 disk_cache.SaveDump(usage, program->handle);
413 precompiled_cache_altered = true; 463 precompiled_cache_altered = true;
414 } 464 }
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.h b/src/video_core/renderer_opengl/gl_shader_cache.h
index 31b979987..64e5a5594 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.h
+++ b/src/video_core/renderer_opengl/gl_shader_cache.h
@@ -22,7 +22,11 @@
22 22
23namespace Core { 23namespace Core {
24class System; 24class System;
25} // namespace Core 25}
26
27namespace Core::Frontend {
28class EmuWindow;
29}
26 30
27namespace OpenGL { 31namespace OpenGL {
28 32
@@ -111,7 +115,7 @@ private:
111class ShaderCacheOpenGL final : public RasterizerCache<Shader> { 115class ShaderCacheOpenGL final : public RasterizerCache<Shader> {
112public: 116public:
113 explicit ShaderCacheOpenGL(RasterizerOpenGL& rasterizer, Core::System& system, 117 explicit ShaderCacheOpenGL(RasterizerOpenGL& rasterizer, Core::System& system,
114 const Device& device); 118 Core::Frontend::EmuWindow& emu_window, const Device& device);
115 119
116 /// Loads disk cache for the current game 120 /// Loads disk cache for the current game
117 void LoadDiskCache(const std::atomic_bool& stop_loading, 121 void LoadDiskCache(const std::atomic_bool& stop_loading,
@@ -133,13 +137,13 @@ private:
133 CachedProgram GeneratePrecompiledProgram(const ShaderDiskCacheDump& dump, 137 CachedProgram GeneratePrecompiledProgram(const ShaderDiskCacheDump& dump,
134 const std::set<GLenum>& supported_formats); 138 const std::set<GLenum>& supported_formats);
135 139
140 Core::Frontend::EmuWindow& emu_window;
136 const Device& device; 141 const Device& device;
137
138 std::array<Shader, Maxwell::MaxShaderProgram> last_shaders;
139
140 ShaderDiskCacheOpenGL disk_cache; 142 ShaderDiskCacheOpenGL disk_cache;
143
141 PrecompiledShaders precompiled_shaders; 144 PrecompiledShaders precompiled_shaders;
142 PrecompiledPrograms precompiled_programs; 145 PrecompiledPrograms precompiled_programs;
146 std::array<Shader, Maxwell::MaxShaderProgram> last_shaders;
143}; 147};
144 148
145} // namespace OpenGL 149} // namespace OpenGL
diff --git a/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp b/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp
index fba9c594a..ee4a45ca2 100644
--- a/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_disk_cache.cpp
@@ -183,8 +183,7 @@ ShaderDiskCacheOpenGL::LoadTransferable() {
183 return {{raws, usages}}; 183 return {{raws, usages}};
184} 184}
185 185
186std::pair<std::unordered_map<u64, ShaderDiskCacheDecompiled>, 186std::pair<std::unordered_map<u64, ShaderDiskCacheDecompiled>, ShaderDumpsMap>
187 std::unordered_map<ShaderDiskCacheUsage, ShaderDiskCacheDump>>
188ShaderDiskCacheOpenGL::LoadPrecompiled() { 187ShaderDiskCacheOpenGL::LoadPrecompiled() {
189 if (!IsUsable()) 188 if (!IsUsable())
190 return {}; 189 return {};
@@ -208,8 +207,7 @@ ShaderDiskCacheOpenGL::LoadPrecompiled() {
208 return *result; 207 return *result;
209} 208}
210 209
211std::optional<std::pair<std::unordered_map<u64, ShaderDiskCacheDecompiled>, 210std::optional<std::pair<std::unordered_map<u64, ShaderDiskCacheDecompiled>, ShaderDumpsMap>>
212 std::unordered_map<ShaderDiskCacheUsage, ShaderDiskCacheDump>>>
213ShaderDiskCacheOpenGL::LoadPrecompiledFile(FileUtil::IOFile& file) { 211ShaderDiskCacheOpenGL::LoadPrecompiledFile(FileUtil::IOFile& file) {
214 // Read compressed file from disk and decompress to virtual precompiled cache file 212 // Read compressed file from disk and decompress to virtual precompiled cache file
215 std::vector<u8> compressed(file.GetSize()); 213 std::vector<u8> compressed(file.GetSize());
@@ -230,7 +228,7 @@ ShaderDiskCacheOpenGL::LoadPrecompiledFile(FileUtil::IOFile& file) {
230 } 228 }
231 229
232 std::unordered_map<u64, ShaderDiskCacheDecompiled> decompiled; 230 std::unordered_map<u64, ShaderDiskCacheDecompiled> decompiled;
233 std::unordered_map<ShaderDiskCacheUsage, ShaderDiskCacheDump> dumps; 231 ShaderDumpsMap dumps;
234 while (precompiled_cache_virtual_file_offset < precompiled_cache_virtual_file.GetSize()) { 232 while (precompiled_cache_virtual_file_offset < precompiled_cache_virtual_file.GetSize()) {
235 PrecompiledEntryKind kind{}; 233 PrecompiledEntryKind kind{};
236 if (!LoadObjectFromPrecompiled(kind)) { 234 if (!LoadObjectFromPrecompiled(kind)) {
diff --git a/src/video_core/renderer_opengl/gl_shader_disk_cache.h b/src/video_core/renderer_opengl/gl_shader_disk_cache.h
index 2da0a4a23..ecd72ba58 100644
--- a/src/video_core/renderer_opengl/gl_shader_disk_cache.h
+++ b/src/video_core/renderer_opengl/gl_shader_disk_cache.h
@@ -33,6 +33,11 @@ namespace OpenGL {
33using ProgramCode = std::vector<u64>; 33using ProgramCode = std::vector<u64>;
34using Maxwell = Tegra::Engines::Maxwell3D::Regs; 34using Maxwell = Tegra::Engines::Maxwell3D::Regs;
35 35
36struct ShaderDiskCacheUsage;
37struct ShaderDiskCacheDump;
38
39using ShaderDumpsMap = std::unordered_map<ShaderDiskCacheUsage, ShaderDiskCacheDump>;
40
36/// Allocated bindings used by an OpenGL shader program 41/// Allocated bindings used by an OpenGL shader program
37struct BaseBindings { 42struct BaseBindings {
38 u32 cbuf{}; 43 u32 cbuf{};
@@ -294,4 +299,4 @@ private:
294 bool tried_to_load{}; 299 bool tried_to_load{};
295}; 300};
296 301
297} // namespace OpenGL \ No newline at end of file 302} // namespace OpenGL
diff --git a/src/video_core/renderer_opengl/gl_shader_gen.cpp b/src/video_core/renderer_opengl/gl_shader_gen.cpp
index 7ab0b4553..d2bb705a9 100644
--- a/src/video_core/renderer_opengl/gl_shader_gen.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_gen.cpp
@@ -19,8 +19,7 @@ static constexpr u32 PROGRAM_OFFSET{10};
19ProgramResult GenerateVertexShader(const Device& device, const ShaderSetup& setup) { 19ProgramResult GenerateVertexShader(const Device& device, const ShaderSetup& setup) {
20 const std::string id = fmt::format("{:016x}", setup.program.unique_identifier); 20 const std::string id = fmt::format("{:016x}", setup.program.unique_identifier);
21 21
22 std::string out = "#extension GL_ARB_separate_shader_objects : enable\n\n"; 22 std::string out = "// Shader Unique Id: VS" + id + "\n\n";
23 out += "// Shader Unique Id: VS" + id + "\n\n";
24 out += GetCommonDeclarations(); 23 out += GetCommonDeclarations();
25 24
26 out += R"( 25 out += R"(
@@ -82,8 +81,7 @@ void main() {
82ProgramResult GenerateGeometryShader(const Device& device, const ShaderSetup& setup) { 81ProgramResult GenerateGeometryShader(const Device& device, const ShaderSetup& setup) {
83 const std::string id = fmt::format("{:016x}", setup.program.unique_identifier); 82 const std::string id = fmt::format("{:016x}", setup.program.unique_identifier);
84 83
85 std::string out = "#extension GL_ARB_separate_shader_objects : enable\n\n"; 84 std::string out = "// Shader Unique Id: GS" + id + "\n\n";
86 out += "// Shader Unique Id: GS" + id + "\n\n";
87 out += GetCommonDeclarations(); 85 out += GetCommonDeclarations();
88 86
89 out += R"( 87 out += R"(
@@ -113,8 +111,7 @@ void main() {
113ProgramResult GenerateFragmentShader(const Device& device, const ShaderSetup& setup) { 111ProgramResult GenerateFragmentShader(const Device& device, const ShaderSetup& setup) {
114 const std::string id = fmt::format("{:016x}", setup.program.unique_identifier); 112 const std::string id = fmt::format("{:016x}", setup.program.unique_identifier);
115 113
116 std::string out = "#extension GL_ARB_separate_shader_objects : enable\n\n"; 114 std::string out = "// Shader Unique Id: FS" + id + "\n\n";
117 out += "// Shader Unique Id: FS" + id + "\n\n";
118 out += GetCommonDeclarations(); 115 out += GetCommonDeclarations();
119 116
120 out += R"( 117 out += R"(
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp
index d69cba9c3..3451d321d 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.cpp
+++ b/src/video_core/renderer_opengl/renderer_opengl.cpp
@@ -97,8 +97,8 @@ static std::array<GLfloat, 3 * 2> MakeOrthographicMatrix(const float width, cons
97 return matrix; 97 return matrix;
98} 98}
99 99
100RendererOpenGL::RendererOpenGL(Core::Frontend::EmuWindow& window, Core::System& system) 100RendererOpenGL::RendererOpenGL(Core::Frontend::EmuWindow& emu_window, Core::System& system)
101 : VideoCore::RendererBase{window}, system{system} {} 101 : VideoCore::RendererBase{emu_window}, emu_window{emu_window}, system{system} {}
102 102
103RendererOpenGL::~RendererOpenGL() = default; 103RendererOpenGL::~RendererOpenGL() = default;
104 104
@@ -265,7 +265,7 @@ void RendererOpenGL::CreateRasterizer() {
265 } 265 }
266 // Initialize sRGB Usage 266 // Initialize sRGB Usage
267 OpenGLState::ClearsRGBUsed(); 267 OpenGLState::ClearsRGBUsed();
268 rasterizer = std::make_unique<RasterizerOpenGL>(system, screen_info); 268 rasterizer = std::make_unique<RasterizerOpenGL>(system, emu_window, screen_info);
269} 269}
270 270
271void RendererOpenGL::ConfigureFramebufferTexture(TextureInfo& texture, 271void RendererOpenGL::ConfigureFramebufferTexture(TextureInfo& texture,
diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h
index 6cbf9d2cb..4aebf2321 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.h
+++ b/src/video_core/renderer_opengl/renderer_opengl.h
@@ -45,7 +45,7 @@ struct ScreenInfo {
45 45
46class RendererOpenGL : public VideoCore::RendererBase { 46class RendererOpenGL : public VideoCore::RendererBase {
47public: 47public:
48 explicit RendererOpenGL(Core::Frontend::EmuWindow& window, Core::System& system); 48 explicit RendererOpenGL(Core::Frontend::EmuWindow& emu_window, Core::System& system);
49 ~RendererOpenGL() override; 49 ~RendererOpenGL() override;
50 50
51 /// Swap buffers (render frame) 51 /// Swap buffers (render frame)
@@ -77,6 +77,7 @@ private:
77 void LoadColorToActiveGLTexture(u8 color_r, u8 color_g, u8 color_b, u8 color_a, 77 void LoadColorToActiveGLTexture(u8 color_r, u8 color_g, u8 color_b, u8 color_a,
78 const TextureInfo& texture); 78 const TextureInfo& texture);
79 79
80 Core::Frontend::EmuWindow& emu_window;
80 Core::System& system; 81 Core::System& system;
81 82
82 OpenGLState state; 83 OpenGLState state;
diff --git a/src/video_core/renderer_opengl/utils.cpp b/src/video_core/renderer_opengl/utils.cpp
index 84a987371..f23fc9f9d 100644
--- a/src/video_core/renderer_opengl/utils.cpp
+++ b/src/video_core/renderer_opengl/utils.cpp
@@ -38,27 +38,27 @@ void BindBuffersRangePushBuffer::Bind() const {
38 sizes.data()); 38 sizes.data());
39} 39}
40 40
41void LabelGLObject(GLenum identifier, GLuint handle, VAddr addr, std::string extra_info) { 41void LabelGLObject(GLenum identifier, GLuint handle, VAddr addr, std::string_view extra_info) {
42 if (!GLAD_GL_KHR_debug) { 42 if (!GLAD_GL_KHR_debug) {
43 return; // We don't need to throw an error as this is just for debugging 43 // We don't need to throw an error as this is just for debugging
44 return;
44 } 45 }
45 const std::string nice_addr = fmt::format("0x{:016x}", addr);
46 std::string object_label;
47 46
47 std::string object_label;
48 if (extra_info.empty()) { 48 if (extra_info.empty()) {
49 switch (identifier) { 49 switch (identifier) {
50 case GL_TEXTURE: 50 case GL_TEXTURE:
51 object_label = "Texture@" + nice_addr; 51 object_label = fmt::format("Texture@0x{:016X}", addr);
52 break; 52 break;
53 case GL_PROGRAM: 53 case GL_PROGRAM:
54 object_label = "Shader@" + nice_addr; 54 object_label = fmt::format("Shader@0x{:016X}", addr);
55 break; 55 break;
56 default: 56 default:
57 object_label = fmt::format("Object(0x{:x})@{}", identifier, nice_addr); 57 object_label = fmt::format("Object(0x{:X})@0x{:016X}", identifier, addr);
58 break; 58 break;
59 } 59 }
60 } else { 60 } else {
61 object_label = extra_info + '@' + nice_addr; 61 object_label = fmt::format("{}@0x{:016X}", extra_info, addr);
62 } 62 }
63 glObjectLabel(identifier, handle, -1, static_cast<const GLchar*>(object_label.c_str())); 63 glObjectLabel(identifier, handle, -1, static_cast<const GLchar*>(object_label.c_str()));
64} 64}
diff --git a/src/video_core/renderer_opengl/utils.h b/src/video_core/renderer_opengl/utils.h
index aef45c9dc..b3e9fc499 100644
--- a/src/video_core/renderer_opengl/utils.h
+++ b/src/video_core/renderer_opengl/utils.h
@@ -4,7 +4,7 @@
4 4
5#pragma once 5#pragma once
6 6
7#include <string> 7#include <string_view>
8#include <vector> 8#include <vector>
9#include <glad/glad.h> 9#include <glad/glad.h>
10#include "common/common_types.h" 10#include "common/common_types.h"
@@ -30,6 +30,6 @@ private:
30 std::vector<GLsizeiptr> sizes; 30 std::vector<GLsizeiptr> sizes;
31}; 31};
32 32
33void LabelGLObject(GLenum identifier, GLuint handle, VAddr addr, std::string extra_info = ""); 33void LabelGLObject(GLenum identifier, GLuint handle, VAddr addr, std::string_view extra_info = {});
34 34
35} // namespace OpenGL \ No newline at end of file 35} // namespace OpenGL \ No newline at end of file
diff --git a/src/video_core/shader/decode/memory.cpp b/src/video_core/shader/decode/memory.cpp
index 165c2b41b..e6a010a7d 100644
--- a/src/video_core/shader/decode/memory.cpp
+++ b/src/video_core/shader/decode/memory.cpp
@@ -146,12 +146,25 @@ u32 ShaderIR::DecodeMemory(NodeBlock& bb, u32 pc) {
146 } 146 }
147 break; 147 break;
148 } 148 }
149 case OpCode::Id::LD:
149 case OpCode::Id::LDG: { 150 case OpCode::Id::LDG: {
151 const auto type = [instr, &opcode]() -> Tegra::Shader::UniformType {
152 switch (opcode->get().GetId()) {
153 case OpCode::Id::LD:
154 UNIMPLEMENTED_IF_MSG(!instr.generic.extended, "Unextended LD is not implemented");
155 return instr.generic.type;
156 case OpCode::Id::LDG:
157 return instr.ldg.type;
158 default:
159 UNREACHABLE();
160 return {};
161 }
162 }();
163
150 const auto [real_address_base, base_address, descriptor] = 164 const auto [real_address_base, base_address, descriptor] =
151 TrackAndGetGlobalMemory(bb, GetRegister(instr.gpr8), 165 TrackAndGetGlobalMemory(bb, instr, false);
152 static_cast<u32>(instr.ldg.immediate_offset.Value()), false);
153 166
154 const u32 count = GetUniformTypeElementsCount(instr.ldg.type); 167 const u32 count = GetUniformTypeElementsCount(type);
155 for (u32 i = 0; i < count; ++i) { 168 for (u32 i = 0; i < count; ++i) {
156 const Node it_offset = Immediate(i * 4); 169 const Node it_offset = Immediate(i * 4);
157 const Node real_address = 170 const Node real_address =
@@ -165,28 +178,6 @@ u32 ShaderIR::DecodeMemory(NodeBlock& bb, u32 pc) {
165 } 178 }
166 break; 179 break;
167 } 180 }
168 case OpCode::Id::STG: {
169 const auto [real_address_base, base_address, descriptor] =
170 TrackAndGetGlobalMemory(bb, GetRegister(instr.gpr8),
171 static_cast<u32>(instr.stg.immediate_offset.Value()), true);
172
173 // Encode in temporary registers like this: real_base_address, {registers_to_be_written...}
174 SetTemporal(bb, 0, real_address_base);
175
176 const u32 count = GetUniformTypeElementsCount(instr.stg.type);
177 for (u32 i = 0; i < count; ++i) {
178 SetTemporal(bb, i + 1, GetRegister(instr.gpr0.Value() + i));
179 }
180 for (u32 i = 0; i < count; ++i) {
181 const Node it_offset = Immediate(i * 4);
182 const Node real_address =
183 Operation(OperationCode::UAdd, NO_PRECISE, real_address_base, it_offset);
184 const Node gmem = StoreNode(GmemNode(real_address, base_address, descriptor));
185
186 bb.push_back(Operation(OperationCode::Assign, gmem, GetTemporal(i + 1)));
187 }
188 break;
189 }
190 case OpCode::Id::ST_A: { 181 case OpCode::Id::ST_A: {
191 UNIMPLEMENTED_IF_MSG(instr.gpr8.Value() != Register::ZeroIndex, 182 UNIMPLEMENTED_IF_MSG(instr.gpr8.Value() != Register::ZeroIndex,
192 "Indirect attribute loads are not supported"); 183 "Indirect attribute loads are not supported");
@@ -242,6 +233,41 @@ u32 ShaderIR::DecodeMemory(NodeBlock& bb, u32 pc) {
242 } 233 }
243 break; 234 break;
244 } 235 }
236 case OpCode::Id::ST:
237 case OpCode::Id::STG: {
238 const auto type = [instr, &opcode]() -> Tegra::Shader::UniformType {
239 switch (opcode->get().GetId()) {
240 case OpCode::Id::ST:
241 UNIMPLEMENTED_IF_MSG(!instr.generic.extended, "Unextended ST is not implemented");
242 return instr.generic.type;
243 case OpCode::Id::STG:
244 return instr.stg.type;
245 default:
246 UNREACHABLE();
247 return {};
248 }
249 }();
250
251 const auto [real_address_base, base_address, descriptor] =
252 TrackAndGetGlobalMemory(bb, instr, true);
253
254 // Encode in temporary registers like this: real_base_address, {registers_to_be_written...}
255 SetTemporal(bb, 0, real_address_base);
256
257 const u32 count = GetUniformTypeElementsCount(type);
258 for (u32 i = 0; i < count; ++i) {
259 SetTemporal(bb, i + 1, GetRegister(instr.gpr0.Value() + i));
260 }
261 for (u32 i = 0; i < count; ++i) {
262 const Node it_offset = Immediate(i * 4);
263 const Node real_address =
264 Operation(OperationCode::UAdd, NO_PRECISE, real_address_base, it_offset);
265 const Node gmem = StoreNode(GmemNode(real_address, base_address, descriptor));
266
267 bb.push_back(Operation(OperationCode::Assign, gmem, GetTemporal(i + 1)));
268 }
269 break;
270 }
245 case OpCode::Id::AL2P: { 271 case OpCode::Id::AL2P: {
246 // Ignore al2p.direction since we don't care about it. 272 // Ignore al2p.direction since we don't care about it.
247 273
@@ -265,9 +291,11 @@ u32 ShaderIR::DecodeMemory(NodeBlock& bb, u32 pc) {
265} 291}
266 292
267std::tuple<Node, Node, GlobalMemoryBase> ShaderIR::TrackAndGetGlobalMemory(NodeBlock& bb, 293std::tuple<Node, Node, GlobalMemoryBase> ShaderIR::TrackAndGetGlobalMemory(NodeBlock& bb,
268 Node addr_register, 294 Instruction instr,
269 u32 immediate_offset,
270 bool is_write) { 295 bool is_write) {
296 const auto addr_register{GetRegister(instr.gmem.gpr)};
297 const auto immediate_offset{static_cast<u32>(instr.gmem.offset)};
298
271 const Node base_address{ 299 const Node base_address{
272 TrackCbuf(addr_register, global_code, static_cast<s64>(global_code.size()))}; 300 TrackCbuf(addr_register, global_code, static_cast<s64>(global_code.size()))};
273 const auto cbuf = std::get_if<CbufNode>(base_address); 301 const auto cbuf = std::get_if<CbufNode>(base_address);
diff --git a/src/video_core/shader/shader_ir.h b/src/video_core/shader/shader_ir.h
index 34d183ec7..35f72bddb 100644
--- a/src/video_core/shader/shader_ir.h
+++ b/src/video_core/shader/shader_ir.h
@@ -818,10 +818,8 @@ private:
818 std::pair<Node, s64> TrackRegister(const GprNode* tracked, const NodeBlock& code, 818 std::pair<Node, s64> TrackRegister(const GprNode* tracked, const NodeBlock& code,
819 s64 cursor) const; 819 s64 cursor) const;
820 820
821 std::tuple<Node, Node, GlobalMemoryBase> TrackAndGetGlobalMemory(NodeBlock& bb, 821 std::tuple<Node, Node, GlobalMemoryBase> TrackAndGetGlobalMemory(
822 Node addr_register, 822 NodeBlock& bb, Tegra::Shader::Instruction instr, bool is_write);
823 u32 immediate_offset,
824 bool is_write);
825 823
826 template <typename... T> 824 template <typename... T>
827 Node Operation(OperationCode code, const T*... operands) { 825 Node Operation(OperationCode code, const T*... operands) {
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt
index 7e883991a..3ea7b55d0 100644
--- a/src/yuzu/CMakeLists.txt
+++ b/src/yuzu/CMakeLists.txt
@@ -155,6 +155,10 @@ target_compile_definitions(yuzu PRIVATE
155 # Use QStringBuilder for string concatenation to reduce 155 # Use QStringBuilder for string concatenation to reduce
156 # the overall number of temporary strings created. 156 # the overall number of temporary strings created.
157 -DQT_USE_QSTRINGBUILDER 157 -DQT_USE_QSTRINGBUILDER
158
159 # Disable implicit conversions from/to C strings
160 -DQT_NO_CAST_FROM_ASCII
161 -DQT_NO_CAST_TO_ASCII
158) 162)
159 163
160if (YUZU_ENABLE_COMPATIBILITY_REPORTING) 164if (YUZU_ENABLE_COMPATIBILITY_REPORTING)
diff --git a/src/yuzu/applets/error.cpp b/src/yuzu/applets/error.cpp
index 106dde9e2..08ed57355 100644
--- a/src/yuzu/applets/error.cpp
+++ b/src/yuzu/applets/error.cpp
@@ -29,11 +29,13 @@ void QtErrorDisplay::ShowError(ResultCode error, std::function<void()> finished)
29void QtErrorDisplay::ShowErrorWithTimestamp(ResultCode error, std::chrono::seconds time, 29void QtErrorDisplay::ShowErrorWithTimestamp(ResultCode error, std::chrono::seconds time,
30 std::function<void()> finished) const { 30 std::function<void()> finished) const {
31 this->callback = std::move(finished); 31 this->callback = std::move(finished);
32
33 const QDateTime date_time = QDateTime::fromSecsSinceEpoch(time.count());
32 emit MainWindowDisplayError( 34 emit MainWindowDisplayError(
33 tr("An error occured on %1 at %2.\nPlease try again or contact the " 35 tr("An error occured on %1 at %2.\nPlease try again or contact the "
34 "developer of the software.\n\nError Code: %3-%4 (0x%5)") 36 "developer of the software.\n\nError Code: %3-%4 (0x%5)")
35 .arg(QDateTime::fromSecsSinceEpoch(time.count()).toString("dddd, MMMM d, yyyy")) 37 .arg(date_time.toString(QStringLiteral("dddd, MMMM d, yyyy")))
36 .arg(QDateTime::fromSecsSinceEpoch(time.count()).toString("h:mm:ss A")) 38 .arg(date_time.toString(QStringLiteral("h:mm:ss A")))
37 .arg(static_cast<u32>(error.module.Value()) + 2000, 4, 10, QChar::fromLatin1('0')) 39 .arg(static_cast<u32>(error.module.Value()) + 2000, 4, 10, QChar::fromLatin1('0'))
38 .arg(error.description, 4, 10, QChar::fromLatin1('0')) 40 .arg(error.description, 4, 10, QChar::fromLatin1('0'))
39 .arg(error.raw, 8, 16, QChar::fromLatin1('0'))); 41 .arg(error.raw, 8, 16, QChar::fromLatin1('0')));
diff --git a/src/yuzu/applets/software_keyboard.cpp b/src/yuzu/applets/software_keyboard.cpp
index f3eb29b25..5223ec977 100644
--- a/src/yuzu/applets/software_keyboard.cpp
+++ b/src/yuzu/applets/software_keyboard.cpp
@@ -18,23 +18,30 @@ QtSoftwareKeyboardValidator::QtSoftwareKeyboardValidator(
18 : parameters(std::move(parameters)) {} 18 : parameters(std::move(parameters)) {}
19 19
20QValidator::State QtSoftwareKeyboardValidator::validate(QString& input, int& pos) const { 20QValidator::State QtSoftwareKeyboardValidator::validate(QString& input, int& pos) const {
21 if (input.size() > parameters.max_length) 21 if (input.size() > static_cast<s64>(parameters.max_length)) {
22 return Invalid; 22 return Invalid;
23 if (parameters.disable_space && input.contains(' ')) 23 }
24 if (parameters.disable_space && input.contains(QLatin1Char{' '})) {
24 return Invalid; 25 return Invalid;
25 if (parameters.disable_address && input.contains('@')) 26 }
27 if (parameters.disable_address && input.contains(QLatin1Char{'@'})) {
26 return Invalid; 28 return Invalid;
27 if (parameters.disable_percent && input.contains('%')) 29 }
30 if (parameters.disable_percent && input.contains(QLatin1Char{'%'})) {
28 return Invalid; 31 return Invalid;
29 if (parameters.disable_slash && (input.contains('/') || input.contains('\\'))) 32 }
33 if (parameters.disable_slash &&
34 (input.contains(QLatin1Char{'/'}) || input.contains(QLatin1Char{'\\'}))) {
30 return Invalid; 35 return Invalid;
36 }
31 if (parameters.disable_number && 37 if (parameters.disable_number &&
32 std::any_of(input.begin(), input.end(), [](QChar c) { return c.isDigit(); })) { 38 std::any_of(input.begin(), input.end(), [](QChar c) { return c.isDigit(); })) {
33 return Invalid; 39 return Invalid;
34 } 40 }
35 41
36 if (parameters.disable_download_code && 42 if (parameters.disable_download_code && std::any_of(input.begin(), input.end(), [](QChar c) {
37 std::any_of(input.begin(), input.end(), [](QChar c) { return c == 'O' || c == 'I'; })) { 43 return c == QLatin1Char{'O'} || c == QLatin1Char{'I'};
44 })) {
38 return Invalid; 45 return Invalid;
39 } 46 }
40 47
@@ -142,7 +149,7 @@ void QtSoftwareKeyboard::SendTextCheckDialog(std::u16string error_message,
142void QtSoftwareKeyboard::MainWindowFinishedText(std::optional<std::u16string> text) { 149void QtSoftwareKeyboard::MainWindowFinishedText(std::optional<std::u16string> text) {
143 // Acquire the HLE mutex 150 // Acquire the HLE mutex
144 std::lock_guard lock{HLE::g_hle_lock}; 151 std::lock_guard lock{HLE::g_hle_lock};
145 text_output(text); 152 text_output(std::move(text));
146} 153}
147 154
148void QtSoftwareKeyboard::MainWindowFinishedCheckDialog() { 155void QtSoftwareKeyboard::MainWindowFinishedCheckDialog() {
diff --git a/src/yuzu/applets/software_keyboard.h b/src/yuzu/applets/software_keyboard.h
index c63720ba4..78c5a042b 100644
--- a/src/yuzu/applets/software_keyboard.h
+++ b/src/yuzu/applets/software_keyboard.h
@@ -6,7 +6,6 @@
6 6
7#include <QDialog> 7#include <QDialog>
8#include <QValidator> 8#include <QValidator>
9#include "common/assert.h"
10#include "core/frontend/applets/software_keyboard.h" 9#include "core/frontend/applets/software_keyboard.h"
11 10
12class GMainWindow; 11class GMainWindow;
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp
index 484c0f1c5..9e420b359 100644
--- a/src/yuzu/bootmanager.cpp
+++ b/src/yuzu/bootmanager.cpp
@@ -91,25 +91,25 @@ void EmuThread::run() {
91 91
92class GGLContext : public Core::Frontend::GraphicsContext { 92class GGLContext : public Core::Frontend::GraphicsContext {
93public: 93public:
94 explicit GGLContext(QOpenGLContext* shared_context) 94 explicit GGLContext(QOpenGLContext* shared_context) : shared_context{shared_context} {
95 : context{std::make_unique<QOpenGLContext>(shared_context)} { 95 context.setFormat(shared_context->format());
96 surface.setFormat(shared_context->format()); 96 context.setShareContext(shared_context);
97 surface.create(); 97 context.create();
98 } 98 }
99 99
100 void MakeCurrent() override { 100 void MakeCurrent() override {
101 context->makeCurrent(&surface); 101 context.makeCurrent(shared_context->surface());
102 } 102 }
103 103
104 void DoneCurrent() override { 104 void DoneCurrent() override {
105 context->doneCurrent(); 105 context.doneCurrent();
106 } 106 }
107 107
108 void SwapBuffers() override {} 108 void SwapBuffers() override {}
109 109
110private: 110private:
111 std::unique_ptr<QOpenGLContext> context; 111 QOpenGLContext* shared_context;
112 QOffscreenSurface surface; 112 QOpenGLContext context;
113}; 113};
114 114
115// This class overrides paintEvent and resizeEvent to prevent the GUI thread from stealing GL 115// This class overrides paintEvent and resizeEvent to prevent the GUI thread from stealing GL
@@ -358,7 +358,7 @@ void GRenderWindow::OnClientAreaResized(unsigned width, unsigned height) {
358} 358}
359 359
360std::unique_ptr<Core::Frontend::GraphicsContext> GRenderWindow::CreateSharedContext() const { 360std::unique_ptr<Core::Frontend::GraphicsContext> GRenderWindow::CreateSharedContext() const {
361 return std::make_unique<GGLContext>(shared_context.get()); 361 return std::make_unique<GGLContext>(context.get());
362} 362}
363 363
364void GRenderWindow::InitRenderTarget() { 364void GRenderWindow::InitRenderTarget() {
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index d28826c67..db27da23e 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -11,6 +11,7 @@
11#include "core/hle/service/hid/controllers/npad.h" 11#include "core/hle/service/hid/controllers/npad.h"
12#include "input_common/main.h" 12#include "input_common/main.h"
13#include "yuzu/configuration/config.h" 13#include "yuzu/configuration/config.h"
14#include "yuzu/ui_settings.h"
14 15
15Config::Config() { 16Config::Config() {
16 // TODO: Don't hardcode the path; let the frontend decide where to put the config files. 17 // TODO: Don't hardcode the path; let the frontend decide where to put the config files.
@@ -206,25 +207,28 @@ const std::array<int, Settings::NativeKeyboard::NumKeyboardMods> Config::default
206}; 207};
207 208
208// This shouldn't have anything except static initializers (no functions). So 209// This shouldn't have anything except static initializers (no functions). So
209// QKeySequnce(...).toString() is NOT ALLOWED HERE. 210// QKeySequence(...).toString() is NOT ALLOWED HERE.
210// This must be in alphabetical order according to action name as it must have the same order as 211// This must be in alphabetical order according to action name as it must have the same order as
211// UISetting::values.shortcuts, which is alphabetically ordered. 212// UISetting::values.shortcuts, which is alphabetically ordered.
212const std::array<UISettings::Shortcut, 15> Config::default_hotkeys{ 213// clang-format off
213 {{"Capture Screenshot", "Main Window", {"Ctrl+P", Qt::ApplicationShortcut}}, 214const std::array<UISettings::Shortcut, 15> default_hotkeys{{
214 {"Continue/Pause Emulation", "Main Window", {"F4", Qt::WindowShortcut}}, 215 {QStringLiteral("Capture Screenshot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+P"), Qt::ApplicationShortcut}},
215 {"Decrease Speed Limit", "Main Window", {"-", Qt::ApplicationShortcut}}, 216 {QStringLiteral("Continue/Pause Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F4"), Qt::WindowShortcut}},
216 {"Exit yuzu", "Main Window", {"Ctrl+Q", Qt::WindowShortcut}}, 217 {QStringLiteral("Decrease Speed Limit"), QStringLiteral("Main Window"), {QStringLiteral("-"), Qt::ApplicationShortcut}},
217 {"Exit Fullscreen", "Main Window", {"Esc", Qt::WindowShortcut}}, 218 {QStringLiteral("Exit yuzu"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Q"), Qt::WindowShortcut}},
218 {"Fullscreen", "Main Window", {"F11", Qt::WindowShortcut}}, 219 {QStringLiteral("Exit Fullscreen"), QStringLiteral("Main Window"), {QStringLiteral("Esc"), Qt::WindowShortcut}},
219 {"Increase Speed Limit", "Main Window", {"+", Qt::ApplicationShortcut}}, 220 {QStringLiteral("Fullscreen"), QStringLiteral("Main Window"), {QStringLiteral("F11"), Qt::WindowShortcut}},
220 {"Load Amiibo", "Main Window", {"F2", Qt::ApplicationShortcut}}, 221 {QStringLiteral("Increase Speed Limit"), QStringLiteral("Main Window"), {QStringLiteral("+"), Qt::ApplicationShortcut}},
221 {"Load File", "Main Window", {"Ctrl+O", Qt::WindowShortcut}}, 222 {QStringLiteral("Load Amiibo"), QStringLiteral("Main Window"), {QStringLiteral("F2"), Qt::ApplicationShortcut}},
222 {"Restart Emulation", "Main Window", {"F6", Qt::WindowShortcut}}, 223 {QStringLiteral("Load File"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+O"), Qt::WindowShortcut}},
223 {"Stop Emulation", "Main Window", {"F5", Qt::WindowShortcut}}, 224 {QStringLiteral("Restart Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F6"), Qt::WindowShortcut}},
224 {"Toggle Filter Bar", "Main Window", {"Ctrl+F", Qt::WindowShortcut}}, 225 {QStringLiteral("Stop Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F5"), Qt::WindowShortcut}},
225 {"Toggle Speed Limit", "Main Window", {"Ctrl+Z", Qt::ApplicationShortcut}}, 226 {QStringLiteral("Toggle Filter Bar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+F"), Qt::WindowShortcut}},
226 {"Toggle Status Bar", "Main Window", {"Ctrl+S", Qt::WindowShortcut}}, 227 {QStringLiteral("Toggle Speed Limit"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Z"), Qt::ApplicationShortcut}},
227 {"Change Docked Mode", "Main Window", {"F10", Qt::ApplicationShortcut}}}}; 228 {QStringLiteral("Toggle Status Bar"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+S"), Qt::WindowShortcut}},
229 {QStringLiteral("Change Docked Mode"), QStringLiteral("Main Window"), {QStringLiteral("F10"), Qt::ApplicationShortcut}},
230}};
231// clang-format on
228 232
229void Config::ReadPlayerValues() { 233void Config::ReadPlayerValues() {
230 for (std::size_t p = 0; p < Settings::values.players.size(); ++p) { 234 for (std::size_t p = 0; p < Settings::values.players.size(); ++p) {
@@ -370,14 +374,21 @@ void Config::ReadMouseValues() {
370} 374}
371 375
372void Config::ReadTouchscreenValues() { 376void Config::ReadTouchscreenValues() {
373 Settings::values.touchscreen.enabled = ReadSetting("touchscreen_enabled", true).toBool(); 377 Settings::values.touchscreen.enabled =
378 ReadSetting(QStringLiteral("touchscreen_enabled"), true).toBool();
374 Settings::values.touchscreen.device = 379 Settings::values.touchscreen.device =
375 ReadSetting("touchscreen_device", "engine:emu_window").toString().toStdString(); 380 ReadSetting(QStringLiteral("touchscreen_device"), QStringLiteral("engine:emu_window"))
381 .toString()
382 .toStdString();
376 383
377 Settings::values.touchscreen.finger = ReadSetting("touchscreen_finger", 0).toUInt(); 384 Settings::values.touchscreen.finger =
378 Settings::values.touchscreen.rotation_angle = ReadSetting("touchscreen_angle", 0).toUInt(); 385 ReadSetting(QStringLiteral("touchscreen_finger"), 0).toUInt();
379 Settings::values.touchscreen.diameter_x = ReadSetting("touchscreen_diameter_x", 15).toUInt(); 386 Settings::values.touchscreen.rotation_angle =
380 Settings::values.touchscreen.diameter_y = ReadSetting("touchscreen_diameter_y", 15).toUInt(); 387 ReadSetting(QStringLiteral("touchscreen_angle"), 0).toUInt();
388 Settings::values.touchscreen.diameter_x =
389 ReadSetting(QStringLiteral("touchscreen_diameter_x"), 15).toUInt();
390 Settings::values.touchscreen.diameter_y =
391 ReadSetting(QStringLiteral("touchscreen_diameter_y"), 15).toUInt();
381} 392}
382 393
383void Config::ApplyDefaultProfileIfInputInvalid() { 394void Config::ApplyDefaultProfileIfInputInvalid() {
@@ -541,8 +552,8 @@ void Config::ReadRendererValues() {
541void Config::ReadShortcutValues() { 552void Config::ReadShortcutValues() {
542 qt_config->beginGroup(QStringLiteral("Shortcuts")); 553 qt_config->beginGroup(QStringLiteral("Shortcuts"));
543 554
544 for (auto [name, group, shortcut] : default_hotkeys) { 555 for (const auto& [name, group, shortcut] : default_hotkeys) {
545 auto [keyseq, context] = shortcut; 556 const auto& [keyseq, context] = shortcut;
546 qt_config->beginGroup(group); 557 qt_config->beginGroup(group);
547 qt_config->beginGroup(name); 558 qt_config->beginGroup(name);
548 UISettings::values.shortcuts.push_back( 559 UISettings::values.shortcuts.push_back(
@@ -591,7 +602,8 @@ void Config::ReadUIValues() {
591 qt_config->beginGroup(QStringLiteral("UI")); 602 qt_config->beginGroup(QStringLiteral("UI"));
592 603
593 UISettings::values.theme = 604 UISettings::values.theme =
594 ReadSetting(QStringLiteral("theme"), UISettings::themes[0].second).toString(); 605 ReadSetting(QStringLiteral("theme"), QString::fromUtf8(UISettings::themes[0].second))
606 .toString();
595 UISettings::values.enable_discord_presence = 607 UISettings::values.enable_discord_presence =
596 ReadSetting(QStringLiteral("enable_discord_presence"), true).toBool(); 608 ReadSetting(QStringLiteral("enable_discord_presence"), true).toBool();
597 UISettings::values.screenshot_resolution_factor = 609 UISettings::values.screenshot_resolution_factor =
@@ -626,7 +638,7 @@ void Config::ReadUIValues() {
626} 638}
627 639
628void Config::ReadUIGamelistValues() { 640void Config::ReadUIGamelistValues() {
629 qt_config->beginGroup("UIGameList"); 641 qt_config->beginGroup(QStringLiteral("UIGameList"));
630 642
631 UISettings::values.show_unknown = ReadSetting(QStringLiteral("show_unknown"), true).toBool(); 643 UISettings::values.show_unknown = ReadSetting(QStringLiteral("show_unknown"), true).toBool();
632 UISettings::values.show_add_ons = ReadSetting(QStringLiteral("show_add_ons"), true).toBool(); 644 UISettings::values.show_add_ons = ReadSetting(QStringLiteral("show_add_ons"), true).toBool();
@@ -723,7 +735,7 @@ void Config::SavePlayerValues() {
723} 735}
724 736
725void Config::SaveDebugValues() { 737void Config::SaveDebugValues() {
726 WriteSetting("debug_pad_enabled", Settings::values.debug_pad_enabled, false); 738 WriteSetting(QStringLiteral("debug_pad_enabled"), Settings::values.debug_pad_enabled, false);
727 for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) { 739 for (int i = 0; i < Settings::NativeButton::NumButtons; ++i) {
728 const std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]); 740 const std::string default_param = InputCommon::GenerateKeyboardParam(default_buttons[i]);
729 WriteSetting(QStringLiteral("debug_pad_") + 741 WriteSetting(QStringLiteral("debug_pad_") +
@@ -924,7 +936,7 @@ void Config::SaveShortcutValues() {
924 // Lengths of UISettings::values.shortcuts & default_hotkeys are same. 936 // Lengths of UISettings::values.shortcuts & default_hotkeys are same.
925 // However, their ordering must also be the same. 937 // However, their ordering must also be the same.
926 for (std::size_t i = 0; i < default_hotkeys.size(); i++) { 938 for (std::size_t i = 0; i < default_hotkeys.size(); i++) {
927 const auto [name, group, shortcut] = UISettings::values.shortcuts[i]; 939 const auto& [name, group, shortcut] = UISettings::values.shortcuts[i];
928 const auto& default_hotkey = default_hotkeys[i].shortcut; 940 const auto& default_hotkey = default_hotkeys[i].shortcut;
929 941
930 qt_config->beginGroup(group); 942 qt_config->beginGroup(group);
@@ -961,7 +973,8 @@ void Config::SaveSystemValues() {
961void Config::SaveUIValues() { 973void Config::SaveUIValues() {
962 qt_config->beginGroup(QStringLiteral("UI")); 974 qt_config->beginGroup(QStringLiteral("UI"));
963 975
964 WriteSetting(QStringLiteral("theme"), UISettings::values.theme, UISettings::themes[0].second); 976 WriteSetting(QStringLiteral("theme"), UISettings::values.theme,
977 QString::fromUtf8(UISettings::themes[0].second));
965 WriteSetting(QStringLiteral("enable_discord_presence"), 978 WriteSetting(QStringLiteral("enable_discord_presence"),
966 UISettings::values.enable_discord_presence, true); 979 UISettings::values.enable_discord_presence, true);
967 WriteSetting(QStringLiteral("screenshot_resolution_factor"), 980 WriteSetting(QStringLiteral("screenshot_resolution_factor"),
diff --git a/src/yuzu/configuration/config.h b/src/yuzu/configuration/config.h
index b62a480ee..6b523ecdd 100644
--- a/src/yuzu/configuration/config.h
+++ b/src/yuzu/configuration/config.h
@@ -9,7 +9,6 @@
9#include <string> 9#include <string>
10#include <QVariant> 10#include <QVariant>
11#include "core/settings.h" 11#include "core/settings.h"
12#include "yuzu/ui_settings.h"
13 12
14class QSettings; 13class QSettings;
15 14
@@ -82,8 +81,6 @@ private:
82 void WriteSetting(const QString& name, const QVariant& value); 81 void WriteSetting(const QString& name, const QVariant& value);
83 void WriteSetting(const QString& name, const QVariant& value, const QVariant& default_value); 82 void WriteSetting(const QString& name, const QVariant& value, const QVariant& default_value);
84 83
85 static const std::array<UISettings::Shortcut, 15> default_hotkeys;
86
87 std::unique_ptr<QSettings> qt_config; 84 std::unique_ptr<QSettings> qt_config;
88 std::string qt_config_loc; 85 std::string qt_config_loc;
89}; 86};
diff --git a/src/yuzu/configuration/configure_dialog.cpp b/src/yuzu/configuration/configure_dialog.cpp
index 32c05b797..8086f9d6b 100644
--- a/src/yuzu/configuration/configure_dialog.cpp
+++ b/src/yuzu/configuration/configure_dialog.cpp
@@ -25,9 +25,6 @@ ConfigureDialog::ConfigureDialog(QWidget* parent, HotkeyRegistry& registry)
25 25
26 adjustSize(); 26 adjustSize();
27 ui->selectorList->setCurrentRow(0); 27 ui->selectorList->setCurrentRow(0);
28
29 // Synchronise lists upon initialisation
30 ui->hotkeysTab->EmitHotkeysChanged();
31} 28}
32 29
33ConfigureDialog::~ConfigureDialog() = default; 30ConfigureDialog::~ConfigureDialog() = default;
diff --git a/src/yuzu/configuration/configure_hotkeys.cpp b/src/yuzu/configuration/configure_hotkeys.cpp
index a7a8752e5..9fb970c21 100644
--- a/src/yuzu/configuration/configure_hotkeys.cpp
+++ b/src/yuzu/configuration/configure_hotkeys.cpp
@@ -31,22 +31,6 @@ ConfigureHotkeys::ConfigureHotkeys(QWidget* parent)
31 31
32ConfigureHotkeys::~ConfigureHotkeys() = default; 32ConfigureHotkeys::~ConfigureHotkeys() = default;
33 33
34void ConfigureHotkeys::EmitHotkeysChanged() {
35 emit HotkeysChanged(GetUsedKeyList());
36}
37
38QList<QKeySequence> ConfigureHotkeys::GetUsedKeyList() const {
39 QList<QKeySequence> list;
40 for (int r = 0; r < model->rowCount(); r++) {
41 const QStandardItem* parent = model->item(r, 0);
42 for (int r2 = 0; r2 < parent->rowCount(); r2++) {
43 const QStandardItem* keyseq = parent->child(r2, 1);
44 list << QKeySequence::fromString(keyseq->text(), QKeySequence::NativeText);
45 }
46 }
47 return list;
48}
49
50void ConfigureHotkeys::Populate(const HotkeyRegistry& registry) { 34void ConfigureHotkeys::Populate(const HotkeyRegistry& registry) {
51 for (const auto& group : registry.hotkey_groups) { 35 for (const auto& group : registry.hotkey_groups) {
52 auto* parent_item = new QStandardItem(group.first); 36 auto* parent_item = new QStandardItem(group.first);
@@ -83,16 +67,29 @@ void ConfigureHotkeys::Configure(QModelIndex index) {
83 } 67 }
84 68
85 if (IsUsedKey(key_sequence) && key_sequence != QKeySequence(previous_key.toString())) { 69 if (IsUsedKey(key_sequence) && key_sequence != QKeySequence(previous_key.toString())) {
86 QMessageBox::critical(this, tr("Error in inputted key"), 70 QMessageBox::warning(this, tr("Conflicting Key Sequence"),
87 tr("You're using a key that's already bound.")); 71 tr("The entered key sequence is already assigned to another hotkey."));
88 } else { 72 } else {
89 model->setData(index, key_sequence.toString(QKeySequence::NativeText)); 73 model->setData(index, key_sequence.toString(QKeySequence::NativeText));
90 EmitHotkeysChanged();
91 } 74 }
92} 75}
93 76
94bool ConfigureHotkeys::IsUsedKey(QKeySequence key_sequence) const { 77bool ConfigureHotkeys::IsUsedKey(QKeySequence key_sequence) const {
95 return GetUsedKeyList().contains(key_sequence); 78 for (int r = 0; r < model->rowCount(); r++) {
79 const QStandardItem* const parent = model->item(r, 0);
80
81 for (int r2 = 0; r2 < parent->rowCount(); r2++) {
82 const QStandardItem* const key_seq_item = parent->child(r2, 1);
83 const auto key_seq_str = key_seq_item->text();
84 const auto key_seq = QKeySequence::fromString(key_seq_str, QKeySequence::NativeText);
85
86 if (key_sequence == key_seq) {
87 return true;
88 }
89 }
90 }
91
92 return false;
96} 93}
97 94
98void ConfigureHotkeys::applyConfiguration(HotkeyRegistry& registry) { 95void ConfigureHotkeys::applyConfiguration(HotkeyRegistry& registry) {
@@ -114,7 +111,6 @@ void ConfigureHotkeys::applyConfiguration(HotkeyRegistry& registry) {
114 } 111 }
115 112
116 registry.SaveHotkeys(); 113 registry.SaveHotkeys();
117 Settings::Apply();
118} 114}
119 115
120void ConfigureHotkeys::retranslateUi() { 116void ConfigureHotkeys::retranslateUi() {
diff --git a/src/yuzu/configuration/configure_hotkeys.h b/src/yuzu/configuration/configure_hotkeys.h
index 73fb8a175..e77d73c35 100644
--- a/src/yuzu/configuration/configure_hotkeys.h
+++ b/src/yuzu/configuration/configure_hotkeys.h
@@ -24,8 +24,6 @@ public:
24 void applyConfiguration(HotkeyRegistry& registry); 24 void applyConfiguration(HotkeyRegistry& registry);
25 void retranslateUi(); 25 void retranslateUi();
26 26
27 void EmitHotkeysChanged();
28
29 /** 27 /**
30 * Populates the hotkey list widget using data from the provided registry. 28 * Populates the hotkey list widget using data from the provided registry.
31 * Called everytime the Configure dialog is opened. 29 * Called everytime the Configure dialog is opened.
@@ -33,13 +31,9 @@ public:
33 */ 31 */
34 void Populate(const HotkeyRegistry& registry); 32 void Populate(const HotkeyRegistry& registry);
35 33
36signals:
37 void HotkeysChanged(QList<QKeySequence> new_key_list);
38
39private: 34private:
40 void Configure(QModelIndex index); 35 void Configure(QModelIndex index);
41 bool IsUsedKey(QKeySequence key_sequence) const; 36 bool IsUsedKey(QKeySequence key_sequence) const;
42 QList<QKeySequence> GetUsedKeyList() const;
43 37
44 std::unique_ptr<Ui::ConfigureHotkeys> ui; 38 std::unique_ptr<Ui::ConfigureHotkeys> ui;
45 39
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index a59abf6e8..cef2cc1ae 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -281,7 +281,7 @@ void GMainWindow::SoftwareKeyboardInvokeCheckDialog(std::u16string error_message
281void GMainWindow::WebBrowserOpenPage(std::string_view filename, std::string_view additional_args) { 281void GMainWindow::WebBrowserOpenPage(std::string_view filename, std::string_view additional_args) {
282 NXInputWebEngineView web_browser_view(this); 282 NXInputWebEngineView web_browser_view(this);
283 283
284 // Scope to contain the QProgressDialog for initalization 284 // Scope to contain the QProgressDialog for initialization
285 { 285 {
286 QProgressDialog progress(this); 286 QProgressDialog progress(this);
287 progress.setMinimumDuration(200); 287 progress.setMinimumDuration(200);
@@ -301,7 +301,7 @@ void GMainWindow::WebBrowserOpenPage(std::string_view filename, std::string_view
301 QWebEngineScript nx_shim; 301 QWebEngineScript nx_shim;
302 nx_shim.setSourceCode(GetNXShimInjectionScript()); 302 nx_shim.setSourceCode(GetNXShimInjectionScript());
303 nx_shim.setWorldId(QWebEngineScript::MainWorld); 303 nx_shim.setWorldId(QWebEngineScript::MainWorld);
304 nx_shim.setName("nx_inject.js"); 304 nx_shim.setName(QStringLiteral("nx_inject.js"));
305 nx_shim.setInjectionPoint(QWebEngineScript::DocumentCreation); 305 nx_shim.setInjectionPoint(QWebEngineScript::DocumentCreation);
306 nx_shim.setRunsOnSubFrames(true); 306 nx_shim.setRunsOnSubFrames(true);
307 web_browser_view.page()->profile()->scripts()->insert(nx_shim); 307 web_browser_view.page()->profile()->scripts()->insert(nx_shim);
@@ -347,7 +347,7 @@ void GMainWindow::WebBrowserOpenPage(std::string_view filename, std::string_view
347 const auto fire_js_keypress = [&web_browser_view](u32 key_code) { 347 const auto fire_js_keypress = [&web_browser_view](u32 key_code) {
348 web_browser_view.page()->runJavaScript( 348 web_browser_view.page()->runJavaScript(
349 QStringLiteral("document.dispatchEvent(new KeyboardEvent('keydown', {'key': %1}));") 349 QStringLiteral("document.dispatchEvent(new KeyboardEvent('keydown', {'key': %1}));")
350 .arg(QString::fromStdString(std::to_string(key_code)))); 350 .arg(key_code));
351 }; 351 };
352 352
353 QMessageBox::information( 353 QMessageBox::information(
@@ -468,7 +468,7 @@ void GMainWindow::InitializeWidgets() {
468 statusBar()->addPermanentWidget(label, 0); 468 statusBar()->addPermanentWidget(label, 0);
469 } 469 }
470 statusBar()->setVisible(true); 470 statusBar()->setVisible(true);
471 setStyleSheet("QStatusBar::item{border: none;}"); 471 setStyleSheet(QStringLiteral("QStatusBar::item{border: none;}"));
472} 472}
473 473
474void GMainWindow::InitializeDebugWidgets() { 474void GMainWindow::InitializeDebugWidgets() {
@@ -518,58 +518,67 @@ void GMainWindow::InitializeRecentFileMenuActions() {
518void GMainWindow::InitializeHotkeys() { 518void GMainWindow::InitializeHotkeys() {
519 hotkey_registry.LoadHotkeys(); 519 hotkey_registry.LoadHotkeys();
520 520
521 ui.action_Load_File->setShortcut(hotkey_registry.GetKeySequence("Main Window", "Load File")); 521 const QString main_window = QStringLiteral("Main Window");
522 const QString load_file = QStringLiteral("Load File");
523 const QString exit_yuzu = QStringLiteral("Exit yuzu");
524 const QString stop_emulation = QStringLiteral("Stop Emulation");
525 const QString toggle_filter_bar = QStringLiteral("Toggle Filter Bar");
526 const QString toggle_status_bar = QStringLiteral("Toggle Status Bar");
527 const QString fullscreen = QStringLiteral("Fullscreen");
528
529 ui.action_Load_File->setShortcut(hotkey_registry.GetKeySequence(main_window, load_file));
522 ui.action_Load_File->setShortcutContext( 530 ui.action_Load_File->setShortcutContext(
523 hotkey_registry.GetShortcutContext("Main Window", "Load File")); 531 hotkey_registry.GetShortcutContext(main_window, load_file));
524 532
525 ui.action_Exit->setShortcut(hotkey_registry.GetKeySequence("Main Window", "Exit yuzu")); 533 ui.action_Exit->setShortcut(hotkey_registry.GetKeySequence(main_window, exit_yuzu));
526 ui.action_Exit->setShortcutContext( 534 ui.action_Exit->setShortcutContext(hotkey_registry.GetShortcutContext(main_window, exit_yuzu));
527 hotkey_registry.GetShortcutContext("Main Window", "Exit yuzu"));
528 535
529 ui.action_Stop->setShortcut(hotkey_registry.GetKeySequence("Main Window", "Stop Emulation")); 536 ui.action_Stop->setShortcut(hotkey_registry.GetKeySequence(main_window, stop_emulation));
530 ui.action_Stop->setShortcutContext( 537 ui.action_Stop->setShortcutContext(
531 hotkey_registry.GetShortcutContext("Main Window", "Stop Emulation")); 538 hotkey_registry.GetShortcutContext(main_window, stop_emulation));
532 539
533 ui.action_Show_Filter_Bar->setShortcut( 540 ui.action_Show_Filter_Bar->setShortcut(
534 hotkey_registry.GetKeySequence("Main Window", "Toggle Filter Bar")); 541 hotkey_registry.GetKeySequence(main_window, toggle_filter_bar));
535 ui.action_Show_Filter_Bar->setShortcutContext( 542 ui.action_Show_Filter_Bar->setShortcutContext(
536 hotkey_registry.GetShortcutContext("Main Window", "Toggle Filter Bar")); 543 hotkey_registry.GetShortcutContext(main_window, toggle_filter_bar));
537 544
538 ui.action_Show_Status_Bar->setShortcut( 545 ui.action_Show_Status_Bar->setShortcut(
539 hotkey_registry.GetKeySequence("Main Window", "Toggle Status Bar")); 546 hotkey_registry.GetKeySequence(main_window, toggle_status_bar));
540 ui.action_Show_Status_Bar->setShortcutContext( 547 ui.action_Show_Status_Bar->setShortcutContext(
541 hotkey_registry.GetShortcutContext("Main Window", "Toggle Status Bar")); 548 hotkey_registry.GetShortcutContext(main_window, toggle_status_bar));
542 549
543 connect(hotkey_registry.GetHotkey("Main Window", "Load File", this), &QShortcut::activated, 550 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Load File"), this),
544 this, &GMainWindow::OnMenuLoadFile); 551 &QShortcut::activated, this, &GMainWindow::OnMenuLoadFile);
545 connect(hotkey_registry.GetHotkey("Main Window", "Continue/Pause Emulation", this), 552 connect(
546 &QShortcut::activated, this, [&] { 553 hotkey_registry.GetHotkey(main_window, QStringLiteral("Continue/Pause Emulation"), this),
547 if (emulation_running) { 554 &QShortcut::activated, this, [&] {
548 if (emu_thread->IsRunning()) { 555 if (emulation_running) {
549 OnPauseGame(); 556 if (emu_thread->IsRunning()) {
550 } else { 557 OnPauseGame();
551 OnStartGame(); 558 } else {
552 } 559 OnStartGame();
553 } 560 }
554 }); 561 }
555 connect(hotkey_registry.GetHotkey("Main Window", "Restart Emulation", this), 562 });
563 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Restart Emulation"), this),
556 &QShortcut::activated, this, [this] { 564 &QShortcut::activated, this, [this] {
557 if (!Core::System::GetInstance().IsPoweredOn()) 565 if (!Core::System::GetInstance().IsPoweredOn()) {
558 return; 566 return;
559 BootGame(QString(game_path)); 567 }
568 BootGame(game_path);
560 }); 569 });
561 connect(hotkey_registry.GetHotkey("Main Window", "Fullscreen", render_window), 570 connect(hotkey_registry.GetHotkey(main_window, fullscreen, render_window),
562 &QShortcut::activated, ui.action_Fullscreen, &QAction::trigger); 571 &QShortcut::activated, ui.action_Fullscreen, &QAction::trigger);
563 connect(hotkey_registry.GetHotkey("Main Window", "Fullscreen", render_window), 572 connect(hotkey_registry.GetHotkey(main_window, fullscreen, render_window),
564 &QShortcut::activatedAmbiguously, ui.action_Fullscreen, &QAction::trigger); 573 &QShortcut::activatedAmbiguously, ui.action_Fullscreen, &QAction::trigger);
565 connect(hotkey_registry.GetHotkey("Main Window", "Exit Fullscreen", this), 574 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Exit Fullscreen"), this),
566 &QShortcut::activated, this, [&] { 575 &QShortcut::activated, this, [&] {
567 if (emulation_running) { 576 if (emulation_running) {
568 ui.action_Fullscreen->setChecked(false); 577 ui.action_Fullscreen->setChecked(false);
569 ToggleFullscreen(); 578 ToggleFullscreen();
570 } 579 }
571 }); 580 });
572 connect(hotkey_registry.GetHotkey("Main Window", "Toggle Speed Limit", this), 581 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Toggle Speed Limit"), this),
573 &QShortcut::activated, this, [&] { 582 &QShortcut::activated, this, [&] {
574 Settings::values.use_frame_limit = !Settings::values.use_frame_limit; 583 Settings::values.use_frame_limit = !Settings::values.use_frame_limit;
575 UpdateStatusBar(); 584 UpdateStatusBar();
@@ -578,33 +587,33 @@ void GMainWindow::InitializeHotkeys() {
578 // MSVC occurs and we make it a requirement (see: 587 // MSVC occurs and we make it a requirement (see:
579 // https://developercommunity.visualstudio.com/content/problem/93922/constexprs-are-trying-to-be-captured-in-lambda-fun.html) 588 // https://developercommunity.visualstudio.com/content/problem/93922/constexprs-are-trying-to-be-captured-in-lambda-fun.html)
580 static constexpr u16 SPEED_LIMIT_STEP = 5; 589 static constexpr u16 SPEED_LIMIT_STEP = 5;
581 connect(hotkey_registry.GetHotkey("Main Window", "Increase Speed Limit", this), 590 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Increase Speed Limit"), this),
582 &QShortcut::activated, this, [&] { 591 &QShortcut::activated, this, [&] {
583 if (Settings::values.frame_limit < 9999 - SPEED_LIMIT_STEP) { 592 if (Settings::values.frame_limit < 9999 - SPEED_LIMIT_STEP) {
584 Settings::values.frame_limit += SPEED_LIMIT_STEP; 593 Settings::values.frame_limit += SPEED_LIMIT_STEP;
585 UpdateStatusBar(); 594 UpdateStatusBar();
586 } 595 }
587 }); 596 });
588 connect(hotkey_registry.GetHotkey("Main Window", "Decrease Speed Limit", this), 597 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Decrease Speed Limit"), this),
589 &QShortcut::activated, this, [&] { 598 &QShortcut::activated, this, [&] {
590 if (Settings::values.frame_limit > SPEED_LIMIT_STEP) { 599 if (Settings::values.frame_limit > SPEED_LIMIT_STEP) {
591 Settings::values.frame_limit -= SPEED_LIMIT_STEP; 600 Settings::values.frame_limit -= SPEED_LIMIT_STEP;
592 UpdateStatusBar(); 601 UpdateStatusBar();
593 } 602 }
594 }); 603 });
595 connect(hotkey_registry.GetHotkey("Main Window", "Load Amiibo", this), &QShortcut::activated, 604 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Load Amiibo"), this),
596 this, [&] { 605 &QShortcut::activated, this, [&] {
597 if (ui.action_Load_Amiibo->isEnabled()) { 606 if (ui.action_Load_Amiibo->isEnabled()) {
598 OnLoadAmiibo(); 607 OnLoadAmiibo();
599 } 608 }
600 }); 609 });
601 connect(hotkey_registry.GetHotkey("Main Window", "Capture Screenshot", this), 610 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Capture Screenshot"), this),
602 &QShortcut::activated, this, [&] { 611 &QShortcut::activated, this, [&] {
603 if (emu_thread->IsRunning()) { 612 if (emu_thread->IsRunning()) {
604 OnCaptureScreenshot(); 613 OnCaptureScreenshot();
605 } 614 }
606 }); 615 });
607 connect(hotkey_registry.GetHotkey("Main Window", "Change Docked Mode", this), 616 connect(hotkey_registry.GetHotkey(main_window, QStringLiteral("Change Docked Mode"), this),
608 &QShortcut::activated, this, [&] { 617 &QShortcut::activated, this, [&] {
609 Settings::values.use_docked_mode = !Settings::values.use_docked_mode; 618 Settings::values.use_docked_mode = !Settings::values.use_docked_mode;
610 OnDockedModeChanged(!Settings::values.use_docked_mode, 619 OnDockedModeChanged(!Settings::values.use_docked_mode,
@@ -705,7 +714,9 @@ void GMainWindow::ConnectMenuEvents() {
705 714
706 // Fullscreen 715 // Fullscreen
707 ui.action_Fullscreen->setShortcut( 716 ui.action_Fullscreen->setShortcut(
708 hotkey_registry.GetHotkey("Main Window", "Fullscreen", this)->key()); 717 hotkey_registry
718 .GetHotkey(QStringLiteral("Main Window"), QStringLiteral("Fullscreen"), this)
719 ->key());
709 connect(ui.action_Fullscreen, &QAction::triggered, this, &GMainWindow::ToggleFullscreen); 720 connect(ui.action_Fullscreen, &QAction::triggered, this, &GMainWindow::ToggleFullscreen);
710 721
711 // Movie 722 // Movie
@@ -742,25 +753,33 @@ void GMainWindow::OnDisplayTitleBars(bool show) {
742QStringList GMainWindow::GetUnsupportedGLExtensions() { 753QStringList GMainWindow::GetUnsupportedGLExtensions() {
743 QStringList unsupported_ext; 754 QStringList unsupported_ext;
744 755
745 if (!GLAD_GL_ARB_direct_state_access) 756 if (!GLAD_GL_ARB_direct_state_access) {
746 unsupported_ext.append("ARB_direct_state_access"); 757 unsupported_ext.append(QStringLiteral("ARB_direct_state_access"));
747 if (!GLAD_GL_ARB_vertex_type_10f_11f_11f_rev) 758 }
748 unsupported_ext.append("ARB_vertex_type_10f_11f_11f_rev"); 759 if (!GLAD_GL_ARB_vertex_type_10f_11f_11f_rev) {
749 if (!GLAD_GL_ARB_texture_mirror_clamp_to_edge) 760 unsupported_ext.append(QStringLiteral("ARB_vertex_type_10f_11f_11f_rev"));
750 unsupported_ext.append("ARB_texture_mirror_clamp_to_edge"); 761 }
751 if (!GLAD_GL_ARB_multi_bind) 762 if (!GLAD_GL_ARB_texture_mirror_clamp_to_edge) {
752 unsupported_ext.append("ARB_multi_bind"); 763 unsupported_ext.append(QStringLiteral("ARB_texture_mirror_clamp_to_edge"));
764 }
765 if (!GLAD_GL_ARB_multi_bind) {
766 unsupported_ext.append(QStringLiteral("ARB_multi_bind"));
767 }
753 768
754 // Extensions required to support some texture formats. 769 // Extensions required to support some texture formats.
755 if (!GLAD_GL_EXT_texture_compression_s3tc) 770 if (!GLAD_GL_EXT_texture_compression_s3tc) {
756 unsupported_ext.append("EXT_texture_compression_s3tc"); 771 unsupported_ext.append(QStringLiteral("EXT_texture_compression_s3tc"));
757 if (!GLAD_GL_ARB_texture_compression_rgtc) 772 }
758 unsupported_ext.append("ARB_texture_compression_rgtc"); 773 if (!GLAD_GL_ARB_texture_compression_rgtc) {
759 if (!GLAD_GL_ARB_depth_buffer_float) 774 unsupported_ext.append(QStringLiteral("ARB_texture_compression_rgtc"));
760 unsupported_ext.append("ARB_depth_buffer_float"); 775 }
761 776 if (!GLAD_GL_ARB_depth_buffer_float) {
762 for (const QString& ext : unsupported_ext) 777 unsupported_ext.append(QStringLiteral("ARB_depth_buffer_float"));
778 }
779
780 for (const QString& ext : unsupported_ext) {
763 LOG_CRITICAL(Frontend, "Unsupported GL extension: {}", ext.toStdString()); 781 LOG_CRITICAL(Frontend, "Unsupported GL extension: {}", ext.toStdString());
782 }
764 783
765 return unsupported_ext; 784 return unsupported_ext;
766} 785}
@@ -782,13 +801,13 @@ bool GMainWindow::LoadROM(const QString& filename) {
782 } 801 }
783 } 802 }
784 803
785 QStringList unsupported_gl_extensions = GetUnsupportedGLExtensions(); 804 const QStringList unsupported_gl_extensions = GetUnsupportedGLExtensions();
786 if (!unsupported_gl_extensions.empty()) { 805 if (!unsupported_gl_extensions.empty()) {
787 QMessageBox::critical(this, tr("Error while initializing OpenGL Core!"), 806 QMessageBox::critical(this, tr("Error while initializing OpenGL Core!"),
788 tr("Your GPU may not support one or more required OpenGL" 807 tr("Your GPU may not support one or more required OpenGL"
789 "extensions. Please ensure you have the latest graphics " 808 "extensions. Please ensure you have the latest graphics "
790 "driver.<br><br>Unsupported extensions:<br>") + 809 "driver.<br><br>Unsupported extensions:<br>") +
791 unsupported_gl_extensions.join("<br>")); 810 unsupported_gl_extensions.join(QStringLiteral("<br>")));
792 return false; 811 return false;
793 } 812 }
794 813
@@ -1007,7 +1026,7 @@ void GMainWindow::UpdateRecentFiles() {
1007 std::min(UISettings::values.recent_files.size(), max_recent_files_item); 1026 std::min(UISettings::values.recent_files.size(), max_recent_files_item);
1008 1027
1009 for (int i = 0; i < num_recent_files; i++) { 1028 for (int i = 0; i < num_recent_files; i++) {
1010 const QString text = QString("&%1. %2").arg(i + 1).arg( 1029 const QString text = QStringLiteral("&%1. %2").arg(i + 1).arg(
1011 QFileInfo(UISettings::values.recent_files[i]).fileName()); 1030 QFileInfo(UISettings::values.recent_files[i]).fileName());
1012 actions_recent_files[i]->setText(text); 1031 actions_recent_files[i]->setText(text);
1013 actions_recent_files[i]->setData(UISettings::values.recent_files[i]); 1032 actions_recent_files[i]->setData(UISettings::values.recent_files[i]);
@@ -1029,10 +1048,10 @@ void GMainWindow::OnGameListLoadFile(QString game_path) {
1029 1048
1030void GMainWindow::OnGameListOpenFolder(u64 program_id, GameListOpenTarget target) { 1049void GMainWindow::OnGameListOpenFolder(u64 program_id, GameListOpenTarget target) {
1031 std::string path; 1050 std::string path;
1032 std::string open_target; 1051 QString open_target;
1033 switch (target) { 1052 switch (target) {
1034 case GameListOpenTarget::SaveData: { 1053 case GameListOpenTarget::SaveData: {
1035 open_target = "Save Data"; 1054 open_target = tr("Save Data");
1036 const std::string nand_dir = FileUtil::GetUserPath(FileUtil::UserPath::NANDDir); 1055 const std::string nand_dir = FileUtil::GetUserPath(FileUtil::UserPath::NANDDir);
1037 ASSERT(program_id != 0); 1056 ASSERT(program_id != 0);
1038 1057
@@ -1069,7 +1088,7 @@ void GMainWindow::OnGameListOpenFolder(u64 program_id, GameListOpenTarget target
1069 break; 1088 break;
1070 } 1089 }
1071 case GameListOpenTarget::ModData: { 1090 case GameListOpenTarget::ModData: {
1072 open_target = "Mod Data"; 1091 open_target = tr("Mod Data");
1073 const auto load_dir = FileUtil::GetUserPath(FileUtil::UserPath::LoadDir); 1092 const auto load_dir = FileUtil::GetUserPath(FileUtil::UserPath::LoadDir);
1074 path = fmt::format("{}{:016X}", load_dir, program_id); 1093 path = fmt::format("{}{:016X}", load_dir, program_id);
1075 break; 1094 break;
@@ -1079,27 +1098,26 @@ void GMainWindow::OnGameListOpenFolder(u64 program_id, GameListOpenTarget target
1079 } 1098 }
1080 1099
1081 const QString qpath = QString::fromStdString(path); 1100 const QString qpath = QString::fromStdString(path);
1082
1083 const QDir dir(qpath); 1101 const QDir dir(qpath);
1084 if (!dir.exists()) { 1102 if (!dir.exists()) {
1085 QMessageBox::warning(this, 1103 QMessageBox::warning(this, tr("Error Opening %1 Folder").arg(open_target),
1086 tr("Error Opening %1 Folder").arg(QString::fromStdString(open_target)),
1087 tr("Folder does not exist!")); 1104 tr("Folder does not exist!"));
1088 return; 1105 return;
1089 } 1106 }
1090 LOG_INFO(Frontend, "Opening {} path for program_id={:016x}", open_target, program_id); 1107 LOG_INFO(Frontend, "Opening {} path for program_id={:016x}", open_target.toStdString(),
1108 program_id);
1091 QDesktopServices::openUrl(QUrl::fromLocalFile(qpath)); 1109 QDesktopServices::openUrl(QUrl::fromLocalFile(qpath));
1092} 1110}
1093 1111
1094void GMainWindow::OnTransferableShaderCacheOpenFile(u64 program_id) { 1112void GMainWindow::OnTransferableShaderCacheOpenFile(u64 program_id) {
1095 ASSERT(program_id != 0); 1113 ASSERT(program_id != 0);
1096 1114
1115 const QString shader_dir =
1116 QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::ShaderDir));
1097 const QString tranferable_shader_cache_folder_path = 1117 const QString tranferable_shader_cache_folder_path =
1098 QString::fromStdString(FileUtil::GetUserPath(FileUtil::UserPath::ShaderDir)) + "opengl" + 1118 shader_dir + QStringLiteral("opengl") + QDir::separator() + QStringLiteral("transferable");
1099 DIR_SEP + "transferable";
1100
1101 const QString transferable_shader_cache_file_path = 1119 const QString transferable_shader_cache_file_path =
1102 tranferable_shader_cache_folder_path + DIR_SEP + 1120 tranferable_shader_cache_folder_path + QDir::separator() +
1103 QString::fromStdString(fmt::format("{:016X}.bin", program_id)); 1121 QString::fromStdString(fmt::format("{:016X}.bin", program_id));
1104 1122
1105 if (!QFile::exists(transferable_shader_cache_file_path)) { 1123 if (!QFile::exists(transferable_shader_cache_file_path)) {
@@ -1216,20 +1234,21 @@ void GMainWindow::OnGameListDumpRomFS(u64 program_id, const std::string& game_pa
1216 return; 1234 return;
1217 } 1235 }
1218 1236
1219 bool ok; 1237 bool ok = false;
1238 const QStringList selections{tr("Full"), tr("Skeleton")};
1220 const auto res = QInputDialog::getItem( 1239 const auto res = QInputDialog::getItem(
1221 this, tr("Select RomFS Dump Mode"), 1240 this, tr("Select RomFS Dump Mode"),
1222 tr("Please select the how you would like the RomFS dumped.<br>Full will copy all of the " 1241 tr("Please select the how you would like the RomFS dumped.<br>Full will copy all of the "
1223 "files into the new directory while <br>skeleton will only create the directory " 1242 "files into the new directory while <br>skeleton will only create the directory "
1224 "structure."), 1243 "structure."),
1225 {"Full", "Skeleton"}, 0, false, &ok); 1244 selections, 0, false, &ok);
1226 if (!ok) { 1245 if (!ok) {
1227 failed(); 1246 failed();
1228 vfs->DeleteDirectory(path); 1247 vfs->DeleteDirectory(path);
1229 return; 1248 return;
1230 } 1249 }
1231 1250
1232 const auto full = res == "Full"; 1251 const auto full = res == selections.constFirst();
1233 const auto entry_size = CalculateRomFSEntrySize(extracted, full); 1252 const auto entry_size = CalculateRomFSEntrySize(extracted, full);
1234 1253
1235 QProgressDialog progress(tr("Extracting RomFS..."), tr("Cancel"), 0, 1254 QProgressDialog progress(tr("Extracting RomFS..."), tr("Cancel"), 0,
@@ -1259,10 +1278,11 @@ void GMainWindow::OnGameListNavigateToGamedbEntry(u64 program_id,
1259 const auto it = FindMatchingCompatibilityEntry(compatibility_list, program_id); 1278 const auto it = FindMatchingCompatibilityEntry(compatibility_list, program_id);
1260 1279
1261 QString directory; 1280 QString directory;
1262 if (it != compatibility_list.end()) 1281 if (it != compatibility_list.end()) {
1263 directory = it->second.second; 1282 directory = it->second.second;
1283 }
1264 1284
1265 QDesktopServices::openUrl(QUrl("https://yuzu-emu.org/game/" + directory)); 1285 QDesktopServices::openUrl(QUrl(QStringLiteral("https://yuzu-emu.org/game/") + directory));
1266} 1286}
1267 1287
1268void GMainWindow::OnGameListOpenPerGameProperties(const std::string& file) { 1288void GMainWindow::OnGameListOpenPerGameProperties(const std::string& file) {
@@ -1293,7 +1313,9 @@ void GMainWindow::OnGameListOpenPerGameProperties(const std::string& file) {
1293 1313
1294void GMainWindow::OnMenuLoadFile() { 1314void GMainWindow::OnMenuLoadFile() {
1295 const QString extensions = 1315 const QString extensions =
1296 QString("*.").append(GameList::supported_file_extensions.join(" *.")).append(" main"); 1316 QStringLiteral("*.")
1317 .append(GameList::supported_file_extensions.join(QStringLiteral(" *.")))
1318 .append(QStringLiteral(" main"));
1297 const QString file_filter = tr("Switch Executable (%1);;All Files (*.*)", 1319 const QString file_filter = tr("Switch Executable (%1);;All Files (*.*)",
1298 "%1 is an identifier for the Switch executable file extensions.") 1320 "%1 is an identifier for the Switch executable file extensions.")
1299 .arg(extensions); 1321 .arg(extensions);
@@ -1317,9 +1339,9 @@ void GMainWindow::OnMenuLoadFolder() {
1317 } 1339 }
1318 1340
1319 const QDir dir{dir_path}; 1341 const QDir dir{dir_path};
1320 const QStringList matching_main = dir.entryList(QStringList("main"), QDir::Files); 1342 const QStringList matching_main = dir.entryList({QStringLiteral("main")}, QDir::Files);
1321 if (matching_main.size() == 1) { 1343 if (matching_main.size() == 1) {
1322 BootGame(dir.path() + DIR_SEP + matching_main[0]); 1344 BootGame(dir.path() + QDir::separator() + matching_main[0]);
1323 } else { 1345 } else {
1324 QMessageBox::warning(this, tr("Invalid Directory Selected"), 1346 QMessageBox::warning(this, tr("Invalid Directory Selected"),
1325 tr("The directory you have selected does not contain a 'main' file.")); 1347 tr("The directory you have selected does not contain a 'main' file."));
@@ -1391,11 +1413,10 @@ void GMainWindow::OnMenuInstallToNAND() {
1391 QMessageBox::Yes; 1413 QMessageBox::Yes;
1392 }; 1414 };
1393 1415
1394 if (filename.endsWith("xci", Qt::CaseInsensitive) || 1416 if (filename.endsWith(QStringLiteral("xci"), Qt::CaseInsensitive) ||
1395 filename.endsWith("nsp", Qt::CaseInsensitive)) { 1417 filename.endsWith(QStringLiteral("nsp"), Qt::CaseInsensitive)) {
1396
1397 std::shared_ptr<FileSys::NSP> nsp; 1418 std::shared_ptr<FileSys::NSP> nsp;
1398 if (filename.endsWith("nsp", Qt::CaseInsensitive)) { 1419 if (filename.endsWith(QStringLiteral("nsp"), Qt::CaseInsensitive)) {
1399 nsp = std::make_shared<FileSys::NSP>( 1420 nsp = std::make_shared<FileSys::NSP>(
1400 vfs->OpenFile(filename.toStdString(), FileSys::Mode::Read)); 1421 vfs->OpenFile(filename.toStdString(), FileSys::Mode::Read));
1401 if (nsp->IsExtractedType()) 1422 if (nsp->IsExtractedType())
@@ -1690,9 +1711,9 @@ void GMainWindow::OnConfigure() {
1690} 1711}
1691 1712
1692void GMainWindow::OnLoadAmiibo() { 1713void GMainWindow::OnLoadAmiibo() {
1693 const QString extensions{"*.bin"}; 1714 const QString extensions{QStringLiteral("*.bin")};
1694 const QString file_filter = tr("Amiibo File (%1);; All Files (*.*)").arg(extensions); 1715 const QString file_filter = tr("Amiibo File (%1);; All Files (*.*)").arg(extensions);
1695 const QString filename = QFileDialog::getOpenFileName(this, tr("Load Amiibo"), "", file_filter); 1716 const QString filename = QFileDialog::getOpenFileName(this, tr("Load Amiibo"), {}, file_filter);
1696 1717
1697 if (filename.isEmpty()) { 1718 if (filename.isEmpty()) {
1698 return; 1719 return;
@@ -1754,7 +1775,7 @@ void GMainWindow::OnCaptureScreenshot() {
1754 QFileDialog png_dialog(this, tr("Capture Screenshot"), UISettings::values.screenshot_path, 1775 QFileDialog png_dialog(this, tr("Capture Screenshot"), UISettings::values.screenshot_path,
1755 tr("PNG Image (*.png)")); 1776 tr("PNG Image (*.png)"));
1756 png_dialog.setAcceptMode(QFileDialog::AcceptSave); 1777 png_dialog.setAcceptMode(QFileDialog::AcceptSave);
1757 png_dialog.setDefaultSuffix("png"); 1778 png_dialog.setDefaultSuffix(QStringLiteral("png"));
1758 if (png_dialog.exec()) { 1779 if (png_dialog.exec()) {
1759 const QString path = png_dialog.selectedFiles().first(); 1780 const QString path = png_dialog.selectedFiles().first();
1760 if (!path.isEmpty()) { 1781 if (!path.isEmpty()) {
@@ -1817,17 +1838,17 @@ void GMainWindow::OnCoreError(Core::System::ResultStatus result, std::string det
1817 "data, or other bugs."); 1838 "data, or other bugs.");
1818 switch (result) { 1839 switch (result) {
1819 case Core::System::ResultStatus::ErrorSystemFiles: { 1840 case Core::System::ResultStatus::ErrorSystemFiles: {
1820 QString message = "yuzu was unable to locate a Switch system archive"; 1841 QString message = tr("yuzu was unable to locate a Switch system archive");
1821 if (!details.empty()) { 1842 if (!details.empty()) {
1822 message.append(tr(": %1. ").arg(details.c_str())); 1843 message.append(tr(": %1. ").arg(QString::fromStdString(details)));
1823 } else { 1844 } else {
1824 message.append(". "); 1845 message.append(tr(". "));
1825 } 1846 }
1826 message.append(common_message); 1847 message.append(common_message);
1827 1848
1828 answer = QMessageBox::question(this, tr("System Archive Not Found"), message, 1849 answer = QMessageBox::question(this, tr("System Archive Not Found"), message,
1829 QMessageBox::Yes | QMessageBox::No, QMessageBox::No); 1850 QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
1830 status_message = "System Archive Missing"; 1851 status_message = tr("System Archive Missing");
1831 break; 1852 break;
1832 } 1853 }
1833 1854
@@ -1836,7 +1857,7 @@ void GMainWindow::OnCoreError(Core::System::ResultStatus result, std::string det
1836 message.append(common_message); 1857 message.append(common_message);
1837 answer = QMessageBox::question(this, tr("Shared Fonts Not Found"), message, 1858 answer = QMessageBox::question(this, tr("Shared Fonts Not Found"), message,
1838 QMessageBox::Yes | QMessageBox::No, QMessageBox::No); 1859 QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
1839 status_message = "Shared Font Missing"; 1860 status_message = tr("Shared Font Missing");
1840 break; 1861 break;
1841 } 1862 }
1842 1863
@@ -1852,7 +1873,7 @@ void GMainWindow::OnCoreError(Core::System::ResultStatus result, std::string det
1852 "Continuing emulation may result in crashes, corrupted save data, or other " 1873 "Continuing emulation may result in crashes, corrupted save data, or other "
1853 "bugs."), 1874 "bugs."),
1854 QMessageBox::Yes | QMessageBox::No, QMessageBox::No); 1875 QMessageBox::Yes | QMessageBox::No, QMessageBox::No);
1855 status_message = "Fatal Error encountered"; 1876 status_message = tr("Fatal Error encountered");
1856 break; 1877 break;
1857 } 1878 }
1858 1879
@@ -1903,18 +1924,19 @@ void GMainWindow::OnReinitializeKeys(ReinitializeKeyBehavior behavior) {
1903 }; 1924 };
1904 1925
1905 QString errors; 1926 QString errors;
1906 1927 if (!pdm.HasFuses()) {
1907 if (!pdm.HasFuses())
1908 errors += tr("- Missing fuses - Cannot derive SBK\n"); 1928 errors += tr("- Missing fuses - Cannot derive SBK\n");
1909 if (!pdm.HasBoot0()) 1929 }
1930 if (!pdm.HasBoot0()) {
1910 errors += tr("- Missing BOOT0 - Cannot derive master keys\n"); 1931 errors += tr("- Missing BOOT0 - Cannot derive master keys\n");
1911 if (!pdm.HasPackage2()) 1932 }
1933 if (!pdm.HasPackage2()) {
1912 errors += tr("- Missing BCPKG2-1-Normal-Main - Cannot derive general keys\n"); 1934 errors += tr("- Missing BCPKG2-1-Normal-Main - Cannot derive general keys\n");
1913 if (!pdm.HasProdInfo()) 1935 }
1936 if (!pdm.HasProdInfo()) {
1914 errors += tr("- Missing PRODINFO - Cannot derive title keys\n"); 1937 errors += tr("- Missing PRODINFO - Cannot derive title keys\n");
1915 1938 }
1916 if (!errors.isEmpty()) { 1939 if (!errors.isEmpty()) {
1917
1918 QMessageBox::warning( 1940 QMessageBox::warning(
1919 this, tr("Warning Missing Derivation Components"), 1941 this, tr("Warning Missing Derivation Components"),
1920 tr("The following are missing from your configuration that may hinder key " 1942 tr("The following are missing from your configuration that may hinder key "
@@ -1964,13 +1986,15 @@ std::optional<u64> GMainWindow::SelectRomFSDumpTarget(const FileSys::ContentProv
1964 1986
1965 std::vector<u64> romfs_tids; 1987 std::vector<u64> romfs_tids;
1966 romfs_tids.push_back(program_id); 1988 romfs_tids.push_back(program_id);
1967 for (const auto& entry : dlc_match) 1989 for (const auto& entry : dlc_match) {
1968 romfs_tids.push_back(entry.title_id); 1990 romfs_tids.push_back(entry.title_id);
1991 }
1969 1992
1970 if (romfs_tids.size() > 1) { 1993 if (romfs_tids.size() > 1) {
1971 QStringList list{"Base"}; 1994 QStringList list{QStringLiteral("Base")};
1972 for (std::size_t i = 1; i < romfs_tids.size(); ++i) 1995 for (std::size_t i = 1; i < romfs_tids.size(); ++i) {
1973 list.push_back(QStringLiteral("DLC %1").arg(romfs_tids[i] & 0x7FF)); 1996 list.push_back(QStringLiteral("DLC %1").arg(romfs_tids[i] & 0x7FF));
1997 }
1974 1998
1975 bool ok; 1999 bool ok;
1976 const auto res = QInputDialog::getItem( 2000 const auto res = QInputDialog::getItem(
@@ -2082,26 +2106,32 @@ void GMainWindow::filterBarSetChecked(bool state) {
2082} 2106}
2083 2107
2084void GMainWindow::UpdateUITheme() { 2108void GMainWindow::UpdateUITheme() {
2109 const QString default_icons = QStringLiteral(":/icons/default");
2110 const QString& current_theme = UISettings::values.theme;
2111 const bool is_default_theme = current_theme == QString::fromUtf8(UISettings::themes[0].second);
2085 QStringList theme_paths(default_theme_paths); 2112 QStringList theme_paths(default_theme_paths);
2086 if (UISettings::values.theme != UISettings::themes[0].second && 2113
2087 !UISettings::values.theme.isEmpty()) { 2114 if (is_default_theme || current_theme.isEmpty()) {
2088 const QString theme_uri(":" + UISettings::values.theme + "/style.qss"); 2115 qApp->setStyleSheet({});
2116 setStyleSheet({});
2117 theme_paths.append(default_icons);
2118 QIcon::setThemeName(default_icons);
2119 } else {
2120 const QString theme_uri(QLatin1Char{':'} + current_theme + QStringLiteral("/style.qss"));
2089 QFile f(theme_uri); 2121 QFile f(theme_uri);
2090 if (f.open(QFile::ReadOnly | QFile::Text)) { 2122 if (f.open(QFile::ReadOnly | QFile::Text)) {
2091 QTextStream ts(&f); 2123 QTextStream ts(&f);
2092 qApp->setStyleSheet(ts.readAll()); 2124 qApp->setStyleSheet(ts.readAll());
2093 GMainWindow::setStyleSheet(ts.readAll()); 2125 setStyleSheet(ts.readAll());
2094 } else { 2126 } else {
2095 LOG_ERROR(Frontend, "Unable to set style, stylesheet file not found"); 2127 LOG_ERROR(Frontend, "Unable to set style, stylesheet file not found");
2096 } 2128 }
2097 theme_paths.append(QStringList{":/icons/default", ":/icons/" + UISettings::values.theme}); 2129
2098 QIcon::setThemeName(":/icons/" + UISettings::values.theme); 2130 const QString theme_name = QStringLiteral(":/icons/") + current_theme;
2099 } else { 2131 theme_paths.append({default_icons, theme_name});
2100 qApp->setStyleSheet(""); 2132 QIcon::setThemeName(theme_name);
2101 GMainWindow::setStyleSheet("");
2102 theme_paths.append(QStringList{":/icons/default"});
2103 QIcon::setThemeName(":/icons/default");
2104 } 2133 }
2134
2105 QIcon::setThemeSearchPaths(theme_paths); 2135 QIcon::setThemeSearchPaths(theme_paths);
2106 emit UpdateThemedIcons(); 2136 emit UpdateThemedIcons();
2107} 2137}
@@ -2129,8 +2159,8 @@ int main(int argc, char* argv[]) {
2129 SCOPE_EXIT({ MicroProfileShutdown(); }); 2159 SCOPE_EXIT({ MicroProfileShutdown(); });
2130 2160
2131 // Init settings params 2161 // Init settings params
2132 QCoreApplication::setOrganizationName("yuzu team"); 2162 QCoreApplication::setOrganizationName(QStringLiteral("yuzu team"));
2133 QCoreApplication::setApplicationName("yuzu"); 2163 QCoreApplication::setApplicationName(QStringLiteral("yuzu"));
2134 2164
2135 // Enables the core to make the qt created contexts current on std::threads 2165 // Enables the core to make the qt created contexts current on std::threads
2136 QCoreApplication::setAttribute(Qt::AA_DontCheckOpenGLContextThreadAffinity); 2166 QCoreApplication::setAttribute(Qt::AA_DontCheckOpenGLContextThreadAffinity);
diff --git a/src/yuzu/util/sequence_dialog/sequence_dialog.cpp b/src/yuzu/util/sequence_dialog/sequence_dialog.cpp
index d3edf6ec3..bb5f74ec4 100644
--- a/src/yuzu/util/sequence_dialog/sequence_dialog.cpp
+++ b/src/yuzu/util/sequence_dialog/sequence_dialog.cpp
@@ -9,16 +9,19 @@
9 9
10SequenceDialog::SequenceDialog(QWidget* parent) : QDialog(parent) { 10SequenceDialog::SequenceDialog(QWidget* parent) : QDialog(parent) {
11 setWindowTitle(tr("Enter a hotkey")); 11 setWindowTitle(tr("Enter a hotkey"));
12 auto* layout = new QVBoxLayout(this); 12 setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
13
13 key_sequence = new QKeySequenceEdit; 14 key_sequence = new QKeySequenceEdit;
14 layout->addWidget(key_sequence); 15
15 auto* buttons = 16 auto* const buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
16 new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal);
17 buttons->setCenterButtons(true); 17 buttons->setCenterButtons(true);
18
19 auto* const layout = new QVBoxLayout(this);
20 layout->addWidget(key_sequence);
18 layout->addWidget(buttons); 21 layout->addWidget(buttons);
22
19 connect(buttons, &QDialogButtonBox::accepted, this, &QDialog::accept); 23 connect(buttons, &QDialogButtonBox::accepted, this, &QDialog::accept);
20 connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject); 24 connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject);
21 setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
22} 25}
23 26
24SequenceDialog::~SequenceDialog() = default; 27SequenceDialog::~SequenceDialog() = default;
diff --git a/src/yuzu_cmd/config.cpp b/src/yuzu_cmd/config.cpp
index d0ae058fd..730956427 100644
--- a/src/yuzu_cmd/config.cpp
+++ b/src/yuzu_cmd/config.cpp
@@ -26,12 +26,12 @@ Config::Config() {
26Config::~Config() = default; 26Config::~Config() = default;
27 27
28bool Config::LoadINI(const std::string& default_contents, bool retry) { 28bool Config::LoadINI(const std::string& default_contents, bool retry) {
29 const char* location = this->sdl2_config_loc.c_str(); 29 const std::string& location = this->sdl2_config_loc;
30 if (sdl2_config->ParseError() < 0) { 30 if (sdl2_config->ParseError() < 0) {
31 if (retry) { 31 if (retry) {
32 LOG_WARNING(Config, "Failed to load {}. Creating file from defaults...", location); 32 LOG_WARNING(Config, "Failed to load {}. Creating file from defaults...", location);
33 FileUtil::CreateFullPath(location); 33 FileUtil::CreateFullPath(location);
34 FileUtil::WriteStringToFile(true, default_contents, location); 34 FileUtil::WriteStringToFile(true, location, default_contents);
35 sdl2_config = std::make_unique<INIReader>(location); // Reopen file 35 sdl2_config = std::make_unique<INIReader>(location); // Reopen file
36 36
37 return LoadINI(default_contents, false); 37 return LoadINI(default_contents, false);