summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--externals/glad/include/KHR/khrplatform.h16
-rw-r--r--externals/glad/include/glad/glad.h56
-rw-r--r--externals/glad/src/glad.c1846
-rw-r--r--src/common/logging/backend.cpp25
-rw-r--r--src/common/logging/backend.h7
-rw-r--r--src/common/logging/filter.cpp75
-rw-r--r--src/common/logging/filter.h6
-rw-r--r--src/common/param_package.cpp19
-rw-r--r--src/common/param_package.h2
-rw-r--r--src/core/file_sys/partition_filesystem.cpp2
-rw-r--r--src/core/file_sys/vfs_offset.cpp6
-rw-r--r--src/core/file_sys/vfs_offset.h2
-rw-r--r--src/core/hle/ipc_helpers.h19
-rw-r--r--src/core/hle/kernel/address_arbiter.cpp4
-rw-r--r--src/core/hle/kernel/hle_ipc.cpp4
-rw-r--r--src/core/hle/kernel/mutex.cpp6
-rw-r--r--src/core/hle/kernel/scheduler.cpp16
-rw-r--r--src/core/hle/kernel/server_session.cpp4
-rw-r--r--src/core/hle/kernel/svc.cpp20
-rw-r--r--src/core/hle/kernel/thread.cpp47
-rw-r--r--src/core/hle/kernel/thread.h28
-rw-r--r--src/core/hle/kernel/wait_object.cpp12
-rw-r--r--src/core/hle/service/acc/acc.cpp14
-rw-r--r--src/core/hle/service/apm/interface.cpp17
-rw-r--r--src/core/hle/service/audio/audout_u.cpp3
-rw-r--r--src/core/hle/service/audio/audren_u.cpp6
-rw-r--r--src/core/loader/nca.cpp3
-rw-r--r--src/core/loader/nro.cpp3
-rw-r--r--src/core/loader/nso.cpp23
-rw-r--r--src/video_core/engines/maxwell_3d.cpp2
-rw-r--r--src/video_core/renderer_opengl/gl_shader_decompiler.cpp10
-rw-r--r--src/video_core/renderer_opengl/gl_state.cpp36
-rw-r--r--src/yuzu/debugger/wait_tree.cpp44
33 files changed, 1242 insertions, 1141 deletions
diff --git a/externals/glad/include/KHR/khrplatform.h b/externals/glad/include/KHR/khrplatform.h
index 1ad3554a7..975bbffed 100644
--- a/externals/glad/include/KHR/khrplatform.h
+++ b/externals/glad/include/KHR/khrplatform.h
@@ -2,7 +2,7 @@
#define __khrplatform_h_
/*
-** Copyright (c) 2008-2009 The Khronos Group Inc.
+** Copyright (c) 2008-2018 The Khronos Group Inc.
**
** Permission is hereby granted, free of charge, to any person obtaining a
** copy of this software and/or associated documentation files (the
@@ -26,18 +26,16 @@
/* Khronos platform-specific types and definitions.
*
- * $Revision: 32517 $ on $Date: 2016-03-11 02:41:19 -0800 (Fri, 11 Mar 2016) $
+ * The master copy of khrplatform.h is maintained in the Khronos EGL
+ * Registry repository at https://github.com/KhronosGroup/EGL-Registry
+ * The last semantic modification to khrplatform.h was at commit ID:
+ * 67a3e0864c2d75ea5287b9f3d2eb74a745936692
*
* Adopters may modify this file to suit their platform. Adopters are
* encouraged to submit platform specific modifications to the Khronos
* group so that they can be included in future versions of this file.
- * Please submit changes by sending them to the public Khronos Bugzilla
- * (http://khronos.org/bugzilla) by filing a bug against product
- * "Khronos (general)" component "Registry".
- *
- * A predefined template which fills in some of the bug fields can be
- * reached using http://tinyurl.com/khrplatform-h-bugreport, but you
- * must create a Bugzilla login first.
+ * Please submit changes by filing pull requests or issues on
+ * the EGL Registry repository linked above.
*
*
* See the Implementer's Guidelines for information about where this file
diff --git a/externals/glad/include/glad/glad.h b/externals/glad/include/glad/glad.h
index 415c5ce7b..5f4b962d9 100644
--- a/externals/glad/include/glad/glad.h
+++ b/externals/glad/include/glad/glad.h
@@ -1,6 +1,6 @@
/*
- OpenGL loader generated by glad 0.1.16a0 on Thu Dec 21 14:56:57 2017.
+ OpenGL loader generated by glad 0.1.25 on Fri Jul 20 07:59:28 2018.
Language/Generator: C/C++
Specification: gl
@@ -32,6 +32,7 @@
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,
@@ -248,6 +249,7 @@
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,
@@ -314,6 +316,8 @@
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,
@@ -372,6 +376,7 @@
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,
@@ -595,7 +600,7 @@
Omit khrplatform: False
Commandline:
- --profile="core" --api="gl=3.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_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_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_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_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_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_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_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_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_robustness_video_memory_purge,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,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_thread_group,GL_NV_shader_thread_shuffle,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_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"
+ --profile="core" --api="gl=3.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_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_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_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_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_robustness_video_memory_purge,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,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_thread_group,GL_NV_shader_thread_shuffle,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_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"
Online:
Too many extensions
*/
@@ -736,16 +741,8 @@ typedef unsigned int GLhandleARB;
typedef unsigned short GLhalfARB;
typedef unsigned short GLhalf;
typedef GLint GLfixed;
-#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
-typedef long GLintptr;
-#else
-typedef ptrdiff_t GLintptr;
-#endif
-#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
-typedef long GLsizeiptr;
-#else
-typedef ptrdiff_t GLsizeiptr;
-#endif
+typedef khronos_intptr_t GLintptr;
+typedef khronos_ssize_t GLsizeiptr;
typedef int64_t GLint64;
typedef uint64_t GLuint64;
#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
@@ -1730,7 +1727,7 @@ GLAPI PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC)(GLenum cap);
GLAPI PFNGLISENABLEDPROC glad_glIsEnabled;
#define glIsEnabled glad_glIsEnabled
-typedef void (APIENTRYP PFNGLDEPTHRANGEPROC)(GLdouble near, GLdouble far);
+typedef void (APIENTRYP PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f);
GLAPI PFNGLDEPTHRANGEPROC glad_glDepthRange;
#define glDepthRange glad_glDepthRange
typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
@@ -4518,6 +4515,7 @@ GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
#define GL_SINGLE_COLOR_EXT 0x81F9
#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
+#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
#define GL_MAX_IMAGE_UNITS_EXT 0x8F38
#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39
#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A
@@ -4694,6 +4692,8 @@ GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
#define GL_DOT3_RGBA_EXT 0x8741
#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
+#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366
+#define GL_WEIGHTED_AVERAGE_EXT 0x9367
#define GL_RGBA32UI_EXT 0x8D70
#define GL_RGB32UI_EXT 0x8D71
#define GL_ALPHA32UI_EXT 0x8D72
@@ -5041,6 +5041,7 @@ GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
#define GL_BLUE_MAX_CLAMP_INGR 0x8566
#define GL_ALPHA_MAX_CLAMP_INGR 0x8567
#define GL_INTERLACE_READ_INGR 0x8568
+#define GL_BLACKHOLE_RENDER_INTEL 0x83FC
#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF
#define GL_LAYOUT_DEFAULT_INTEL 0
@@ -6671,6 +6672,10 @@ GLAPI int GLAD_GL_AMD_shader_ballot;
#define GL_AMD_shader_explicit_vertex_parameter 1
GLAPI int GLAD_GL_AMD_shader_explicit_vertex_parameter;
#endif
+#ifndef GL_AMD_shader_gpu_shader_half_float_fetch
+#define GL_AMD_shader_gpu_shader_half_float_fetch 1
+GLAPI int GLAD_GL_AMD_shader_gpu_shader_half_float_fetch;
+#endif
#ifndef GL_AMD_shader_image_load_store_lod
#define GL_AMD_shader_image_load_store_lod 1
GLAPI int GLAD_GL_AMD_shader_image_load_store_lod;
@@ -9809,6 +9814,16 @@ GLAPI PFNGLVERTEXBLENDENVFATIPROC glad_glVertexBlendEnvfATI;
#define GL_EXT_422_pixels 1
GLAPI int GLAD_GL_EXT_422_pixels;
#endif
+#ifndef GL_EXT_EGL_image_storage
+#define GL_EXT_EGL_image_storage 1
+GLAPI int GLAD_GL_EXT_EGL_image_storage;
+typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC)(GLenum target, GLeglImageOES image, const GLint* attrib_list);
+GLAPI PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC glad_glEGLImageTargetTexStorageEXT;
+#define glEGLImageTargetTexStorageEXT glad_glEGLImageTargetTexStorageEXT
+typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC)(GLuint texture, GLeglImageOES image, const GLint* attrib_list);
+GLAPI PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC glad_glEGLImageTargetTextureStorageEXT;
+#define glEGLImageTargetTextureStorageEXT glad_glEGLImageTargetTextureStorageEXT
+#endif
#ifndef GL_EXT_abgr
#define GL_EXT_abgr 1
GLAPI int GLAD_GL_EXT_abgr;
@@ -11438,6 +11453,17 @@ GLAPI PFNGLVALIDATEPROGRAMPIPELINEEXTPROC glad_glValidateProgramPipelineEXT;
#define GL_EXT_separate_specular_color 1
GLAPI int GLAD_GL_EXT_separate_specular_color;
#endif
+#ifndef GL_EXT_shader_framebuffer_fetch
+#define GL_EXT_shader_framebuffer_fetch 1
+GLAPI int GLAD_GL_EXT_shader_framebuffer_fetch;
+#endif
+#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent
+#define GL_EXT_shader_framebuffer_fetch_non_coherent 1
+GLAPI int GLAD_GL_EXT_shader_framebuffer_fetch_non_coherent;
+typedef void (APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC)(void);
+GLAPI PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC glad_glFramebufferFetchBarrierEXT;
+#define glFramebufferFetchBarrierEXT glad_glFramebufferFetchBarrierEXT
+#endif
#ifndef GL_EXT_shader_image_load_formatted
#define GL_EXT_shader_image_load_formatted 1
GLAPI int GLAD_GL_EXT_shader_image_load_formatted;
@@ -12030,6 +12056,10 @@ GLAPI int GLAD_GL_INGR_color_clamp;
#define GL_INGR_interlace_read 1
GLAPI int GLAD_GL_INGR_interlace_read;
#endif
+#ifndef GL_INTEL_blackhole_render
+#define GL_INTEL_blackhole_render 1
+GLAPI int GLAD_GL_INTEL_blackhole_render;
+#endif
#ifndef GL_INTEL_conservative_rasterization
#define GL_INTEL_conservative_rasterization 1
GLAPI int GLAD_GL_INTEL_conservative_rasterization;
diff --git a/externals/glad/src/glad.c b/externals/glad/src/glad.c
index 81ce88fac..13607e449 100644
--- a/externals/glad/src/glad.c
+++ b/externals/glad/src/glad.c
@@ -1,6 +1,6 @@
/*
- OpenGL loader generated by glad 0.1.16a0 on Thu Dec 21 14:56:57 2017.
+ OpenGL loader generated by glad 0.1.25 on Fri Jul 20 07:59:28 2018.
Language/Generator: C/C++
Specification: gl
@@ -32,6 +32,7 @@
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,
@@ -248,6 +249,7 @@
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,
@@ -314,6 +316,8 @@
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,
@@ -372,6 +376,7 @@
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,
@@ -595,7 +600,7 @@
Omit khrplatform: False
Commandline:
- --profile="core" --api="gl=3.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_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_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_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_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_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_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_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_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_robustness_video_memory_purge,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,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_thread_group,GL_NV_shader_thread_shuffle,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_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"
+ --profile="core" --api="gl=3.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_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_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_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_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_robustness_video_memory_purge,GL_NV_sample_locations,GL_NV_sample_mask_override_coverage,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_thread_group,GL_NV_shader_thread_shuffle,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_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"
Online:
Too many extensions
*/
@@ -607,21 +612,41 @@
static void* get_proc(const char *namez);
-#ifdef _WIN32
+#if defined(_WIN32) || defined(__CYGWIN__)
#include <windows.h>
static HMODULE libGL;
typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*);
static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
+#ifdef _MSC_VER
+#ifdef __has_include
+ #if __has_include(<winapifamily.h>)
+ #define HAVE_WINAPIFAMILY 1
+ #endif
+#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
+ #define HAVE_WINAPIFAMILY 1
+#endif
+#endif
+
+#ifdef HAVE_WINAPIFAMILY
+ #include <winapifamily.h>
+ #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+ #define IS_UWP 1
+ #endif
+#endif
+
static
int open_gl(void) {
+#ifndef IS_UWP
libGL = LoadLibraryW(L"opengl32.dll");
if(libGL != NULL) {
- gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE)GetProcAddress(
- libGL, "wglGetProcAddress");
+ void (* tmp)(void);
+ tmp = (void(*)(void)) GetProcAddress(libGL, "wglGetProcAddress");
+ gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE) tmp;
return gladGetProcAddressPtr != NULL;
}
+#endif
return 0;
}
@@ -629,7 +654,7 @@ int open_gl(void) {
static
void close_gl(void) {
if(libGL != NULL) {
- FreeLibrary(libGL);
+ FreeLibrary((HMODULE) libGL);
libGL = NULL;
}
}
@@ -693,8 +718,8 @@ void* get_proc(const char *namez) {
}
#endif
if(result == NULL) {
-#ifdef _WIN32
- result = (void*)GetProcAddress(libGL, namez);
+#if defined(_WIN32) || defined(__CYGWIN__)
+ result = (void*)GetProcAddress((HMODULE) libGL, namez);
#else
result = dlsym(libGL, namez);
#endif
@@ -725,7 +750,7 @@ static int max_loaded_minor;
static const char *exts = NULL;
static int num_exts_i = 0;
-static const char **exts_i = NULL;
+static char **exts_i = NULL;
static int get_exts(void) {
#ifdef _GLAD_IS_SOME_NEW_VERSION
@@ -739,7 +764,7 @@ static int get_exts(void) {
num_exts_i = 0;
glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i);
if (num_exts_i > 0) {
- exts_i = (const char **)realloc((void *)exts_i, (size_t)num_exts_i * (sizeof *exts_i));
+ exts_i = (char **)realloc((void *)exts_i, (size_t)num_exts_i * (sizeof *exts_i));
}
if (exts_i == NULL) {
@@ -750,13 +775,9 @@ static int get_exts(void) {
const char *gl_str_tmp = (const char*)glGetStringi(GL_EXTENSIONS, index);
size_t len = strlen(gl_str_tmp);
- char *local_str = (char*)malloc((len+1) * sizeof(*exts_i));
+ char *local_str = (char*)malloc((len+1) * sizeof(char));
if(local_str != NULL) {
-#if _MSC_VER >= 1400
- strncpy_s(local_str, len+1, gl_str_tmp, len);
-#else
- strncpy(local_str, gl_str_tmp, len+1);
-#endif
+ memcpy(local_str, gl_str_tmp, (len+1) * sizeof(char));
}
exts_i[index] = local_str;
}
@@ -829,963 +850,968 @@ int GLAD_GL_VERSION_3_0;
int GLAD_GL_VERSION_3_1;
int GLAD_GL_VERSION_3_2;
int GLAD_GL_VERSION_3_3;
-PFNGLDISABLEPROC glad_glDisable;
-PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
-PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv;
PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D;
-PFNGLCLEARDEPTHPROC glad_glClearDepth;
-PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui;
-PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui;
-PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
-PFNGLENABLEPROC glad_glEnable;
-PFNGLUSEPROGRAMPROC glad_glUseProgram;
-PFNGLSTENCILFUNCPROC glad_glStencilFunc;
-PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv;
-PFNGLFRONTFACEPROC glad_glFrontFace;
-PFNGLGETTEXIMAGEPROC glad_glGetTexImage;
-PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays;
-PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
-PFNGLUNIFORM4IVPROC glad_glUniform4iv;
-PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
-PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv;
-PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings;
-PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer;
PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui;
-PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv;
-PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv;
-PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv;
-PFNGLUNIFORM1FVPROC glad_glUniform1fv;
-PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample;
-PFNGLUNIFORM1IPROC glad_glUniform1i;
-PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements;
-PFNGLUNIFORM4FPROC glad_glUniform4f;
-PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv;
-PFNGLGENTEXTURESPROC glad_glGenTextures;
-PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample;
-PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
-PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
-PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv;
-PFNGLGETERRORPROC glad_glGetError;
-PFNGLBINDBUFFERPROC glad_glBindBuffer;
-PFNGLISSYNCPROC glad_glIsSync;
-PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
-PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding;
-PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui;
-PFNGLCOLORP4UIVPROC glad_glColorP4uiv;
-PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData;
-PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
-PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
-PFNGLDEPTHMASKPROC glad_glDepthMask;
-PFNGLCREATESHADERPROC glad_glCreateShader;
-PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
-PFNGLDISABLEIPROC glad_glDisablei;
-PFNGLENDQUERYPROC glad_glEndQuery;
-PFNGLISSHADERPROC glad_glIsShader;
-PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
-PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
-PFNGLPIXELSTOREFPROC glad_glPixelStoref;
-PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
-PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv;
-PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
-PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample;
-PFNGLFENCESYNCPROC glad_glFenceSync;
-PFNGLDELETEQUERIESPROC glad_glDeleteQueries;
-PFNGLENABLEIPROC glad_glEnablei;
-PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
-PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv;
-PFNGLUNIFORM3UIPROC glad_glUniform3ui;
-PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
-PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv;
-PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex;
-PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
-PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d;
-PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
-PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s;
-PFNGLUNIFORM2UIPROC glad_glUniform2ui;
-PFNGLFLUSHPROC glad_glFlush;
-PFNGLISTEXTUREPROC glad_glIsTexture;
-PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
-PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv;
-PFNGLISENABLEDIPROC glad_glIsEnabledi;
-PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
-PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer;
-PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
-PFNGLCOLORMASKIPROC glad_glColorMaski;
-PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv;
+PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
+PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
+PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D;
+PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv;
+PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv;
+PFNGLBINDSAMPLERPROC glad_glBindSampler;
PFNGLLINEWIDTHPROC glad_glLineWidth;
-PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri;
-PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
-PFNGLPOINTPARAMETERFPROC glad_glPointParameterf;
-PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv;
-PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv;
-PFNGLCLEARSTENCILPROC glad_glClearStencil;
-PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv;
-PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex;
+PFNGLCOLORP3UIVPROC glad_glColorP3uiv;
PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v;
+PFNGLCOMPILESHADERPROC glad_glCompileShader;
+PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying;
+PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer;
+PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui;
+PFNGLVERTEXP4UIPROC glad_glVertexP4ui;
+PFNGLENABLEIPROC glad_glEnablei;
+PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui;
+PFNGLCREATESHADERPROC glad_glCreateShader;
+PFNGLISBUFFERPROC glad_glIsBuffer;
+PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv;
PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers;
-PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub;
-PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv;
-PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D;
-PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
-PFNGLATTACHSHADERPROC glad_glAttachShader;
-PFNGLNORMALP3UIPROC glad_glNormalP3ui;
-PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv;
-PFNGLBLENDFUNCPROC glad_glBlendFunc;
-PFNGLUNIFORM2IVPROC glad_glUniform2iv;
-PFNGLSTENCILOPPROC glad_glStencilOp;
-PFNGLUNIFORM1IVPROC glad_glUniform1iv;
-PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
-PFNGLSTENCILMASKPROC glad_glStencilMask;
-PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex;
-PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui;
-PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D;
-PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i;
-PFNGLFINISHPROC glad_glFinish;
-PFNGLVERTEXP3UIPROC glad_glVertexP3ui;
-PFNGLGETSTRINGPROC glad_glGetString;
-PFNGLUNIFORM3IPROC glad_glUniform3i;
-PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex;
-PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed;
-PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName;
-PFNGLTEXIMAGE3DPROC glad_glTexImage3D;
-PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex;
-PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays;
-PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
-PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv;
-PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv;
-PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv;
-PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv;
-PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
-PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv;
-PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv;
-PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui;
-PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements;
-PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
-PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv;
-PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
-PFNGLGETSYNCIVPROC glad_glGetSynciv;
-PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture;
-PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv;
-PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
+PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
+PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
+PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
+PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
+PFNGLHINTPROC glad_glHint;
+PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s;
PFNGLSAMPLEMASKIPROC glad_glSampleMaski;
-PFNGLISQUERYPROC glad_glIsQuery;
-PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv;
-PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D;
-PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
-PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv;
+PFNGLVERTEXP2UIPROC glad_glVertexP2ui;
+PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv;
+PFNGLPOINTSIZEPROC glad_glPointSize;
+PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv;
+PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
+PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv;
+PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
PFNGLWAITSYNCPROC glad_glWaitSync;
-PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray;
+PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv;
+PFNGLUNIFORM3IPROC glad_glUniform3i;
+PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv;
+PFNGLUNIFORM3FPROC glad_glUniform3f;
+PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv;
+PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
+PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui;
+PFNGLCOLORMASKIPROC glad_glColorMaski;
+PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi;
+PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays;
+PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui;
PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv;
-PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange;
-PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv;
-PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
-PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
-PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor;
-PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
-PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i;
-PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui;
PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex;
-PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
-PFNGLCULLFACEPROC glad_glCullFace;
+PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv;
+PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv;
PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui;
-PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
-PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
-PFNGLGENBUFFERSPROC glad_glGenBuffers;
-PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback;
-PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
-PFNGLCOLORP4UIPROC glad_glColorP4ui;
-PFNGLUNIFORM4FVPROC glad_glUniform4fv;
-PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
-PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv;
-PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv;
-PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange;
-PFNGLREADPIXELSPROC glad_glReadPixels;
-PFNGLGETSTRINGIPROC glad_glGetStringi;
-PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d;
-PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv;
-PFNGLSCISSORPROC glad_glScissor;
-PFNGLVERTEXP4UIPROC glad_glVertexP4ui;
-PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv;
-PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
-PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv;
-PFNGLBUFFERDATAPROC glad_glBufferData;
-PFNGLCOLORP3UIVPROC glad_glColorP3uiv;
-PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D;
-PFNGLDRAWBUFFERPROC glad_glDrawBuffer;
-PFNGLUNIFORM3FVPROC glad_glUniform3fv;
-PFNGLGETQUERYIVPROC glad_glGetQueryiv;
-PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv;
+PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
PFNGLDRAWARRAYSPROC glad_glDrawArrays;
-PFNGLDRAWELEMENTSPROC glad_glDrawElements;
-PFNGLUNIFORM3FPROC glad_glUniform3f;
-PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
-PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
-PFNGLCOLORP3UIPROC glad_glColorP3ui;
-PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
-PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
-PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv;
-PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui;
-PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D;
-PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender;
-PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv;
-PFNGLCLEARPROC glad_glClear;
-PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv;
-PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D;
-PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation;
-PFNGLDELETESHADERPROC glad_glDeleteShader;
-PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv;
-PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s;
-PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange;
-PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv;
-PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer;
-PFNGLQUERYCOUNTERPROC glad_glQueryCounter;
-PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
-PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv;
-PFNGLUNIFORM2FVPROC glad_glUniform2fv;
-PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation;
-PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
-PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv;
-PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv;
-PFNGLNORMALP3UIVPROC glad_glNormalP3uiv;
-PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv;
-PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv;
-PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv;
+PFNGLUNIFORM1UIPROC glad_glUniform1ui;
+PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i;
+PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui;
PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d;
-PFNGLTEXBUFFERPROC glad_glTexBuffer;
-PFNGLUNIFORM3IVPROC glad_glUniform3iv;
+PFNGLCLEARPROC glad_glClear;
PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName;
-PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
-PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays;
-PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
PFNGLISENABLEDPROC glad_glIsEnabled;
-PFNGLBEGINQUERYPROC glad_glBeginQuery;
-PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
-PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer;
-PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv;
+PFNGLSTENCILOPPROC glad_glStencilOp;
+PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
+PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
+PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub;
+PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation;
+PFNGLTEXIMAGE1DPROC glad_glTexImage1D;
+PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
+PFNGLGETTEXIMAGEPROC glad_glGetTexImage;
+PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v;
+PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
-PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
-PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex;
-PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv;
-PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf;
-PFNGLUNIFORM1UIVPROC glad_glUniform1uiv;
-PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced;
-PFNGLUNIFORM1UIPROC glad_glUniform1ui;
-PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v;
-PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
-PFNGLDETACHSHADERPROC glad_glDetachShader;
-PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv;
+PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
+PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays;
PFNGLISVERTEXARRAYPROC glad_glIsVertexArray;
-PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv;
-PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi;
-PFNGLREADBUFFERPROC glad_glReadBuffer;
-PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv;
-PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender;
-PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui;
-PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
-PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv;
-PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
-PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D;
-PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s;
-PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v;
-PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv;
-PFNGLDEPTHFUNCPROC glad_glDepthFunc;
-PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv;
-PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv;
-PFNGLDELETESYNCPROC glad_glDeleteSync;
-PFNGLUNIFORM4UIVPROC glad_glUniform4uiv;
-PFNGLGETSHADERIVPROC glad_glGetShaderiv;
-PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase;
-PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv;
-PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
-PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv;
-PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying;
-PFNGLUNIFORM2UIVPROC glad_glUniform2uiv;
-PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d;
-PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData;
-PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv;
-PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync;
-PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv;
-PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced;
-PFNGLGETINTEGERVPROC glad_glGetIntegerv;
-PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv;
-PFNGLUNIFORM3UIVPROC glad_glUniform3uiv;
-PFNGLISBUFFERPROC glad_glIsBuffer;
-PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv;
-PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
-PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
-PFNGLUNIFORM2FPROC glad_glUniform2f;
-PFNGLBINDTEXTUREPROC glad_glBindTexture;
+PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
+PFNGLGETQUERYIVPROC glad_glGetQueryiv;
+PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv;
PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices;
-PFNGLCOMPILESHADERPROC glad_glCompileShader;
-PFNGLUNIFORM1FPROC glad_glUniform1f;
+PFNGLISSHADERPROC glad_glIsShader;
+PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv;
+PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
+PFNGLENABLEPROC glad_glEnable;
+PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv;
+PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
+PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv;
+PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv;
+PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui;
+PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
+PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv;
+PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv;
+PFNGLDRAWBUFFERPROC glad_glDrawBuffer;
+PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
+PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced;
+PFNGLFLUSHPROC glad_glFlush;
PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv;
-PFNGLCOLORMASKPROC glad_glColorMask;
-PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv;
-PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i;
+PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
+PFNGLFENCESYNCPROC glad_glFenceSync;
+PFNGLCOLORP3UIPROC glad_glColorP3ui;
+PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv;
+PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender;
+PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
+PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv;
+PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
+PFNGLGENSAMPLERSPROC glad_glGenSamplers;
+PFNGLCLAMPCOLORPROC glad_glClampColor;
+PFNGLUNIFORM4IVPROC glad_glUniform4iv;
+PFNGLCLEARSTENCILPROC glad_glClearStencil;
+PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv;
+PFNGLGENTEXTURESPROC glad_glGenTextures;
+PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv;
PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv;
-PFNGLISSAMPLERPROC glad_glIsSampler;
-PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
-PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui;
+PFNGLISSYNCPROC glad_glIsSync;
+PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName;
+PFNGLUNIFORM2IPROC glad_glUniform2i;
+PFNGLUNIFORM2FPROC glad_glUniform2f;
+PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui;
+PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
+PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
+PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer;
+PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange;
PFNGLGENQUERIESPROC glad_glGenQueries;
+PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui;
+PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D;
+PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v;
PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers;
-PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
+PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
+PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer;
+PFNGLISENABLEDIPROC glad_glIsEnabledi;
PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui;
-PFNGLBLENDCOLORPROC glad_glBlendColor;
-PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
-PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
-PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex;
-PFNGLCLAMPCOLORPROC glad_glClampColor;
-PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
-PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
-PFNGLUNIFORM4IPROC glad_glUniform4i;
-PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv;
-PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv;
-PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv;
-PFNGLGENSAMPLERSPROC glad_glGenSamplers;
-PFNGLISPROGRAMPROC glad_glIsProgram;
-PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv;
-PFNGLHINTPROC glad_glHint;
-PFNGLPOINTSIZEPROC glad_glPointSize;
-PFNGLUNIFORM2IPROC glad_glUniform2i;
-PFNGLLINKPROGRAMPROC glad_glLinkProgram;
-PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
-PFNGLGETINTEGER64VPROC glad_glGetInteger64v;
-PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
-PFNGLLOGICOPPROC glad_glLogicOp;
-PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui;
-PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui;
-PFNGLTEXIMAGE1DPROC glad_glTexImage1D;
-PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
-PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
-PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv;
-PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv;
+PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed;
+PFNGLUNIFORM2IVPROC glad_glUniform2iv;
+PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
+PFNGLUNIFORM4UIVPROC glad_glUniform4uiv;
+PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D;
+PFNGLGETSHADERIVPROC glad_glGetShaderiv;
+PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation;
+PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
+PFNGLGETDOUBLEVPROC glad_glGetDoublev;
+PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d;
+PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
+PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv;
+PFNGLUNIFORM3FVPROC glad_glUniform3fv;
+PFNGLDEPTHRANGEPROC glad_glDepthRange;
PFNGLMAPBUFFERPROC glad_glMapBuffer;
-PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
-PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui;
-PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
-PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
-PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui;
-PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv;
-PFNGLDRAWBUFFERSPROC glad_glDrawBuffers;
+PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D;
+PFNGLDELETESYNCPROC glad_glDeleteSync;
+PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
+PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
+PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements;
+PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
+PFNGLUNIFORM3IVPROC glad_glUniform3iv;
PFNGLPOLYGONMODEPROC glad_glPolygonMode;
-PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
-PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback;
-PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv;
-PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage;
-PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D;
-PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv;
+PFNGLDRAWBUFFERSPROC glad_glDrawBuffers;
+PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv;
+PFNGLUSEPROGRAMPROC glad_glUseProgram;
+PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
+PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray;
+PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv;
-PFNGLBINDSAMPLERPROC glad_glBindSampler;
+PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex;
+PFNGLUNIFORM2UIVPROC glad_glUniform2uiv;
+PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D;
+PFNGLFINISHPROC glad_glFinish;
+PFNGLDELETESHADERPROC glad_glDeleteShader;
+PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv;
+PFNGLVIEWPORTPROC glad_glViewport;
+PFNGLUNIFORM1UIVPROC glad_glUniform1uiv;
+PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings;
+PFNGLUNIFORM2UIPROC glad_glUniform2ui;
+PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i;
+PFNGLCLEARDEPTHPROC glad_glClearDepth;
+PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv;
+PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
+PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
+PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
+PFNGLTEXBUFFERPROC glad_glTexBuffer;
+PFNGLPIXELSTOREIPROC glad_glPixelStorei;
+PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
+PFNGLPIXELSTOREFPROC glad_glPixelStoref;
+PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v;
+PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv;
+PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv;
+PFNGLLINKPROGRAMPROC glad_glLinkProgram;
+PFNGLBINDTEXTUREPROC glad_glBindTexture;
+PFNGLGETSTRINGPROC glad_glGetString;
+PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv;
+PFNGLDETACHSHADERPROC glad_glDetachShader;
+PFNGLENDQUERYPROC glad_glEndQuery;
+PFNGLNORMALP3UIPROC glad_glNormalP3ui;
+PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui;
+PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
+PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
+PFNGLDELETEQUERIESPROC glad_glDeleteQueries;
+PFNGLNORMALP3UIVPROC glad_glNormalP3uiv;
+PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
+PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d;
+PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s;
+PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex;
+PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
+PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri;
+PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf;
+PFNGLUNIFORM1FPROC glad_glUniform1f;
+PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
+PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage;
+PFNGLUNIFORM1IPROC glad_glUniform1i;
+PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
+PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
+PFNGLDISABLEPROC glad_glDisable;
+PFNGLLOGICOPPROC glad_glLogicOp;
PFNGLUNIFORM4UIPROC glad_glUniform4ui;
-PFNGLDEPTHRANGEPROC glad_glDepthRange;
-PFNGLPIXELSTOREIPROC glad_glPixelStorei;
-PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui;
+PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
+PFNGLCULLFACEPROC glad_glCullFace;
+PFNGLGETSTRINGIPROC glad_glGetStringi;
+PFNGLATTACHSHADERPROC glad_glAttachShader;
+PFNGLQUERYCOUNTERPROC glad_glQueryCounter;
+PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex;
+PFNGLDRAWELEMENTSPROC glad_glDrawElements;
+PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv;
+PFNGLUNIFORM1IVPROC glad_glUniform1iv;
+PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv;
+PFNGLREADBUFFERPROC glad_glReadBuffer;
+PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv;
+PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced;
+PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
+PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv;
+PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
+PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv;
+PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
+PFNGLBLENDCOLORPROC glad_glBlendColor;
+PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv;
+PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer;
+PFNGLPOINTPARAMETERFPROC glad_glPointParameterf;
+PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s;
+PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
+PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv;
+PFNGLISPROGRAMPROC glad_glIsProgram;
+PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv;
+PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
+PFNGLUNIFORM4IPROC glad_glUniform4i;
+PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
+PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
+PFNGLREADPIXELSPROC glad_glReadPixels;
+PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv;
+PFNGLUNIFORM4FPROC glad_glUniform4f;
+PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample;
+PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
+PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex;
+PFNGLSTENCILFUNCPROC glad_glStencilFunc;
+PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding;
+PFNGLCOLORP4UIPROC glad_glColorP4ui;
+PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv;
+PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
+PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i;
+PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData;
+PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
+PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui;
+PFNGLGENBUFFERSPROC glad_glGenBuffers;
+PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv;
+PFNGLBLENDFUNCPROC glad_glBlendFunc;
+PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
+PFNGLTEXIMAGE3DPROC glad_glTexImage3D;
+PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
+PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex;
+PFNGLGETINTEGER64VPROC glad_glGetInteger64v;
+PFNGLSCISSORPROC glad_glScissor;
+PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv;
+PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
+PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv;
+PFNGLUNIFORM3UIVPROC glad_glUniform3uiv;
+PFNGLCLEARCOLORPROC glad_glClearColor;
+PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv;
+PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv;
PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v;
-PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv;
+PFNGLCOLORP4UIVPROC glad_glColorP4uiv;
+PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv;
+PFNGLUNIFORM3UIPROC glad_glUniform3ui;
+PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv;
+PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv;
+PFNGLUNIFORM2FVPROC glad_glUniform2fv;
+PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv;
+PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange;
+PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv;
+PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv;
+PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv;
+PFNGLDEPTHFUNCPROC glad_glDepthFunc;
PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D;
-PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
-PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
-PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
-PFNGLVIEWPORTPROC glad_glViewport;
+PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv;
+PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
+PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui;
+PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync;
+PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui;
+PFNGLCOLORMASKPROC glad_glColorMask;
+PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv;
+PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
+PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
+PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback;
+PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv;
+PFNGLUNIFORM4FVPROC glad_glUniform4fv;
+PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback;
+PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv;
+PFNGLISSAMPLERPROC glad_glIsSampler;
+PFNGLVERTEXP3UIPROC glad_glVertexP3ui;
+PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor;
+PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D;
+PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D;
+PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex;
+PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
+PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender;
+PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv;
+PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
+PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv;
+PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv;
+PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements;
+PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv;
+PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase;
+PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
+PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv;
+PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange;
+PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture;
+PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays;
+PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv;
+PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv;
+PFNGLDISABLEIPROC glad_glDisablei;
+PFNGLSHADERSOURCEPROC glad_glShaderSource;
+PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
+PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv;
+PFNGLGETSYNCIVPROC glad_glGetSynciv;
+PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv;
+PFNGLBEGINQUERYPROC glad_glBeginQuery;
+PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
+PFNGLBINDBUFFERPROC glad_glBindBuffer;
+PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
+PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv;
+PFNGLBUFFERDATAPROC glad_glBufferData;
+PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv;
+PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui;
+PFNGLGETERRORPROC glad_glGetError;
+PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui;
PFNGLGETFLOATVPROC glad_glGetFloatv;
-PFNGLGETDOUBLEVPROC glad_glGetDoublev;
+PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D;
+PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
+PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv;
+PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i;
+PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv;
+PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
+PFNGLGETINTEGERVPROC glad_glGetIntegerv;
+PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv;
+PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D;
+PFNGLISQUERYPROC glad_glIsQuery;
+PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv;
+PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
+PFNGLSTENCILMASKPROC glad_glStencilMask;
PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv;
-PFNGLSHADERSOURCEPROC glad_glShaderSource;
+PFNGLISTEXTUREPROC glad_glIsTexture;
+PFNGLUNIFORM1FVPROC glad_glUniform1fv;
+PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv;
+PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
+PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv;
+PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData;
+PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv;
+PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d;
+PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
+PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv;
PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v;
-PFNGLCLEARCOLORPROC glad_glClearColor;
-PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v;
-PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
-PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv;
-PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
-PFNGLVERTEXP2UIPROC glad_glVertexP2ui;
-PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
-PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D;
-PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i;
-PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv;
-int GLAD_GL_EXT_texture_snorm;
+PFNGLDEPTHMASKPROC glad_glDepthMask;
+PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s;
+PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample;
+PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex;
+PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample;
+PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
+PFNGLFRONTFACEPROC glad_glFrontFace;
+int GLAD_GL_SGIX_pixel_tiles;
+int GLAD_GL_EXT_post_depth_coverage;
+int GLAD_GL_APPLE_element_array;
+int GLAD_GL_AMD_multi_draw_indirect;
+int GLAD_GL_EXT_blend_subtract;
+int GLAD_GL_SGIX_tag_sample_buffer;
+int GLAD_GL_NV_point_sprite;
+int GLAD_GL_IBM_texture_mirrored_repeat;
+int GLAD_GL_APPLE_transform_hint;
+int GLAD_GL_ATI_separate_stencil;
+int GLAD_GL_NV_shader_atomic_int64;
+int GLAD_GL_EXT_semaphore_win32;
+int GLAD_GL_NV_vertex_program2_option;
+int GLAD_GL_EXT_texture_buffer_object;
+int GLAD_GL_ARB_vertex_blend;
+int GLAD_GL_OVR_multiview;
+int GLAD_GL_AMD_shader_gpu_shader_half_float_fetch;
+int GLAD_GL_NV_vertex_program2;
+int GLAD_GL_ARB_program_interface_query;
+int GLAD_GL_EXT_misc_attribute;
+int GLAD_GL_NV_multisample_coverage;
+int GLAD_GL_ARB_shading_language_packing;
+int GLAD_GL_EXT_texture_cube_map;
+int GLAD_GL_NV_viewport_array2;
+int GLAD_GL_ARB_texture_stencil8;
+int GLAD_GL_EXT_index_func;
+int GLAD_GL_EXT_memory_object_fd;
+int GLAD_GL_OES_compressed_paletted_texture;
+int GLAD_GL_MESA_shader_integer_functions;
+int GLAD_GL_NV_shader_buffer_load;
+int GLAD_GL_EXT_color_subtable;
+int GLAD_GL_SUNX_constant_data;
+int GLAD_GL_EXT_texture_compression_s3tc;
+int GLAD_GL_EXT_multi_draw_arrays;
+int GLAD_GL_ARB_shader_atomic_counters;
+int GLAD_GL_ARB_arrays_of_arrays;
+int GLAD_GL_NV_conditional_render;
+int GLAD_GL_EXT_texture_env_combine;
+int GLAD_GL_NV_fog_distance;
+int GLAD_GL_SGIX_async_histogram;
int GLAD_GL_MESA_resize_buffers;
-int GLAD_GL_NV_clip_space_w_scaling;
-int GLAD_GL_SGIS_point_parameters;
-int GLAD_GL_EXT_draw_range_elements;
+int GLAD_GL_NV_light_max_exponent;
+int GLAD_GL_NV_texture_env_combine4;
+int GLAD_GL_ARB_spirv_extensions;
+int GLAD_GL_ARB_texture_view;
+int GLAD_GL_ARB_texture_env_combine;
+int GLAD_GL_ARB_map_buffer_range;
+int GLAD_GL_EXT_convolution;
+int GLAD_GL_NV_compute_program5;
+int GLAD_GL_NV_vertex_attrib_integer_64bit;
+int GLAD_GL_EXT_paletted_texture;
+int GLAD_GL_ARB_texture_buffer_object;
+int GLAD_GL_ATI_pn_triangles;
+int GLAD_GL_SGIX_resample;
+int GLAD_GL_SGIX_flush_raster;
+int GLAD_GL_EXT_light_texture;
+int GLAD_GL_ARB_point_sprite;
+int GLAD_GL_SUN_convolution_border_modes;
+int GLAD_GL_EXT_semaphore_fd;
+int GLAD_GL_NV_parameter_buffer_object2;
+int GLAD_GL_ARB_half_float_pixel;
+int GLAD_GL_NV_tessellation_program5;
int GLAD_GL_REND_screen_coordinates;
-int GLAD_GL_AMD_gpu_shader_int16;
-int GLAD_GL_NV_command_list;
-int GLAD_GL_NV_stereo_view_rendering;
-int GLAD_GL_ARB_instanced_arrays;
-int GLAD_GL_ARB_pipeline_statistics_query;
+int GLAD_GL_EXT_shared_texture_palette;
+int GLAD_GL_EXT_packed_float;
+int GLAD_GL_OML_subsample;
+int GLAD_GL_SGIX_vertex_preclip;
+int GLAD_GL_SGIX_texture_scale_bias;
+int GLAD_GL_AMD_draw_buffers_blend;
+int GLAD_GL_APPLE_texture_range;
+int GLAD_GL_EXT_texture_array;
+int GLAD_GL_NV_texture_barrier;
+int GLAD_GL_ARB_texture_query_levels;
+int GLAD_GL_NV_texgen_emboss;
+int GLAD_GL_EXT_texture_swizzle;
+int GLAD_GL_ARB_texture_rg;
+int GLAD_GL_ARB_vertex_type_2_10_10_10_rev;
+int GLAD_GL_ARB_fragment_shader;
+int GLAD_GL_3DFX_tbuffer;
int GLAD_GL_GREMEDY_frame_terminator;
-int GLAD_GL_EXT_pixel_transform;
-int GLAD_GL_ARB_fragment_program_shadow;
-int GLAD_GL_MESA_window_pos;
-int GLAD_GL_NV_texture_compression_vtc;
-int GLAD_GL_ARB_point_parameters;
-int GLAD_GL_MESA_pack_invert;
-int GLAD_GL_ATI_texture_env_combine3;
-int GLAD_GL_NV_transform_feedback;
-int GLAD_GL_NV_viewport_array2;
-int GLAD_GL_EXT_bindable_uniform;
-int GLAD_GL_NV_primitive_restart;
-int GLAD_GL_KHR_debug;
-int GLAD_GL_ARB_shader_ballot;
-int GLAD_GL_AMD_shader_stencil_export;
-int GLAD_GL_NV_query_resource_tag;
-int GLAD_GL_NV_shader_atomic_fp16_vector;
-int GLAD_GL_NV_tessellation_program5;
-int GLAD_GL_EXT_window_rectangles;
+int GLAD_GL_IBM_cull_vertex;
+int GLAD_GL_EXT_separate_shader_objects;
int GLAD_GL_NV_texture_multisample;
+int GLAD_GL_ARB_shader_objects;
+int GLAD_GL_ARB_framebuffer_object;
+int GLAD_GL_EXT_external_buffer;
+int GLAD_GL_ATI_envmap_bumpmap;
+int GLAD_GL_AMD_shader_explicit_vertex_parameter;
+int GLAD_GL_ARB_robust_buffer_access_behavior;
+int GLAD_GL_ARB_shader_stencil_export;
+int GLAD_GL_NV_texture_rectangle;
+int GLAD_GL_ARB_enhanced_layouts;
+int GLAD_GL_ARB_texture_rectangle;
+int GLAD_GL_SGI_texture_color_table;
+int GLAD_GL_NV_viewport_swizzle;
+int GLAD_GL_ATI_map_object_buffer;
+int GLAD_GL_ARB_robustness;
+int GLAD_GL_NV_pixel_data_range;
+int GLAD_GL_EXT_framebuffer_blit;
+int GLAD_GL_ARB_gpu_shader_fp64;
+int GLAD_GL_NV_command_list;
+int GLAD_GL_SGIX_depth_texture;
+int GLAD_GL_AMD_framebuffer_sample_positions;
+int GLAD_GL_GREMEDY_string_marker;
+int GLAD_GL_ARB_texture_compression_bptc;
+int GLAD_GL_EXT_subtexture;
+int GLAD_GL_EXT_pixel_transform_color_table;
+int GLAD_GL_EXT_texture_compression_rgtc;
+int GLAD_GL_ARB_shader_atomic_counter_ops;
+int GLAD_GL_SGIX_depth_pass_instrument;
+int GLAD_GL_EXT_gpu_program_parameters;
+int GLAD_GL_NV_evaluators;
+int GLAD_GL_EXT_shader_framebuffer_fetch_non_coherent;
+int GLAD_GL_SGIS_texture_filter4;
+int GLAD_GL_AMD_performance_monitor;
+int GLAD_GL_NV_geometry_shader4;
+int GLAD_GL_EXT_stencil_clear_tag;
+int GLAD_GL_NV_vertex_program1_1;
+int GLAD_GL_NV_present_video;
+int GLAD_GL_ARB_texture_compression_rgtc;
int GLAD_GL_HP_convolution_border_modes;
-int GLAD_GL_NV_conservative_raster_pre_snap;
int GLAD_GL_EXT_shader_integer_mix;
-int GLAD_GL_APPLE_aux_depth_stencil;
-int GLAD_GL_ARB_fragment_shader;
+int GLAD_GL_SGIX_framezoom;
+int GLAD_GL_ARB_stencil_texturing;
+int GLAD_GL_ARB_shader_clock;
+int GLAD_GL_NV_shader_atomic_fp16_vector;
+int GLAD_GL_SGIX_fog_offset;
+int GLAD_GL_ARB_draw_elements_base_vertex;
+int GLAD_GL_INGR_interlace_read;
+int GLAD_GL_NV_transform_feedback;
+int GLAD_GL_NV_fragment_program;
+int GLAD_GL_AMD_stencil_operation_extended;
+int GLAD_GL_ARB_seamless_cubemap_per_texture;
+int GLAD_GL_ARB_instanced_arrays;
+int GLAD_GL_ARB_get_texture_sub_image;
+int GLAD_GL_NV_vertex_array_range2;
+int GLAD_GL_KHR_robustness;
+int GLAD_GL_AMD_sparse_texture;
+int GLAD_GL_ARB_clip_control;
+int GLAD_GL_NV_fragment_coverage_to_color;
+int GLAD_GL_NV_fence;
+int GLAD_GL_ARB_texture_buffer_range;
+int GLAD_GL_SUN_mesh_array;
+int GLAD_GL_ARB_vertex_attrib_binding;
+int GLAD_GL_ARB_framebuffer_no_attachments;
+int GLAD_GL_ARB_cl_event;
+int GLAD_GL_EXT_vertex_weighting;
+int GLAD_GL_ARB_derivative_control;
+int GLAD_GL_NV_packed_depth_stencil;
+int GLAD_GL_OES_single_precision;
+int GLAD_GL_NV_primitive_restart;
+int GLAD_GL_SUN_global_alpha;
+int GLAD_GL_ARB_fragment_shader_interlock;
+int GLAD_GL_EXT_texture_object;
+int GLAD_GL_AMD_name_gen_delete;
+int GLAD_GL_NV_texture_compression_vtc;
+int GLAD_GL_NV_sample_mask_override_coverage;
+int GLAD_GL_NV_texture_shader3;
+int GLAD_GL_MESA_tile_raster_order;
+int GLAD_GL_ARB_texture_filter_anisotropic;
+int GLAD_GL_EXT_texture;
+int GLAD_GL_ARB_buffer_storage;
+int GLAD_GL_AMD_shader_atomic_counter_ops;
+int GLAD_GL_APPLE_vertex_program_evaluators;
+int GLAD_GL_AMD_texture_gather_bias_lod;
+int GLAD_GL_NV_texgen_reflection;
+int GLAD_GL_ARB_explicit_uniform_location;
+int GLAD_GL_ARB_depth_buffer_float;
+int GLAD_GL_NV_path_rendering_shared_edge;
+int GLAD_GL_SGIX_shadow_ambient;
+int GLAD_GL_ARB_texture_cube_map;
+int GLAD_GL_AMD_vertex_shader_viewport_index;
+int GLAD_GL_SGIX_list_priority;
+int GLAD_GL_NV_vertex_buffer_unified_memory;
+int GLAD_GL_NV_uniform_buffer_unified_memory;
+int GLAD_GL_ARB_clear_texture;
+int GLAD_GL_ATI_texture_env_combine3;
+int GLAD_GL_NV_depth_clamp;
+int GLAD_GL_ARB_map_buffer_alignment;
+int GLAD_GL_EXT_memory_object;
+int GLAD_GL_NV_blend_equation_advanced;
+int GLAD_GL_SGIS_sharpen_texture;
+int GLAD_GL_KHR_robust_buffer_access_behavior;
+int GLAD_GL_ARB_pipeline_statistics_query;
+int GLAD_GL_ARB_vertex_program;
+int GLAD_GL_ARB_texture_rgb10_a2ui;
+int GLAD_GL_OML_interlace;
+int GLAD_GL_ATI_pixel_format_float;
+int GLAD_GL_NV_clip_space_w_scaling;
+int GLAD_GL_ARB_vertex_buffer_object;
+int GLAD_GL_EXT_shadow_funcs;
+int GLAD_GL_ATI_text_fragment_shader;
+int GLAD_GL_NV_vertex_array_range;
+int GLAD_GL_SGIX_fragment_lighting;
+int GLAD_GL_AMD_shader_ballot;
+int GLAD_GL_NV_texture_expand_normal;
int GLAD_GL_NV_framebuffer_multisample_coverage;
-int GLAD_GL_ARB_multi_bind;
-int GLAD_GL_AMD_shader_trinary_minmax;
-int GLAD_GL_NV_sample_locations;
-int GLAD_GL_NV_video_capture;
-int GLAD_GL_AMD_transform_feedback4;
-int GLAD_GL_NV_bindless_multi_draw_indirect;
-int GLAD_GL_EXT_packed_float;
-int GLAD_GL_EXT_shared_texture_palette;
-int GLAD_GL_EXT_cmyka;
-int GLAD_GL_AMD_sample_positions;
-int GLAD_GL_NV_multisample_coverage;
-int GLAD_GL_ARB_copy_buffer;
-int GLAD_GL_EXT_sparse_texture2;
-int GLAD_GL_EXT_index_array_formats;
+int GLAD_GL_EXT_timer_query;
+int GLAD_GL_EXT_vertex_array_bgra;
+int GLAD_GL_NV_bindless_texture;
+int GLAD_GL_KHR_debug;
+int GLAD_GL_SGIS_texture_border_clamp;
+int GLAD_GL_ATI_vertex_attrib_array_object;
+int GLAD_GL_SGIX_clipmap;
+int GLAD_GL_EXT_geometry_shader4;
+int GLAD_GL_ARB_shader_texture_image_samples;
+int GLAD_GL_MESA_ycbcr_texture;
+int GLAD_GL_MESAX_texture_stack;
int GLAD_GL_AMD_seamless_cubemap_per_texture;
-int GLAD_GL_NV_texture_shader2;
-int GLAD_GL_AMD_multi_draw_indirect;
-int GLAD_GL_NV_shader_atomic_int64;
-int GLAD_GL_ARB_program_interface_query;
-int GLAD_GL_EXT_texture_shared_exponent;
-int GLAD_GL_NV_depth_clamp;
-int GLAD_GL_NV_shader_buffer_load;
+int GLAD_GL_EXT_bindable_uniform;
+int GLAD_GL_KHR_texture_compression_astc_hdr;
+int GLAD_GL_ARB_shader_ballot;
+int GLAD_GL_KHR_blend_equation_advanced;
+int GLAD_GL_ARB_fragment_program_shadow;
+int GLAD_GL_ATI_element_array;
+int GLAD_GL_AMD_texture_texture4;
+int GLAD_GL_SGIX_reference_plane;
+int GLAD_GL_EXT_stencil_two_side;
+int GLAD_GL_ARB_transform_feedback_overflow_query;
+int GLAD_GL_SGIX_texture_lod_bias;
+int GLAD_GL_KHR_no_error;
+int GLAD_GL_NV_explicit_multisample;
+int GLAD_GL_NV_stereo_view_rendering;
int GLAD_GL_IBM_static_data;
-int GLAD_GL_ARB_occlusion_query;
-int GLAD_GL_EXT_raster_multisample;
-int GLAD_GL_ARB_sparse_texture;
-int GLAD_GL_ARB_conditional_render_inverted;
-int GLAD_GL_KHR_context_flush_control;
-int GLAD_GL_AMD_sparse_texture;
+int GLAD_GL_EXT_clip_volume_hint;
+int GLAD_GL_EXT_texture_perturb_normal;
+int GLAD_GL_NV_fragment_program2;
+int GLAD_GL_NV_fragment_program4;
+int GLAD_GL_EXT_point_parameters;
+int GLAD_GL_PGI_misc_hints;
+int GLAD_GL_EXT_EGL_image_storage;
+int GLAD_GL_SGIX_subsample;
+int GLAD_GL_AMD_shader_stencil_export;
+int GLAD_GL_ARB_shader_texture_lod;
+int GLAD_GL_ARB_vertex_shader;
+int GLAD_GL_ARB_depth_clamp;
+int GLAD_GL_SGIS_texture_select;
+int GLAD_GL_NV_texture_shader;
+int GLAD_GL_ARB_tessellation_shader;
+int GLAD_GL_EXT_draw_buffers2;
+int GLAD_GL_ARB_vertex_attrib_64bit;
+int GLAD_GL_EXT_texture_filter_minmax;
int GLAD_GL_NV_query_resource;
-int GLAD_GL_ARB_cull_distance;
-int GLAD_GL_EXT_texture_integer;
-int GLAD_GL_EXT_separate_specular_color;
+int GLAD_GL_AMD_interleaved_elements;
+int GLAD_GL_ARB_fragment_program;
+int GLAD_GL_OML_resample;
+int GLAD_GL_APPLE_ycbcr_422;
+int GLAD_GL_SGIX_texture_add_env;
+int GLAD_GL_ARB_shadow_ambient;
+int GLAD_GL_ARB_texture_storage;
+int GLAD_GL_EXT_pixel_buffer_object;
+int GLAD_GL_ARB_copy_image;
+int GLAD_GL_SGIS_pixel_texture;
int GLAD_GL_SGIS_generate_mipmap;
-int GLAD_GL_SUNX_constant_data;
-int GLAD_GL_ARB_compute_variable_group_size;
-int GLAD_GL_ARB_imaging;
-int GLAD_GL_NV_bindless_multi_draw_indirect_count;
-int GLAD_GL_OES_read_format;
-int GLAD_GL_ARB_shader_draw_parameters;
-int GLAD_GL_ATI_pn_triangles;
-int GLAD_GL_EXT_framebuffer_object;
-int GLAD_GL_MESA_ycbcr_texture;
-int GLAD_GL_NV_shader_atomic_float64;
-int GLAD_GL_NV_conditional_render;
-int GLAD_GL_SGIS_texture_border_clamp;
-int GLAD_GL_OES_fixed_point;
-int GLAD_GL_ARB_robust_buffer_access_behavior;
-int GLAD_GL_EXT_external_buffer;
-int GLAD_GL_ARB_seamless_cube_map;
-int GLAD_GL_ARB_depth_clamp;
-int GLAD_GL_EXT_framebuffer_blit;
-int GLAD_GL_AMD_gcn_shader;
-int GLAD_GL_AMD_transform_feedback3_lines_triangles;
-int GLAD_GL_EXT_timer_query;
-int GLAD_GL_ARB_shader_subroutine;
-int GLAD_GL_NV_vertex_program;
-int GLAD_GL_ARB_texture_query_levels;
-int GLAD_GL_IBM_rasterpos_clip;
-int GLAD_GL_NV_gpu_program5_mem_extended;
-int GLAD_GL_NV_draw_texture;
-int GLAD_GL_SGIX_texture_lod_bias;
-int GLAD_GL_ARB_transpose_matrix;
-int GLAD_GL_ATI_map_object_buffer;
-int GLAD_GL_SGIS_texture_edge_clamp;
-int GLAD_GL_APPLE_rgb_422;
-int GLAD_GL_NV_light_max_exponent;
-int GLAD_GL_S3_s3tc;
-int GLAD_GL_EXT_vertex_attrib_64bit;
-int GLAD_GL_ARB_get_texture_sub_image;
+int GLAD_GL_SGIX_instruments;
+int GLAD_GL_ARB_fragment_layer_viewport;
+int GLAD_GL_ARB_shader_storage_buffer_object;
+int GLAD_GL_EXT_sparse_texture2;
int GLAD_GL_EXT_blend_minmax;
+int GLAD_GL_MESA_pack_invert;
+int GLAD_GL_ARB_base_instance;
+int GLAD_GL_SGIX_convolution_accuracy;
+int GLAD_GL_PGI_vertex_hints;
+int GLAD_GL_AMD_transform_feedback4;
+int GLAD_GL_ARB_ES3_1_compatibility;
+int GLAD_GL_EXT_memory_object_win32;
+int GLAD_GL_EXT_texture_integer;
+int GLAD_GL_ARB_texture_multisample;
+int GLAD_GL_ATI_vertex_streams;
+int GLAD_GL_AMD_gpu_shader_int64;
+int GLAD_GL_S3_s3tc;
int GLAD_GL_ARB_query_buffer_object;
-int GLAD_GL_MESA_shader_integer_functions;
-int GLAD_GL_EXT_422_pixels;
-int GLAD_GL_ARB_texture_cube_map;
-int GLAD_GL_NV_pixel_data_range;
+int GLAD_GL_AMD_vertex_shader_tessellator;
int GLAD_GL_ARB_invalidate_subdata;
-int GLAD_GL_ARB_shader_texture_lod;
-int GLAD_GL_KHR_no_error;
-int GLAD_GL_NV_gpu_multicast;
-int GLAD_GL_NV_fragment_program2;
-int GLAD_GL_EXT_geometry_shader4;
-int GLAD_GL_SGIX_scalebias_hint;
-int GLAD_GL_AMD_blend_minmax_factor;
-int GLAD_GL_NV_packed_depth_stencil;
-int GLAD_GL_SGIX_shadow;
-int GLAD_GL_EXT_post_depth_coverage;
-int GLAD_GL_NV_half_float;
-int GLAD_GL_NV_texture_shader;
-int GLAD_GL_EXT_texture_cube_map;
-int GLAD_GL_ARB_conservative_depth;
-int GLAD_GL_SGIS_fog_function;
-int GLAD_GL_ARB_map_buffer_range;
-int GLAD_GL_ARB_uniform_buffer_object;
+int GLAD_GL_NV_draw_vulkan_image;
+int GLAD_GL_EXT_index_material;
+int GLAD_GL_NVX_linked_gpu_multicast;
+int GLAD_GL_NV_blend_equation_advanced_coherent;
+int GLAD_GL_KHR_texture_compression_astc_sliced_3d;
+int GLAD_GL_INTEL_parallel_arrays;
int GLAD_GL_ATI_draw_buffers;
-int GLAD_GL_NV_geometry_shader4;
+int GLAD_GL_WIN_specular_fog;
+int GLAD_GL_EXT_cmyka;
+int GLAD_GL_SGIX_pixel_texture;
+int GLAD_GL_APPLE_specular_vector;
+int GLAD_GL_ARB_compatibility;
+int GLAD_GL_ARB_timer_query;
+int GLAD_GL_SGIX_interlace;
+int GLAD_GL_NV_parameter_buffer_object;
+int GLAD_GL_AMD_shader_trinary_minmax;
+int GLAD_GL_ARB_direct_state_access;
+int GLAD_GL_EXT_rescale_normal;
+int GLAD_GL_ARB_pixel_buffer_object;
+int GLAD_GL_ARB_uniform_buffer_object;
+int GLAD_GL_ARB_vertex_type_10f_11f_11f_rev;
+int GLAD_GL_ARB_texture_swizzle;
+int GLAD_GL_NV_transform_feedback2;
+int GLAD_GL_SGIX_async_pixel;
+int GLAD_GL_NV_fragment_program_option;
+int GLAD_GL_ARB_explicit_attrib_location;
+int GLAD_GL_EXT_blend_color;
+int GLAD_GL_NV_shader_thread_group;
+int GLAD_GL_EXT_stencil_wrap;
+int GLAD_GL_EXT_index_array_formats;
+int GLAD_GL_OVR_multiview2;
int GLAD_GL_EXT_histogram;
-int GLAD_GL_AMD_vertex_shader_layer;
-int GLAD_GL_SGIX_ir_instrument1;
-int GLAD_GL_APPLE_object_purgeable;
-int GLAD_GL_EXT_texture_env_dot3;
-int GLAD_GL_EXT_packed_pixels;
-int GLAD_GL_ARB_vertex_buffer_object;
-int GLAD_GL_NV_fragment_program4;
-int GLAD_GL_EXT_coordinate_frame;
-int GLAD_GL_SGIX_subsample;
-int GLAD_GL_3DFX_tbuffer;
-int GLAD_GL_IBM_texture_mirrored_repeat;
+int GLAD_GL_EXT_polygon_offset;
+int GLAD_GL_SGIS_point_parameters;
+int GLAD_GL_SGIX_ycrcb;
+int GLAD_GL_EXT_direct_state_access;
+int GLAD_GL_ARB_cull_distance;
+int GLAD_GL_AMD_sample_positions;
+int GLAD_GL_NV_vertex_program;
+int GLAD_GL_NV_shader_thread_shuffle;
+int GLAD_GL_ARB_shader_precision;
+int GLAD_GL_EXT_vertex_shader;
+int GLAD_GL_EXT_blend_func_separate;
+int GLAD_GL_APPLE_fence;
+int GLAD_GL_NV_query_resource_tag;
+int GLAD_GL_OES_byte_coordinates;
+int GLAD_GL_ARB_transpose_matrix;
+int GLAD_GL_ARB_provoking_vertex;
+int GLAD_GL_EXT_fog_coord;
+int GLAD_GL_EXT_vertex_array;
+int GLAD_GL_ARB_half_float_vertex;
+int GLAD_GL_EXT_blend_equation_separate;
+int GLAD_GL_NV_framebuffer_mixed_samples;
+int GLAD_GL_NVX_conditional_render;
+int GLAD_GL_ARB_multi_draw_indirect;
+int GLAD_GL_EXT_raster_multisample;
+int GLAD_GL_NV_copy_image;
+int GLAD_GL_HP_texture_lighting;
+int GLAD_GL_INTEL_framebuffer_CMAA;
+int GLAD_GL_ARB_transform_feedback2;
+int GLAD_GL_ARB_transform_feedback3;
int GLAD_GL_SGIX_ycrcba;
-int GLAD_GL_SGIS_texture_color_mask;
-int GLAD_GL_INTEL_parallel_arrays;
-int GLAD_GL_ARB_depth_buffer_float;
-int GLAD_GL_SGIX_interlace;
-int GLAD_GL_ARB_internalformat_query;
-int GLAD_GL_ARB_shader_atomic_counter_ops;
-int GLAD_GL_ARB_spirv_extensions;
-int GLAD_GL_NV_texgen_reflection;
-int GLAD_GL_ARB_occlusion_query2;
-int GLAD_GL_ARB_derivative_control;
-int GLAD_GL_ARB_framebuffer_no_attachments;
-int GLAD_GL_SGIX_fragment_lighting;
+int GLAD_GL_EXT_debug_marker;
+int GLAD_GL_EXT_bgra;
+int GLAD_GL_ARB_sparse_texture_clamp;
+int GLAD_GL_EXT_pixel_transform;
+int GLAD_GL_ARB_conservative_depth;
+int GLAD_GL_ATI_fragment_shader;
int GLAD_GL_ARB_vertex_array_object;
-int GLAD_GL_EXT_cull_vertex;
+int GLAD_GL_SUN_triangle_list;
+int GLAD_GL_EXT_texture_env_add;
+int GLAD_GL_EXT_packed_depth_stencil;
+int GLAD_GL_EXT_texture_mirror_clamp;
+int GLAD_GL_NV_multisample_filter_hint;
+int GLAD_GL_APPLE_float_pixels;
int GLAD_GL_ARB_transform_feedback_instanced;
-int GLAD_GL_ARB_texture_multisample;
-int GLAD_GL_SGIS_texture_select;
-int GLAD_GL_ARB_gpu_shader_int64;
-int GLAD_GL_ARB_copy_image;
-int GLAD_GL_ATI_vertex_attrib_array_object;
-int GLAD_GL_EXT_win32_keyed_mutex;
-int GLAD_GL_ARB_texture_border_clamp;
-int GLAD_GL_ARB_shader_atomic_counters;
-int GLAD_GL_ARB_separate_shader_objects;
-int GLAD_GL_SGIX_pixel_texture;
-int GLAD_GL_SGIX_async_histogram;
-int GLAD_GL_NV_blend_minmax_factor;
-int GLAD_GL_ARB_fragment_layer_viewport;
-int GLAD_GL_EXT_index_texture;
-int GLAD_GL_IBM_cull_vertex;
-int GLAD_GL_IBM_vertex_array_lists;
-int GLAD_GL_NV_framebuffer_mixed_samples;
-int GLAD_GL_ARB_get_program_binary;
-int GLAD_GL_EXT_direct_state_access;
-int GLAD_GL_ATI_texture_float;
-int GLAD_GL_EXT_texture_compression_s3tc;
-int GLAD_GL_NV_viewport_swizzle;
-int GLAD_GL_ARB_shading_language_include;
-int GLAD_GL_EXT_texture_sRGB;
+int GLAD_GL_SGIX_async;
+int GLAD_GL_EXT_texture_compression_latc;
+int GLAD_GL_NV_robustness_video_memory_purge;
+int GLAD_GL_ARB_shading_language_100;
+int GLAD_GL_INTEL_performance_query;
int GLAD_GL_ARB_texture_mirror_clamp_to_edge;
-int GLAD_GL_SGIX_polynomial_ffd;
int GLAD_GL_NV_gpu_shader5;
-int GLAD_GL_NV_path_rendering;
-int GLAD_GL_ARB_framebuffer_sRGB;
-int GLAD_GL_ARB_texture_float;
-int GLAD_GL_ARB_draw_elements_base_vertex;
-int GLAD_GL_ARB_vertex_program;
-int GLAD_GL_SGIX_clipmap;
-int GLAD_GL_NV_fence;
-int GLAD_GL_HP_occlusion_test;
-int GLAD_GL_ARB_clip_control;
-int GLAD_GL_ARB_texture_stencil8;
-int GLAD_GL_SUN_triangle_list;
-int GLAD_GL_EXT_blend_logic_op;
-int GLAD_GL_NV_present_video;
-int GLAD_GL_NV_fill_rectangle;
-int GLAD_GL_NV_parameter_buffer_object;
-int GLAD_GL_NV_evaluators;
-int GLAD_GL_NV_texgen_emboss;
-int GLAD_GL_ARB_multisample;
+int GLAD_GL_NV_bindless_multi_draw_indirect_count;
+int GLAD_GL_ARB_ES2_compatibility;
+int GLAD_GL_ARB_indirect_parameters;
+int GLAD_GL_EXT_window_rectangles;
+int GLAD_GL_NV_half_float;
+int GLAD_GL_ARB_ES3_2_compatibility;
+int GLAD_GL_ATI_texture_mirror_once;
+int GLAD_GL_IBM_rasterpos_clip;
+int GLAD_GL_EXT_semaphore;
+int GLAD_GL_SGIX_shadow;
int GLAD_GL_EXT_polygon_offset_clamp;
-int GLAD_GL_SGI_color_table;
-int GLAD_GL_SGIS_multisample;
-int GLAD_GL_EXT_texture_env_add;
-int GLAD_GL_NV_conservative_raster_underestimation;
-int GLAD_GL_ARB_fragment_shader_interlock;
-int GLAD_GL_ARB_gpu_shader_fp64;
-int GLAD_GL_NV_gpu_program5;
-int GLAD_GL_EXT_debug_label;
-int GLAD_GL_ARB_shading_language_100;
-int GLAD_GL_ARB_sparse_texture2;
-int GLAD_GL_NV_vertex_program3;
-int GLAD_GL_PGI_vertex_hints;
-int GLAD_GL_INTEL_conservative_rasterization;
-int GLAD_GL_EXT_paletted_texture;
-int GLAD_GL_ATI_vertex_streams;
-int GLAD_GL_NV_alpha_to_coverage_dither_control;
-int GLAD_GL_EXT_shader_image_load_store;
-int GLAD_GL_NV_bindless_texture;
+int GLAD_GL_NV_deep_texture3D;
+int GLAD_GL_ARB_shader_draw_parameters;
+int GLAD_GL_SGIX_calligraphic_fragment;
+int GLAD_GL_ARB_shader_bit_encoding;
+int GLAD_GL_EXT_compiled_vertex_array;
+int GLAD_GL_NV_depth_buffer_float;
int GLAD_GL_NV_occlusion_query;
-int GLAD_GL_AMD_query_buffer_object;
+int GLAD_GL_APPLE_flush_buffer_range;
+int GLAD_GL_ARB_imaging;
+int GLAD_GL_NV_shader_atomic_float;
int GLAD_GL_ARB_draw_buffers_blend;
-int GLAD_GL_ARB_shader_image_size;
-int GLAD_GL_ARB_transform_feedback_overflow_query;
-int GLAD_GL_ARB_debug_output;
-int GLAD_GL_ARB_shader_storage_buffer_object;
-int GLAD_GL_SGIX_framezoom;
-int GLAD_GL_APPLE_vertex_program_evaluators;
-int GLAD_GL_NV_texture_env_combine4;
-int GLAD_GL_AMD_gpu_shader_int64;
+int GLAD_GL_AMD_gcn_shader;
+int GLAD_GL_AMD_blend_minmax_factor;
+int GLAD_GL_EXT_texture_sRGB_decode;
+int GLAD_GL_ARB_shading_language_420pack;
int GLAD_GL_ARB_shader_viewport_layer_array;
-int GLAD_GL_ARB_window_pos;
-int GLAD_GL_ARB_vertex_array_bgra;
-int GLAD_GL_KHR_robust_buffer_access_behavior;
-int GLAD_GL_ARB_sparse_texture_clamp;
-int GLAD_GL_SGIX_instruments;
-int GLAD_GL_SGIX_resample;
-int GLAD_GL_EXT_stencil_wrap;
-int GLAD_GL_NV_texture_expand_normal;
-int GLAD_GL_EXT_texture_filter_anisotropic;
-int GLAD_GL_INTEL_fragment_shader_ordering;
-int GLAD_GL_ARB_texture_env_combine;
-int GLAD_GL_ARB_fragment_coord_conventions;
-int GLAD_GL_AMD_shader_image_load_store_lod;
-int GLAD_GL_EXT_stencil_two_side;
-int GLAD_GL_ARB_texture_rgb10_a2ui;
-int GLAD_GL_APPLE_row_bytes;
-int GLAD_GL_EXT_index_material;
-int GLAD_GL_ARB_texture_rectangle;
-int GLAD_GL_NV_explicit_multisample;
-int GLAD_GL_ARB_texture_non_power_of_two;
-int GLAD_GL_EXT_texture;
-int GLAD_GL_SGIX_texture_multi_buffer;
-int GLAD_GL_NV_transform_feedback2;
-int GLAD_GL_APPLE_ycbcr_422;
-int GLAD_GL_APPLE_client_storage;
-int GLAD_GL_ARB_geometry_shader4;
+int GLAD_GL_ATI_meminfo;
+int GLAD_GL_EXT_abgr;
+int GLAD_GL_AMD_pinned_memory;
+int GLAD_GL_EXT_texture_snorm;
+int GLAD_GL_SGIX_texture_coordinate_clamp;
+int GLAD_GL_ARB_clear_buffer_object;
+int GLAD_GL_ARB_multisample;
+int GLAD_GL_EXT_debug_label;
int GLAD_GL_ARB_sample_shading;
-int GLAD_GL_NV_fragment_shader_interlock;
-int GLAD_GL_ARB_compressed_texture_pixel_storage;
-int GLAD_GL_AMD_vertex_shader_viewport_index;
-int GLAD_GL_AMD_shader_explicit_vertex_parameter;
-int GLAD_GL_ARB_texture_storage;
-int GLAD_GL_SGIX_flush_raster;
-int GLAD_GL_ATI_texture_mirror_once;
-int GLAD_GL_NV_robustness_video_memory_purge;
-int GLAD_GL_ATI_vertex_array_object;
-int GLAD_GL_ARB_arrays_of_arrays;
-int GLAD_GL_EXT_texture_buffer_object;
-int GLAD_GL_SGIS_pixel_texture;
-int GLAD_GL_ARB_vertex_shader;
-int GLAD_GL_EXT_texture_perturb_normal;
-int GLAD_GL_ARB_multitexture;
-int GLAD_GL_IBM_multimode_draw_arrays;
-int GLAD_GL_OML_subsample;
-int GLAD_GL_AMD_occlusion_query_event;
+int GLAD_GL_NV_internalformat_sample_query;
+int GLAD_GL_INTEL_map_texture;
+int GLAD_GL_ARB_texture_env_crossbar;
+int GLAD_GL_EXT_422_pixels;
+int GLAD_GL_NV_blend_minmax_factor;
int GLAD_GL_NV_conservative_raster_pre_snap_triangles;
-int GLAD_GL_ARB_texture_filter_minmax;
-int GLAD_GL_ARB_sync;
-int GLAD_GL_ARB_clear_buffer_object;
-int GLAD_GL_EXT_gpu_shader4;
-int GLAD_GL_ARB_transform_feedback3;
-int GLAD_GL_KHR_blend_equation_advanced;
-int GLAD_GL_SGIX_async;
-int GLAD_GL_ARB_seamless_cubemap_per_texture;
-int GLAD_GL_AMD_framebuffer_sample_positions;
-int GLAD_GL_NV_uniform_buffer_unified_memory;
-int GLAD_GL_NV_texture_barrier;
-int GLAD_GL_ARB_buffer_storage;
-int GLAD_GL_WIN_phong_shading;
-int GLAD_GL_ARB_viewport_array;
-int GLAD_GL_SGIX_pixel_tiles;
-int GLAD_GL_ARB_draw_buffers;
-int GLAD_GL_KHR_texture_compression_astc_hdr;
-int GLAD_GL_PGI_misc_hints;
-int GLAD_GL_NV_sample_mask_override_coverage;
-int GLAD_GL_ARB_vertex_type_10f_11f_11f_rev;
-int GLAD_GL_EXT_texture_object;
-int GLAD_GL_NV_parameter_buffer_object2;
-int GLAD_GL_EXT_provoking_vertex;
-int GLAD_GL_OES_compressed_paletted_texture;
-int GLAD_GL_SGIX_texture_add_env;
-int GLAD_GL_EXT_texture_lod_bias;
-int GLAD_GL_AMD_conservative_depth;
-int GLAD_GL_AMD_performance_monitor;
-int GLAD_GL_ARB_matrix_palette;
-int GLAD_GL_OES_single_precision;
-int GLAD_GL_SGIX_convolution_accuracy;
-int GLAD_GL_NV_point_sprite;
-int GLAD_GL_MESA_tile_raster_order;
-int GLAD_GL_ARB_shadow;
-int GLAD_GL_EXT_bgra;
-int GLAD_GL_ARB_tessellation_shader;
-int GLAD_GL_ARB_ES3_compatibility;
-int GLAD_GL_NV_vdpau_interop;
-int GLAD_GL_SGIX_texture_coordinate_clamp;
-int GLAD_GL_EXT_debug_marker;
-int GLAD_GL_HP_image_transform;
-int GLAD_GL_EXT_blend_func_separate;
-int GLAD_GL_EXT_blend_equation_separate;
-int GLAD_GL_AMD_gpu_shader_half_float;
+int GLAD_GL_ARB_compute_shader;
+int GLAD_GL_EXT_blend_logic_op;
+int GLAD_GL_ARB_blend_func_extended;
+int GLAD_GL_IBM_vertex_array_lists;
+int GLAD_GL_ARB_color_buffer_float;
int GLAD_GL_ARB_bindless_texture;
+int GLAD_GL_ARB_window_pos;
+int GLAD_GL_ARB_internalformat_query;
+int GLAD_GL_ARB_shadow;
+int GLAD_GL_ARB_texture_mirrored_repeat;
+int GLAD_GL_EXT_shader_image_load_store;
+int GLAD_GL_EXT_copy_texture;
+int GLAD_GL_NV_register_combiners2;
+int GLAD_GL_SGIX_ycrcb_subsample;
+int GLAD_GL_NV_alpha_to_coverage_dither_control;
+int GLAD_GL_SGIX_ir_instrument1;
+int GLAD_GL_NV_draw_texture;
+int GLAD_GL_EXT_texture_shared_exponent;
+int GLAD_GL_NV_texture_shader2;
int GLAD_GL_EXT_draw_instanced;
-int GLAD_GL_ARB_sampler_objects;
-int GLAD_GL_EXT_semaphore;
+int GLAD_GL_NV_copy_depth_to_color;
+int GLAD_GL_ARB_viewport_array;
+int GLAD_GL_ARB_separate_shader_objects;
+int GLAD_GL_NV_conservative_raster_pre_snap;
+int GLAD_GL_EXT_depth_bounds_test;
+int GLAD_GL_HP_image_transform;
int GLAD_GL_ARB_texture_env_add;
-int GLAD_GL_NV_fog_distance;
-int GLAD_GL_SGIS_texture_filter4;
-int GLAD_GL_EXT_stencil_clear_tag;
-int GLAD_GL_ARB_texture_barrier;
-int GLAD_GL_OVR_multiview;
-int GLAD_GL_NV_shader_thread_shuffle;
-int GLAD_GL_EXT_framebuffer_sRGB;
-int GLAD_GL_NVX_linked_gpu_multicast;
-int GLAD_GL_EXT_vertex_array_bgra;
-int GLAD_GL_SGIX_vertex_preclip;
-int GLAD_GL_EXT_x11_sync_object;
-int GLAD_GL_ARB_ES3_2_compatibility;
-int GLAD_GL_EXT_light_texture;
-int GLAD_GL_ARB_texture_filter_anisotropic;
-int GLAD_GL_ARB_shader_precision;
-int GLAD_GL_INGR_blend_func_separate;
+int GLAD_GL_NV_video_capture;
+int GLAD_GL_ARB_sampler_objects;
+int GLAD_GL_ARB_matrix_palette;
+int GLAD_GL_SGIS_texture_color_mask;
+int GLAD_GL_EXT_packed_pixels;
+int GLAD_GL_EXT_coordinate_frame;
int GLAD_GL_ARB_texture_compression;
-int GLAD_GL_NV_fragment_coverage_to_color;
-int GLAD_GL_WIN_specular_fog;
-int GLAD_GL_ARB_framebuffer_object;
-int GLAD_GL_EXT_shader_image_load_formatted;
-int GLAD_GL_NV_vertex_program1_1;
-int GLAD_GL_ARB_color_buffer_float;
-int GLAD_GL_NV_geometry_shader_passthrough;
-int GLAD_GL_3DFX_multisample;
-int GLAD_GL_SGIX_depth_pass_instrument;
-int GLAD_GL_EXT_transform_feedback;
-int GLAD_GL_ARB_shader_group_vote;
-int GLAD_GL_EXT_draw_buffers2;
-int GLAD_GL_AMD_shader_ballot;
-int GLAD_GL_ARB_texture_mirrored_repeat;
-int GLAD_GL_KHR_parallel_shader_compile;
-int GLAD_GL_APPLE_fence;
-int GLAD_GL_SGIX_reference_plane;
-int GLAD_GL_SGIS_detail_texture;
-int GLAD_GL_ARB_sparse_buffer;
-int GLAD_GL_SGIX_texture_scale_bias;
-int GLAD_GL_SGIS_sharpen_texture;
-int GLAD_GL_EXT_compiled_vertex_array;
+int GLAD_GL_ARB_multi_bind;
+int GLAD_GL_APPLE_aux_depth_stencil;
+int GLAD_GL_ARB_shader_subroutine;
+int GLAD_GL_EXT_framebuffer_sRGB;
+int GLAD_GL_ARB_texture_storage_multisample;
+int GLAD_GL_KHR_blend_equation_advanced_coherent;
+int GLAD_GL_EXT_vertex_attrib_64bit;
+int GLAD_GL_NV_shader_atomic_float64;
int GLAD_GL_ARB_depth_texture;
-int GLAD_GL_APPLE_vertex_array_object;
-int GLAD_GL_NV_shader_thread_group;
-int GLAD_GL_ARB_compute_shader;
-int GLAD_GL_SGIX_async_pixel;
-int GLAD_GL_INTEL_framebuffer_CMAA;
-int GLAD_GL_EXT_semaphore_win32;
-int GLAD_GL_AMD_shader_atomic_counter_ops;
-int GLAD_GL_ARB_gl_spirv;
-int GLAD_GL_NV_vertex_program4;
-int GLAD_GL_ARB_shader_clock;
-int GLAD_GL_ARB_shader_image_load_store;
-int GLAD_GL_ARB_vertex_attrib_binding;
-int GLAD_GL_ARB_vertex_attrib_64bit;
-int GLAD_GL_EXT_rescale_normal;
-int GLAD_GL_ARB_shader_objects;
+int GLAD_GL_NV_shader_buffer_store;
+int GLAD_GL_OES_query_matrix;
+int GLAD_GL_MESA_window_pos;
+int GLAD_GL_NV_fill_rectangle;
+int GLAD_GL_NV_shader_storage_buffer_object;
+int GLAD_GL_ARB_texture_query_lod;
+int GLAD_GL_ARB_copy_buffer;
+int GLAD_GL_ARB_shader_image_size;
+int GLAD_GL_NV_shader_atomic_counters;
+int GLAD_GL_APPLE_object_purgeable;
+int GLAD_GL_ARB_occlusion_query;
+int GLAD_GL_INGR_color_clamp;
+int GLAD_GL_SGI_color_table;
+int GLAD_GL_NV_gpu_program5_mem_extended;
int GLAD_GL_ARB_texture_cube_map_array;
-int GLAD_GL_ATI_separate_stencil;
-int GLAD_GL_OES_byte_coordinates;
-int GLAD_GL_EXT_memory_object_win32;
-int GLAD_GL_SGIS_point_line_texgen;
-int GLAD_GL_SUN_mesh_array;
-int GLAD_GL_NV_shader_atomic_float;
-int GLAD_GL_ARB_timer_query;
-int GLAD_GL_ARB_texture_buffer_object;
-int GLAD_GL_ARB_ES2_compatibility;
+int GLAD_GL_SGIX_scalebias_hint;
+int GLAD_GL_EXT_gpu_shader4;
+int GLAD_GL_NV_geometry_program4;
+int GLAD_GL_EXT_framebuffer_multisample_blit_scaled;
+int GLAD_GL_AMD_debug_output;
+int GLAD_GL_ARB_texture_border_clamp;
+int GLAD_GL_EXT_win32_keyed_mutex;
+int GLAD_GL_ARB_fragment_coord_conventions;
+int GLAD_GL_ARB_multitexture;
+int GLAD_GL_SGIX_polynomial_ffd;
+int GLAD_GL_EXT_texture_env_dot3;
+int GLAD_GL_EXT_provoking_vertex;
+int GLAD_GL_ARB_point_parameters;
+int GLAD_GL_ARB_shader_image_load_store;
+int GLAD_GL_ARB_conditional_render_inverted;
+int GLAD_GL_HP_occlusion_test;
+int GLAD_GL_ARB_ES3_compatibility;
+int GLAD_GL_ARB_texture_barrier;
+int GLAD_GL_ARB_texture_buffer_object_rgb32;
+int GLAD_GL_NV_bindless_multi_draw_indirect;
+int GLAD_GL_SGIX_texture_multi_buffer;
+int GLAD_GL_INTEL_blackhole_render;
+int GLAD_GL_AMD_shader_image_load_store_lod;
+int GLAD_GL_KHR_texture_compression_astc_ldr;
+int GLAD_GL_3DFX_multisample;
+int GLAD_GL_INTEL_fragment_shader_ordering;
+int GLAD_GL_ARB_texture_env_dot3;
+int GLAD_GL_NV_gpu_program4;
+int GLAD_GL_NV_gpu_program5;
int GLAD_GL_NV_float_buffer;
-int GLAD_GL_SGI_texture_color_table;
-int GLAD_GL_SGIX_depth_texture;
-int GLAD_GL_NV_path_rendering_shared_edge;
-int GLAD_GL_ARB_vertex_blend;
-int GLAD_GL_ARB_texture_buffer_range;
-int GLAD_GL_ARB_robustness;
-int GLAD_GL_ARB_gpu_shader5;
-int GLAD_GL_NV_fragment_program_option;
-int GLAD_GL_ARB_fragment_program;
-int GLAD_GL_NV_texture_rectangle;
-int GLAD_GL_ARB_direct_state_access;
-int GLAD_GL_INGR_interlace_read;
-int GLAD_GL_AMD_pinned_memory;
-int GLAD_GL_APPLE_flush_buffer_range;
-int GLAD_GL_ARB_parallel_shader_compile;
-int GLAD_GL_ARB_blend_func_extended;
-int GLAD_GL_ARB_pixel_buffer_object;
-int GLAD_GL_EXT_blend_subtract;
-int GLAD_GL_ARB_base_instance;
-int GLAD_GL_INTEL_performance_query;
-int GLAD_GL_APPLE_specular_vector;
-int GLAD_GL_EXT_texture3D;
-int GLAD_GL_EXT_gpu_program_parameters;
-int GLAD_GL_SGIX_igloo_interface;
+int GLAD_GL_SGIS_texture_edge_clamp;
+int GLAD_GL_ARB_framebuffer_sRGB;
+int GLAD_GL_SUN_slice_accum;
+int GLAD_GL_EXT_index_texture;
+int GLAD_GL_EXT_shader_image_load_formatted;
+int GLAD_GL_ARB_geometry_shader4;
+int GLAD_GL_EXT_separate_specular_color;
int GLAD_GL_AMD_depth_clamp_separate;
-int GLAD_GL_ARB_stencil_texturing;
-int GLAD_GL_EXT_vertex_array;
-int GLAD_GL_SGIX_ycrcb;
-int GLAD_GL_NVX_blend_equation_advanced_multi_draw_buffers;
-int GLAD_GL_SUN_global_alpha;
-int GLAD_GL_APPLE_element_array;
-int GLAD_GL_ARB_internalformat_query2;
-int GLAD_GL_AMD_interleaved_elements;
-int GLAD_GL_INTEL_map_texture;
-int GLAD_GL_INGR_color_clamp;
-int GLAD_GL_SGIX_shadow_ambient;
-int GLAD_GL_ARB_compatibility;
-int GLAD_GL_NV_multisample_filter_hint;
-int GLAD_GL_EXT_pixel_buffer_object;
-int GLAD_GL_EXT_multisample;
-int GLAD_GL_AMD_name_gen_delete;
-int GLAD_GL_NV_internalformat_sample_query;
-int GLAD_GL_ARB_robustness_isolation;
-int GLAD_GL_ARB_enhanced_layouts;
-int GLAD_GL_NV_vertex_array_range2;
-int GLAD_GL_NV_texture_rectangle_compressed;
-int GLAD_GL_SGIX_blend_alpha_minmax;
-int GLAD_GL_EXT_memory_object;
-int GLAD_GL_ARB_sample_locations;
-int GLAD_GL_EXT_blend_color;
-int GLAD_GL_ARB_post_depth_coverage;
-int GLAD_GL_AMD_vertex_shader_tessellator;
-int GLAD_GL_KHR_texture_compression_astc_ldr;
-int GLAD_GL_NV_vertex_attrib_integer_64bit;
-int GLAD_GL_SUN_convolution_border_modes;
-int GLAD_GL_EXT_texture_env_combine;
-int GLAD_GL_ATI_fragment_shader;
int GLAD_GL_NV_conservative_raster;
-int GLAD_GL_SGIS_texture4D;
-int GLAD_GL_EXT_separate_shader_objects;
-int GLAD_GL_EXT_multi_draw_arrays;
-int GLAD_GL_ARB_clear_texture;
-int GLAD_GL_ARB_texture_gather;
-int GLAD_GL_ATI_element_array;
+int GLAD_GL_ARB_sparse_texture2;
+int GLAD_GL_SGIX_sprite;
+int GLAD_GL_ARB_get_program_binary;
+int GLAD_GL_AMD_occlusion_query_event;
+int GLAD_GL_SGIS_multisample;
+int GLAD_GL_EXT_framebuffer_object;
+int GLAD_GL_ARB_robustness_isolation;
+int GLAD_GL_ARB_vertex_array_bgra;
int GLAD_GL_APPLE_vertex_array_range;
-int GLAD_GL_NVX_conditional_render;
-int GLAD_GL_EXT_memory_object_fd;
-int GLAD_GL_EXT_pixel_transform_color_table;
-int GLAD_GL_EXT_fog_coord;
-int GLAD_GL_NV_draw_vulkan_image;
-int GLAD_GL_ARB_shadow_ambient;
-int GLAD_GL_ATI_meminfo;
-int GLAD_GL_MESAX_texture_stack;
-int GLAD_GL_EXT_framebuffer_multisample;
-int GLAD_GL_AMD_draw_buffers_blend;
+int GLAD_GL_AMD_query_buffer_object;
+int GLAD_GL_NV_register_combiners;
+int GLAD_GL_ARB_draw_buffers;
+int GLAD_GL_NVX_blend_equation_advanced_multi_draw_buffers;
+int GLAD_GL_AMD_gpu_shader_int16;
+int GLAD_GL_ARB_debug_output;
+int GLAD_GL_EXT_shader_framebuffer_fetch;
+int GLAD_GL_SGI_color_matrix;
+int GLAD_GL_EXT_cull_vertex;
+int GLAD_GL_EXT_texture_sRGB;
+int GLAD_GL_APPLE_row_bytes;
+int GLAD_GL_NV_conservative_raster_underestimation;
+int GLAD_GL_IBM_multimode_draw_arrays;
+int GLAD_GL_KHR_parallel_shader_compile;
+int GLAD_GL_APPLE_vertex_array_object;
+int GLAD_GL_3DFX_texture_compression_FXT1;
+int GLAD_GL_NV_fragment_shader_interlock;
+int GLAD_GL_AMD_conservative_depth;
+int GLAD_GL_ARB_texture_float;
+int GLAD_GL_ARB_compressed_texture_pixel_storage;
+int GLAD_GL_SGIS_detail_texture;
+int GLAD_GL_NV_geometry_shader_passthrough;
int GLAD_GL_ARB_draw_instanced;
-int GLAD_GL_ARB_texture_compression_rgtc;
-int GLAD_GL_EXT_polygon_offset;
-int GLAD_GL_EXT_point_parameters;
-int GLAD_GL_NV_shader_buffer_store;
-int GLAD_GL_NV_register_combiners2;
+int GLAD_GL_OES_read_format;
+int GLAD_GL_ATI_texture_float;
+int GLAD_GL_ARB_texture_gather;
+int GLAD_GL_AMD_vertex_shader_layer;
+int GLAD_GL_ARB_shading_language_include;
+int GLAD_GL_APPLE_client_storage;
+int GLAD_GL_WIN_phong_shading;
+int GLAD_GL_INGR_blend_func_separate;
+int GLAD_GL_NV_path_rendering;
+int GLAD_GL_NV_conservative_raster_dilate;
+int GLAD_GL_AMD_gpu_shader_half_float;
+int GLAD_GL_ARB_post_depth_coverage;
+int GLAD_GL_ARB_texture_non_power_of_two;
+int GLAD_GL_APPLE_rgb_422;
+int GLAD_GL_EXT_texture_lod_bias;
+int GLAD_GL_ARB_gpu_shader_int64;
+int GLAD_GL_ARB_seamless_cube_map;
+int GLAD_GL_ARB_shader_group_vote;
+int GLAD_GL_NV_vdpau_interop;
+int GLAD_GL_ARB_occlusion_query2;
+int GLAD_GL_ARB_internalformat_query2;
+int GLAD_GL_EXT_texture_filter_anisotropic;
int GLAD_GL_SUN_vertex;
-int GLAD_GL_ARB_explicit_uniform_location;
-int GLAD_GL_ARB_multi_draw_indirect;
-int GLAD_GL_ARB_shader_bit_encoding;
-int GLAD_GL_NV_vertex_array_range;
-int GLAD_GL_ARB_texture_buffer_object_rgb32;
-int GLAD_GL_ARB_map_buffer_alignment;
-int GLAD_GL_EXT_texture_mirror_clamp;
-int GLAD_GL_EXT_secondary_color;
-int GLAD_GL_ARB_texture_view;
-int GLAD_GL_EXT_texture_swizzle;
-int GLAD_GL_EXT_packed_depth_stencil;
-int GLAD_GL_EXT_copy_texture;
-int GLAD_GL_NV_copy_image;
-int GLAD_GL_ATI_envmap_bumpmap;
+int GLAD_GL_EXT_transform_feedback;
+int GLAD_GL_SGIX_igloo_interface;
int GLAD_GL_SGIS_texture_lod;
-int GLAD_GL_SGIX_sprite;
-int GLAD_GL_ARB_texture_storage_multisample;
-int GLAD_GL_EXT_color_subtable;
-int GLAD_GL_AMD_debug_output;
-int GLAD_GL_ARB_point_sprite;
-int GLAD_GL_NV_gpu_program4;
-int GLAD_GL_SGIX_tag_sample_buffer;
-int GLAD_GL_HP_texture_lighting;
-int GLAD_GL_EXT_clip_volume_hint;
-int GLAD_GL_ARB_polygon_offset_clamp;
-int GLAD_GL_ARB_shader_texture_image_samples;
-int GLAD_GL_ARB_texture_swizzle;
-int GLAD_GL_ARB_texture_env_crossbar;
-int GLAD_GL_NV_compute_program5;
-int GLAD_GL_EXT_texture_sRGB_decode;
-int GLAD_GL_SGIX_calligraphic_fragment;
-int GLAD_GL_NV_shader_atomic_counters;
-int GLAD_GL_ARB_cl_event;
-int GLAD_GL_ARB_transform_feedback2;
-int GLAD_GL_EXT_convolution;
-int GLAD_GL_NV_conservative_raster_dilate;
-int GLAD_GL_APPLE_texture_range;
-int GLAD_GL_OML_interlace;
-int GLAD_GL_EXT_abgr;
-int GLAD_GL_NV_register_combiners;
-int GLAD_GL_ARB_texture_rg;
-int GLAD_GL_ARB_ES3_1_compatibility;
-int GLAD_GL_ARB_half_float_vertex;
-int GLAD_GL_3DFX_texture_compression_FXT1;
-int GLAD_GL_EXT_texture_compression_latc;
+int GLAD_GL_NV_vertex_program3;
int GLAD_GL_ARB_draw_indirect;
-int GLAD_GL_NV_copy_depth_to_color;
-int GLAD_GL_SGIX_fog_offset;
-int GLAD_GL_NV_blend_square;
-int GLAD_GL_ARB_explicit_attrib_location;
-int GLAD_GL_ATI_text_fragment_shader;
-int GLAD_GL_SGIX_ycrcb_subsample;
-int GLAD_GL_EXT_vertex_weighting;
-int GLAD_GL_EXT_depth_bounds_test;
-int GLAD_GL_EXT_misc_attribute;
-int GLAD_GL_EXT_semaphore_fd;
-int GLAD_GL_NV_vertex_buffer_unified_memory;
-int GLAD_GL_ARB_texture_query_lod;
-int GLAD_GL_EXT_vertex_shader;
+int GLAD_GL_NV_vertex_program4;
+int GLAD_GL_AMD_transform_feedback3_lines_triangles;
+int GLAD_GL_SGIS_fog_function;
+int GLAD_GL_EXT_x11_sync_object;
+int GLAD_GL_ARB_sync;
+int GLAD_GL_NV_texture_rectangle_compressed;
+int GLAD_GL_NV_sample_locations;
+int GLAD_GL_NV_gpu_multicast;
+int GLAD_GL_ARB_gl_spirv;
+int GLAD_GL_ARB_compute_variable_group_size;
+int GLAD_GL_OES_fixed_point;
int GLAD_GL_MESA_program_binary_formats;
-int GLAD_GL_ARB_shading_language_packing;
-int GLAD_GL_ATI_pixel_format_float;
-int GLAD_GL_ARB_shading_language_420pack;
-int GLAD_GL_EXT_index_func;
-int GLAD_GL_NV_deep_texture3D;
-int GLAD_GL_EXT_shadow_funcs;
-int GLAD_GL_NV_blend_equation_advanced;
-int GLAD_GL_EXT_texture_filter_minmax;
-int GLAD_GL_NV_vertex_program2;
-int GLAD_GL_AMD_texture_texture4;
-int GLAD_GL_EXT_subtexture;
-int GLAD_GL_AMD_stencil_operation_extended;
-int GLAD_GL_NV_blend_equation_advanced_coherent;
-int GLAD_GL_ARB_vertex_type_2_10_10_10_rev;
-int GLAD_GL_GREMEDY_string_marker;
-int GLAD_GL_OML_resample;
-int GLAD_GL_KHR_robustness;
-int GLAD_GL_EXT_texture_compression_rgtc;
-int GLAD_GL_SGIX_list_priority;
-int GLAD_GL_ARB_texture_env_dot3;
-int GLAD_GL_APPLE_transform_hint;
-int GLAD_GL_NV_geometry_program4;
-int GLAD_GL_NV_texture_shader3;
-int GLAD_GL_ARB_texture_compression_bptc;
-int GLAD_GL_SGI_color_matrix;
-int GLAD_GL_AMD_texture_gather_bias_lod;
-int GLAD_GL_EXT_framebuffer_multisample_blit_scaled;
-int GLAD_GL_APPLE_float_pixels;
-int GLAD_GL_OVR_multiview2;
-int GLAD_GL_SUN_slice_accum;
+int GLAD_GL_NV_blend_square;
+int GLAD_GL_EXT_framebuffer_multisample;
+int GLAD_GL_ARB_gpu_shader5;
+int GLAD_GL_SGIS_texture4D;
+int GLAD_GL_EXT_texture3D;
+int GLAD_GL_EXT_multisample;
+int GLAD_GL_EXT_secondary_color;
+int GLAD_GL_INTEL_conservative_rasterization;
+int GLAD_GL_ARB_texture_filter_minmax;
+int GLAD_GL_ATI_vertex_array_object;
+int GLAD_GL_ARB_parallel_shader_compile;
int GLAD_GL_NVX_gpu_memory_info;
-int GLAD_GL_KHR_texture_compression_astc_sliced_3d;
-int GLAD_GL_NV_depth_buffer_float;
-int GLAD_GL_NV_vertex_program2_option;
-int GLAD_GL_ARB_shader_stencil_export;
-int GLAD_GL_ARB_half_float_pixel;
-int GLAD_GL_EXT_texture_array;
-int GLAD_GL_NV_shader_storage_buffer_object;
-int GLAD_GL_ARB_indirect_parameters;
-int GLAD_GL_OES_query_matrix;
-int GLAD_GL_ARB_provoking_vertex;
-int GLAD_GL_NV_fragment_program;
-int GLAD_GL_KHR_blend_equation_advanced_coherent;
+int GLAD_GL_ARB_sparse_texture;
+int GLAD_GL_SGIS_point_line_texgen;
+int GLAD_GL_ARB_sample_locations;
+int GLAD_GL_ARB_sparse_buffer;
+int GLAD_GL_ARB_polygon_offset_clamp;
+int GLAD_GL_EXT_draw_range_elements;
+int GLAD_GL_SGIX_blend_alpha_minmax;
+int GLAD_GL_KHR_context_flush_control;
PFNGLTBUFFERMASK3DFXPROC glad_glTbufferMask3DFX;
PFNGLDEBUGMESSAGEENABLEAMDPROC glad_glDebugMessageEnableAMD;
PFNGLDEBUGMESSAGEINSERTAMDPROC glad_glDebugMessageInsertAMD;
@@ -2610,6 +2636,8 @@ PFNGLNORMALSTREAM3DVATIPROC glad_glNormalStream3dvATI;
PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC glad_glClientActiveVertexStreamATI;
PFNGLVERTEXBLENDENVIATIPROC glad_glVertexBlendEnviATI;
PFNGLVERTEXBLENDENVFATIPROC glad_glVertexBlendEnvfATI;
+PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC glad_glEGLImageTargetTexStorageEXT;
+PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC glad_glEGLImageTargetTextureStorageEXT;
PFNGLUNIFORMBUFFEREXTPROC glad_glUniformBufferEXT;
PFNGLGETUNIFORMBUFFERSIZEEXTPROC glad_glGetUniformBufferSizeEXT;
PFNGLGETUNIFORMOFFSETEXTPROC glad_glGetUniformOffsetEXT;
@@ -3065,6 +3093,7 @@ PFNGLGETPROGRAMPIPELINEIVEXTPROC glad_glGetProgramPipelineivEXT;
PFNGLISPROGRAMPIPELINEEXTPROC glad_glIsProgramPipelineEXT;
PFNGLUSEPROGRAMSTAGESEXTPROC glad_glUseProgramStagesEXT;
PFNGLVALIDATEPROGRAMPIPELINEEXTPROC glad_glValidateProgramPipelineEXT;
+PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC glad_glFramebufferFetchBarrierEXT;
PFNGLBINDIMAGETEXTUREEXTPROC glad_glBindImageTextureEXT;
PFNGLMEMORYBARRIEREXTPROC glad_glMemoryBarrierEXT;
PFNGLSTENCILCLEARTAGEXTPROC glad_glStencilClearTagEXT;
@@ -5768,6 +5797,11 @@ static void load_GL_ATI_vertex_streams(GLADloadproc load) {
glad_glVertexBlendEnviATI = (PFNGLVERTEXBLENDENVIATIPROC)load("glVertexBlendEnviATI");
glad_glVertexBlendEnvfATI = (PFNGLVERTEXBLENDENVFATIPROC)load("glVertexBlendEnvfATI");
}
+static void load_GL_EXT_EGL_image_storage(GLADloadproc load) {
+ if(!GLAD_GL_EXT_EGL_image_storage) return;
+ glad_glEGLImageTargetTexStorageEXT = (PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC)load("glEGLImageTargetTexStorageEXT");
+ glad_glEGLImageTargetTextureStorageEXT = (PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC)load("glEGLImageTargetTextureStorageEXT");
+}
static void load_GL_EXT_bindable_uniform(GLADloadproc load) {
if(!GLAD_GL_EXT_bindable_uniform) return;
glad_glUniformBufferEXT = (PFNGLUNIFORMBUFFEREXTPROC)load("glUniformBufferEXT");
@@ -6406,6 +6440,10 @@ static void load_GL_EXT_separate_shader_objects(GLADloadproc load) {
glad_glProgramUniformMatrix3x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)load("glProgramUniformMatrix3x4fvEXT");
glad_glProgramUniformMatrix4x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)load("glProgramUniformMatrix4x3fvEXT");
}
+static void load_GL_EXT_shader_framebuffer_fetch_non_coherent(GLADloadproc load) {
+ if(!GLAD_GL_EXT_shader_framebuffer_fetch_non_coherent) return;
+ glad_glFramebufferFetchBarrierEXT = (PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC)load("glFramebufferFetchBarrierEXT");
+}
static void load_GL_EXT_shader_image_load_store(GLADloadproc load) {
if(!GLAD_GL_EXT_shader_image_load_store) return;
glad_glBindImageTextureEXT = (PFNGLBINDIMAGETEXTUREEXTPROC)load("glBindImageTextureEXT");
@@ -6437,10 +6475,6 @@ static void load_GL_EXT_texture_buffer_object(GLADloadproc load) {
if(!GLAD_GL_EXT_texture_buffer_object) return;
glad_glTexBufferEXT = (PFNGLTEXBUFFEREXTPROC)load("glTexBufferEXT");
}
-static void load_GL_EXT_texture_filter_minmax(GLADloadproc load) {
- if(!GLAD_GL_EXT_texture_filter_minmax) return;
- glad_glRasterSamplesEXT = (PFNGLRASTERSAMPLESEXTPROC)load("glRasterSamplesEXT");
-}
static void load_GL_EXT_texture_integer(GLADloadproc load) {
if(!GLAD_GL_EXT_texture_integer) return;
glad_glTexParameterIivEXT = (PFNGLTEXPARAMETERIIVEXTPROC)load("glTexParameterIivEXT");
@@ -7795,6 +7829,7 @@ static int find_extensionsGL(void) {
GLAD_GL_AMD_shader_atomic_counter_ops = has_ext("GL_AMD_shader_atomic_counter_ops");
GLAD_GL_AMD_shader_ballot = has_ext("GL_AMD_shader_ballot");
GLAD_GL_AMD_shader_explicit_vertex_parameter = has_ext("GL_AMD_shader_explicit_vertex_parameter");
+ GLAD_GL_AMD_shader_gpu_shader_half_float_fetch = has_ext("GL_AMD_shader_gpu_shader_half_float_fetch");
GLAD_GL_AMD_shader_image_load_store_lod = has_ext("GL_AMD_shader_image_load_store_lod");
GLAD_GL_AMD_shader_stencil_export = has_ext("GL_AMD_shader_stencil_export");
GLAD_GL_AMD_shader_trinary_minmax = has_ext("GL_AMD_shader_trinary_minmax");
@@ -8011,6 +8046,7 @@ static int find_extensionsGL(void) {
GLAD_GL_ATI_vertex_attrib_array_object = has_ext("GL_ATI_vertex_attrib_array_object");
GLAD_GL_ATI_vertex_streams = has_ext("GL_ATI_vertex_streams");
GLAD_GL_EXT_422_pixels = has_ext("GL_EXT_422_pixels");
+ GLAD_GL_EXT_EGL_image_storage = has_ext("GL_EXT_EGL_image_storage");
GLAD_GL_EXT_abgr = has_ext("GL_EXT_abgr");
GLAD_GL_EXT_bgra = has_ext("GL_EXT_bgra");
GLAD_GL_EXT_bindable_uniform = has_ext("GL_EXT_bindable_uniform");
@@ -8077,6 +8113,8 @@ static int find_extensionsGL(void) {
GLAD_GL_EXT_semaphore_win32 = has_ext("GL_EXT_semaphore_win32");
GLAD_GL_EXT_separate_shader_objects = has_ext("GL_EXT_separate_shader_objects");
GLAD_GL_EXT_separate_specular_color = has_ext("GL_EXT_separate_specular_color");
+ GLAD_GL_EXT_shader_framebuffer_fetch = has_ext("GL_EXT_shader_framebuffer_fetch");
+ GLAD_GL_EXT_shader_framebuffer_fetch_non_coherent = has_ext("GL_EXT_shader_framebuffer_fetch_non_coherent");
GLAD_GL_EXT_shader_image_load_formatted = has_ext("GL_EXT_shader_image_load_formatted");
GLAD_GL_EXT_shader_image_load_store = has_ext("GL_EXT_shader_image_load_store");
GLAD_GL_EXT_shader_integer_mix = has_ext("GL_EXT_shader_integer_mix");
@@ -8135,6 +8173,7 @@ static int find_extensionsGL(void) {
GLAD_GL_INGR_blend_func_separate = has_ext("GL_INGR_blend_func_separate");
GLAD_GL_INGR_color_clamp = has_ext("GL_INGR_color_clamp");
GLAD_GL_INGR_interlace_read = has_ext("GL_INGR_interlace_read");
+ GLAD_GL_INTEL_blackhole_render = has_ext("GL_INTEL_blackhole_render");
GLAD_GL_INTEL_conservative_rasterization = has_ext("GL_INTEL_conservative_rasterization");
GLAD_GL_INTEL_fragment_shader_ordering = has_ext("GL_INTEL_fragment_shader_ordering");
GLAD_GL_INTEL_framebuffer_CMAA = has_ext("GL_INTEL_framebuffer_CMAA");
@@ -8552,6 +8591,7 @@ int gladLoadGLLoader(GLADloadproc load) {
load_GL_ATI_vertex_array_object(load);
load_GL_ATI_vertex_attrib_array_object(load);
load_GL_ATI_vertex_streams(load);
+ load_GL_EXT_EGL_image_storage(load);
load_GL_EXT_bindable_uniform(load);
load_GL_EXT_blend_color(load);
load_GL_EXT_blend_equation_separate(load);
@@ -8599,6 +8639,7 @@ int gladLoadGLLoader(GLADloadproc load) {
load_GL_EXT_semaphore_fd(load);
load_GL_EXT_semaphore_win32(load);
load_GL_EXT_separate_shader_objects(load);
+ load_GL_EXT_shader_framebuffer_fetch_non_coherent(load);
load_GL_EXT_shader_image_load_store(load);
load_GL_EXT_stencil_clear_tag(load);
load_GL_EXT_stencil_two_side(load);
@@ -8606,7 +8647,6 @@ int gladLoadGLLoader(GLADloadproc load) {
load_GL_EXT_texture3D(load);
load_GL_EXT_texture_array(load);
load_GL_EXT_texture_buffer_object(load);
- load_GL_EXT_texture_filter_minmax(load);
load_GL_EXT_texture_integer(load);
load_GL_EXT_texture_object(load);
load_GL_EXT_texture_perturb_normal(load);
diff --git a/src/common/logging/backend.cpp b/src/common/logging/backend.cpp
index ed1e93cc2..59b999935 100644
--- a/src/common/logging/backend.cpp
+++ b/src/common/logging/backend.cpp
@@ -3,19 +3,20 @@
// Refer to the license.txt file included.
#include <algorithm>
-#include <array>
+#include <atomic>
#include <chrono>
#include <climits>
#include <condition_variable>
#include <memory>
+#include <mutex>
#include <thread>
+#include <vector>
#ifdef _WIN32
#include <share.h> // For _SH_DENYWR
#else
#define _SH_DENYWR 0
#endif
#include "common/assert.h"
-#include "common/common_funcs.h" // snprintf compatibility define
#include "common/logging/backend.h"
#include "common/logging/log.h"
#include "common/logging/text_formatter.h"
@@ -48,11 +49,11 @@ public:
backends.push_back(std::move(backend));
}
- void RemoveBackend(const std::string& backend_name) {
+ void RemoveBackend(std::string_view backend_name) {
std::lock_guard<std::mutex> lock(writing_mutex);
- auto it = std::remove_if(backends.begin(), backends.end(), [&backend_name](const auto& i) {
- return !strcmp(i->GetName(), backend_name.c_str());
- });
+ const auto it =
+ std::remove_if(backends.begin(), backends.end(),
+ [&backend_name](const auto& i) { return backend_name == i->GetName(); });
backends.erase(it, backends.end());
}
@@ -64,10 +65,10 @@ public:
filter = f;
}
- Backend* GetBackend(const std::string& backend_name) {
- auto it = std::find_if(backends.begin(), backends.end(), [&backend_name](const auto& i) {
- return !strcmp(i->GetName(), backend_name.c_str());
- });
+ Backend* GetBackend(std::string_view backend_name) {
+ const auto it =
+ std::find_if(backends.begin(), backends.end(),
+ [&backend_name](const auto& i) { return backend_name == i->GetName(); });
if (it == backends.end())
return nullptr;
return it->get();
@@ -265,11 +266,11 @@ void AddBackend(std::unique_ptr<Backend> backend) {
Impl::Instance().AddBackend(std::move(backend));
}
-void RemoveBackend(const std::string& backend_name) {
+void RemoveBackend(std::string_view backend_name) {
Impl::Instance().RemoveBackend(backend_name);
}
-Backend* GetBackend(const std::string& backend_name) {
+Backend* GetBackend(std::string_view backend_name) {
return Impl::Instance().GetBackend(backend_name);
}
diff --git a/src/common/logging/backend.h b/src/common/logging/backend.h
index 57cdf6b2d..b3f4b9cef 100644
--- a/src/common/logging/backend.h
+++ b/src/common/logging/backend.h
@@ -4,10 +4,9 @@
#pragma once
#include <chrono>
-#include <cstdarg>
#include <memory>
#include <string>
-#include <utility>
+#include <string_view>
#include "common/file_util.h"
#include "common/logging/filter.h"
#include "common/logging/log.h"
@@ -106,9 +105,9 @@ private:
void AddBackend(std::unique_ptr<Backend> backend);
-void RemoveBackend(const std::string& backend_name);
+void RemoveBackend(std::string_view backend_name);
-Backend* GetBackend(const std::string& backend_name);
+Backend* GetBackend(std::string_view backend_name);
/**
* Returns the name of the passed log class as a C-string. Subclasses are separated by periods
diff --git a/src/common/logging/filter.cpp b/src/common/logging/filter.cpp
index 6ed087beb..2dd331152 100644
--- a/src/common/logging/filter.cpp
+++ b/src/common/logging/filter.cpp
@@ -8,39 +8,9 @@
#include "common/string_util.h"
namespace Log {
-
-Filter::Filter(Level default_level) {
- ResetAll(default_level);
-}
-
-void Filter::ResetAll(Level level) {
- class_levels.fill(level);
-}
-
-void Filter::SetClassLevel(Class log_class, Level level) {
- class_levels[static_cast<size_t>(log_class)] = level;
-}
-
-void Filter::ParseFilterString(const std::string& filter_str) {
- auto clause_begin = filter_str.cbegin();
- while (clause_begin != filter_str.cend()) {
- auto clause_end = std::find(clause_begin, filter_str.cend(), ' ');
-
- // If clause isn't empty
- if (clause_end != clause_begin) {
- ParseFilterRule(clause_begin, clause_end);
- }
-
- if (clause_end != filter_str.cend()) {
- // Skip over the whitespace
- ++clause_end;
- }
- clause_begin = clause_end;
- }
-}
-
+namespace {
template <typename It>
-static Level GetLevelByName(const It begin, const It end) {
+Level GetLevelByName(const It begin, const It end) {
for (u8 i = 0; i < static_cast<u8>(Level::Count); ++i) {
const char* level_name = GetLevelName(static_cast<Level>(i));
if (Common::ComparePartialString(begin, end, level_name)) {
@@ -51,7 +21,7 @@ static Level GetLevelByName(const It begin, const It end) {
}
template <typename It>
-static Class GetClassByName(const It begin, const It end) {
+Class GetClassByName(const It begin, const It end) {
for (ClassType i = 0; i < static_cast<ClassType>(Class::Count); ++i) {
const char* level_name = GetLogClassName(static_cast<Class>(i));
if (Common::ComparePartialString(begin, end, level_name)) {
@@ -61,8 +31,8 @@ static Class GetClassByName(const It begin, const It end) {
return Class::Count;
}
-bool Filter::ParseFilterRule(const std::string::const_iterator begin,
- const std::string::const_iterator end) {
+template <typename Iterator>
+bool ParseFilterRule(Filter& instance, Iterator begin, Iterator end) {
auto level_separator = std::find(begin, end, ':');
if (level_separator == end) {
LOG_ERROR(Log, "Invalid log filter. Must specify a log level after `:`: {}",
@@ -77,7 +47,7 @@ bool Filter::ParseFilterRule(const std::string::const_iterator begin,
}
if (Common::ComparePartialString(begin, level_separator, "*")) {
- ResetAll(level);
+ instance.ResetAll(level);
return true;
}
@@ -87,9 +57,40 @@ bool Filter::ParseFilterRule(const std::string::const_iterator begin,
return false;
}
- SetClassLevel(log_class, level);
+ instance.SetClassLevel(log_class, level);
return true;
}
+} // Anonymous namespace
+
+Filter::Filter(Level default_level) {
+ ResetAll(default_level);
+}
+
+void Filter::ResetAll(Level level) {
+ class_levels.fill(level);
+}
+
+void Filter::SetClassLevel(Class log_class, Level level) {
+ class_levels[static_cast<size_t>(log_class)] = level;
+}
+
+void Filter::ParseFilterString(std::string_view filter_view) {
+ auto clause_begin = filter_view.cbegin();
+ while (clause_begin != filter_view.cend()) {
+ auto clause_end = std::find(clause_begin, filter_view.cend(), ' ');
+
+ // If clause isn't empty
+ if (clause_end != clause_begin) {
+ ParseFilterRule(*this, clause_begin, clause_end);
+ }
+
+ if (clause_end != filter_view.cend()) {
+ // Skip over the whitespace
+ ++clause_end;
+ }
+ clause_begin = clause_end;
+ }
+}
bool Filter::CheckMessage(Class log_class, Level level) const {
return static_cast<u8>(level) >= static_cast<u8>(class_levels[static_cast<size_t>(log_class)]);
diff --git a/src/common/logging/filter.h b/src/common/logging/filter.h
index 2a4f7c845..d5ffc5a58 100644
--- a/src/common/logging/filter.h
+++ b/src/common/logging/filter.h
@@ -6,7 +6,7 @@
#include <array>
#include <cstddef>
-#include <string>
+#include <string_view>
#include "common/logging/log.h"
namespace Log {
@@ -40,9 +40,7 @@ public:
* - `Service:Info` -- Sets the level of Service to Info.
* - `Service.FS:Trace` -- Sets the level of the Service.FS class to Trace.
*/
- void ParseFilterString(const std::string& filter_str);
- bool ParseFilterRule(const std::string::const_iterator start,
- const std::string::const_iterator end);
+ void ParseFilterString(std::string_view filter_view);
/// Matches class/level combination against the filter, returning true if it passed.
bool CheckMessage(Class log_class, Level level) const;
diff --git a/src/common/param_package.cpp b/src/common/param_package.cpp
index e0df430ab..9526ca0c6 100644
--- a/src/common/param_package.cpp
+++ b/src/common/param_package.cpp
@@ -3,7 +3,9 @@
// Refer to the license.txt file included.
#include <array>
+#include <utility>
#include <vector>
+
#include "common/logging/log.h"
#include "common/param_package.h"
#include "common/string_util.h"
@@ -12,10 +14,11 @@ namespace Common {
constexpr char KEY_VALUE_SEPARATOR = ':';
constexpr char PARAM_SEPARATOR = ',';
+
constexpr char ESCAPE_CHARACTER = '$';
-const std::string KEY_VALUE_SEPARATOR_ESCAPE{ESCAPE_CHARACTER, '0'};
-const std::string PARAM_SEPARATOR_ESCAPE{ESCAPE_CHARACTER, '1'};
-const std::string ESCAPE_CHARACTER_ESCAPE{ESCAPE_CHARACTER, '2'};
+constexpr char KEY_VALUE_SEPARATOR_ESCAPE[] = "$0";
+constexpr char PARAM_SEPARATOR_ESCAPE[] = "$1";
+constexpr char ESCAPE_CHARACTER_ESCAPE[] = "$2";
ParamPackage::ParamPackage(const std::string& serialized) {
std::vector<std::string> pairs;
@@ -35,7 +38,7 @@ ParamPackage::ParamPackage(const std::string& serialized) {
part = Common::ReplaceAll(part, ESCAPE_CHARACTER_ESCAPE, {ESCAPE_CHARACTER});
}
- Set(key_value[0], key_value[1]);
+ Set(key_value[0], std::move(key_value[1]));
}
}
@@ -101,16 +104,16 @@ float ParamPackage::Get(const std::string& key, float default_value) const {
}
}
-void ParamPackage::Set(const std::string& key, const std::string& value) {
- data[key] = value;
+void ParamPackage::Set(const std::string& key, std::string value) {
+ data.insert_or_assign(key, std::move(value));
}
void ParamPackage::Set(const std::string& key, int value) {
- data[key] = std::to_string(value);
+ data.insert_or_assign(key, std::to_string(value));
}
void ParamPackage::Set(const std::string& key, float value) {
- data[key] = std::to_string(value);
+ data.insert_or_assign(key, std::to_string(value));
}
bool ParamPackage::Has(const std::string& key) const {
diff --git a/src/common/param_package.h b/src/common/param_package.h
index c4c11b221..7842cd4ef 100644
--- a/src/common/param_package.h
+++ b/src/common/param_package.h
@@ -28,7 +28,7 @@ public:
std::string Get(const std::string& key, const std::string& default_value) const;
int Get(const std::string& key, int default_value) const;
float Get(const std::string& key, float default_value) const;
- void Set(const std::string& key, const std::string& value);
+ void Set(const std::string& key, std::string value);
void Set(const std::string& key, int value);
void Set(const std::string& key, float value);
bool Has(const std::string& key) const;
diff --git a/src/core/file_sys/partition_filesystem.cpp b/src/core/file_sys/partition_filesystem.cpp
index d4097a510..7ccca1089 100644
--- a/src/core/file_sys/partition_filesystem.cpp
+++ b/src/core/file_sys/partition_filesystem.cpp
@@ -76,7 +76,7 @@ std::vector<std::shared_ptr<VfsFile>> PartitionFilesystem::GetFiles() const {
}
std::vector<std::shared_ptr<VfsDirectory>> PartitionFilesystem::GetSubdirectories() const {
- return {};
+ return pfs_dirs;
}
std::string PartitionFilesystem::GetName() const {
diff --git a/src/core/file_sys/vfs_offset.cpp b/src/core/file_sys/vfs_offset.cpp
index 288499cb5..31fdd9aa1 100644
--- a/src/core/file_sys/vfs_offset.cpp
+++ b/src/core/file_sys/vfs_offset.cpp
@@ -2,13 +2,15 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <utility>
+
#include "core/file_sys/vfs_offset.h"
namespace FileSys {
OffsetVfsFile::OffsetVfsFile(std::shared_ptr<VfsFile> file_, size_t size_, size_t offset_,
- const std::string& name_)
- : file(file_), offset(offset_), size(size_), name(name_) {}
+ std::string name_)
+ : file(std::move(file_)), offset(offset_), size(size_), name(std::move(name_)) {}
std::string OffsetVfsFile::GetName() const {
return name.empty() ? file->GetName() : name;
diff --git a/src/core/file_sys/vfs_offset.h b/src/core/file_sys/vfs_offset.h
index adc615b38..2e16e47eb 100644
--- a/src/core/file_sys/vfs_offset.h
+++ b/src/core/file_sys/vfs_offset.h
@@ -14,7 +14,7 @@ namespace FileSys {
// the size of this wrapper.
struct OffsetVfsFile : public VfsFile {
OffsetVfsFile(std::shared_ptr<VfsFile> file, size_t size, size_t offset = 0,
- const std::string& new_name = "");
+ std::string new_name = "");
std::string GetName() const override;
size_t GetSize() const override;
diff --git a/src/core/hle/ipc_helpers.h b/src/core/hle/ipc_helpers.h
index 24605a273..8b5b06f31 100644
--- a/src/core/hle/ipc_helpers.h
+++ b/src/core/hle/ipc_helpers.h
@@ -175,6 +175,25 @@ public:
void Push(const First& first_value, const Other&... other_values);
/**
+ * Helper function for pushing strongly-typed enumeration values.
+ *
+ * @tparam Enum The enumeration type to be pushed
+ *
+ * @param value The value to push.
+ *
+ * @note The underlying size of the enumeration type is the size of the
+ * data that gets pushed. e.g. "enum class SomeEnum : u16" will
+ * push a u16-sized amount of data.
+ */
+ template <typename Enum>
+ void PushEnum(Enum value) {
+ static_assert(std::is_enum_v<Enum>, "T must be an enum type within a PushEnum call.");
+ static_assert(!std::is_convertible_v<Enum, int>,
+ "enum type in PushEnum must be a strongly typed enum.");
+ Push(static_cast<std::underlying_type_t<Enum>>(value));
+ }
+
+ /**
* @brief Copies the content of the given trivially copyable class to the buffer as a normal
* param
* @note: The input class must be correctly packed/padded to fit hardware layout.
diff --git a/src/core/hle/kernel/address_arbiter.cpp b/src/core/hle/kernel/address_arbiter.cpp
index dcc68aabf..233fdab25 100644
--- a/src/core/hle/kernel/address_arbiter.cpp
+++ b/src/core/hle/kernel/address_arbiter.cpp
@@ -20,7 +20,7 @@ namespace AddressArbiter {
static ResultCode WaitForAddress(VAddr address, s64 timeout) {
SharedPtr<Thread> current_thread = GetCurrentThread();
current_thread->arb_wait_address = address;
- current_thread->status = THREADSTATUS_WAIT_ARB;
+ current_thread->status = ThreadStatus::WaitArb;
current_thread->wakeup_callback = nullptr;
current_thread->WakeAfterDelay(timeout);
@@ -65,7 +65,7 @@ static void WakeThreads(std::vector<SharedPtr<Thread>>& waiting_threads, s32 num
// Signal the waiting threads.
for (size_t i = 0; i < last; i++) {
- ASSERT(waiting_threads[i]->status == THREADSTATUS_WAIT_ARB);
+ ASSERT(waiting_threads[i]->status == ThreadStatus::WaitArb);
waiting_threads[i]->SetWaitSynchronizationResult(RESULT_SUCCESS);
waiting_threads[i]->arb_wait_address = 0;
waiting_threads[i]->ResumeFromWait();
diff --git a/src/core/hle/kernel/hle_ipc.cpp b/src/core/hle/kernel/hle_ipc.cpp
index 8f40bdd5a..f24392520 100644
--- a/src/core/hle/kernel/hle_ipc.cpp
+++ b/src/core/hle/kernel/hle_ipc.cpp
@@ -38,7 +38,7 @@ SharedPtr<Event> HLERequestContext::SleepClientThread(SharedPtr<Thread> thread,
thread->wakeup_callback =
[context = *this, callback](ThreadWakeupReason reason, SharedPtr<Thread> thread,
SharedPtr<WaitObject> object, size_t index) mutable -> bool {
- ASSERT(thread->status == THREADSTATUS_WAIT_HLE_EVENT);
+ ASSERT(thread->status == ThreadStatus::WaitHLEEvent);
callback(thread, context, reason);
context.WriteToOutgoingCommandBuffer(*thread);
return true;
@@ -50,7 +50,7 @@ SharedPtr<Event> HLERequestContext::SleepClientThread(SharedPtr<Thread> thread,
}
event->Clear();
- thread->status = THREADSTATUS_WAIT_HLE_EVENT;
+ thread->status = ThreadStatus::WaitHLEEvent;
thread->wait_objects = {event};
event->AddWaitingThread(thread);
diff --git a/src/core/hle/kernel/mutex.cpp b/src/core/hle/kernel/mutex.cpp
index 65560226d..3f1de3258 100644
--- a/src/core/hle/kernel/mutex.cpp
+++ b/src/core/hle/kernel/mutex.cpp
@@ -28,7 +28,7 @@ static std::pair<SharedPtr<Thread>, u32> GetHighestPriorityMutexWaitingThread(
if (thread->mutex_wait_address != mutex_addr)
continue;
- ASSERT(thread->status == THREADSTATUS_WAIT_MUTEX);
+ ASSERT(thread->status == ThreadStatus::WaitMutex);
++num_waiters;
if (highest_priority_thread == nullptr ||
@@ -83,7 +83,7 @@ ResultCode Mutex::TryAcquire(VAddr address, Handle holding_thread_handle,
GetCurrentThread()->mutex_wait_address = address;
GetCurrentThread()->wait_handle = requesting_thread_handle;
- GetCurrentThread()->status = THREADSTATUS_WAIT_MUTEX;
+ GetCurrentThread()->status = ThreadStatus::WaitMutex;
GetCurrentThread()->wakeup_callback = nullptr;
// Update the lock holder thread's priority to prevent priority inversion.
@@ -121,7 +121,7 @@ ResultCode Mutex::Release(VAddr address) {
// Grant the mutex to the next waiting thread and resume it.
Memory::Write32(address, mutex_value);
- ASSERT(thread->status == THREADSTATUS_WAIT_MUTEX);
+ ASSERT(thread->status == ThreadStatus::WaitMutex);
thread->ResumeFromWait();
thread->lock_owner = nullptr;
diff --git a/src/core/hle/kernel/scheduler.cpp b/src/core/hle/kernel/scheduler.cpp
index 1f4abfbe8..f7e25cbf5 100644
--- a/src/core/hle/kernel/scheduler.cpp
+++ b/src/core/hle/kernel/scheduler.cpp
@@ -34,7 +34,7 @@ Thread* Scheduler::PopNextReadyThread() {
Thread* next = nullptr;
Thread* thread = GetCurrentThread();
- if (thread && thread->status == THREADSTATUS_RUNNING) {
+ if (thread && thread->status == ThreadStatus::Running) {
// We have to do better than the current thread.
// This call returns null when that's not possible.
next = ready_queue.pop_first_better(thread->current_priority);
@@ -57,17 +57,17 @@ void Scheduler::SwitchContext(Thread* new_thread) {
previous_thread->last_running_ticks = CoreTiming::GetTicks();
cpu_core->SaveContext(previous_thread->context);
- if (previous_thread->status == THREADSTATUS_RUNNING) {
+ if (previous_thread->status == ThreadStatus::Running) {
// This is only the case when a reschedule is triggered without the current thread
// yielding execution (i.e. an event triggered, system core time-sliced, etc)
ready_queue.push_front(previous_thread->current_priority, previous_thread);
- previous_thread->status = THREADSTATUS_READY;
+ previous_thread->status = ThreadStatus::Ready;
}
}
// Load context of new thread
if (new_thread) {
- ASSERT_MSG(new_thread->status == THREADSTATUS_READY,
+ ASSERT_MSG(new_thread->status == ThreadStatus::Ready,
"Thread must be ready to become running.");
// Cancel any outstanding wakeup events for this thread
@@ -78,7 +78,7 @@ void Scheduler::SwitchContext(Thread* new_thread) {
current_thread = new_thread;
ready_queue.remove(new_thread->current_priority, new_thread);
- new_thread->status = THREADSTATUS_RUNNING;
+ new_thread->status = ThreadStatus::Running;
if (previous_process != current_thread->owner_process) {
Core::CurrentProcess() = current_thread->owner_process;
@@ -129,14 +129,14 @@ void Scheduler::RemoveThread(Thread* thread) {
void Scheduler::ScheduleThread(Thread* thread, u32 priority) {
std::lock_guard<std::mutex> lock(scheduler_mutex);
- ASSERT(thread->status == THREADSTATUS_READY);
+ ASSERT(thread->status == ThreadStatus::Ready);
ready_queue.push_back(priority, thread);
}
void Scheduler::UnscheduleThread(Thread* thread, u32 priority) {
std::lock_guard<std::mutex> lock(scheduler_mutex);
- ASSERT(thread->status == THREADSTATUS_READY);
+ ASSERT(thread->status == ThreadStatus::Ready);
ready_queue.remove(priority, thread);
}
@@ -144,7 +144,7 @@ void Scheduler::SetThreadPriority(Thread* thread, u32 priority) {
std::lock_guard<std::mutex> lock(scheduler_mutex);
// If thread was ready, adjust queues
- if (thread->status == THREADSTATUS_READY)
+ if (thread->status == ThreadStatus::Ready)
ready_queue.move(thread, thread->current_priority, priority);
else
ready_queue.prepare(priority);
diff --git a/src/core/hle/kernel/server_session.cpp b/src/core/hle/kernel/server_session.cpp
index 19d17af4f..29b163528 100644
--- a/src/core/hle/kernel/server_session.cpp
+++ b/src/core/hle/kernel/server_session.cpp
@@ -110,10 +110,10 @@ ResultCode ServerSession::HandleSyncRequest(SharedPtr<Thread> thread) {
result = hle_handler->HandleSyncRequest(context);
}
- if (thread->status == THREADSTATUS_RUNNING) {
+ if (thread->status == ThreadStatus::Running) {
// Put the thread to sleep until the server replies, it will be awoken in
// svcReplyAndReceive for LLE servers.
- thread->status = THREADSTATUS_WAIT_IPC;
+ thread->status = ThreadStatus::WaitIPC;
if (hle_handler != nullptr) {
// For HLE services, we put the request threads to sleep for a short duration to
diff --git a/src/core/hle/kernel/svc.cpp b/src/core/hle/kernel/svc.cpp
index c6b0bb442..6b2995fe2 100644
--- a/src/core/hle/kernel/svc.cpp
+++ b/src/core/hle/kernel/svc.cpp
@@ -133,7 +133,7 @@ static ResultCode GetProcessId(u32* process_id, Handle process_handle) {
/// Default thread wakeup callback for WaitSynchronization
static bool DefaultThreadWakeupCallback(ThreadWakeupReason reason, SharedPtr<Thread> thread,
SharedPtr<WaitObject> object, size_t index) {
- ASSERT(thread->status == THREADSTATUS_WAIT_SYNCH_ANY);
+ ASSERT(thread->status == ThreadStatus::WaitSynchAny);
if (reason == ThreadWakeupReason::Timeout) {
thread->SetWaitSynchronizationResult(RESULT_TIMEOUT);
@@ -197,7 +197,7 @@ static ResultCode WaitSynchronization(Handle* index, VAddr handles_address, u64
object->AddWaitingThread(thread);
thread->wait_objects = std::move(objects);
- thread->status = THREADSTATUS_WAIT_SYNCH_ANY;
+ thread->status = ThreadStatus::WaitSynchAny;
// Create an event to wake the thread up after the specified nanosecond delay has passed
thread->WakeAfterDelay(nano_seconds);
@@ -217,7 +217,7 @@ static ResultCode CancelSynchronization(Handle thread_handle) {
return ERR_INVALID_HANDLE;
}
- ASSERT(thread->status == THREADSTATUS_WAIT_SYNCH_ANY);
+ ASSERT(thread->status == ThreadStatus::WaitSynchAny);
thread->SetWaitSynchronizationResult(
ResultCode(ErrorModule::Kernel, ErrCodes::SynchronizationCanceled));
thread->ResumeFromWait();
@@ -468,8 +468,8 @@ static void ExitProcess() {
continue;
// TODO(Subv): When are the other running/ready threads terminated?
- ASSERT_MSG(thread->status == THREADSTATUS_WAIT_SYNCH_ANY ||
- thread->status == THREADSTATUS_WAIT_SYNCH_ALL,
+ ASSERT_MSG(thread->status == ThreadStatus::WaitSynchAny ||
+ thread->status == ThreadStatus::WaitSynchAll,
"Exiting processes with non-waiting threads is currently unimplemented");
thread->Stop();
@@ -545,7 +545,7 @@ static ResultCode StartThread(Handle thread_handle) {
return ERR_INVALID_HANDLE;
}
- ASSERT(thread->status == THREADSTATUS_DORMANT);
+ ASSERT(thread->status == ThreadStatus::Dormant);
thread->ResumeFromWait();
Core::System::GetInstance().CpuCore(thread->processor_id).PrepareReschedule();
@@ -596,7 +596,7 @@ static ResultCode WaitProcessWideKeyAtomic(VAddr mutex_addr, VAddr condition_var
current_thread->condvar_wait_address = condition_variable_addr;
current_thread->mutex_wait_address = mutex_addr;
current_thread->wait_handle = thread_handle;
- current_thread->status = THREADSTATUS_WAIT_MUTEX;
+ current_thread->status = ThreadStatus::WaitMutex;
current_thread->wakeup_callback = nullptr;
current_thread->WakeAfterDelay(nano_seconds);
@@ -656,7 +656,7 @@ static ResultCode SignalProcessWideKey(VAddr condition_variable_addr, s32 target
if (mutex_val == 0) {
// We were able to acquire the mutex, resume this thread.
Memory::Write32(thread->mutex_wait_address, thread->wait_handle);
- ASSERT(thread->status == THREADSTATUS_WAIT_MUTEX);
+ ASSERT(thread->status == ThreadStatus::WaitMutex);
thread->ResumeFromWait();
auto lock_owner = thread->lock_owner;
@@ -672,8 +672,8 @@ static ResultCode SignalProcessWideKey(VAddr condition_variable_addr, s32 target
Handle owner_handle = static_cast<Handle>(mutex_val & Mutex::MutexOwnerMask);
auto owner = g_handle_table.Get<Thread>(owner_handle);
ASSERT(owner);
- ASSERT(thread->status != THREADSTATUS_RUNNING);
- thread->status = THREADSTATUS_WAIT_MUTEX;
+ ASSERT(thread->status != ThreadStatus::Running);
+ thread->status = ThreadStatus::WaitMutex;
thread->wakeup_callback = nullptr;
// Signal that the mutex now has a waiting thread.
diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp
index e7fd6c842..53f2e861e 100644
--- a/src/core/hle/kernel/thread.cpp
+++ b/src/core/hle/kernel/thread.cpp
@@ -30,7 +30,7 @@ namespace Kernel {
static CoreTiming::EventType* ThreadWakeupEventType = nullptr;
bool Thread::ShouldWait(Thread* thread) const {
- return status != THREADSTATUS_DEAD;
+ return status != ThreadStatus::Dead;
}
void Thread::Acquire(Thread* thread) {
@@ -63,11 +63,11 @@ void Thread::Stop() {
// Clean up thread from ready queue
// This is only needed when the thread is termintated forcefully (SVC TerminateProcess)
- if (status == THREADSTATUS_READY) {
+ if (status == ThreadStatus::Ready) {
scheduler->UnscheduleThread(this, current_priority);
}
- status = THREADSTATUS_DEAD;
+ status = ThreadStatus::Dead;
WakeupAllWaitingThreads();
@@ -86,7 +86,7 @@ void Thread::Stop() {
void WaitCurrentThread_Sleep() {
Thread* thread = GetCurrentThread();
- thread->status = THREADSTATUS_WAIT_SLEEP;
+ thread->status = ThreadStatus::WaitSleep;
}
void ExitCurrentThread() {
@@ -110,10 +110,9 @@ static void ThreadWakeupCallback(u64 thread_handle, int cycles_late) {
bool resume = true;
- if (thread->status == THREADSTATUS_WAIT_SYNCH_ANY ||
- thread->status == THREADSTATUS_WAIT_SYNCH_ALL ||
- thread->status == THREADSTATUS_WAIT_HLE_EVENT) {
-
+ if (thread->status == ThreadStatus::WaitSynchAny ||
+ thread->status == ThreadStatus::WaitSynchAll ||
+ thread->status == ThreadStatus::WaitHLEEvent) {
// Remove the thread from each of its waiting objects' waitlists
for (auto& object : thread->wait_objects)
object->RemoveWaitingThread(thread.get());
@@ -126,7 +125,7 @@ static void ThreadWakeupCallback(u64 thread_handle, int cycles_late) {
if (thread->mutex_wait_address != 0 || thread->condvar_wait_address != 0 ||
thread->wait_handle) {
- ASSERT(thread->status == THREADSTATUS_WAIT_MUTEX);
+ ASSERT(thread->status == ThreadStatus::WaitMutex);
thread->mutex_wait_address = 0;
thread->condvar_wait_address = 0;
thread->wait_handle = 0;
@@ -141,7 +140,7 @@ static void ThreadWakeupCallback(u64 thread_handle, int cycles_late) {
}
if (thread->arb_wait_address != 0) {
- ASSERT(thread->status == THREADSTATUS_WAIT_ARB);
+ ASSERT(thread->status == ThreadStatus::WaitArb);
thread->arb_wait_address = 0;
}
@@ -178,28 +177,28 @@ void Thread::ResumeFromWait() {
ASSERT_MSG(wait_objects.empty(), "Thread is waking up while waiting for objects");
switch (status) {
- case THREADSTATUS_WAIT_SYNCH_ALL:
- case THREADSTATUS_WAIT_SYNCH_ANY:
- case THREADSTATUS_WAIT_HLE_EVENT:
- case THREADSTATUS_WAIT_SLEEP:
- case THREADSTATUS_WAIT_IPC:
- case THREADSTATUS_WAIT_MUTEX:
- case THREADSTATUS_WAIT_ARB:
+ case ThreadStatus::WaitSynchAll:
+ case ThreadStatus::WaitSynchAny:
+ case ThreadStatus::WaitHLEEvent:
+ case ThreadStatus::WaitSleep:
+ case ThreadStatus::WaitIPC:
+ case ThreadStatus::WaitMutex:
+ case ThreadStatus::WaitArb:
break;
- case THREADSTATUS_READY:
+ case ThreadStatus::Ready:
// The thread's wakeup callback must have already been cleared when the thread was first
// awoken.
ASSERT(wakeup_callback == nullptr);
// If the thread is waiting on multiple wait objects, it might be awoken more than once
// before actually resuming. We can ignore subsequent wakeups if the thread status has
- // already been set to THREADSTATUS_READY.
+ // already been set to ThreadStatus::Ready.
return;
- case THREADSTATUS_RUNNING:
+ case ThreadStatus::Running:
DEBUG_ASSERT_MSG(false, "Thread with object id {} has already resumed.", GetObjectId());
return;
- case THREADSTATUS_DEAD:
+ case ThreadStatus::Dead:
// This should never happen, as threads must complete before being stopped.
DEBUG_ASSERT_MSG(false, "Thread with object id {} cannot be resumed because it's DEAD.",
GetObjectId());
@@ -208,7 +207,7 @@ void Thread::ResumeFromWait() {
wakeup_callback = nullptr;
- status = THREADSTATUS_READY;
+ status = ThreadStatus::Ready;
boost::optional<s32> new_processor_id = GetNextProcessorId(affinity_mask);
if (!new_processor_id) {
@@ -310,7 +309,7 @@ ResultVal<SharedPtr<Thread>> Thread::Create(std::string name, VAddr entry_point,
SharedPtr<Thread> thread(new Thread);
thread->thread_id = NewThreadId();
- thread->status = THREADSTATUS_DORMANT;
+ thread->status = ThreadStatus::Dormant;
thread->entry_point = entry_point;
thread->stack_top = stack_top;
thread->nominal_priority = thread->current_priority = priority;
@@ -471,7 +470,7 @@ void Thread::ChangeCore(u32 core, u64 mask) {
ideal_core = core;
affinity_mask = mask;
- if (status != THREADSTATUS_READY) {
+ if (status != ThreadStatus::Ready) {
return;
}
diff --git a/src/core/hle/kernel/thread.h b/src/core/hle/kernel/thread.h
index f1e759802..47881ec20 100644
--- a/src/core/hle/kernel/thread.h
+++ b/src/core/hle/kernel/thread.h
@@ -36,18 +36,18 @@ enum ThreadProcessorId : s32 {
(1 << THREADPROCESSORID_2) | (1 << THREADPROCESSORID_3)
};
-enum ThreadStatus {
- THREADSTATUS_RUNNING, ///< Currently running
- THREADSTATUS_READY, ///< Ready to run
- THREADSTATUS_WAIT_HLE_EVENT, ///< Waiting for hle event to finish
- THREADSTATUS_WAIT_SLEEP, ///< Waiting due to a SleepThread SVC
- THREADSTATUS_WAIT_IPC, ///< Waiting for the reply from an IPC request
- THREADSTATUS_WAIT_SYNCH_ANY, ///< Waiting due to WaitSynch1 or WaitSynchN with wait_all = false
- THREADSTATUS_WAIT_SYNCH_ALL, ///< Waiting due to WaitSynchronizationN with wait_all = true
- THREADSTATUS_WAIT_MUTEX, ///< Waiting due to an ArbitrateLock/WaitProcessWideKey svc
- THREADSTATUS_WAIT_ARB, ///< Waiting due to a SignalToAddress/WaitForAddress svc
- THREADSTATUS_DORMANT, ///< Created but not yet made ready
- THREADSTATUS_DEAD ///< Run to completion, or forcefully terminated
+enum class ThreadStatus {
+ Running, ///< Currently running
+ Ready, ///< Ready to run
+ WaitHLEEvent, ///< Waiting for hle event to finish
+ WaitSleep, ///< Waiting due to a SleepThread SVC
+ WaitIPC, ///< Waiting for the reply from an IPC request
+ WaitSynchAny, ///< Waiting due to WaitSynch1 or WaitSynchN with wait_all = false
+ WaitSynchAll, ///< Waiting due to WaitSynchronizationN with wait_all = true
+ WaitMutex, ///< Waiting due to an ArbitrateLock/WaitProcessWideKey svc
+ WaitArb, ///< Waiting due to a SignalToAddress/WaitForAddress svc
+ Dormant, ///< Created but not yet made ready
+ Dead ///< Run to completion, or forcefully terminated
};
enum class ThreadWakeupReason {
@@ -194,14 +194,14 @@ public:
* with wait_all = true.
*/
bool IsSleepingOnWaitAll() const {
- return status == THREADSTATUS_WAIT_SYNCH_ALL;
+ return status == ThreadStatus::WaitSynchAll;
}
ARM_Interface::ThreadContext context;
u32 thread_id;
- u32 status;
+ ThreadStatus status;
VAddr entry_point;
VAddr stack_top;
diff --git a/src/core/hle/kernel/wait_object.cpp b/src/core/hle/kernel/wait_object.cpp
index b08ac72c1..eb3c92e66 100644
--- a/src/core/hle/kernel/wait_object.cpp
+++ b/src/core/hle/kernel/wait_object.cpp
@@ -38,9 +38,9 @@ SharedPtr<Thread> WaitObject::GetHighestPriorityReadyThread() {
for (const auto& thread : waiting_threads) {
// The list of waiting threads must not contain threads that are not waiting to be awakened.
- ASSERT_MSG(thread->status == THREADSTATUS_WAIT_SYNCH_ANY ||
- thread->status == THREADSTATUS_WAIT_SYNCH_ALL ||
- thread->status == THREADSTATUS_WAIT_HLE_EVENT,
+ ASSERT_MSG(thread->status == ThreadStatus::WaitSynchAny ||
+ thread->status == ThreadStatus::WaitSynchAll ||
+ thread->status == ThreadStatus::WaitHLEEvent,
"Inconsistent thread statuses in waiting_threads");
if (thread->current_priority >= candidate_priority)
@@ -49,10 +49,10 @@ SharedPtr<Thread> WaitObject::GetHighestPriorityReadyThread() {
if (ShouldWait(thread.get()))
continue;
- // A thread is ready to run if it's either in THREADSTATUS_WAIT_SYNCH_ANY or
- // in THREADSTATUS_WAIT_SYNCH_ALL and the rest of the objects it is waiting on are ready.
+ // A thread is ready to run if it's either in ThreadStatus::WaitSynchAny or
+ // in ThreadStatus::WaitSynchAll and the rest of the objects it is waiting on are ready.
bool ready_to_run = true;
- if (thread->status == THREADSTATUS_WAIT_SYNCH_ALL) {
+ if (thread->status == ThreadStatus::WaitSynchAll) {
ready_to_run = std::none_of(thread->wait_objects.begin(), thread->wait_objects.end(),
[&thread](const SharedPtr<WaitObject>& object) {
return object->ShouldWait(thread.get());
diff --git a/src/core/hle/service/acc/acc.cpp b/src/core/hle/service/acc/acc.cpp
index 8ee39b54c..3e1c2c0a0 100644
--- a/src/core/hle/service/acc/acc.cpp
+++ b/src/core/hle/service/acc/acc.cpp
@@ -82,14 +82,16 @@ private:
LOG_WARNING(Service_ACC, "(STUBBED) called");
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(RESULT_SUCCESS);
- rb.Push(true); // TODO: Check when this is supposed to return true and when not
+ rb.Push(false); // TODO: Check when this is supposed to return true and when not
}
void GetAccountId(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service_ACC, "(STUBBED) called");
- IPC::ResponseBuilder rb{ctx, 4};
- rb.Push(RESULT_SUCCESS);
- rb.Push<u64>(0x12345678ABCDEF);
+ // TODO(Subv): Find out what this actually does and implement it. Stub it as an error for
+ // now since we do not implement NNID. Returning a bogus id here will cause games to send
+ // invalid IPC requests after ListOpenUsers is called.
+ IPC::ResponseBuilder rb{ctx, 2};
+ rb.Push(ResultCode(-1));
}
};
@@ -104,7 +106,7 @@ void Module::Interface::ListAllUsers(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service_ACC, "(STUBBED) called");
// TODO(Subv): There is only one user for now.
const std::vector<u128> user_ids = {DEFAULT_USER_ID};
- ctx.WriteBuffer(user_ids.data(), user_ids.size() * sizeof(u128));
+ ctx.WriteBuffer(user_ids);
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(RESULT_SUCCESS);
}
@@ -113,7 +115,7 @@ void Module::Interface::ListOpenUsers(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service_ACC, "(STUBBED) called");
// TODO(Subv): There is only one user for now.
const std::vector<u128> user_ids = {DEFAULT_USER_ID};
- ctx.WriteBuffer(user_ids.data(), user_ids.size() * sizeof(u128));
+ ctx.WriteBuffer(user_ids);
IPC::ResponseBuilder rb{ctx, 2};
rb.Push(RESULT_SUCCESS);
}
diff --git a/src/core/hle/service/apm/interface.cpp b/src/core/hle/service/apm/interface.cpp
index 751d73f8d..ce943d829 100644
--- a/src/core/hle/service/apm/interface.cpp
+++ b/src/core/hle/service/apm/interface.cpp
@@ -20,6 +20,21 @@ public:
}
private:
+ enum class PerformanceConfiguration : u32 {
+ Config1 = 0x00010000,
+ Config2 = 0x00010001,
+ Config3 = 0x00010002,
+ Config4 = 0x00020000,
+ Config5 = 0x00020001,
+ Config6 = 0x00020002,
+ Config7 = 0x00020003,
+ Config8 = 0x00020004,
+ Config9 = 0x00020005,
+ Config10 = 0x00020006,
+ Config11 = 0x92220007,
+ Config12 = 0x92220008,
+ };
+
void SetPerformanceConfiguration(Kernel::HLERequestContext& ctx) {
IPC::RequestParser rp{ctx};
@@ -40,7 +55,7 @@ private:
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(RESULT_SUCCESS);
- rb.Push<u32>(0); // Performance configuration
+ rb.Push<u32>(static_cast<u32>(PerformanceConfiguration::Config1));
LOG_WARNING(Service_APM, "(STUBBED) called mode={}", static_cast<u32>(mode));
}
diff --git a/src/core/hle/service/audio/audout_u.cpp b/src/core/hle/service/audio/audout_u.cpp
index 4217ea4fb..154bc12da 100644
--- a/src/core/hle/service/audio/audout_u.cpp
+++ b/src/core/hle/service/audio/audout_u.cpp
@@ -2,6 +2,7 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <array>
#include <vector>
#include "common/logging/log.h"
#include "core/core_timing.h"
@@ -167,7 +168,7 @@ void AudOutU::ListAudioOutsImpl(Kernel::HLERequestContext& ctx) {
LOG_WARNING(Service_Audio, "(STUBBED) called");
IPC::RequestParser rp{ctx};
- const std::string audio_interface = "AudioInterface";
+ constexpr std::array<char, 15> audio_interface{{"AudioInterface"}};
ctx.WriteBuffer(audio_interface);
IPC::ResponseBuilder rb = rp.MakeBuilder(3, 0, 0);
diff --git a/src/core/hle/service/audio/audren_u.cpp b/src/core/hle/service/audio/audren_u.cpp
index 6903f52d6..e623f4f8e 100644
--- a/src/core/hle/service/audio/audren_u.cpp
+++ b/src/core/hle/service/audio/audren_u.cpp
@@ -2,6 +2,8 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <array>
+
#include "common/alignment.h"
#include "common/logging/log.h"
#include "core/core_timing.h"
@@ -298,7 +300,7 @@ private:
LOG_WARNING(Service_Audio, "(STUBBED) called");
IPC::RequestParser rp{ctx};
- const std::string audio_interface = "AudioInterface";
+ constexpr std::array<char, 15> audio_interface{{"AudioInterface"}};
ctx.WriteBuffer(audio_interface);
IPC::ResponseBuilder rb = rp.MakeBuilder(3, 0, 0);
@@ -323,7 +325,7 @@ private:
LOG_WARNING(Service_Audio, "(STUBBED) called");
IPC::RequestParser rp{ctx};
- const std::string audio_interface = "AudioDevice";
+ constexpr std::array<char, 12> audio_interface{{"AudioDevice"}};
ctx.WriteBuffer(audio_interface);
IPC::ResponseBuilder rb = rp.MakeBuilder(3, 0, 0);
diff --git a/src/core/loader/nca.cpp b/src/core/loader/nca.cpp
index e73b253b2..c80df23be 100644
--- a/src/core/loader/nca.cpp
+++ b/src/core/loader/nca.cpp
@@ -2,6 +2,7 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <utility>
#include <vector>
#include "common/file_util.h"
@@ -21,7 +22,7 @@
namespace Loader {
-AppLoader_NCA::AppLoader_NCA(FileSys::VirtualFile file) : AppLoader(file) {}
+AppLoader_NCA::AppLoader_NCA(FileSys::VirtualFile file) : AppLoader(std::move(file)) {}
FileType AppLoader_NCA::IdentifyType(const FileSys::VirtualFile& file) {
// TODO(DarkLordZach): Assuming everything is decrypted. Add crypto support.
diff --git a/src/core/loader/nro.cpp b/src/core/loader/nro.cpp
index 465b827bb..c020399f2 100644
--- a/src/core/loader/nro.cpp
+++ b/src/core/loader/nro.cpp
@@ -2,6 +2,7 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
+#include <utility>
#include <vector>
#include "common/common_funcs.h"
@@ -48,7 +49,7 @@ struct ModHeader {
};
static_assert(sizeof(ModHeader) == 0x1c, "ModHeader has incorrect size.");
-AppLoader_NRO::AppLoader_NRO(FileSys::VirtualFile file) : AppLoader(file) {}
+AppLoader_NRO::AppLoader_NRO(FileSys::VirtualFile file) : AppLoader(std::move(file)) {}
FileType AppLoader_NRO::IdentifyType(const FileSys::VirtualFile& file) {
// Read NSO header
diff --git a/src/core/loader/nso.cpp b/src/core/loader/nso.cpp
index c66561bf4..06b1b33f4 100644
--- a/src/core/loader/nso.cpp
+++ b/src/core/loader/nso.cpp
@@ -69,29 +69,18 @@ FileType AppLoader_NSO::IdentifyType(const FileSys::VirtualFile& file) {
static std::vector<u8> DecompressSegment(const std::vector<u8>& compressed_data,
const NsoSegmentHeader& header) {
std::vector<u8> uncompressed_data(header.size);
- const int bytes_uncompressed = LZ4_decompress_safe(
- reinterpret_cast<const char*>(compressed_data.data()),
- reinterpret_cast<char*>(uncompressed_data.data()), compressed_data.size(), header.size);
+ const int bytes_uncompressed =
+ LZ4_decompress_safe(reinterpret_cast<const char*>(compressed_data.data()),
+ reinterpret_cast<char*>(uncompressed_data.data()),
+ static_cast<int>(compressed_data.size()), header.size);
- ASSERT_MSG(bytes_uncompressed == header.size && bytes_uncompressed == uncompressed_data.size(),
+ ASSERT_MSG(bytes_uncompressed == static_cast<int>(header.size) &&
+ bytes_uncompressed == static_cast<int>(uncompressed_data.size()),
"{} != {} != {}", bytes_uncompressed, header.size, uncompressed_data.size());
return uncompressed_data;
}
-static std::vector<u8> ReadSegment(FileUtil::IOFile& file, const NsoSegmentHeader& header,
- size_t compressed_size) {
- std::vector<u8> compressed_data(compressed_size);
-
- file.Seek(header.offset, SEEK_SET);
- if (compressed_size != file.ReadBytes(compressed_data.data(), compressed_size)) {
- LOG_CRITICAL(Loader, "Failed to read {} NSO LZ4 compressed bytes", compressed_size);
- return {};
- }
-
- return DecompressSegment(compressed_data, header);
-}
-
static constexpr u32 PageAlignSize(u32 size) {
return (size + Memory::PAGE_MASK) & ~Memory::PAGE_MASK;
}
diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp
index dfbf80abd..d7328ff39 100644
--- a/src/video_core/engines/maxwell_3d.cpp
+++ b/src/video_core/engines/maxwell_3d.cpp
@@ -317,8 +317,6 @@ std::vector<Texture::FullTextureInfo> Maxwell3D::GetStageTextures(Regs::ShaderSt
auto& tex_info_buffer = fragment_shader.const_buffers[regs.tex_cb_index];
ASSERT(tex_info_buffer.enabled && tex_info_buffer.address != 0);
- GPUVAddr tic_base_address = regs.tic.TICAddress();
-
GPUVAddr tex_info_buffer_end = tex_info_buffer.address + tex_info_buffer.size;
// Offset into the texture constbuffer where the texture info begins.
diff --git a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
index 9b308b923..a1ac18a71 100644
--- a/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_decompiler.cpp
@@ -1405,7 +1405,7 @@ private:
// TEXS has two destination registers. RG goes into gpr0+0 and gpr0+1, and BA
// goes into gpr28+0 and gpr28+1
- size_t offset{};
+ size_t texs_offset{};
for (const auto& dest : {instr.gpr0.Value(), instr.gpr28.Value()}) {
for (unsigned elem = 0; elem < 2; ++elem) {
@@ -1413,7 +1413,8 @@ private:
// Skip disabled components
continue;
}
- regs.SetRegisterToFloat(dest, elem + offset, texture, 1, 4, false, elem);
+ regs.SetRegisterToFloat(dest, elem + texs_offset, texture, 1, 4, false,
+ elem);
}
if (!instr.texs.HasTwoDestinations()) {
@@ -1421,7 +1422,7 @@ private:
break;
}
- offset += 2;
+ texs_offset += 2;
}
--shader.scope;
shader.AddLine("}");
@@ -1463,7 +1464,6 @@ private:
op_b = "abs(" + op_b + ')';
}
- using Tegra::Shader::Pred;
// We can't use the constant predicate as destination.
ASSERT(instr.fsetp.pred3 != static_cast<u64>(Pred::UnusedIndex));
@@ -1500,7 +1500,6 @@ private:
}
}
- using Tegra::Shader::Pred;
// We can't use the constant predicate as destination.
ASSERT(instr.isetp.pred3 != static_cast<u64>(Pred::UnusedIndex));
@@ -1528,7 +1527,6 @@ private:
std::string op_b =
GetPredicateCondition(instr.psetp.pred29, instr.psetp.neg_pred29 != 0);
- using Tegra::Shader::Pred;
// We can't use the constant predicate as destination.
ASSERT(instr.psetp.pred3 != static_cast<u64>(Pred::UnusedIndex));
diff --git a/src/video_core/renderer_opengl/gl_state.cpp b/src/video_core/renderer_opengl/gl_state.cpp
index 2e8a422a8..68bacd4c5 100644
--- a/src/video_core/renderer_opengl/gl_state.cpp
+++ b/src/video_core/renderer_opengl/gl_state.cpp
@@ -181,30 +181,34 @@ void OpenGLState::Apply() const {
}
// Textures
- for (int i = 0; i < std::size(texture_units); ++i) {
- if (texture_units[i].texture_2d != cur_state.texture_units[i].texture_2d) {
- glActiveTexture(TextureUnits::MaxwellTexture(i).Enum());
- glBindTexture(GL_TEXTURE_2D, texture_units[i].texture_2d);
+ for (std::size_t i = 0; i < std::size(texture_units); ++i) {
+ const auto& texture_unit = texture_units[i];
+ const auto& cur_state_texture_unit = cur_state.texture_units[i];
+
+ if (texture_unit.texture_2d != cur_state_texture_unit.texture_2d) {
+ glActiveTexture(TextureUnits::MaxwellTexture(static_cast<int>(i)).Enum());
+ glBindTexture(GL_TEXTURE_2D, texture_unit.texture_2d);
}
- if (texture_units[i].sampler != cur_state.texture_units[i].sampler) {
- glBindSampler(static_cast<GLuint>(i), texture_units[i].sampler);
+ if (texture_unit.sampler != cur_state_texture_unit.sampler) {
+ glBindSampler(static_cast<GLuint>(i), texture_unit.sampler);
}
// Update the texture swizzle
- if (texture_units[i].swizzle.r != cur_state.texture_units[i].swizzle.r ||
- texture_units[i].swizzle.g != cur_state.texture_units[i].swizzle.g ||
- texture_units[i].swizzle.b != cur_state.texture_units[i].swizzle.b ||
- texture_units[i].swizzle.a != cur_state.texture_units[i].swizzle.a) {
- std::array<GLint, 4> mask = {texture_units[i].swizzle.r, texture_units[i].swizzle.g,
- texture_units[i].swizzle.b, texture_units[i].swizzle.a};
+ if (texture_unit.swizzle.r != cur_state_texture_unit.swizzle.r ||
+ texture_unit.swizzle.g != cur_state_texture_unit.swizzle.g ||
+ texture_unit.swizzle.b != cur_state_texture_unit.swizzle.b ||
+ texture_unit.swizzle.a != cur_state_texture_unit.swizzle.a) {
+ std::array<GLint, 4> mask = {texture_unit.swizzle.r, texture_unit.swizzle.g,
+ texture_unit.swizzle.b, texture_unit.swizzle.a};
glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, mask.data());
}
}
// Constbuffers
- for (u32 stage = 0; stage < draw.const_buffers.size(); ++stage) {
- for (u32 buffer_id = 0; buffer_id < draw.const_buffers[stage].size(); ++buffer_id) {
- auto& current = cur_state.draw.const_buffers[stage][buffer_id];
- auto& new_state = draw.const_buffers[stage][buffer_id];
+ for (std::size_t stage = 0; stage < draw.const_buffers.size(); ++stage) {
+ for (std::size_t buffer_id = 0; buffer_id < draw.const_buffers[stage].size(); ++buffer_id) {
+ const auto& current = cur_state.draw.const_buffers[stage][buffer_id];
+ const auto& new_state = draw.const_buffers[stage][buffer_id];
+
if (current.enabled != new_state.enabled || current.bindpoint != new_state.bindpoint ||
current.ssbo != new_state.ssbo) {
if (new_state.enabled) {
diff --git a/src/yuzu/debugger/wait_tree.cpp b/src/yuzu/debugger/wait_tree.cpp
index 7101b381e..8f24586ce 100644
--- a/src/yuzu/debugger/wait_tree.cpp
+++ b/src/yuzu/debugger/wait_tree.cpp
@@ -194,32 +194,32 @@ QString WaitTreeThread::GetText() const {
const auto& thread = static_cast<const Kernel::Thread&>(object);
QString status;
switch (thread.status) {
- case THREADSTATUS_RUNNING:
+ case ThreadStatus::Running:
status = tr("running");
break;
- case THREADSTATUS_READY:
+ case ThreadStatus::Ready:
status = tr("ready");
break;
- case THREADSTATUS_WAIT_HLE_EVENT:
+ case ThreadStatus::WaitHLEEvent:
status = tr("waiting for HLE return");
break;
- case THREADSTATUS_WAIT_SLEEP:
+ case ThreadStatus::WaitSleep:
status = tr("sleeping");
break;
- case THREADSTATUS_WAIT_SYNCH_ALL:
- case THREADSTATUS_WAIT_SYNCH_ANY:
+ case ThreadStatus::WaitSynchAll:
+ case ThreadStatus::WaitSynchAny:
status = tr("waiting for objects");
break;
- case THREADSTATUS_WAIT_MUTEX:
+ case ThreadStatus::WaitMutex:
status = tr("waiting for mutex");
break;
- case THREADSTATUS_WAIT_ARB:
+ case ThreadStatus::WaitArb:
status = tr("waiting for address arbiter");
break;
- case THREADSTATUS_DORMANT:
+ case ThreadStatus::Dormant:
status = tr("dormant");
break;
- case THREADSTATUS_DEAD:
+ case ThreadStatus::Dead:
status = tr("dead");
break;
}
@@ -232,22 +232,22 @@ QString WaitTreeThread::GetText() const {
QColor WaitTreeThread::GetColor() const {
const auto& thread = static_cast<const Kernel::Thread&>(object);
switch (thread.status) {
- case THREADSTATUS_RUNNING:
+ case ThreadStatus::Running:
return QColor(Qt::GlobalColor::darkGreen);
- case THREADSTATUS_READY:
+ case ThreadStatus::Ready:
return QColor(Qt::GlobalColor::darkBlue);
- case THREADSTATUS_WAIT_HLE_EVENT:
+ case ThreadStatus::WaitHLEEvent:
return QColor(Qt::GlobalColor::darkRed);
- case THREADSTATUS_WAIT_SLEEP:
+ case ThreadStatus::WaitSleep:
return QColor(Qt::GlobalColor::darkYellow);
- case THREADSTATUS_WAIT_SYNCH_ALL:
- case THREADSTATUS_WAIT_SYNCH_ANY:
- case THREADSTATUS_WAIT_MUTEX:
- case THREADSTATUS_WAIT_ARB:
+ case ThreadStatus::WaitSynchAll:
+ case ThreadStatus::WaitSynchAny:
+ case ThreadStatus::WaitMutex:
+ case ThreadStatus::WaitArb:
return QColor(Qt::GlobalColor::red);
- case THREADSTATUS_DORMANT:
+ case ThreadStatus::Dormant:
return QColor(Qt::GlobalColor::darkCyan);
- case THREADSTATUS_DEAD:
+ case ThreadStatus::Dead:
return QColor(Qt::GlobalColor::gray);
default:
return WaitTreeItem::GetColor();
@@ -291,8 +291,8 @@ std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeThread::GetChildren() const {
else
list.push_back(std::make_unique<WaitTreeText>(tr("not waiting for mutex")));
- if (thread.status == THREADSTATUS_WAIT_SYNCH_ANY ||
- thread.status == THREADSTATUS_WAIT_SYNCH_ALL) {
+ if (thread.status == ThreadStatus::WaitSynchAny ||
+ thread.status == ThreadStatus::WaitSynchAll) {
list.push_back(std::make_unique<WaitTreeObjectList>(thread.wait_objects,
thread.IsSleepingOnWaitAll()));
}