summaryrefslogtreecommitdiff
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/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/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/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
24 files changed, 1131 insertions, 1068 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 @@
2#define __khrplatform_h_ 2#define __khrplatform_h_
3 3
4/* 4/*
5** Copyright (c) 2008-2009 The Khronos Group Inc. 5** Copyright (c) 2008-2018 The Khronos Group Inc.
6** 6**
7** Permission is hereby granted, free of charge, to any person obtaining a 7** Permission is hereby granted, free of charge, to any person obtaining a
8** copy of this software and/or associated documentation files (the 8** copy of this software and/or associated documentation files (the
@@ -26,18 +26,16 @@
26 26
27/* Khronos platform-specific types and definitions. 27/* Khronos platform-specific types and definitions.
28 * 28 *
29 * $Revision: 32517 $ on $Date: 2016-03-11 02:41:19 -0800 (Fri, 11 Mar 2016) $ 29 * The master copy of khrplatform.h is maintained in the Khronos EGL
30 * Registry repository at https://github.com/KhronosGroup/EGL-Registry
31 * The last semantic modification to khrplatform.h was at commit ID:
32 * 67a3e0864c2d75ea5287b9f3d2eb74a745936692
30 * 33 *
31 * Adopters may modify this file to suit their platform. Adopters are 34 * Adopters may modify this file to suit their platform. Adopters are
32 * encouraged to submit platform specific modifications to the Khronos 35 * encouraged to submit platform specific modifications to the Khronos
33 * group so that they can be included in future versions of this file. 36 * group so that they can be included in future versions of this file.
34 * Please submit changes by sending them to the public Khronos Bugzilla 37 * Please submit changes by filing pull requests or issues on
35 * (http://khronos.org/bugzilla) by filing a bug against product 38 * the EGL Registry repository linked above.
36 * "Khronos (general)" component "Registry".
37 *
38 * A predefined template which fills in some of the bug fields can be
39 * reached using http://tinyurl.com/khrplatform-h-bugreport, but you
40 * must create a Bugzilla login first.
41 * 39 *
42 * 40 *
43 * See the Implementer's Guidelines for information about where this file 41 * 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 @@
1/* 1/*
2 2
3 OpenGL loader generated by glad 0.1.16a0 on Thu Dec 21 14:56:57 2017. 3 OpenGL loader generated by glad 0.1.25 on Fri Jul 20 07:59:28 2018.
4 4
5 Language/Generator: C/C++ 5 Language/Generator: C/C++
6 Specification: gl 6 Specification: gl
@@ -32,6 +32,7 @@
32 GL_AMD_shader_atomic_counter_ops, 32 GL_AMD_shader_atomic_counter_ops,
33 GL_AMD_shader_ballot, 33 GL_AMD_shader_ballot,
34 GL_AMD_shader_explicit_vertex_parameter, 34 GL_AMD_shader_explicit_vertex_parameter,
35 GL_AMD_shader_gpu_shader_half_float_fetch,
35 GL_AMD_shader_image_load_store_lod, 36 GL_AMD_shader_image_load_store_lod,
36 GL_AMD_shader_stencil_export, 37 GL_AMD_shader_stencil_export,
37 GL_AMD_shader_trinary_minmax, 38 GL_AMD_shader_trinary_minmax,
@@ -248,6 +249,7 @@
248 GL_ATI_vertex_attrib_array_object, 249 GL_ATI_vertex_attrib_array_object,
249 GL_ATI_vertex_streams, 250 GL_ATI_vertex_streams,
250 GL_EXT_422_pixels, 251 GL_EXT_422_pixels,
252 GL_EXT_EGL_image_storage,
251 GL_EXT_abgr, 253 GL_EXT_abgr,
252 GL_EXT_bgra, 254 GL_EXT_bgra,
253 GL_EXT_bindable_uniform, 255 GL_EXT_bindable_uniform,
@@ -314,6 +316,8 @@
314 GL_EXT_semaphore_win32, 316 GL_EXT_semaphore_win32,
315 GL_EXT_separate_shader_objects, 317 GL_EXT_separate_shader_objects,
316 GL_EXT_separate_specular_color, 318 GL_EXT_separate_specular_color,
319 GL_EXT_shader_framebuffer_fetch,
320 GL_EXT_shader_framebuffer_fetch_non_coherent,
317 GL_EXT_shader_image_load_formatted, 321 GL_EXT_shader_image_load_formatted,
318 GL_EXT_shader_image_load_store, 322 GL_EXT_shader_image_load_store,
319 GL_EXT_shader_integer_mix, 323 GL_EXT_shader_integer_mix,
@@ -372,6 +376,7 @@
372 GL_INGR_blend_func_separate, 376 GL_INGR_blend_func_separate,
373 GL_INGR_color_clamp, 377 GL_INGR_color_clamp,
374 GL_INGR_interlace_read, 378 GL_INGR_interlace_read,
379 GL_INTEL_blackhole_render,
375 GL_INTEL_conservative_rasterization, 380 GL_INTEL_conservative_rasterization,
376 GL_INTEL_fragment_shader_ordering, 381 GL_INTEL_fragment_shader_ordering,
377 GL_INTEL_framebuffer_CMAA, 382 GL_INTEL_framebuffer_CMAA,
@@ -595,7 +600,7 @@
595 Omit khrplatform: False 600 Omit khrplatform: False
596 601
597 Commandline: 602 Commandline:
598 --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" 603 --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"
599 Online: 604 Online:
600 Too many extensions 605 Too many extensions
601*/ 606*/
@@ -736,16 +741,8 @@ typedef unsigned int GLhandleARB;
736typedef unsigned short GLhalfARB; 741typedef unsigned short GLhalfARB;
737typedef unsigned short GLhalf; 742typedef unsigned short GLhalf;
738typedef GLint GLfixed; 743typedef GLint GLfixed;
739#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060) 744typedef khronos_intptr_t GLintptr;
740typedef long GLintptr; 745typedef khronos_ssize_t GLsizeiptr;
741#else
742typedef ptrdiff_t GLintptr;
743#endif
744#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
745typedef long GLsizeiptr;
746#else
747typedef ptrdiff_t GLsizeiptr;
748#endif
749typedef int64_t GLint64; 746typedef int64_t GLint64;
750typedef uint64_t GLuint64; 747typedef uint64_t GLuint64;
751#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060) 748#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;
1730typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC)(GLenum cap); 1727typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC)(GLenum cap);
1731GLAPI PFNGLISENABLEDPROC glad_glIsEnabled; 1728GLAPI PFNGLISENABLEDPROC glad_glIsEnabled;
1732#define glIsEnabled glad_glIsEnabled 1729#define glIsEnabled glad_glIsEnabled
1733typedef void (APIENTRYP PFNGLDEPTHRANGEPROC)(GLdouble near, GLdouble far); 1730typedef void (APIENTRYP PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f);
1734GLAPI PFNGLDEPTHRANGEPROC glad_glDepthRange; 1731GLAPI PFNGLDEPTHRANGEPROC glad_glDepthRange;
1735#define glDepthRange glad_glDepthRange 1732#define glDepthRange glad_glDepthRange
1736typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height); 1733typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
@@ -4518,6 +4515,7 @@ GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
4518#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 4515#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8
4519#define GL_SINGLE_COLOR_EXT 0x81F9 4516#define GL_SINGLE_COLOR_EXT 0x81F9
4520#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA 4517#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA
4518#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8A52
4521#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 4519#define GL_MAX_IMAGE_UNITS_EXT 0x8F38
4522#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 4520#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39
4523#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A 4521#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A
@@ -4694,6 +4692,8 @@ GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
4694#define GL_DOT3_RGBA_EXT 0x8741 4692#define GL_DOT3_RGBA_EXT 0x8741
4695#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE 4693#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE
4696#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF 4694#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF
4695#define GL_TEXTURE_REDUCTION_MODE_EXT 0x9366
4696#define GL_WEIGHTED_AVERAGE_EXT 0x9367
4697#define GL_RGBA32UI_EXT 0x8D70 4697#define GL_RGBA32UI_EXT 0x8D70
4698#define GL_RGB32UI_EXT 0x8D71 4698#define GL_RGB32UI_EXT 0x8D71
4699#define GL_ALPHA32UI_EXT 0x8D72 4699#define GL_ALPHA32UI_EXT 0x8D72
@@ -5041,6 +5041,7 @@ GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
5041#define GL_BLUE_MAX_CLAMP_INGR 0x8566 5041#define GL_BLUE_MAX_CLAMP_INGR 0x8566
5042#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 5042#define GL_ALPHA_MAX_CLAMP_INGR 0x8567
5043#define GL_INTERLACE_READ_INGR 0x8568 5043#define GL_INTERLACE_READ_INGR 0x8568
5044#define GL_BLACKHOLE_RENDER_INTEL 0x83FC
5044#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE 5045#define GL_CONSERVATIVE_RASTERIZATION_INTEL 0x83FE
5045#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF 5046#define GL_TEXTURE_MEMORY_LAYOUT_INTEL 0x83FF
5046#define GL_LAYOUT_DEFAULT_INTEL 0 5047#define GL_LAYOUT_DEFAULT_INTEL 0
@@ -6671,6 +6672,10 @@ GLAPI int GLAD_GL_AMD_shader_ballot;
6671#define GL_AMD_shader_explicit_vertex_parameter 1 6672#define GL_AMD_shader_explicit_vertex_parameter 1
6672GLAPI int GLAD_GL_AMD_shader_explicit_vertex_parameter; 6673GLAPI int GLAD_GL_AMD_shader_explicit_vertex_parameter;
6673#endif 6674#endif
6675#ifndef GL_AMD_shader_gpu_shader_half_float_fetch
6676#define GL_AMD_shader_gpu_shader_half_float_fetch 1
6677GLAPI int GLAD_GL_AMD_shader_gpu_shader_half_float_fetch;
6678#endif
6674#ifndef GL_AMD_shader_image_load_store_lod 6679#ifndef GL_AMD_shader_image_load_store_lod
6675#define GL_AMD_shader_image_load_store_lod 1 6680#define GL_AMD_shader_image_load_store_lod 1
6676GLAPI int GLAD_GL_AMD_shader_image_load_store_lod; 6681GLAPI int GLAD_GL_AMD_shader_image_load_store_lod;
@@ -9809,6 +9814,16 @@ GLAPI PFNGLVERTEXBLENDENVFATIPROC glad_glVertexBlendEnvfATI;
9809#define GL_EXT_422_pixels 1 9814#define GL_EXT_422_pixels 1
9810GLAPI int GLAD_GL_EXT_422_pixels; 9815GLAPI int GLAD_GL_EXT_422_pixels;
9811#endif 9816#endif
9817#ifndef GL_EXT_EGL_image_storage
9818#define GL_EXT_EGL_image_storage 1
9819GLAPI int GLAD_GL_EXT_EGL_image_storage;
9820typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC)(GLenum target, GLeglImageOES image, const GLint* attrib_list);
9821GLAPI PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC glad_glEGLImageTargetTexStorageEXT;
9822#define glEGLImageTargetTexStorageEXT glad_glEGLImageTargetTexStorageEXT
9823typedef void (APIENTRYP PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC)(GLuint texture, GLeglImageOES image, const GLint* attrib_list);
9824GLAPI PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC glad_glEGLImageTargetTextureStorageEXT;
9825#define glEGLImageTargetTextureStorageEXT glad_glEGLImageTargetTextureStorageEXT
9826#endif
9812#ifndef GL_EXT_abgr 9827#ifndef GL_EXT_abgr
9813#define GL_EXT_abgr 1 9828#define GL_EXT_abgr 1
9814GLAPI int GLAD_GL_EXT_abgr; 9829GLAPI int GLAD_GL_EXT_abgr;
@@ -11438,6 +11453,17 @@ GLAPI PFNGLVALIDATEPROGRAMPIPELINEEXTPROC glad_glValidateProgramPipelineEXT;
11438#define GL_EXT_separate_specular_color 1 11453#define GL_EXT_separate_specular_color 1
11439GLAPI int GLAD_GL_EXT_separate_specular_color; 11454GLAPI int GLAD_GL_EXT_separate_specular_color;
11440#endif 11455#endif
11456#ifndef GL_EXT_shader_framebuffer_fetch
11457#define GL_EXT_shader_framebuffer_fetch 1
11458GLAPI int GLAD_GL_EXT_shader_framebuffer_fetch;
11459#endif
11460#ifndef GL_EXT_shader_framebuffer_fetch_non_coherent
11461#define GL_EXT_shader_framebuffer_fetch_non_coherent 1
11462GLAPI int GLAD_GL_EXT_shader_framebuffer_fetch_non_coherent;
11463typedef void (APIENTRYP PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC)(void);
11464GLAPI PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC glad_glFramebufferFetchBarrierEXT;
11465#define glFramebufferFetchBarrierEXT glad_glFramebufferFetchBarrierEXT
11466#endif
11441#ifndef GL_EXT_shader_image_load_formatted 11467#ifndef GL_EXT_shader_image_load_formatted
11442#define GL_EXT_shader_image_load_formatted 1 11468#define GL_EXT_shader_image_load_formatted 1
11443GLAPI int GLAD_GL_EXT_shader_image_load_formatted; 11469GLAPI int GLAD_GL_EXT_shader_image_load_formatted;
@@ -12030,6 +12056,10 @@ GLAPI int GLAD_GL_INGR_color_clamp;
12030#define GL_INGR_interlace_read 1 12056#define GL_INGR_interlace_read 1
12031GLAPI int GLAD_GL_INGR_interlace_read; 12057GLAPI int GLAD_GL_INGR_interlace_read;
12032#endif 12058#endif
12059#ifndef GL_INTEL_blackhole_render
12060#define GL_INTEL_blackhole_render 1
12061GLAPI int GLAD_GL_INTEL_blackhole_render;
12062#endif
12033#ifndef GL_INTEL_conservative_rasterization 12063#ifndef GL_INTEL_conservative_rasterization
12034#define GL_INTEL_conservative_rasterization 1 12064#define GL_INTEL_conservative_rasterization 1
12035GLAPI int GLAD_GL_INTEL_conservative_rasterization; 12065GLAPI 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 @@
1/* 1/*
2 2
3 OpenGL loader generated by glad 0.1.16a0 on Thu Dec 21 14:56:57 2017. 3 OpenGL loader generated by glad 0.1.25 on Fri Jul 20 07:59:28 2018.
4 4
5 Language/Generator: C/C++ 5 Language/Generator: C/C++
6 Specification: gl 6 Specification: gl
@@ -32,6 +32,7 @@
32 GL_AMD_shader_atomic_counter_ops, 32 GL_AMD_shader_atomic_counter_ops,
33 GL_AMD_shader_ballot, 33 GL_AMD_shader_ballot,
34 GL_AMD_shader_explicit_vertex_parameter, 34 GL_AMD_shader_explicit_vertex_parameter,
35 GL_AMD_shader_gpu_shader_half_float_fetch,
35 GL_AMD_shader_image_load_store_lod, 36 GL_AMD_shader_image_load_store_lod,
36 GL_AMD_shader_stencil_export, 37 GL_AMD_shader_stencil_export,
37 GL_AMD_shader_trinary_minmax, 38 GL_AMD_shader_trinary_minmax,
@@ -248,6 +249,7 @@
248 GL_ATI_vertex_attrib_array_object, 249 GL_ATI_vertex_attrib_array_object,
249 GL_ATI_vertex_streams, 250 GL_ATI_vertex_streams,
250 GL_EXT_422_pixels, 251 GL_EXT_422_pixels,
252 GL_EXT_EGL_image_storage,
251 GL_EXT_abgr, 253 GL_EXT_abgr,
252 GL_EXT_bgra, 254 GL_EXT_bgra,
253 GL_EXT_bindable_uniform, 255 GL_EXT_bindable_uniform,
@@ -314,6 +316,8 @@
314 GL_EXT_semaphore_win32, 316 GL_EXT_semaphore_win32,
315 GL_EXT_separate_shader_objects, 317 GL_EXT_separate_shader_objects,
316 GL_EXT_separate_specular_color, 318 GL_EXT_separate_specular_color,
319 GL_EXT_shader_framebuffer_fetch,
320 GL_EXT_shader_framebuffer_fetch_non_coherent,
317 GL_EXT_shader_image_load_formatted, 321 GL_EXT_shader_image_load_formatted,
318 GL_EXT_shader_image_load_store, 322 GL_EXT_shader_image_load_store,
319 GL_EXT_shader_integer_mix, 323 GL_EXT_shader_integer_mix,
@@ -372,6 +376,7 @@
372 GL_INGR_blend_func_separate, 376 GL_INGR_blend_func_separate,
373 GL_INGR_color_clamp, 377 GL_INGR_color_clamp,
374 GL_INGR_interlace_read, 378 GL_INGR_interlace_read,
379 GL_INTEL_blackhole_render,
375 GL_INTEL_conservative_rasterization, 380 GL_INTEL_conservative_rasterization,
376 GL_INTEL_fragment_shader_ordering, 381 GL_INTEL_fragment_shader_ordering,
377 GL_INTEL_framebuffer_CMAA, 382 GL_INTEL_framebuffer_CMAA,
@@ -595,7 +600,7 @@
595 Omit khrplatform: False 600 Omit khrplatform: False
596 601
597 Commandline: 602 Commandline:
598 --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" 603 --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"
599 Online: 604 Online:
600 Too many extensions 605 Too many extensions
601*/ 606*/
@@ -607,21 +612,41 @@
607 612
608static void* get_proc(const char *namez); 613static void* get_proc(const char *namez);
609 614
610#ifdef _WIN32 615#if defined(_WIN32) || defined(__CYGWIN__)
611#include <windows.h> 616#include <windows.h>
612static HMODULE libGL; 617static HMODULE libGL;
613 618
614typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*); 619typedef void* (APIENTRYP PFNWGLGETPROCADDRESSPROC_PRIVATE)(const char*);
615static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr; 620static PFNWGLGETPROCADDRESSPROC_PRIVATE gladGetProcAddressPtr;
616 621
622#ifdef _MSC_VER
623#ifdef __has_include
624 #if __has_include(<winapifamily.h>)
625 #define HAVE_WINAPIFAMILY 1
626 #endif
627#elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
628 #define HAVE_WINAPIFAMILY 1
629#endif
630#endif
631
632#ifdef HAVE_WINAPIFAMILY
633 #include <winapifamily.h>
634 #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
635 #define IS_UWP 1
636 #endif
637#endif
638
617static 639static
618int open_gl(void) { 640int open_gl(void) {
641#ifndef IS_UWP
619 libGL = LoadLibraryW(L"opengl32.dll"); 642 libGL = LoadLibraryW(L"opengl32.dll");
620 if(libGL != NULL) { 643 if(libGL != NULL) {
621 gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE)GetProcAddress( 644 void (* tmp)(void);
622 libGL, "wglGetProcAddress"); 645 tmp = (void(*)(void)) GetProcAddress(libGL, "wglGetProcAddress");
646 gladGetProcAddressPtr = (PFNWGLGETPROCADDRESSPROC_PRIVATE) tmp;
623 return gladGetProcAddressPtr != NULL; 647 return gladGetProcAddressPtr != NULL;
624 } 648 }
649#endif
625 650
626 return 0; 651 return 0;
627} 652}
@@ -629,7 +654,7 @@ int open_gl(void) {
629static 654static
630void close_gl(void) { 655void close_gl(void) {
631 if(libGL != NULL) { 656 if(libGL != NULL) {
632 FreeLibrary(libGL); 657 FreeLibrary((HMODULE) libGL);
633 libGL = NULL; 658 libGL = NULL;
634 } 659 }
635} 660}
@@ -693,8 +718,8 @@ void* get_proc(const char *namez) {
693 } 718 }
694#endif 719#endif
695 if(result == NULL) { 720 if(result == NULL) {
696#ifdef _WIN32 721#if defined(_WIN32) || defined(__CYGWIN__)
697 result = (void*)GetProcAddress(libGL, namez); 722 result = (void*)GetProcAddress((HMODULE) libGL, namez);
698#else 723#else
699 result = dlsym(libGL, namez); 724 result = dlsym(libGL, namez);
700#endif 725#endif
@@ -725,7 +750,7 @@ static int max_loaded_minor;
725 750
726static const char *exts = NULL; 751static const char *exts = NULL;
727static int num_exts_i = 0; 752static int num_exts_i = 0;
728static const char **exts_i = NULL; 753static char **exts_i = NULL;
729 754
730static int get_exts(void) { 755static int get_exts(void) {
731#ifdef _GLAD_IS_SOME_NEW_VERSION 756#ifdef _GLAD_IS_SOME_NEW_VERSION
@@ -739,7 +764,7 @@ static int get_exts(void) {
739 num_exts_i = 0; 764 num_exts_i = 0;
740 glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i); 765 glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i);
741 if (num_exts_i > 0) { 766 if (num_exts_i > 0) {
742 exts_i = (const char **)realloc((void *)exts_i, (size_t)num_exts_i * (sizeof *exts_i)); 767 exts_i = (char **)realloc((void *)exts_i, (size_t)num_exts_i * (sizeof *exts_i));
743 } 768 }
744 769
745 if (exts_i == NULL) { 770 if (exts_i == NULL) {
@@ -750,13 +775,9 @@ static int get_exts(void) {
750 const char *gl_str_tmp = (const char*)glGetStringi(GL_EXTENSIONS, index); 775 const char *gl_str_tmp = (const char*)glGetStringi(GL_EXTENSIONS, index);
751 size_t len = strlen(gl_str_tmp); 776 size_t len = strlen(gl_str_tmp);
752 777
753 char *local_str = (char*)malloc((len+1) * sizeof(*exts_i)); 778 char *local_str = (char*)malloc((len+1) * sizeof(char));
754 if(local_str != NULL) { 779 if(local_str != NULL) {
755#if _MSC_VER >= 1400 780 memcpy(local_str, gl_str_tmp, (len+1) * sizeof(char));
756 strncpy_s(local_str, len+1, gl_str_tmp, len);
757#else
758 strncpy(local_str, gl_str_tmp, len+1);
759#endif
760 } 781 }
761 exts_i[index] = local_str; 782 exts_i[index] = local_str;
762 } 783 }
@@ -829,963 +850,968 @@ int GLAD_GL_VERSION_3_0;
829int GLAD_GL_VERSION_3_1; 850int GLAD_GL_VERSION_3_1;
830int GLAD_GL_VERSION_3_2; 851int GLAD_GL_VERSION_3_2;
831int GLAD_GL_VERSION_3_3; 852int GLAD_GL_VERSION_3_3;
832PFNGLDISABLEPROC glad_glDisable;
833PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
834PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv;
835PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; 853PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D;
836PFNGLCLEARDEPTHPROC glad_glClearDepth;
837PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui;
838PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui;
839PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
840PFNGLENABLEPROC glad_glEnable;
841PFNGLUSEPROGRAMPROC glad_glUseProgram;
842PFNGLSTENCILFUNCPROC glad_glStencilFunc;
843PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv;
844PFNGLFRONTFACEPROC glad_glFrontFace;
845PFNGLGETTEXIMAGEPROC glad_glGetTexImage;
846PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays;
847PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
848PFNGLUNIFORM4IVPROC glad_glUniform4iv;
849PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
850PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv;
851PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings;
852PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer;
853PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; 854PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui;
854PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv; 855PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
855PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv; 856PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
856PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv; 857PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D;
857PFNGLUNIFORM1FVPROC glad_glUniform1fv; 858PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv;
858PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; 859PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv;
859PFNGLUNIFORM1IPROC glad_glUniform1i; 860PFNGLBINDSAMPLERPROC glad_glBindSampler;
860PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements;
861PFNGLUNIFORM4FPROC glad_glUniform4f;
862PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv;
863PFNGLGENTEXTURESPROC glad_glGenTextures;
864PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample;
865PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
866PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
867PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv;
868PFNGLGETERRORPROC glad_glGetError;
869PFNGLBINDBUFFERPROC glad_glBindBuffer;
870PFNGLISSYNCPROC glad_glIsSync;
871PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
872PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding;
873PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui;
874PFNGLCOLORP4UIVPROC glad_glColorP4uiv;
875PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData;
876PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
877PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
878PFNGLDEPTHMASKPROC glad_glDepthMask;
879PFNGLCREATESHADERPROC glad_glCreateShader;
880PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
881PFNGLDISABLEIPROC glad_glDisablei;
882PFNGLENDQUERYPROC glad_glEndQuery;
883PFNGLISSHADERPROC glad_glIsShader;
884PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
885PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
886PFNGLPIXELSTOREFPROC glad_glPixelStoref;
887PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
888PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv;
889PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
890PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample;
891PFNGLFENCESYNCPROC glad_glFenceSync;
892PFNGLDELETEQUERIESPROC glad_glDeleteQueries;
893PFNGLENABLEIPROC glad_glEnablei;
894PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
895PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv;
896PFNGLUNIFORM3UIPROC glad_glUniform3ui;
897PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
898PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv;
899PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex;
900PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
901PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d;
902PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
903PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s;
904PFNGLUNIFORM2UIPROC glad_glUniform2ui;
905PFNGLFLUSHPROC glad_glFlush;
906PFNGLISTEXTUREPROC glad_glIsTexture;
907PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
908PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv;
909PFNGLISENABLEDIPROC glad_glIsEnabledi;
910PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
911PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer;
912PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
913PFNGLCOLORMASKIPROC glad_glColorMaski;
914PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv;
915PFNGLLINEWIDTHPROC glad_glLineWidth; 861PFNGLLINEWIDTHPROC glad_glLineWidth;
916PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri; 862PFNGLCOLORP3UIVPROC glad_glColorP3uiv;
917PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
918PFNGLPOINTPARAMETERFPROC glad_glPointParameterf;
919PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv;
920PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv;
921PFNGLCLEARSTENCILPROC glad_glClearStencil;
922PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv;
923PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex;
924PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; 863PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v;
864PFNGLCOMPILESHADERPROC glad_glCompileShader;
865PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying;
866PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer;
867PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui;
868PFNGLVERTEXP4UIPROC glad_glVertexP4ui;
869PFNGLENABLEIPROC glad_glEnablei;
870PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui;
871PFNGLCREATESHADERPROC glad_glCreateShader;
872PFNGLISBUFFERPROC glad_glIsBuffer;
873PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv;
925PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; 874PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers;
926PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; 875PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
927PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; 876PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
928PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; 877PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
929PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; 878PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
930PFNGLATTACHSHADERPROC glad_glAttachShader; 879PFNGLHINTPROC glad_glHint;
931PFNGLNORMALP3UIPROC glad_glNormalP3ui; 880PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s;
932PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv;
933PFNGLBLENDFUNCPROC glad_glBlendFunc;
934PFNGLUNIFORM2IVPROC glad_glUniform2iv;
935PFNGLSTENCILOPPROC glad_glStencilOp;
936PFNGLUNIFORM1IVPROC glad_glUniform1iv;
937PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
938PFNGLSTENCILMASKPROC glad_glStencilMask;
939PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex;
940PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui;
941PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D;
942PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i;
943PFNGLFINISHPROC glad_glFinish;
944PFNGLVERTEXP3UIPROC glad_glVertexP3ui;
945PFNGLGETSTRINGPROC glad_glGetString;
946PFNGLUNIFORM3IPROC glad_glUniform3i;
947PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex;
948PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed;
949PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName;
950PFNGLTEXIMAGE3DPROC glad_glTexImage3D;
951PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex;
952PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays;
953PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
954PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv;
955PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv;
956PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv;
957PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv;
958PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
959PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv;
960PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv;
961PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui;
962PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements;
963PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
964PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv;
965PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
966PFNGLGETSYNCIVPROC glad_glGetSynciv;
967PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture;
968PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv;
969PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
970PFNGLSAMPLEMASKIPROC glad_glSampleMaski; 881PFNGLSAMPLEMASKIPROC glad_glSampleMaski;
971PFNGLISQUERYPROC glad_glIsQuery; 882PFNGLVERTEXP2UIPROC glad_glVertexP2ui;
972PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; 883PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv;
973PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; 884PFNGLPOINTSIZEPROC glad_glPointSize;
974PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; 885PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv;
975PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; 886PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
887PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv;
888PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
976PFNGLWAITSYNCPROC glad_glWaitSync; 889PFNGLWAITSYNCPROC glad_glWaitSync;
977PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; 890PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv;
891PFNGLUNIFORM3IPROC glad_glUniform3i;
892PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv;
893PFNGLUNIFORM3FPROC glad_glUniform3f;
894PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv;
895PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
896PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui;
897PFNGLCOLORMASKIPROC glad_glColorMaski;
898PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi;
899PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays;
900PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui;
978PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv; 901PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv;
979PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange;
980PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv;
981PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
982PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
983PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor;
984PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
985PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i;
986PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui;
987PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex; 902PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex;
988PFNGLBLENDEQUATIONPROC glad_glBlendEquation; 903PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv;
989PFNGLCULLFACEPROC glad_glCullFace; 904PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv;
990PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui; 905PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui;
991PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; 906PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
992PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
993PFNGLGENBUFFERSPROC glad_glGenBuffers;
994PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback;
995PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
996PFNGLCOLORP4UIPROC glad_glColorP4ui;
997PFNGLUNIFORM4FVPROC glad_glUniform4fv;
998PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
999PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv;
1000PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv;
1001PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange;
1002PFNGLREADPIXELSPROC glad_glReadPixels;
1003PFNGLGETSTRINGIPROC glad_glGetStringi;
1004PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d;
1005PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv;
1006PFNGLSCISSORPROC glad_glScissor;
1007PFNGLVERTEXP4UIPROC glad_glVertexP4ui;
1008PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv;
1009PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
1010PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv;
1011PFNGLBUFFERDATAPROC glad_glBufferData;
1012PFNGLCOLORP3UIVPROC glad_glColorP3uiv;
1013PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D;
1014PFNGLDRAWBUFFERPROC glad_glDrawBuffer;
1015PFNGLUNIFORM3FVPROC glad_glUniform3fv;
1016PFNGLGETQUERYIVPROC glad_glGetQueryiv;
1017PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv;
1018PFNGLDRAWARRAYSPROC glad_glDrawArrays; 907PFNGLDRAWARRAYSPROC glad_glDrawArrays;
1019PFNGLDRAWELEMENTSPROC glad_glDrawElements; 908PFNGLUNIFORM1UIPROC glad_glUniform1ui;
1020PFNGLUNIFORM3FPROC glad_glUniform3f; 909PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i;
1021PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; 910PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui;
1022PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
1023PFNGLCOLORP3UIPROC glad_glColorP3ui;
1024PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
1025PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
1026PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv;
1027PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui;
1028PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D;
1029PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender;
1030PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv;
1031PFNGLCLEARPROC glad_glClear;
1032PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv;
1033PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D;
1034PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation;
1035PFNGLDELETESHADERPROC glad_glDeleteShader;
1036PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv;
1037PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s;
1038PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange;
1039PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv;
1040PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer;
1041PFNGLQUERYCOUNTERPROC glad_glQueryCounter;
1042PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
1043PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv;
1044PFNGLUNIFORM2FVPROC glad_glUniform2fv;
1045PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation;
1046PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
1047PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv;
1048PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv;
1049PFNGLNORMALP3UIVPROC glad_glNormalP3uiv;
1050PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv;
1051PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv;
1052PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv;
1053PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; 911PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d;
1054PFNGLTEXBUFFERPROC glad_glTexBuffer; 912PFNGLCLEARPROC glad_glClear;
1055PFNGLUNIFORM3IVPROC glad_glUniform3iv;
1056PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; 913PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName;
1057PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
1058PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays;
1059PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
1060PFNGLISENABLEDPROC glad_glIsEnabled; 914PFNGLISENABLEDPROC glad_glIsEnabled;
1061PFNGLBEGINQUERYPROC glad_glBeginQuery; 915PFNGLSTENCILOPPROC glad_glStencilOp;
1062PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; 916PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
1063PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; 917PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
1064PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; 918PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub;
919PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation;
920PFNGLTEXIMAGE1DPROC glad_glTexImage1D;
921PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
922PFNGLGETTEXIMAGEPROC glad_glGetTexImage;
923PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v;
924PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
1065PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; 925PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
1066PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; 926PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
1067PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; 927PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays;
1068PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv;
1069PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf;
1070PFNGLUNIFORM1UIVPROC glad_glUniform1uiv;
1071PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced;
1072PFNGLUNIFORM1UIPROC glad_glUniform1ui;
1073PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v;
1074PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
1075PFNGLDETACHSHADERPROC glad_glDetachShader;
1076PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv;
1077PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; 928PFNGLISVERTEXARRAYPROC glad_glIsVertexArray;
1078PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; 929PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
1079PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; 930PFNGLGETQUERYIVPROC glad_glGetQueryiv;
1080PFNGLREADBUFFERPROC glad_glReadBuffer; 931PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv;
1081PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv;
1082PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender;
1083PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui;
1084PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
1085PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv;
1086PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
1087PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D;
1088PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s;
1089PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v;
1090PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv;
1091PFNGLDEPTHFUNCPROC glad_glDepthFunc;
1092PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv;
1093PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv;
1094PFNGLDELETESYNCPROC glad_glDeleteSync;
1095PFNGLUNIFORM4UIVPROC glad_glUniform4uiv;
1096PFNGLGETSHADERIVPROC glad_glGetShaderiv;
1097PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase;
1098PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv;
1099PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
1100PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv;
1101PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying;
1102PFNGLUNIFORM2UIVPROC glad_glUniform2uiv;
1103PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d;
1104PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData;
1105PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv;
1106PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync;
1107PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv;
1108PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced;
1109PFNGLGETINTEGERVPROC glad_glGetIntegerv;
1110PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv;
1111PFNGLUNIFORM3UIVPROC glad_glUniform3uiv;
1112PFNGLISBUFFERPROC glad_glIsBuffer;
1113PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv;
1114PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
1115PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
1116PFNGLUNIFORM2FPROC glad_glUniform2f;
1117PFNGLBINDTEXTUREPROC glad_glBindTexture;
1118PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; 932PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices;
1119PFNGLCOMPILESHADERPROC glad_glCompileShader; 933PFNGLISSHADERPROC glad_glIsShader;
1120PFNGLUNIFORM1FPROC glad_glUniform1f; 934PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv;
935PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
936PFNGLENABLEPROC glad_glEnable;
937PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv;
938PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
939PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv;
940PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv;
941PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui;
942PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
943PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv;
944PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv;
945PFNGLDRAWBUFFERPROC glad_glDrawBuffer;
946PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv;
947PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced;
948PFNGLFLUSHPROC glad_glFlush;
1121PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; 949PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv;
1122PFNGLCOLORMASKPROC glad_glColorMask; 950PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
1123PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; 951PFNGLFENCESYNCPROC glad_glFenceSync;
1124PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; 952PFNGLCOLORP3UIPROC glad_glColorP3ui;
953PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv;
954PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender;
955PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv;
956PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv;
957PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
958PFNGLGENSAMPLERSPROC glad_glGenSamplers;
959PFNGLCLAMPCOLORPROC glad_glClampColor;
960PFNGLUNIFORM4IVPROC glad_glUniform4iv;
961PFNGLCLEARSTENCILPROC glad_glClearStencil;
962PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv;
963PFNGLGENTEXTURESPROC glad_glGenTextures;
964PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv;
1125PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; 965PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv;
1126PFNGLISSAMPLERPROC glad_glIsSampler; 966PFNGLISSYNCPROC glad_glIsSync;
1127PFNGLACTIVETEXTUREPROC glad_glActiveTexture; 967PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName;
1128PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; 968PFNGLUNIFORM2IPROC glad_glUniform2i;
969PFNGLUNIFORM2FPROC glad_glUniform2f;
970PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui;
971PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
972PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
973PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer;
974PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange;
1129PFNGLGENQUERIESPROC glad_glGenQueries; 975PFNGLGENQUERIESPROC glad_glGenQueries;
976PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui;
977PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D;
978PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v;
1130PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers; 979PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers;
1131PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; 980PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
981PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer;
982PFNGLISENABLEDIPROC glad_glIsEnabledi;
1132PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui; 983PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui;
1133PFNGLBLENDCOLORPROC glad_glBlendColor; 984PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed;
1134PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; 985PFNGLUNIFORM2IVPROC glad_glUniform2iv;
1135PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; 986PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
1136PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; 987PFNGLUNIFORM4UIVPROC glad_glUniform4uiv;
1137PFNGLCLAMPCOLORPROC glad_glClampColor; 988PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D;
1138PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; 989PFNGLGETSHADERIVPROC glad_glGetShaderiv;
1139PFNGLDELETETEXTURESPROC glad_glDeleteTextures; 990PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation;
1140PFNGLUNIFORM4IPROC glad_glUniform4i; 991PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
1141PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv; 992PFNGLGETDOUBLEVPROC glad_glGetDoublev;
1142PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; 993PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d;
1143PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; 994PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
1144PFNGLGENSAMPLERSPROC glad_glGenSamplers; 995PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv;
1145PFNGLISPROGRAMPROC glad_glIsProgram; 996PFNGLUNIFORM3FVPROC glad_glUniform3fv;
1146PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; 997PFNGLDEPTHRANGEPROC glad_glDepthRange;
1147PFNGLHINTPROC glad_glHint;
1148PFNGLPOINTSIZEPROC glad_glPointSize;
1149PFNGLUNIFORM2IPROC glad_glUniform2i;
1150PFNGLLINKPROGRAMPROC glad_glLinkProgram;
1151PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
1152PFNGLGETINTEGER64VPROC glad_glGetInteger64v;
1153PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
1154PFNGLLOGICOPPROC glad_glLogicOp;
1155PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui;
1156PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui;
1157PFNGLTEXIMAGE1DPROC glad_glTexImage1D;
1158PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
1159PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv;
1160PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv;
1161PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv;
1162PFNGLMAPBUFFERPROC glad_glMapBuffer; 998PFNGLMAPBUFFERPROC glad_glMapBuffer;
1163PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; 999PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D;
1164PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui; 1000PFNGLDELETESYNCPROC glad_glDeleteSync;
1165PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; 1001PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D;
1166PFNGLTEXPARAMETERIPROC glad_glTexParameteri; 1002PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
1167PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui; 1003PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements;
1168PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; 1004PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
1169PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; 1005PFNGLUNIFORM3IVPROC glad_glUniform3iv;
1170PFNGLPOLYGONMODEPROC glad_glPolygonMode; 1006PFNGLPOLYGONMODEPROC glad_glPolygonMode;
1171PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; 1007PFNGLDRAWBUFFERSPROC glad_glDrawBuffers;
1172PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; 1008PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv;
1173PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; 1009PFNGLUSEPROGRAMPROC glad_glUseProgram;
1174PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; 1010PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
1175PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; 1011PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray;
1176PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; 1012PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
1177PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv; 1013PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv;
1178PFNGLBINDSAMPLERPROC glad_glBindSampler; 1014PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex;
1015PFNGLUNIFORM2UIVPROC glad_glUniform2uiv;
1016PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D;
1017PFNGLFINISHPROC glad_glFinish;
1018PFNGLDELETESHADERPROC glad_glDeleteShader;
1019PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv;
1020PFNGLVIEWPORTPROC glad_glViewport;
1021PFNGLUNIFORM1UIVPROC glad_glUniform1uiv;
1022PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings;
1023PFNGLUNIFORM2UIPROC glad_glUniform2ui;
1024PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i;
1025PFNGLCLEARDEPTHPROC glad_glClearDepth;
1026PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv;
1027PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
1028PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
1029PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
1030PFNGLTEXBUFFERPROC glad_glTexBuffer;
1031PFNGLPIXELSTOREIPROC glad_glPixelStorei;
1032PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
1033PFNGLPIXELSTOREFPROC glad_glPixelStoref;
1034PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v;
1035PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv;
1036PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv;
1037PFNGLLINKPROGRAMPROC glad_glLinkProgram;
1038PFNGLBINDTEXTUREPROC glad_glBindTexture;
1039PFNGLGETSTRINGPROC glad_glGetString;
1040PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv;
1041PFNGLDETACHSHADERPROC glad_glDetachShader;
1042PFNGLENDQUERYPROC glad_glEndQuery;
1043PFNGLNORMALP3UIPROC glad_glNormalP3ui;
1044PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui;
1045PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
1046PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
1047PFNGLDELETEQUERIESPROC glad_glDeleteQueries;
1048PFNGLNORMALP3UIVPROC glad_glNormalP3uiv;
1049PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
1050PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d;
1051PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
1179PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; 1052PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s;
1053PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex;
1054PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
1055PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri;
1056PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf;
1057PFNGLUNIFORM1FPROC glad_glUniform1f;
1058PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
1059PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage;
1060PFNGLUNIFORM1IPROC glad_glUniform1i;
1061PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
1062PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
1063PFNGLDISABLEPROC glad_glDisable;
1064PFNGLLOGICOPPROC glad_glLogicOp;
1180PFNGLUNIFORM4UIPROC glad_glUniform4ui; 1065PFNGLUNIFORM4UIPROC glad_glUniform4ui;
1181PFNGLDEPTHRANGEPROC glad_glDepthRange; 1066PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
1182PFNGLPIXELSTOREIPROC glad_glPixelStorei; 1067PFNGLCULLFACEPROC glad_glCullFace;
1183PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui; 1068PFNGLGETSTRINGIPROC glad_glGetStringi;
1069PFNGLATTACHSHADERPROC glad_glAttachShader;
1070PFNGLQUERYCOUNTERPROC glad_glQueryCounter;
1071PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex;
1072PFNGLDRAWELEMENTSPROC glad_glDrawElements;
1073PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv;
1074PFNGLUNIFORM1IVPROC glad_glUniform1iv;
1075PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv;
1076PFNGLREADBUFFERPROC glad_glReadBuffer;
1077PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv;
1078PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced;
1079PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
1080PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv;
1081PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
1082PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv;
1083PFNGLPOINTPARAMETERIPROC glad_glPointParameteri;
1084PFNGLBLENDCOLORPROC glad_glBlendColor;
1085PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv;
1086PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer;
1087PFNGLPOINTPARAMETERFPROC glad_glPointParameterf;
1088PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s;
1089PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
1090PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv;
1091PFNGLISPROGRAMPROC glad_glIsProgram;
1092PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv;
1093PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
1094PFNGLUNIFORM4IPROC glad_glUniform4i;
1095PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
1096PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
1097PFNGLREADPIXELSPROC glad_glReadPixels;
1098PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv;
1099PFNGLUNIFORM4FPROC glad_glUniform4f;
1100PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample;
1101PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
1102PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex;
1103PFNGLSTENCILFUNCPROC glad_glStencilFunc;
1104PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding;
1105PFNGLCOLORP4UIPROC glad_glColorP4ui;
1106PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv;
1107PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
1108PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i;
1109PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData;
1110PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
1111PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui;
1112PFNGLGENBUFFERSPROC glad_glGenBuffers;
1113PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv;
1114PFNGLBLENDFUNCPROC glad_glBlendFunc;
1115PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
1116PFNGLTEXIMAGE3DPROC glad_glTexImage3D;
1117PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
1118PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex;
1119PFNGLGETINTEGER64VPROC glad_glGetInteger64v;
1120PFNGLSCISSORPROC glad_glScissor;
1121PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv;
1122PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
1123PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv;
1124PFNGLUNIFORM3UIVPROC glad_glUniform3uiv;
1125PFNGLCLEARCOLORPROC glad_glClearColor;
1126PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv;
1127PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv;
1184PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; 1128PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v;
1185PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; 1129PFNGLCOLORP4UIVPROC glad_glColorP4uiv;
1130PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv;
1131PFNGLUNIFORM3UIPROC glad_glUniform3ui;
1132PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv;
1133PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv;
1134PFNGLUNIFORM2FVPROC glad_glUniform2fv;
1135PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv;
1136PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange;
1137PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv;
1138PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv;
1139PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv;
1140PFNGLDEPTHFUNCPROC glad_glDepthFunc;
1186PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; 1141PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D;
1187PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; 1142PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv;
1188PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; 1143PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
1189PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; 1144PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui;
1190PFNGLVIEWPORTPROC glad_glViewport; 1145PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync;
1146PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui;
1147PFNGLCOLORMASKPROC glad_glColorMask;
1148PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv;
1149PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
1150PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
1151PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback;
1152PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv;
1153PFNGLUNIFORM4FVPROC glad_glUniform4fv;
1154PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback;
1155PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv;
1156PFNGLISSAMPLERPROC glad_glIsSampler;
1157PFNGLVERTEXP3UIPROC glad_glVertexP3ui;
1158PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor;
1159PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D;
1160PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D;
1161PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex;
1162PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
1163PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender;
1164PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv;
1165PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
1166PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv;
1167PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv;
1168PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements;
1169PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv;
1170PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase;
1171PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
1172PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv;
1173PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange;
1174PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture;
1175PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays;
1176PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv;
1177PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv;
1178PFNGLDISABLEIPROC glad_glDisablei;
1179PFNGLSHADERSOURCEPROC glad_glShaderSource;
1180PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
1181PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv;
1182PFNGLGETSYNCIVPROC glad_glGetSynciv;
1183PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv;
1184PFNGLBEGINQUERYPROC glad_glBeginQuery;
1185PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
1186PFNGLBINDBUFFERPROC glad_glBindBuffer;
1187PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
1188PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv;
1189PFNGLBUFFERDATAPROC glad_glBufferData;
1190PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv;
1191PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui;
1192PFNGLGETERRORPROC glad_glGetError;
1193PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui;
1191PFNGLGETFLOATVPROC glad_glGetFloatv; 1194PFNGLGETFLOATVPROC glad_glGetFloatv;
1192PFNGLGETDOUBLEVPROC glad_glGetDoublev; 1195PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D;
1196PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
1197PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv;
1198PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i;
1199PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv;
1200PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv;
1201PFNGLGETINTEGERVPROC glad_glGetIntegerv;
1202PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv;
1203PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D;
1204PFNGLISQUERYPROC glad_glIsQuery;
1205PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv;
1206PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
1207PFNGLSTENCILMASKPROC glad_glStencilMask;
1193PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv; 1208PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv;
1194PFNGLSHADERSOURCEPROC glad_glShaderSource; 1209PFNGLISTEXTUREPROC glad_glIsTexture;
1210PFNGLUNIFORM1FVPROC glad_glUniform1fv;
1211PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv;
1212PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
1213PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv;
1214PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData;
1215PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv;
1216PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d;
1217PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
1218PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv;
1195PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v; 1219PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v;
1196PFNGLCLEARCOLORPROC glad_glClearColor; 1220PFNGLDEPTHMASKPROC glad_glDepthMask;
1197PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; 1221PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s;
1198PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; 1222PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample;
1199PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; 1223PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex;
1200PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; 1224PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample;
1201PFNGLVERTEXP2UIPROC glad_glVertexP2ui; 1225PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
1202PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; 1226PFNGLFRONTFACEPROC glad_glFrontFace;
1203PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; 1227int GLAD_GL_SGIX_pixel_tiles;
1204PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; 1228int GLAD_GL_EXT_post_depth_coverage;
1205PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; 1229int GLAD_GL_APPLE_element_array;
1206int GLAD_GL_EXT_texture_snorm; 1230int GLAD_GL_AMD_multi_draw_indirect;
1231int GLAD_GL_EXT_blend_subtract;
1232int GLAD_GL_SGIX_tag_sample_buffer;
1233int GLAD_GL_NV_point_sprite;
1234int GLAD_GL_IBM_texture_mirrored_repeat;
1235int GLAD_GL_APPLE_transform_hint;
1236int GLAD_GL_ATI_separate_stencil;
1237int GLAD_GL_NV_shader_atomic_int64;
1238int GLAD_GL_EXT_semaphore_win32;
1239int GLAD_GL_NV_vertex_program2_option;
1240int GLAD_GL_EXT_texture_buffer_object;
1241int GLAD_GL_ARB_vertex_blend;
1242int GLAD_GL_OVR_multiview;
1243int GLAD_GL_AMD_shader_gpu_shader_half_float_fetch;
1244int GLAD_GL_NV_vertex_program2;
1245int GLAD_GL_ARB_program_interface_query;
1246int GLAD_GL_EXT_misc_attribute;
1247int GLAD_GL_NV_multisample_coverage;
1248int GLAD_GL_ARB_shading_language_packing;
1249int GLAD_GL_EXT_texture_cube_map;
1250int GLAD_GL_NV_viewport_array2;
1251int GLAD_GL_ARB_texture_stencil8;
1252int GLAD_GL_EXT_index_func;
1253int GLAD_GL_EXT_memory_object_fd;
1254int GLAD_GL_OES_compressed_paletted_texture;
1255int GLAD_GL_MESA_shader_integer_functions;
1256int GLAD_GL_NV_shader_buffer_load;
1257int GLAD_GL_EXT_color_subtable;
1258int GLAD_GL_SUNX_constant_data;
1259int GLAD_GL_EXT_texture_compression_s3tc;
1260int GLAD_GL_EXT_multi_draw_arrays;
1261int GLAD_GL_ARB_shader_atomic_counters;
1262int GLAD_GL_ARB_arrays_of_arrays;
1263int GLAD_GL_NV_conditional_render;
1264int GLAD_GL_EXT_texture_env_combine;
1265int GLAD_GL_NV_fog_distance;
1266int GLAD_GL_SGIX_async_histogram;
1207int GLAD_GL_MESA_resize_buffers; 1267int GLAD_GL_MESA_resize_buffers;
1208int GLAD_GL_NV_clip_space_w_scaling; 1268int GLAD_GL_NV_light_max_exponent;
1209int GLAD_GL_SGIS_point_parameters; 1269int GLAD_GL_NV_texture_env_combine4;
1210int GLAD_GL_EXT_draw_range_elements; 1270int GLAD_GL_ARB_spirv_extensions;
1271int GLAD_GL_ARB_texture_view;
1272int GLAD_GL_ARB_texture_env_combine;
1273int GLAD_GL_ARB_map_buffer_range;
1274int GLAD_GL_EXT_convolution;
1275int GLAD_GL_NV_compute_program5;
1276int GLAD_GL_NV_vertex_attrib_integer_64bit;
1277int GLAD_GL_EXT_paletted_texture;
1278int GLAD_GL_ARB_texture_buffer_object;
1279int GLAD_GL_ATI_pn_triangles;
1280int GLAD_GL_SGIX_resample;
1281int GLAD_GL_SGIX_flush_raster;
1282int GLAD_GL_EXT_light_texture;
1283int GLAD_GL_ARB_point_sprite;
1284int GLAD_GL_SUN_convolution_border_modes;
1285int GLAD_GL_EXT_semaphore_fd;
1286int GLAD_GL_NV_parameter_buffer_object2;
1287int GLAD_GL_ARB_half_float_pixel;
1288int GLAD_GL_NV_tessellation_program5;
1211int GLAD_GL_REND_screen_coordinates; 1289int GLAD_GL_REND_screen_coordinates;
1212int GLAD_GL_AMD_gpu_shader_int16; 1290int GLAD_GL_EXT_shared_texture_palette;
1213int GLAD_GL_NV_command_list; 1291int GLAD_GL_EXT_packed_float;
1214int GLAD_GL_NV_stereo_view_rendering; 1292int GLAD_GL_OML_subsample;
1215int GLAD_GL_ARB_instanced_arrays; 1293int GLAD_GL_SGIX_vertex_preclip;
1216int GLAD_GL_ARB_pipeline_statistics_query; 1294int GLAD_GL_SGIX_texture_scale_bias;
1295int GLAD_GL_AMD_draw_buffers_blend;
1296int GLAD_GL_APPLE_texture_range;
1297int GLAD_GL_EXT_texture_array;
1298int GLAD_GL_NV_texture_barrier;
1299int GLAD_GL_ARB_texture_query_levels;
1300int GLAD_GL_NV_texgen_emboss;
1301int GLAD_GL_EXT_texture_swizzle;
1302int GLAD_GL_ARB_texture_rg;
1303int GLAD_GL_ARB_vertex_type_2_10_10_10_rev;
1304int GLAD_GL_ARB_fragment_shader;
1305int GLAD_GL_3DFX_tbuffer;
1217int GLAD_GL_GREMEDY_frame_terminator; 1306int GLAD_GL_GREMEDY_frame_terminator;
1218int GLAD_GL_EXT_pixel_transform; 1307int GLAD_GL_IBM_cull_vertex;
1219int GLAD_GL_ARB_fragment_program_shadow; 1308int GLAD_GL_EXT_separate_shader_objects;
1220int GLAD_GL_MESA_window_pos;
1221int GLAD_GL_NV_texture_compression_vtc;
1222int GLAD_GL_ARB_point_parameters;
1223int GLAD_GL_MESA_pack_invert;
1224int GLAD_GL_ATI_texture_env_combine3;
1225int GLAD_GL_NV_transform_feedback;
1226int GLAD_GL_NV_viewport_array2;
1227int GLAD_GL_EXT_bindable_uniform;
1228int GLAD_GL_NV_primitive_restart;
1229int GLAD_GL_KHR_debug;
1230int GLAD_GL_ARB_shader_ballot;
1231int GLAD_GL_AMD_shader_stencil_export;
1232int GLAD_GL_NV_query_resource_tag;
1233int GLAD_GL_NV_shader_atomic_fp16_vector;
1234int GLAD_GL_NV_tessellation_program5;
1235int GLAD_GL_EXT_window_rectangles;
1236int GLAD_GL_NV_texture_multisample; 1309int GLAD_GL_NV_texture_multisample;
1310int GLAD_GL_ARB_shader_objects;
1311int GLAD_GL_ARB_framebuffer_object;
1312int GLAD_GL_EXT_external_buffer;
1313int GLAD_GL_ATI_envmap_bumpmap;
1314int GLAD_GL_AMD_shader_explicit_vertex_parameter;
1315int GLAD_GL_ARB_robust_buffer_access_behavior;
1316int GLAD_GL_ARB_shader_stencil_export;
1317int GLAD_GL_NV_texture_rectangle;
1318int GLAD_GL_ARB_enhanced_layouts;
1319int GLAD_GL_ARB_texture_rectangle;
1320int GLAD_GL_SGI_texture_color_table;
1321int GLAD_GL_NV_viewport_swizzle;
1322int GLAD_GL_ATI_map_object_buffer;
1323int GLAD_GL_ARB_robustness;
1324int GLAD_GL_NV_pixel_data_range;
1325int GLAD_GL_EXT_framebuffer_blit;
1326int GLAD_GL_ARB_gpu_shader_fp64;
1327int GLAD_GL_NV_command_list;
1328int GLAD_GL_SGIX_depth_texture;
1329int GLAD_GL_AMD_framebuffer_sample_positions;
1330int GLAD_GL_GREMEDY_string_marker;
1331int GLAD_GL_ARB_texture_compression_bptc;
1332int GLAD_GL_EXT_subtexture;
1333int GLAD_GL_EXT_pixel_transform_color_table;
1334int GLAD_GL_EXT_texture_compression_rgtc;
1335int GLAD_GL_ARB_shader_atomic_counter_ops;
1336int GLAD_GL_SGIX_depth_pass_instrument;
1337int GLAD_GL_EXT_gpu_program_parameters;
1338int GLAD_GL_NV_evaluators;
1339int GLAD_GL_EXT_shader_framebuffer_fetch_non_coherent;
1340int GLAD_GL_SGIS_texture_filter4;
1341int GLAD_GL_AMD_performance_monitor;
1342int GLAD_GL_NV_geometry_shader4;
1343int GLAD_GL_EXT_stencil_clear_tag;
1344int GLAD_GL_NV_vertex_program1_1;
1345int GLAD_GL_NV_present_video;
1346int GLAD_GL_ARB_texture_compression_rgtc;
1237int GLAD_GL_HP_convolution_border_modes; 1347int GLAD_GL_HP_convolution_border_modes;
1238int GLAD_GL_NV_conservative_raster_pre_snap;
1239int GLAD_GL_EXT_shader_integer_mix; 1348int GLAD_GL_EXT_shader_integer_mix;
1240int GLAD_GL_APPLE_aux_depth_stencil; 1349int GLAD_GL_SGIX_framezoom;
1241int GLAD_GL_ARB_fragment_shader; 1350int GLAD_GL_ARB_stencil_texturing;
1351int GLAD_GL_ARB_shader_clock;
1352int GLAD_GL_NV_shader_atomic_fp16_vector;
1353int GLAD_GL_SGIX_fog_offset;
1354int GLAD_GL_ARB_draw_elements_base_vertex;
1355int GLAD_GL_INGR_interlace_read;
1356int GLAD_GL_NV_transform_feedback;
1357int GLAD_GL_NV_fragment_program;
1358int GLAD_GL_AMD_stencil_operation_extended;
1359int GLAD_GL_ARB_seamless_cubemap_per_texture;
1360int GLAD_GL_ARB_instanced_arrays;
1361int GLAD_GL_ARB_get_texture_sub_image;
1362int GLAD_GL_NV_vertex_array_range2;
1363int GLAD_GL_KHR_robustness;
1364int GLAD_GL_AMD_sparse_texture;
1365int GLAD_GL_ARB_clip_control;
1366int GLAD_GL_NV_fragment_coverage_to_color;
1367int GLAD_GL_NV_fence;
1368int GLAD_GL_ARB_texture_buffer_range;
1369int GLAD_GL_SUN_mesh_array;
1370int GLAD_GL_ARB_vertex_attrib_binding;
1371int GLAD_GL_ARB_framebuffer_no_attachments;
1372int GLAD_GL_ARB_cl_event;
1373int GLAD_GL_EXT_vertex_weighting;
1374int GLAD_GL_ARB_derivative_control;
1375int GLAD_GL_NV_packed_depth_stencil;
1376int GLAD_GL_OES_single_precision;
1377int GLAD_GL_NV_primitive_restart;
1378int GLAD_GL_SUN_global_alpha;
1379int GLAD_GL_ARB_fragment_shader_interlock;
1380int GLAD_GL_EXT_texture_object;
1381int GLAD_GL_AMD_name_gen_delete;
1382int GLAD_GL_NV_texture_compression_vtc;
1383int GLAD_GL_NV_sample_mask_override_coverage;
1384int GLAD_GL_NV_texture_shader3;
1385int GLAD_GL_MESA_tile_raster_order;
1386int GLAD_GL_ARB_texture_filter_anisotropic;
1387int GLAD_GL_EXT_texture;
1388int GLAD_GL_ARB_buffer_storage;
1389int GLAD_GL_AMD_shader_atomic_counter_ops;
1390int GLAD_GL_APPLE_vertex_program_evaluators;
1391int GLAD_GL_AMD_texture_gather_bias_lod;
1392int GLAD_GL_NV_texgen_reflection;
1393int GLAD_GL_ARB_explicit_uniform_location;
1394int GLAD_GL_ARB_depth_buffer_float;
1395int GLAD_GL_NV_path_rendering_shared_edge;
1396int GLAD_GL_SGIX_shadow_ambient;
1397int GLAD_GL_ARB_texture_cube_map;
1398int GLAD_GL_AMD_vertex_shader_viewport_index;
1399int GLAD_GL_SGIX_list_priority;
1400int GLAD_GL_NV_vertex_buffer_unified_memory;
1401int GLAD_GL_NV_uniform_buffer_unified_memory;
1402int GLAD_GL_ARB_clear_texture;
1403int GLAD_GL_ATI_texture_env_combine3;
1404int GLAD_GL_NV_depth_clamp;
1405int GLAD_GL_ARB_map_buffer_alignment;
1406int GLAD_GL_EXT_memory_object;
1407int GLAD_GL_NV_blend_equation_advanced;
1408int GLAD_GL_SGIS_sharpen_texture;
1409int GLAD_GL_KHR_robust_buffer_access_behavior;
1410int GLAD_GL_ARB_pipeline_statistics_query;
1411int GLAD_GL_ARB_vertex_program;
1412int GLAD_GL_ARB_texture_rgb10_a2ui;
1413int GLAD_GL_OML_interlace;
1414int GLAD_GL_ATI_pixel_format_float;
1415int GLAD_GL_NV_clip_space_w_scaling;
1416int GLAD_GL_ARB_vertex_buffer_object;
1417int GLAD_GL_EXT_shadow_funcs;
1418int GLAD_GL_ATI_text_fragment_shader;
1419int GLAD_GL_NV_vertex_array_range;
1420int GLAD_GL_SGIX_fragment_lighting;
1421int GLAD_GL_AMD_shader_ballot;
1422int GLAD_GL_NV_texture_expand_normal;
1242int GLAD_GL_NV_framebuffer_multisample_coverage; 1423int GLAD_GL_NV_framebuffer_multisample_coverage;
1243int GLAD_GL_ARB_multi_bind; 1424int GLAD_GL_EXT_timer_query;
1244int GLAD_GL_AMD_shader_trinary_minmax; 1425int GLAD_GL_EXT_vertex_array_bgra;
1245int GLAD_GL_NV_sample_locations; 1426int GLAD_GL_NV_bindless_texture;
1246int GLAD_GL_NV_video_capture; 1427int GLAD_GL_KHR_debug;
1247int GLAD_GL_AMD_transform_feedback4; 1428int GLAD_GL_SGIS_texture_border_clamp;
1248int GLAD_GL_NV_bindless_multi_draw_indirect; 1429int GLAD_GL_ATI_vertex_attrib_array_object;
1249int GLAD_GL_EXT_packed_float; 1430int GLAD_GL_SGIX_clipmap;
1250int GLAD_GL_EXT_shared_texture_palette; 1431int GLAD_GL_EXT_geometry_shader4;
1251int GLAD_GL_EXT_cmyka; 1432int GLAD_GL_ARB_shader_texture_image_samples;
1252int GLAD_GL_AMD_sample_positions; 1433int GLAD_GL_MESA_ycbcr_texture;
1253int GLAD_GL_NV_multisample_coverage; 1434int GLAD_GL_MESAX_texture_stack;
1254int GLAD_GL_ARB_copy_buffer;
1255int GLAD_GL_EXT_sparse_texture2;
1256int GLAD_GL_EXT_index_array_formats;
1257int GLAD_GL_AMD_seamless_cubemap_per_texture; 1435int GLAD_GL_AMD_seamless_cubemap_per_texture;
1258int GLAD_GL_NV_texture_shader2; 1436int GLAD_GL_EXT_bindable_uniform;
1259int GLAD_GL_AMD_multi_draw_indirect; 1437int GLAD_GL_KHR_texture_compression_astc_hdr;
1260int GLAD_GL_NV_shader_atomic_int64; 1438int GLAD_GL_ARB_shader_ballot;
1261int GLAD_GL_ARB_program_interface_query; 1439int GLAD_GL_KHR_blend_equation_advanced;
1262int GLAD_GL_EXT_texture_shared_exponent; 1440int GLAD_GL_ARB_fragment_program_shadow;
1263int GLAD_GL_NV_depth_clamp; 1441int GLAD_GL_ATI_element_array;
1264int GLAD_GL_NV_shader_buffer_load; 1442int GLAD_GL_AMD_texture_texture4;
1443int GLAD_GL_SGIX_reference_plane;
1444int GLAD_GL_EXT_stencil_two_side;
1445int GLAD_GL_ARB_transform_feedback_overflow_query;
1446int GLAD_GL_SGIX_texture_lod_bias;
1447int GLAD_GL_KHR_no_error;
1448int GLAD_GL_NV_explicit_multisample;
1449int GLAD_GL_NV_stereo_view_rendering;
1265int GLAD_GL_IBM_static_data; 1450int GLAD_GL_IBM_static_data;
1266int GLAD_GL_ARB_occlusion_query; 1451int GLAD_GL_EXT_clip_volume_hint;
1267int GLAD_GL_EXT_raster_multisample; 1452int GLAD_GL_EXT_texture_perturb_normal;
1268int GLAD_GL_ARB_sparse_texture; 1453int GLAD_GL_NV_fragment_program2;
1269int GLAD_GL_ARB_conditional_render_inverted; 1454int GLAD_GL_NV_fragment_program4;
1270int GLAD_GL_KHR_context_flush_control; 1455int GLAD_GL_EXT_point_parameters;
1271int GLAD_GL_AMD_sparse_texture; 1456int GLAD_GL_PGI_misc_hints;
1457int GLAD_GL_EXT_EGL_image_storage;
1458int GLAD_GL_SGIX_subsample;
1459int GLAD_GL_AMD_shader_stencil_export;
1460int GLAD_GL_ARB_shader_texture_lod;
1461int GLAD_GL_ARB_vertex_shader;
1462int GLAD_GL_ARB_depth_clamp;
1463int GLAD_GL_SGIS_texture_select;
1464int GLAD_GL_NV_texture_shader;
1465int GLAD_GL_ARB_tessellation_shader;
1466int GLAD_GL_EXT_draw_buffers2;
1467int GLAD_GL_ARB_vertex_attrib_64bit;
1468int GLAD_GL_EXT_texture_filter_minmax;
1272int GLAD_GL_NV_query_resource; 1469int GLAD_GL_NV_query_resource;
1273int GLAD_GL_ARB_cull_distance; 1470int GLAD_GL_AMD_interleaved_elements;
1274int GLAD_GL_EXT_texture_integer; 1471int GLAD_GL_ARB_fragment_program;
1275int GLAD_GL_EXT_separate_specular_color; 1472int GLAD_GL_OML_resample;
1473int GLAD_GL_APPLE_ycbcr_422;
1474int GLAD_GL_SGIX_texture_add_env;
1475int GLAD_GL_ARB_shadow_ambient;
1476int GLAD_GL_ARB_texture_storage;
1477int GLAD_GL_EXT_pixel_buffer_object;
1478int GLAD_GL_ARB_copy_image;
1479int GLAD_GL_SGIS_pixel_texture;
1276int GLAD_GL_SGIS_generate_mipmap; 1480int GLAD_GL_SGIS_generate_mipmap;
1277int GLAD_GL_SUNX_constant_data; 1481int GLAD_GL_SGIX_instruments;
1278int GLAD_GL_ARB_compute_variable_group_size; 1482int GLAD_GL_ARB_fragment_layer_viewport;
1279int GLAD_GL_ARB_imaging; 1483int GLAD_GL_ARB_shader_storage_buffer_object;
1280int GLAD_GL_NV_bindless_multi_draw_indirect_count; 1484int GLAD_GL_EXT_sparse_texture2;
1281int GLAD_GL_OES_read_format;
1282int GLAD_GL_ARB_shader_draw_parameters;
1283int GLAD_GL_ATI_pn_triangles;
1284int GLAD_GL_EXT_framebuffer_object;
1285int GLAD_GL_MESA_ycbcr_texture;
1286int GLAD_GL_NV_shader_atomic_float64;
1287int GLAD_GL_NV_conditional_render;
1288int GLAD_GL_SGIS_texture_border_clamp;
1289int GLAD_GL_OES_fixed_point;
1290int GLAD_GL_ARB_robust_buffer_access_behavior;
1291int GLAD_GL_EXT_external_buffer;
1292int GLAD_GL_ARB_seamless_cube_map;
1293int GLAD_GL_ARB_depth_clamp;
1294int GLAD_GL_EXT_framebuffer_blit;
1295int GLAD_GL_AMD_gcn_shader;
1296int GLAD_GL_AMD_transform_feedback3_lines_triangles;
1297int GLAD_GL_EXT_timer_query;
1298int GLAD_GL_ARB_shader_subroutine;
1299int GLAD_GL_NV_vertex_program;
1300int GLAD_GL_ARB_texture_query_levels;
1301int GLAD_GL_IBM_rasterpos_clip;
1302int GLAD_GL_NV_gpu_program5_mem_extended;
1303int GLAD_GL_NV_draw_texture;
1304int GLAD_GL_SGIX_texture_lod_bias;
1305int GLAD_GL_ARB_transpose_matrix;
1306int GLAD_GL_ATI_map_object_buffer;
1307int GLAD_GL_SGIS_texture_edge_clamp;
1308int GLAD_GL_APPLE_rgb_422;
1309int GLAD_GL_NV_light_max_exponent;
1310int GLAD_GL_S3_s3tc;
1311int GLAD_GL_EXT_vertex_attrib_64bit;
1312int GLAD_GL_ARB_get_texture_sub_image;
1313int GLAD_GL_EXT_blend_minmax; 1485int GLAD_GL_EXT_blend_minmax;
1486int GLAD_GL_MESA_pack_invert;
1487int GLAD_GL_ARB_base_instance;
1488int GLAD_GL_SGIX_convolution_accuracy;
1489int GLAD_GL_PGI_vertex_hints;
1490int GLAD_GL_AMD_transform_feedback4;
1491int GLAD_GL_ARB_ES3_1_compatibility;
1492int GLAD_GL_EXT_memory_object_win32;
1493int GLAD_GL_EXT_texture_integer;
1494int GLAD_GL_ARB_texture_multisample;
1495int GLAD_GL_ATI_vertex_streams;
1496int GLAD_GL_AMD_gpu_shader_int64;
1497int GLAD_GL_S3_s3tc;
1314int GLAD_GL_ARB_query_buffer_object; 1498int GLAD_GL_ARB_query_buffer_object;
1315int GLAD_GL_MESA_shader_integer_functions; 1499int GLAD_GL_AMD_vertex_shader_tessellator;
1316int GLAD_GL_EXT_422_pixels;
1317int GLAD_GL_ARB_texture_cube_map;
1318int GLAD_GL_NV_pixel_data_range;
1319int GLAD_GL_ARB_invalidate_subdata; 1500int GLAD_GL_ARB_invalidate_subdata;
1320int GLAD_GL_ARB_shader_texture_lod; 1501int GLAD_GL_NV_draw_vulkan_image;
1321int GLAD_GL_KHR_no_error; 1502int GLAD_GL_EXT_index_material;
1322int GLAD_GL_NV_gpu_multicast; 1503int GLAD_GL_NVX_linked_gpu_multicast;
1323int GLAD_GL_NV_fragment_program2; 1504int GLAD_GL_NV_blend_equation_advanced_coherent;
1324int GLAD_GL_EXT_geometry_shader4; 1505int GLAD_GL_KHR_texture_compression_astc_sliced_3d;
1325int GLAD_GL_SGIX_scalebias_hint; 1506int GLAD_GL_INTEL_parallel_arrays;
1326int GLAD_GL_AMD_blend_minmax_factor;
1327int GLAD_GL_NV_packed_depth_stencil;
1328int GLAD_GL_SGIX_shadow;
1329int GLAD_GL_EXT_post_depth_coverage;
1330int GLAD_GL_NV_half_float;
1331int GLAD_GL_NV_texture_shader;
1332int GLAD_GL_EXT_texture_cube_map;
1333int GLAD_GL_ARB_conservative_depth;
1334int GLAD_GL_SGIS_fog_function;
1335int GLAD_GL_ARB_map_buffer_range;
1336int GLAD_GL_ARB_uniform_buffer_object;
1337int GLAD_GL_ATI_draw_buffers; 1507int GLAD_GL_ATI_draw_buffers;
1338int GLAD_GL_NV_geometry_shader4; 1508int GLAD_GL_WIN_specular_fog;
1509int GLAD_GL_EXT_cmyka;
1510int GLAD_GL_SGIX_pixel_texture;
1511int GLAD_GL_APPLE_specular_vector;
1512int GLAD_GL_ARB_compatibility;
1513int GLAD_GL_ARB_timer_query;
1514int GLAD_GL_SGIX_interlace;
1515int GLAD_GL_NV_parameter_buffer_object;
1516int GLAD_GL_AMD_shader_trinary_minmax;
1517int GLAD_GL_ARB_direct_state_access;
1518int GLAD_GL_EXT_rescale_normal;
1519int GLAD_GL_ARB_pixel_buffer_object;
1520int GLAD_GL_ARB_uniform_buffer_object;
1521int GLAD_GL_ARB_vertex_type_10f_11f_11f_rev;
1522int GLAD_GL_ARB_texture_swizzle;
1523int GLAD_GL_NV_transform_feedback2;
1524int GLAD_GL_SGIX_async_pixel;
1525int GLAD_GL_NV_fragment_program_option;
1526int GLAD_GL_ARB_explicit_attrib_location;
1527int GLAD_GL_EXT_blend_color;
1528int GLAD_GL_NV_shader_thread_group;
1529int GLAD_GL_EXT_stencil_wrap;
1530int GLAD_GL_EXT_index_array_formats;
1531int GLAD_GL_OVR_multiview2;
1339int GLAD_GL_EXT_histogram; 1532int GLAD_GL_EXT_histogram;
1340int GLAD_GL_AMD_vertex_shader_layer; 1533int GLAD_GL_EXT_polygon_offset;
1341int GLAD_GL_SGIX_ir_instrument1; 1534int GLAD_GL_SGIS_point_parameters;
1342int GLAD_GL_APPLE_object_purgeable; 1535int GLAD_GL_SGIX_ycrcb;
1343int GLAD_GL_EXT_texture_env_dot3; 1536int GLAD_GL_EXT_direct_state_access;
1344int GLAD_GL_EXT_packed_pixels; 1537int GLAD_GL_ARB_cull_distance;
1345int GLAD_GL_ARB_vertex_buffer_object; 1538int GLAD_GL_AMD_sample_positions;
1346int GLAD_GL_NV_fragment_program4; 1539int GLAD_GL_NV_vertex_program;
1347int GLAD_GL_EXT_coordinate_frame; 1540int GLAD_GL_NV_shader_thread_shuffle;
1348int GLAD_GL_SGIX_subsample; 1541int GLAD_GL_ARB_shader_precision;
1349int GLAD_GL_3DFX_tbuffer; 1542int GLAD_GL_EXT_vertex_shader;
1350int GLAD_GL_IBM_texture_mirrored_repeat; 1543int GLAD_GL_EXT_blend_func_separate;
1544int GLAD_GL_APPLE_fence;
1545int GLAD_GL_NV_query_resource_tag;
1546int GLAD_GL_OES_byte_coordinates;
1547int GLAD_GL_ARB_transpose_matrix;
1548int GLAD_GL_ARB_provoking_vertex;
1549int GLAD_GL_EXT_fog_coord;
1550int GLAD_GL_EXT_vertex_array;
1551int GLAD_GL_ARB_half_float_vertex;
1552int GLAD_GL_EXT_blend_equation_separate;
1553int GLAD_GL_NV_framebuffer_mixed_samples;
1554int GLAD_GL_NVX_conditional_render;
1555int GLAD_GL_ARB_multi_draw_indirect;
1556int GLAD_GL_EXT_raster_multisample;
1557int GLAD_GL_NV_copy_image;
1558int GLAD_GL_HP_texture_lighting;
1559int GLAD_GL_INTEL_framebuffer_CMAA;
1560int GLAD_GL_ARB_transform_feedback2;
1561int GLAD_GL_ARB_transform_feedback3;
1351int GLAD_GL_SGIX_ycrcba; 1562int GLAD_GL_SGIX_ycrcba;
1352int GLAD_GL_SGIS_texture_color_mask; 1563int GLAD_GL_EXT_debug_marker;
1353int GLAD_GL_INTEL_parallel_arrays; 1564int GLAD_GL_EXT_bgra;
1354int GLAD_GL_ARB_depth_buffer_float; 1565int GLAD_GL_ARB_sparse_texture_clamp;
1355int GLAD_GL_SGIX_interlace; 1566int GLAD_GL_EXT_pixel_transform;
1356int GLAD_GL_ARB_internalformat_query; 1567int GLAD_GL_ARB_conservative_depth;
1357int GLAD_GL_ARB_shader_atomic_counter_ops; 1568int GLAD_GL_ATI_fragment_shader;
1358int GLAD_GL_ARB_spirv_extensions;
1359int GLAD_GL_NV_texgen_reflection;
1360int GLAD_GL_ARB_occlusion_query2;
1361int GLAD_GL_ARB_derivative_control;
1362int GLAD_GL_ARB_framebuffer_no_attachments;
1363int GLAD_GL_SGIX_fragment_lighting;
1364int GLAD_GL_ARB_vertex_array_object; 1569int GLAD_GL_ARB_vertex_array_object;
1365int GLAD_GL_EXT_cull_vertex; 1570int GLAD_GL_SUN_triangle_list;
1571int GLAD_GL_EXT_texture_env_add;
1572int GLAD_GL_EXT_packed_depth_stencil;
1573int GLAD_GL_EXT_texture_mirror_clamp;
1574int GLAD_GL_NV_multisample_filter_hint;
1575int GLAD_GL_APPLE_float_pixels;
1366int GLAD_GL_ARB_transform_feedback_instanced; 1576int GLAD_GL_ARB_transform_feedback_instanced;
1367int GLAD_GL_ARB_texture_multisample; 1577int GLAD_GL_SGIX_async;
1368int GLAD_GL_SGIS_texture_select; 1578int GLAD_GL_EXT_texture_compression_latc;
1369int GLAD_GL_ARB_gpu_shader_int64; 1579int GLAD_GL_NV_robustness_video_memory_purge;
1370int GLAD_GL_ARB_copy_image; 1580int GLAD_GL_ARB_shading_language_100;
1371int GLAD_GL_ATI_vertex_attrib_array_object; 1581int GLAD_GL_INTEL_performance_query;
1372int GLAD_GL_EXT_win32_keyed_mutex;
1373int GLAD_GL_ARB_texture_border_clamp;
1374int GLAD_GL_ARB_shader_atomic_counters;
1375int GLAD_GL_ARB_separate_shader_objects;
1376int GLAD_GL_SGIX_pixel_texture;
1377int GLAD_GL_SGIX_async_histogram;
1378int GLAD_GL_NV_blend_minmax_factor;
1379int GLAD_GL_ARB_fragment_layer_viewport;
1380int GLAD_GL_EXT_index_texture;
1381int GLAD_GL_IBM_cull_vertex;
1382int GLAD_GL_IBM_vertex_array_lists;
1383int GLAD_GL_NV_framebuffer_mixed_samples;
1384int GLAD_GL_ARB_get_program_binary;
1385int GLAD_GL_EXT_direct_state_access;
1386int GLAD_GL_ATI_texture_float;
1387int GLAD_GL_EXT_texture_compression_s3tc;
1388int GLAD_GL_NV_viewport_swizzle;
1389int GLAD_GL_ARB_shading_language_include;
1390int GLAD_GL_EXT_texture_sRGB;
1391int GLAD_GL_ARB_texture_mirror_clamp_to_edge; 1582int GLAD_GL_ARB_texture_mirror_clamp_to_edge;
1392int GLAD_GL_SGIX_polynomial_ffd;
1393int GLAD_GL_NV_gpu_shader5; 1583int GLAD_GL_NV_gpu_shader5;
1394int GLAD_GL_NV_path_rendering; 1584int GLAD_GL_NV_bindless_multi_draw_indirect_count;
1395int GLAD_GL_ARB_framebuffer_sRGB; 1585int GLAD_GL_ARB_ES2_compatibility;
1396int GLAD_GL_ARB_texture_float; 1586int GLAD_GL_ARB_indirect_parameters;
1397int GLAD_GL_ARB_draw_elements_base_vertex; 1587int GLAD_GL_EXT_window_rectangles;
1398int GLAD_GL_ARB_vertex_program; 1588int GLAD_GL_NV_half_float;
1399int GLAD_GL_SGIX_clipmap; 1589int GLAD_GL_ARB_ES3_2_compatibility;
1400int GLAD_GL_NV_fence; 1590int GLAD_GL_ATI_texture_mirror_once;
1401int GLAD_GL_HP_occlusion_test; 1591int GLAD_GL_IBM_rasterpos_clip;
1402int GLAD_GL_ARB_clip_control; 1592int GLAD_GL_EXT_semaphore;
1403int GLAD_GL_ARB_texture_stencil8; 1593int GLAD_GL_SGIX_shadow;
1404int GLAD_GL_SUN_triangle_list;
1405int GLAD_GL_EXT_blend_logic_op;
1406int GLAD_GL_NV_present_video;
1407int GLAD_GL_NV_fill_rectangle;
1408int GLAD_GL_NV_parameter_buffer_object;
1409int GLAD_GL_NV_evaluators;
1410int GLAD_GL_NV_texgen_emboss;
1411int GLAD_GL_ARB_multisample;
1412int GLAD_GL_EXT_polygon_offset_clamp; 1594int GLAD_GL_EXT_polygon_offset_clamp;
1413int GLAD_GL_SGI_color_table; 1595int GLAD_GL_NV_deep_texture3D;
1414int GLAD_GL_SGIS_multisample; 1596int GLAD_GL_ARB_shader_draw_parameters;
1415int GLAD_GL_EXT_texture_env_add; 1597int GLAD_GL_SGIX_calligraphic_fragment;
1416int GLAD_GL_NV_conservative_raster_underestimation; 1598int GLAD_GL_ARB_shader_bit_encoding;
1417int GLAD_GL_ARB_fragment_shader_interlock; 1599int GLAD_GL_EXT_compiled_vertex_array;
1418int GLAD_GL_ARB_gpu_shader_fp64; 1600int GLAD_GL_NV_depth_buffer_float;
1419int GLAD_GL_NV_gpu_program5;
1420int GLAD_GL_EXT_debug_label;
1421int GLAD_GL_ARB_shading_language_100;
1422int GLAD_GL_ARB_sparse_texture2;
1423int GLAD_GL_NV_vertex_program3;
1424int GLAD_GL_PGI_vertex_hints;
1425int GLAD_GL_INTEL_conservative_rasterization;
1426int GLAD_GL_EXT_paletted_texture;
1427int GLAD_GL_ATI_vertex_streams;
1428int GLAD_GL_NV_alpha_to_coverage_dither_control;
1429int GLAD_GL_EXT_shader_image_load_store;
1430int GLAD_GL_NV_bindless_texture;
1431int GLAD_GL_NV_occlusion_query; 1601int GLAD_GL_NV_occlusion_query;
1432int GLAD_GL_AMD_query_buffer_object; 1602int GLAD_GL_APPLE_flush_buffer_range;
1603int GLAD_GL_ARB_imaging;
1604int GLAD_GL_NV_shader_atomic_float;
1433int GLAD_GL_ARB_draw_buffers_blend; 1605int GLAD_GL_ARB_draw_buffers_blend;
1434int GLAD_GL_ARB_shader_image_size; 1606int GLAD_GL_AMD_gcn_shader;
1435int GLAD_GL_ARB_transform_feedback_overflow_query; 1607int GLAD_GL_AMD_blend_minmax_factor;
1436int GLAD_GL_ARB_debug_output; 1608int GLAD_GL_EXT_texture_sRGB_decode;
1437int GLAD_GL_ARB_shader_storage_buffer_object; 1609int GLAD_GL_ARB_shading_language_420pack;
1438int GLAD_GL_SGIX_framezoom;
1439int GLAD_GL_APPLE_vertex_program_evaluators;
1440int GLAD_GL_NV_texture_env_combine4;
1441int GLAD_GL_AMD_gpu_shader_int64;
1442int GLAD_GL_ARB_shader_viewport_layer_array; 1610int GLAD_GL_ARB_shader_viewport_layer_array;
1443int GLAD_GL_ARB_window_pos; 1611int GLAD_GL_ATI_meminfo;
1444int GLAD_GL_ARB_vertex_array_bgra; 1612int GLAD_GL_EXT_abgr;
1445int GLAD_GL_KHR_robust_buffer_access_behavior; 1613int GLAD_GL_AMD_pinned_memory;
1446int GLAD_GL_ARB_sparse_texture_clamp; 1614int GLAD_GL_EXT_texture_snorm;
1447int GLAD_GL_SGIX_instruments; 1615int GLAD_GL_SGIX_texture_coordinate_clamp;
1448int GLAD_GL_SGIX_resample; 1616int GLAD_GL_ARB_clear_buffer_object;
1449int GLAD_GL_EXT_stencil_wrap; 1617int GLAD_GL_ARB_multisample;
1450int GLAD_GL_NV_texture_expand_normal; 1618int GLAD_GL_EXT_debug_label;
1451int GLAD_GL_EXT_texture_filter_anisotropic;
1452int GLAD_GL_INTEL_fragment_shader_ordering;
1453int GLAD_GL_ARB_texture_env_combine;
1454int GLAD_GL_ARB_fragment_coord_conventions;
1455int GLAD_GL_AMD_shader_image_load_store_lod;
1456int GLAD_GL_EXT_stencil_two_side;
1457int GLAD_GL_ARB_texture_rgb10_a2ui;
1458int GLAD_GL_APPLE_row_bytes;
1459int GLAD_GL_EXT_index_material;
1460int GLAD_GL_ARB_texture_rectangle;
1461int GLAD_GL_NV_explicit_multisample;
1462int GLAD_GL_ARB_texture_non_power_of_two;
1463int GLAD_GL_EXT_texture;
1464int GLAD_GL_SGIX_texture_multi_buffer;
1465int GLAD_GL_NV_transform_feedback2;
1466int GLAD_GL_APPLE_ycbcr_422;
1467int GLAD_GL_APPLE_client_storage;
1468int GLAD_GL_ARB_geometry_shader4;
1469int GLAD_GL_ARB_sample_shading; 1619int GLAD_GL_ARB_sample_shading;
1470int GLAD_GL_NV_fragment_shader_interlock; 1620int GLAD_GL_NV_internalformat_sample_query;
1471int GLAD_GL_ARB_compressed_texture_pixel_storage; 1621int GLAD_GL_INTEL_map_texture;
1472int GLAD_GL_AMD_vertex_shader_viewport_index; 1622int GLAD_GL_ARB_texture_env_crossbar;
1473int GLAD_GL_AMD_shader_explicit_vertex_parameter; 1623int GLAD_GL_EXT_422_pixels;
1474int GLAD_GL_ARB_texture_storage; 1624int GLAD_GL_NV_blend_minmax_factor;
1475int GLAD_GL_SGIX_flush_raster;
1476int GLAD_GL_ATI_texture_mirror_once;
1477int GLAD_GL_NV_robustness_video_memory_purge;
1478int GLAD_GL_ATI_vertex_array_object;
1479int GLAD_GL_ARB_arrays_of_arrays;
1480int GLAD_GL_EXT_texture_buffer_object;
1481int GLAD_GL_SGIS_pixel_texture;
1482int GLAD_GL_ARB_vertex_shader;
1483int GLAD_GL_EXT_texture_perturb_normal;
1484int GLAD_GL_ARB_multitexture;
1485int GLAD_GL_IBM_multimode_draw_arrays;
1486int GLAD_GL_OML_subsample;
1487int GLAD_GL_AMD_occlusion_query_event;
1488int GLAD_GL_NV_conservative_raster_pre_snap_triangles; 1625int GLAD_GL_NV_conservative_raster_pre_snap_triangles;
1489int GLAD_GL_ARB_texture_filter_minmax; 1626int GLAD_GL_ARB_compute_shader;
1490int GLAD_GL_ARB_sync; 1627int GLAD_GL_EXT_blend_logic_op;
1491int GLAD_GL_ARB_clear_buffer_object; 1628int GLAD_GL_ARB_blend_func_extended;
1492int GLAD_GL_EXT_gpu_shader4; 1629int GLAD_GL_IBM_vertex_array_lists;
1493int GLAD_GL_ARB_transform_feedback3; 1630int GLAD_GL_ARB_color_buffer_float;
1494int GLAD_GL_KHR_blend_equation_advanced;
1495int GLAD_GL_SGIX_async;
1496int GLAD_GL_ARB_seamless_cubemap_per_texture;
1497int GLAD_GL_AMD_framebuffer_sample_positions;
1498int GLAD_GL_NV_uniform_buffer_unified_memory;
1499int GLAD_GL_NV_texture_barrier;
1500int GLAD_GL_ARB_buffer_storage;
1501int GLAD_GL_WIN_phong_shading;
1502int GLAD_GL_ARB_viewport_array;
1503int GLAD_GL_SGIX_pixel_tiles;
1504int GLAD_GL_ARB_draw_buffers;
1505int GLAD_GL_KHR_texture_compression_astc_hdr;
1506int GLAD_GL_PGI_misc_hints;
1507int GLAD_GL_NV_sample_mask_override_coverage;
1508int GLAD_GL_ARB_vertex_type_10f_11f_11f_rev;
1509int GLAD_GL_EXT_texture_object;
1510int GLAD_GL_NV_parameter_buffer_object2;
1511int GLAD_GL_EXT_provoking_vertex;
1512int GLAD_GL_OES_compressed_paletted_texture;
1513int GLAD_GL_SGIX_texture_add_env;
1514int GLAD_GL_EXT_texture_lod_bias;
1515int GLAD_GL_AMD_conservative_depth;
1516int GLAD_GL_AMD_performance_monitor;
1517int GLAD_GL_ARB_matrix_palette;
1518int GLAD_GL_OES_single_precision;
1519int GLAD_GL_SGIX_convolution_accuracy;
1520int GLAD_GL_NV_point_sprite;
1521int GLAD_GL_MESA_tile_raster_order;
1522int GLAD_GL_ARB_shadow;
1523int GLAD_GL_EXT_bgra;
1524int GLAD_GL_ARB_tessellation_shader;
1525int GLAD_GL_ARB_ES3_compatibility;
1526int GLAD_GL_NV_vdpau_interop;
1527int GLAD_GL_SGIX_texture_coordinate_clamp;
1528int GLAD_GL_EXT_debug_marker;
1529int GLAD_GL_HP_image_transform;
1530int GLAD_GL_EXT_blend_func_separate;
1531int GLAD_GL_EXT_blend_equation_separate;
1532int GLAD_GL_AMD_gpu_shader_half_float;
1533int GLAD_GL_ARB_bindless_texture; 1631int GLAD_GL_ARB_bindless_texture;
1632int GLAD_GL_ARB_window_pos;
1633int GLAD_GL_ARB_internalformat_query;
1634int GLAD_GL_ARB_shadow;
1635int GLAD_GL_ARB_texture_mirrored_repeat;
1636int GLAD_GL_EXT_shader_image_load_store;
1637int GLAD_GL_EXT_copy_texture;
1638int GLAD_GL_NV_register_combiners2;
1639int GLAD_GL_SGIX_ycrcb_subsample;
1640int GLAD_GL_NV_alpha_to_coverage_dither_control;
1641int GLAD_GL_SGIX_ir_instrument1;
1642int GLAD_GL_NV_draw_texture;
1643int GLAD_GL_EXT_texture_shared_exponent;
1644int GLAD_GL_NV_texture_shader2;
1534int GLAD_GL_EXT_draw_instanced; 1645int GLAD_GL_EXT_draw_instanced;
1535int GLAD_GL_ARB_sampler_objects; 1646int GLAD_GL_NV_copy_depth_to_color;
1536int GLAD_GL_EXT_semaphore; 1647int GLAD_GL_ARB_viewport_array;
1648int GLAD_GL_ARB_separate_shader_objects;
1649int GLAD_GL_NV_conservative_raster_pre_snap;
1650int GLAD_GL_EXT_depth_bounds_test;
1651int GLAD_GL_HP_image_transform;
1537int GLAD_GL_ARB_texture_env_add; 1652int GLAD_GL_ARB_texture_env_add;
1538int GLAD_GL_NV_fog_distance; 1653int GLAD_GL_NV_video_capture;
1539int GLAD_GL_SGIS_texture_filter4; 1654int GLAD_GL_ARB_sampler_objects;
1540int GLAD_GL_EXT_stencil_clear_tag; 1655int GLAD_GL_ARB_matrix_palette;
1541int GLAD_GL_ARB_texture_barrier; 1656int GLAD_GL_SGIS_texture_color_mask;
1542int GLAD_GL_OVR_multiview; 1657int GLAD_GL_EXT_packed_pixels;
1543int GLAD_GL_NV_shader_thread_shuffle; 1658int GLAD_GL_EXT_coordinate_frame;
1544int GLAD_GL_EXT_framebuffer_sRGB;
1545int GLAD_GL_NVX_linked_gpu_multicast;
1546int GLAD_GL_EXT_vertex_array_bgra;
1547int GLAD_GL_SGIX_vertex_preclip;
1548int GLAD_GL_EXT_x11_sync_object;
1549int GLAD_GL_ARB_ES3_2_compatibility;
1550int GLAD_GL_EXT_light_texture;
1551int GLAD_GL_ARB_texture_filter_anisotropic;
1552int GLAD_GL_ARB_shader_precision;
1553int GLAD_GL_INGR_blend_func_separate;
1554int GLAD_GL_ARB_texture_compression; 1659int GLAD_GL_ARB_texture_compression;
1555int GLAD_GL_NV_fragment_coverage_to_color; 1660int GLAD_GL_ARB_multi_bind;
1556int GLAD_GL_WIN_specular_fog; 1661int GLAD_GL_APPLE_aux_depth_stencil;
1557int GLAD_GL_ARB_framebuffer_object; 1662int GLAD_GL_ARB_shader_subroutine;
1558int GLAD_GL_EXT_shader_image_load_formatted; 1663int GLAD_GL_EXT_framebuffer_sRGB;
1559int GLAD_GL_NV_vertex_program1_1; 1664int GLAD_GL_ARB_texture_storage_multisample;
1560int GLAD_GL_ARB_color_buffer_float; 1665int GLAD_GL_KHR_blend_equation_advanced_coherent;
1561int GLAD_GL_NV_geometry_shader_passthrough; 1666int GLAD_GL_EXT_vertex_attrib_64bit;
1562int GLAD_GL_3DFX_multisample; 1667int GLAD_GL_NV_shader_atomic_float64;
1563int GLAD_GL_SGIX_depth_pass_instrument;
1564int GLAD_GL_EXT_transform_feedback;
1565int GLAD_GL_ARB_shader_group_vote;
1566int GLAD_GL_EXT_draw_buffers2;
1567int GLAD_GL_AMD_shader_ballot;
1568int GLAD_GL_ARB_texture_mirrored_repeat;
1569int GLAD_GL_KHR_parallel_shader_compile;
1570int GLAD_GL_APPLE_fence;
1571int GLAD_GL_SGIX_reference_plane;
1572int GLAD_GL_SGIS_detail_texture;
1573int GLAD_GL_ARB_sparse_buffer;
1574int GLAD_GL_SGIX_texture_scale_bias;
1575int GLAD_GL_SGIS_sharpen_texture;
1576int GLAD_GL_EXT_compiled_vertex_array;
1577int GLAD_GL_ARB_depth_texture; 1668int GLAD_GL_ARB_depth_texture;
1578int GLAD_GL_APPLE_vertex_array_object; 1669int GLAD_GL_NV_shader_buffer_store;
1579int GLAD_GL_NV_shader_thread_group; 1670int GLAD_GL_OES_query_matrix;
1580int GLAD_GL_ARB_compute_shader; 1671int GLAD_GL_MESA_window_pos;
1581int GLAD_GL_SGIX_async_pixel; 1672int GLAD_GL_NV_fill_rectangle;
1582int GLAD_GL_INTEL_framebuffer_CMAA; 1673int GLAD_GL_NV_shader_storage_buffer_object;
1583int GLAD_GL_EXT_semaphore_win32; 1674int GLAD_GL_ARB_texture_query_lod;
1584int GLAD_GL_AMD_shader_atomic_counter_ops; 1675int GLAD_GL_ARB_copy_buffer;
1585int GLAD_GL_ARB_gl_spirv; 1676int GLAD_GL_ARB_shader_image_size;
1586int GLAD_GL_NV_vertex_program4; 1677int GLAD_GL_NV_shader_atomic_counters;
1587int GLAD_GL_ARB_shader_clock; 1678int GLAD_GL_APPLE_object_purgeable;
1588int GLAD_GL_ARB_shader_image_load_store; 1679int GLAD_GL_ARB_occlusion_query;
1589int GLAD_GL_ARB_vertex_attrib_binding; 1680int GLAD_GL_INGR_color_clamp;
1590int GLAD_GL_ARB_vertex_attrib_64bit; 1681int GLAD_GL_SGI_color_table;
1591int GLAD_GL_EXT_rescale_normal; 1682int GLAD_GL_NV_gpu_program5_mem_extended;
1592int GLAD_GL_ARB_shader_objects;
1593int GLAD_GL_ARB_texture_cube_map_array; 1683int GLAD_GL_ARB_texture_cube_map_array;
1594int GLAD_GL_ATI_separate_stencil; 1684int GLAD_GL_SGIX_scalebias_hint;
1595int GLAD_GL_OES_byte_coordinates; 1685int GLAD_GL_EXT_gpu_shader4;
1596int GLAD_GL_EXT_memory_object_win32; 1686int GLAD_GL_NV_geometry_program4;
1597int GLAD_GL_SGIS_point_line_texgen; 1687int GLAD_GL_EXT_framebuffer_multisample_blit_scaled;
1598int GLAD_GL_SUN_mesh_array; 1688int GLAD_GL_AMD_debug_output;
1599int GLAD_GL_NV_shader_atomic_float; 1689int GLAD_GL_ARB_texture_border_clamp;
1600int GLAD_GL_ARB_timer_query; 1690int GLAD_GL_EXT_win32_keyed_mutex;
1601int GLAD_GL_ARB_texture_buffer_object; 1691int GLAD_GL_ARB_fragment_coord_conventions;
1602int GLAD_GL_ARB_ES2_compatibility; 1692int GLAD_GL_ARB_multitexture;
1693int GLAD_GL_SGIX_polynomial_ffd;
1694int GLAD_GL_EXT_texture_env_dot3;
1695int GLAD_GL_EXT_provoking_vertex;
1696int GLAD_GL_ARB_point_parameters;
1697int GLAD_GL_ARB_shader_image_load_store;
1698int GLAD_GL_ARB_conditional_render_inverted;
1699int GLAD_GL_HP_occlusion_test;
1700int GLAD_GL_ARB_ES3_compatibility;
1701int GLAD_GL_ARB_texture_barrier;
1702int GLAD_GL_ARB_texture_buffer_object_rgb32;
1703int GLAD_GL_NV_bindless_multi_draw_indirect;
1704int GLAD_GL_SGIX_texture_multi_buffer;
1705int GLAD_GL_INTEL_blackhole_render;
1706int GLAD_GL_AMD_shader_image_load_store_lod;
1707int GLAD_GL_KHR_texture_compression_astc_ldr;
1708int GLAD_GL_3DFX_multisample;
1709int GLAD_GL_INTEL_fragment_shader_ordering;
1710int GLAD_GL_ARB_texture_env_dot3;
1711int GLAD_GL_NV_gpu_program4;
1712int GLAD_GL_NV_gpu_program5;
1603int GLAD_GL_NV_float_buffer; 1713int GLAD_GL_NV_float_buffer;
1604int GLAD_GL_SGI_texture_color_table; 1714int GLAD_GL_SGIS_texture_edge_clamp;
1605int GLAD_GL_SGIX_depth_texture; 1715int GLAD_GL_ARB_framebuffer_sRGB;
1606int GLAD_GL_NV_path_rendering_shared_edge; 1716int GLAD_GL_SUN_slice_accum;
1607int GLAD_GL_ARB_vertex_blend; 1717int GLAD_GL_EXT_index_texture;
1608int GLAD_GL_ARB_texture_buffer_range; 1718int GLAD_GL_EXT_shader_image_load_formatted;
1609int GLAD_GL_ARB_robustness; 1719int GLAD_GL_ARB_geometry_shader4;
1610int GLAD_GL_ARB_gpu_shader5; 1720int GLAD_GL_EXT_separate_specular_color;
1611int GLAD_GL_NV_fragment_program_option;
1612int GLAD_GL_ARB_fragment_program;
1613int GLAD_GL_NV_texture_rectangle;
1614int GLAD_GL_ARB_direct_state_access;
1615int GLAD_GL_INGR_interlace_read;
1616int GLAD_GL_AMD_pinned_memory;
1617int GLAD_GL_APPLE_flush_buffer_range;
1618int GLAD_GL_ARB_parallel_shader_compile;
1619int GLAD_GL_ARB_blend_func_extended;
1620int GLAD_GL_ARB_pixel_buffer_object;
1621int GLAD_GL_EXT_blend_subtract;
1622int GLAD_GL_ARB_base_instance;
1623int GLAD_GL_INTEL_performance_query;
1624int GLAD_GL_APPLE_specular_vector;
1625int GLAD_GL_EXT_texture3D;
1626int GLAD_GL_EXT_gpu_program_parameters;
1627int GLAD_GL_SGIX_igloo_interface;
1628int GLAD_GL_AMD_depth_clamp_separate; 1721int GLAD_GL_AMD_depth_clamp_separate;
1629int GLAD_GL_ARB_stencil_texturing;
1630int GLAD_GL_EXT_vertex_array;
1631int GLAD_GL_SGIX_ycrcb;
1632int GLAD_GL_NVX_blend_equation_advanced_multi_draw_buffers;
1633int GLAD_GL_SUN_global_alpha;
1634int GLAD_GL_APPLE_element_array;
1635int GLAD_GL_ARB_internalformat_query2;
1636int GLAD_GL_AMD_interleaved_elements;
1637int GLAD_GL_INTEL_map_texture;
1638int GLAD_GL_INGR_color_clamp;
1639int GLAD_GL_SGIX_shadow_ambient;
1640int GLAD_GL_ARB_compatibility;
1641int GLAD_GL_NV_multisample_filter_hint;
1642int GLAD_GL_EXT_pixel_buffer_object;
1643int GLAD_GL_EXT_multisample;
1644int GLAD_GL_AMD_name_gen_delete;
1645int GLAD_GL_NV_internalformat_sample_query;
1646int GLAD_GL_ARB_robustness_isolation;
1647int GLAD_GL_ARB_enhanced_layouts;
1648int GLAD_GL_NV_vertex_array_range2;
1649int GLAD_GL_NV_texture_rectangle_compressed;
1650int GLAD_GL_SGIX_blend_alpha_minmax;
1651int GLAD_GL_EXT_memory_object;
1652int GLAD_GL_ARB_sample_locations;
1653int GLAD_GL_EXT_blend_color;
1654int GLAD_GL_ARB_post_depth_coverage;
1655int GLAD_GL_AMD_vertex_shader_tessellator;
1656int GLAD_GL_KHR_texture_compression_astc_ldr;
1657int GLAD_GL_NV_vertex_attrib_integer_64bit;
1658int GLAD_GL_SUN_convolution_border_modes;
1659int GLAD_GL_EXT_texture_env_combine;
1660int GLAD_GL_ATI_fragment_shader;
1661int GLAD_GL_NV_conservative_raster; 1722int GLAD_GL_NV_conservative_raster;
1662int GLAD_GL_SGIS_texture4D; 1723int GLAD_GL_ARB_sparse_texture2;
1663int GLAD_GL_EXT_separate_shader_objects; 1724int GLAD_GL_SGIX_sprite;
1664int GLAD_GL_EXT_multi_draw_arrays; 1725int GLAD_GL_ARB_get_program_binary;
1665int GLAD_GL_ARB_clear_texture; 1726int GLAD_GL_AMD_occlusion_query_event;
1666int GLAD_GL_ARB_texture_gather; 1727int GLAD_GL_SGIS_multisample;
1667int GLAD_GL_ATI_element_array; 1728int GLAD_GL_EXT_framebuffer_object;
1729int GLAD_GL_ARB_robustness_isolation;
1730int GLAD_GL_ARB_vertex_array_bgra;
1668int GLAD_GL_APPLE_vertex_array_range; 1731int GLAD_GL_APPLE_vertex_array_range;
1669int GLAD_GL_NVX_conditional_render; 1732int GLAD_GL_AMD_query_buffer_object;
1670int GLAD_GL_EXT_memory_object_fd; 1733int GLAD_GL_NV_register_combiners;
1671int GLAD_GL_EXT_pixel_transform_color_table; 1734int GLAD_GL_ARB_draw_buffers;
1672int GLAD_GL_EXT_fog_coord; 1735int GLAD_GL_NVX_blend_equation_advanced_multi_draw_buffers;
1673int GLAD_GL_NV_draw_vulkan_image; 1736int GLAD_GL_AMD_gpu_shader_int16;
1674int GLAD_GL_ARB_shadow_ambient; 1737int GLAD_GL_ARB_debug_output;
1675int GLAD_GL_ATI_meminfo; 1738int GLAD_GL_EXT_shader_framebuffer_fetch;
1676int GLAD_GL_MESAX_texture_stack; 1739int GLAD_GL_SGI_color_matrix;
1677int GLAD_GL_EXT_framebuffer_multisample; 1740int GLAD_GL_EXT_cull_vertex;
1678int GLAD_GL_AMD_draw_buffers_blend; 1741int GLAD_GL_EXT_texture_sRGB;
1742int GLAD_GL_APPLE_row_bytes;
1743int GLAD_GL_NV_conservative_raster_underestimation;
1744int GLAD_GL_IBM_multimode_draw_arrays;
1745int GLAD_GL_KHR_parallel_shader_compile;
1746int GLAD_GL_APPLE_vertex_array_object;
1747int GLAD_GL_3DFX_texture_compression_FXT1;
1748int GLAD_GL_NV_fragment_shader_interlock;
1749int GLAD_GL_AMD_conservative_depth;
1750int GLAD_GL_ARB_texture_float;
1751int GLAD_GL_ARB_compressed_texture_pixel_storage;
1752int GLAD_GL_SGIS_detail_texture;
1753int GLAD_GL_NV_geometry_shader_passthrough;
1679int GLAD_GL_ARB_draw_instanced; 1754int GLAD_GL_ARB_draw_instanced;
1680int GLAD_GL_ARB_texture_compression_rgtc; 1755int GLAD_GL_OES_read_format;
1681int GLAD_GL_EXT_polygon_offset; 1756int GLAD_GL_ATI_texture_float;
1682int GLAD_GL_EXT_point_parameters; 1757int GLAD_GL_ARB_texture_gather;
1683int GLAD_GL_NV_shader_buffer_store; 1758int GLAD_GL_AMD_vertex_shader_layer;
1684int GLAD_GL_NV_register_combiners2; 1759int GLAD_GL_ARB_shading_language_include;
1760int GLAD_GL_APPLE_client_storage;
1761int GLAD_GL_WIN_phong_shading;
1762int GLAD_GL_INGR_blend_func_separate;
1763int GLAD_GL_NV_path_rendering;
1764int GLAD_GL_NV_conservative_raster_dilate;
1765int GLAD_GL_AMD_gpu_shader_half_float;
1766int GLAD_GL_ARB_post_depth_coverage;
1767int GLAD_GL_ARB_texture_non_power_of_two;
1768int GLAD_GL_APPLE_rgb_422;
1769int GLAD_GL_EXT_texture_lod_bias;
1770int GLAD_GL_ARB_gpu_shader_int64;
1771int GLAD_GL_ARB_seamless_cube_map;
1772int GLAD_GL_ARB_shader_group_vote;
1773int GLAD_GL_NV_vdpau_interop;
1774int GLAD_GL_ARB_occlusion_query2;
1775int GLAD_GL_ARB_internalformat_query2;
1776int GLAD_GL_EXT_texture_filter_anisotropic;
1685int GLAD_GL_SUN_vertex; 1777int GLAD_GL_SUN_vertex;
1686int GLAD_GL_ARB_explicit_uniform_location; 1778int GLAD_GL_EXT_transform_feedback;
1687int GLAD_GL_ARB_multi_draw_indirect; 1779int GLAD_GL_SGIX_igloo_interface;
1688int GLAD_GL_ARB_shader_bit_encoding;
1689int GLAD_GL_NV_vertex_array_range;
1690int GLAD_GL_ARB_texture_buffer_object_rgb32;
1691int GLAD_GL_ARB_map_buffer_alignment;
1692int GLAD_GL_EXT_texture_mirror_clamp;
1693int GLAD_GL_EXT_secondary_color;
1694int GLAD_GL_ARB_texture_view;
1695int GLAD_GL_EXT_texture_swizzle;
1696int GLAD_GL_EXT_packed_depth_stencil;
1697int GLAD_GL_EXT_copy_texture;
1698int GLAD_GL_NV_copy_image;
1699int GLAD_GL_ATI_envmap_bumpmap;
1700int GLAD_GL_SGIS_texture_lod; 1780int GLAD_GL_SGIS_texture_lod;
1701int GLAD_GL_SGIX_sprite; 1781int GLAD_GL_NV_vertex_program3;
1702int GLAD_GL_ARB_texture_storage_multisample;
1703int GLAD_GL_EXT_color_subtable;
1704int GLAD_GL_AMD_debug_output;
1705int GLAD_GL_ARB_point_sprite;
1706int GLAD_GL_NV_gpu_program4;
1707int GLAD_GL_SGIX_tag_sample_buffer;
1708int GLAD_GL_HP_texture_lighting;
1709int GLAD_GL_EXT_clip_volume_hint;
1710int GLAD_GL_ARB_polygon_offset_clamp;
1711int GLAD_GL_ARB_shader_texture_image_samples;
1712int GLAD_GL_ARB_texture_swizzle;
1713int GLAD_GL_ARB_texture_env_crossbar;
1714int GLAD_GL_NV_compute_program5;
1715int GLAD_GL_EXT_texture_sRGB_decode;
1716int GLAD_GL_SGIX_calligraphic_fragment;
1717int GLAD_GL_NV_shader_atomic_counters;
1718int GLAD_GL_ARB_cl_event;
1719int GLAD_GL_ARB_transform_feedback2;
1720int GLAD_GL_EXT_convolution;
1721int GLAD_GL_NV_conservative_raster_dilate;
1722int GLAD_GL_APPLE_texture_range;
1723int GLAD_GL_OML_interlace;
1724int GLAD_GL_EXT_abgr;
1725int GLAD_GL_NV_register_combiners;
1726int GLAD_GL_ARB_texture_rg;
1727int GLAD_GL_ARB_ES3_1_compatibility;
1728int GLAD_GL_ARB_half_float_vertex;
1729int GLAD_GL_3DFX_texture_compression_FXT1;
1730int GLAD_GL_EXT_texture_compression_latc;
1731int GLAD_GL_ARB_draw_indirect; 1782int GLAD_GL_ARB_draw_indirect;
1732int GLAD_GL_NV_copy_depth_to_color; 1783int GLAD_GL_NV_vertex_program4;
1733int GLAD_GL_SGIX_fog_offset; 1784int GLAD_GL_AMD_transform_feedback3_lines_triangles;
1734int GLAD_GL_NV_blend_square; 1785int GLAD_GL_SGIS_fog_function;
1735int GLAD_GL_ARB_explicit_attrib_location; 1786int GLAD_GL_EXT_x11_sync_object;
1736int GLAD_GL_ATI_text_fragment_shader; 1787int GLAD_GL_ARB_sync;
1737int GLAD_GL_SGIX_ycrcb_subsample; 1788int GLAD_GL_NV_texture_rectangle_compressed;
1738int GLAD_GL_EXT_vertex_weighting; 1789int GLAD_GL_NV_sample_locations;
1739int GLAD_GL_EXT_depth_bounds_test; 1790int GLAD_GL_NV_gpu_multicast;
1740int GLAD_GL_EXT_misc_attribute; 1791int GLAD_GL_ARB_gl_spirv;
1741int GLAD_GL_EXT_semaphore_fd; 1792int GLAD_GL_ARB_compute_variable_group_size;
1742int GLAD_GL_NV_vertex_buffer_unified_memory; 1793int GLAD_GL_OES_fixed_point;
1743int GLAD_GL_ARB_texture_query_lod;
1744int GLAD_GL_EXT_vertex_shader;
1745int GLAD_GL_MESA_program_binary_formats; 1794int GLAD_GL_MESA_program_binary_formats;
1746int GLAD_GL_ARB_shading_language_packing; 1795int GLAD_GL_NV_blend_square;
1747int GLAD_GL_ATI_pixel_format_float; 1796int GLAD_GL_EXT_framebuffer_multisample;
1748int GLAD_GL_ARB_shading_language_420pack; 1797int GLAD_GL_ARB_gpu_shader5;
1749int GLAD_GL_EXT_index_func; 1798int GLAD_GL_SGIS_texture4D;
1750int GLAD_GL_NV_deep_texture3D; 1799int GLAD_GL_EXT_texture3D;
1751int GLAD_GL_EXT_shadow_funcs; 1800int GLAD_GL_EXT_multisample;
1752int GLAD_GL_NV_blend_equation_advanced; 1801int GLAD_GL_EXT_secondary_color;
1753int GLAD_GL_EXT_texture_filter_minmax; 1802int GLAD_GL_INTEL_conservative_rasterization;
1754int GLAD_GL_NV_vertex_program2; 1803int GLAD_GL_ARB_texture_filter_minmax;
1755int GLAD_GL_AMD_texture_texture4; 1804int GLAD_GL_ATI_vertex_array_object;
1756int GLAD_GL_EXT_subtexture; 1805int GLAD_GL_ARB_parallel_shader_compile;
1757int GLAD_GL_AMD_stencil_operation_extended;
1758int GLAD_GL_NV_blend_equation_advanced_coherent;
1759int GLAD_GL_ARB_vertex_type_2_10_10_10_rev;
1760int GLAD_GL_GREMEDY_string_marker;
1761int GLAD_GL_OML_resample;
1762int GLAD_GL_KHR_robustness;
1763int GLAD_GL_EXT_texture_compression_rgtc;
1764int GLAD_GL_SGIX_list_priority;
1765int GLAD_GL_ARB_texture_env_dot3;
1766int GLAD_GL_APPLE_transform_hint;
1767int GLAD_GL_NV_geometry_program4;
1768int GLAD_GL_NV_texture_shader3;
1769int GLAD_GL_ARB_texture_compression_bptc;
1770int GLAD_GL_SGI_color_matrix;
1771int GLAD_GL_AMD_texture_gather_bias_lod;
1772int GLAD_GL_EXT_framebuffer_multisample_blit_scaled;
1773int GLAD_GL_APPLE_float_pixels;
1774int GLAD_GL_OVR_multiview2;
1775int GLAD_GL_SUN_slice_accum;
1776int GLAD_GL_NVX_gpu_memory_info; 1806int GLAD_GL_NVX_gpu_memory_info;
1777int GLAD_GL_KHR_texture_compression_astc_sliced_3d; 1807int GLAD_GL_ARB_sparse_texture;
1778int GLAD_GL_NV_depth_buffer_float; 1808int GLAD_GL_SGIS_point_line_texgen;
1779int GLAD_GL_NV_vertex_program2_option; 1809int GLAD_GL_ARB_sample_locations;
1780int GLAD_GL_ARB_shader_stencil_export; 1810int GLAD_GL_ARB_sparse_buffer;
1781int GLAD_GL_ARB_half_float_pixel; 1811int GLAD_GL_ARB_polygon_offset_clamp;
1782int GLAD_GL_EXT_texture_array; 1812int GLAD_GL_EXT_draw_range_elements;
1783int GLAD_GL_NV_shader_storage_buffer_object; 1813int GLAD_GL_SGIX_blend_alpha_minmax;
1784int GLAD_GL_ARB_indirect_parameters; 1814int GLAD_GL_KHR_context_flush_control;
1785int GLAD_GL_OES_query_matrix;
1786int GLAD_GL_ARB_provoking_vertex;
1787int GLAD_GL_NV_fragment_program;
1788int GLAD_GL_KHR_blend_equation_advanced_coherent;
1789PFNGLTBUFFERMASK3DFXPROC glad_glTbufferMask3DFX; 1815PFNGLTBUFFERMASK3DFXPROC glad_glTbufferMask3DFX;
1790PFNGLDEBUGMESSAGEENABLEAMDPROC glad_glDebugMessageEnableAMD; 1816PFNGLDEBUGMESSAGEENABLEAMDPROC glad_glDebugMessageEnableAMD;
1791PFNGLDEBUGMESSAGEINSERTAMDPROC glad_glDebugMessageInsertAMD; 1817PFNGLDEBUGMESSAGEINSERTAMDPROC glad_glDebugMessageInsertAMD;
@@ -2610,6 +2636,8 @@ PFNGLNORMALSTREAM3DVATIPROC glad_glNormalStream3dvATI;
2610PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC glad_glClientActiveVertexStreamATI; 2636PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC glad_glClientActiveVertexStreamATI;
2611PFNGLVERTEXBLENDENVIATIPROC glad_glVertexBlendEnviATI; 2637PFNGLVERTEXBLENDENVIATIPROC glad_glVertexBlendEnviATI;
2612PFNGLVERTEXBLENDENVFATIPROC glad_glVertexBlendEnvfATI; 2638PFNGLVERTEXBLENDENVFATIPROC glad_glVertexBlendEnvfATI;
2639PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC glad_glEGLImageTargetTexStorageEXT;
2640PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC glad_glEGLImageTargetTextureStorageEXT;
2613PFNGLUNIFORMBUFFEREXTPROC glad_glUniformBufferEXT; 2641PFNGLUNIFORMBUFFEREXTPROC glad_glUniformBufferEXT;
2614PFNGLGETUNIFORMBUFFERSIZEEXTPROC glad_glGetUniformBufferSizeEXT; 2642PFNGLGETUNIFORMBUFFERSIZEEXTPROC glad_glGetUniformBufferSizeEXT;
2615PFNGLGETUNIFORMOFFSETEXTPROC glad_glGetUniformOffsetEXT; 2643PFNGLGETUNIFORMOFFSETEXTPROC glad_glGetUniformOffsetEXT;
@@ -3065,6 +3093,7 @@ PFNGLGETPROGRAMPIPELINEIVEXTPROC glad_glGetProgramPipelineivEXT;
3065PFNGLISPROGRAMPIPELINEEXTPROC glad_glIsProgramPipelineEXT; 3093PFNGLISPROGRAMPIPELINEEXTPROC glad_glIsProgramPipelineEXT;
3066PFNGLUSEPROGRAMSTAGESEXTPROC glad_glUseProgramStagesEXT; 3094PFNGLUSEPROGRAMSTAGESEXTPROC glad_glUseProgramStagesEXT;
3067PFNGLVALIDATEPROGRAMPIPELINEEXTPROC glad_glValidateProgramPipelineEXT; 3095PFNGLVALIDATEPROGRAMPIPELINEEXTPROC glad_glValidateProgramPipelineEXT;
3096PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC glad_glFramebufferFetchBarrierEXT;
3068PFNGLBINDIMAGETEXTUREEXTPROC glad_glBindImageTextureEXT; 3097PFNGLBINDIMAGETEXTUREEXTPROC glad_glBindImageTextureEXT;
3069PFNGLMEMORYBARRIEREXTPROC glad_glMemoryBarrierEXT; 3098PFNGLMEMORYBARRIEREXTPROC glad_glMemoryBarrierEXT;
3070PFNGLSTENCILCLEARTAGEXTPROC glad_glStencilClearTagEXT; 3099PFNGLSTENCILCLEARTAGEXTPROC glad_glStencilClearTagEXT;
@@ -5768,6 +5797,11 @@ static void load_GL_ATI_vertex_streams(GLADloadproc load) {
5768 glad_glVertexBlendEnviATI = (PFNGLVERTEXBLENDENVIATIPROC)load("glVertexBlendEnviATI"); 5797 glad_glVertexBlendEnviATI = (PFNGLVERTEXBLENDENVIATIPROC)load("glVertexBlendEnviATI");
5769 glad_glVertexBlendEnvfATI = (PFNGLVERTEXBLENDENVFATIPROC)load("glVertexBlendEnvfATI"); 5798 glad_glVertexBlendEnvfATI = (PFNGLVERTEXBLENDENVFATIPROC)load("glVertexBlendEnvfATI");
5770} 5799}
5800static void load_GL_EXT_EGL_image_storage(GLADloadproc load) {
5801 if(!GLAD_GL_EXT_EGL_image_storage) return;
5802 glad_glEGLImageTargetTexStorageEXT = (PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC)load("glEGLImageTargetTexStorageEXT");
5803 glad_glEGLImageTargetTextureStorageEXT = (PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC)load("glEGLImageTargetTextureStorageEXT");
5804}
5771static void load_GL_EXT_bindable_uniform(GLADloadproc load) { 5805static void load_GL_EXT_bindable_uniform(GLADloadproc load) {
5772 if(!GLAD_GL_EXT_bindable_uniform) return; 5806 if(!GLAD_GL_EXT_bindable_uniform) return;
5773 glad_glUniformBufferEXT = (PFNGLUNIFORMBUFFEREXTPROC)load("glUniformBufferEXT"); 5807 glad_glUniformBufferEXT = (PFNGLUNIFORMBUFFEREXTPROC)load("glUniformBufferEXT");
@@ -6406,6 +6440,10 @@ static void load_GL_EXT_separate_shader_objects(GLADloadproc load) {
6406 glad_glProgramUniformMatrix3x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)load("glProgramUniformMatrix3x4fvEXT"); 6440 glad_glProgramUniformMatrix3x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)load("glProgramUniformMatrix3x4fvEXT");
6407 glad_glProgramUniformMatrix4x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)load("glProgramUniformMatrix4x3fvEXT"); 6441 glad_glProgramUniformMatrix4x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)load("glProgramUniformMatrix4x3fvEXT");
6408} 6442}
6443static void load_GL_EXT_shader_framebuffer_fetch_non_coherent(GLADloadproc load) {
6444 if(!GLAD_GL_EXT_shader_framebuffer_fetch_non_coherent) return;
6445 glad_glFramebufferFetchBarrierEXT = (PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC)load("glFramebufferFetchBarrierEXT");
6446}
6409static void load_GL_EXT_shader_image_load_store(GLADloadproc load) { 6447static void load_GL_EXT_shader_image_load_store(GLADloadproc load) {
6410 if(!GLAD_GL_EXT_shader_image_load_store) return; 6448 if(!GLAD_GL_EXT_shader_image_load_store) return;
6411 glad_glBindImageTextureEXT = (PFNGLBINDIMAGETEXTUREEXTPROC)load("glBindImageTextureEXT"); 6449 glad_glBindImageTextureEXT = (PFNGLBINDIMAGETEXTUREEXTPROC)load("glBindImageTextureEXT");
@@ -6437,10 +6475,6 @@ static void load_GL_EXT_texture_buffer_object(GLADloadproc load) {
6437 if(!GLAD_GL_EXT_texture_buffer_object) return; 6475 if(!GLAD_GL_EXT_texture_buffer_object) return;
6438 glad_glTexBufferEXT = (PFNGLTEXBUFFEREXTPROC)load("glTexBufferEXT"); 6476 glad_glTexBufferEXT = (PFNGLTEXBUFFEREXTPROC)load("glTexBufferEXT");
6439} 6477}
6440static void load_GL_EXT_texture_filter_minmax(GLADloadproc load) {
6441 if(!GLAD_GL_EXT_texture_filter_minmax) return;
6442 glad_glRasterSamplesEXT = (PFNGLRASTERSAMPLESEXTPROC)load("glRasterSamplesEXT");
6443}
6444static void load_GL_EXT_texture_integer(GLADloadproc load) { 6478static void load_GL_EXT_texture_integer(GLADloadproc load) {
6445 if(!GLAD_GL_EXT_texture_integer) return; 6479 if(!GLAD_GL_EXT_texture_integer) return;
6446 glad_glTexParameterIivEXT = (PFNGLTEXPARAMETERIIVEXTPROC)load("glTexParameterIivEXT"); 6480 glad_glTexParameterIivEXT = (PFNGLTEXPARAMETERIIVEXTPROC)load("glTexParameterIivEXT");
@@ -7795,6 +7829,7 @@ static int find_extensionsGL(void) {
7795 GLAD_GL_AMD_shader_atomic_counter_ops = has_ext("GL_AMD_shader_atomic_counter_ops"); 7829 GLAD_GL_AMD_shader_atomic_counter_ops = has_ext("GL_AMD_shader_atomic_counter_ops");
7796 GLAD_GL_AMD_shader_ballot = has_ext("GL_AMD_shader_ballot"); 7830 GLAD_GL_AMD_shader_ballot = has_ext("GL_AMD_shader_ballot");
7797 GLAD_GL_AMD_shader_explicit_vertex_parameter = has_ext("GL_AMD_shader_explicit_vertex_parameter"); 7831 GLAD_GL_AMD_shader_explicit_vertex_parameter = has_ext("GL_AMD_shader_explicit_vertex_parameter");
7832 GLAD_GL_AMD_shader_gpu_shader_half_float_fetch = has_ext("GL_AMD_shader_gpu_shader_half_float_fetch");
7798 GLAD_GL_AMD_shader_image_load_store_lod = has_ext("GL_AMD_shader_image_load_store_lod"); 7833 GLAD_GL_AMD_shader_image_load_store_lod = has_ext("GL_AMD_shader_image_load_store_lod");
7799 GLAD_GL_AMD_shader_stencil_export = has_ext("GL_AMD_shader_stencil_export"); 7834 GLAD_GL_AMD_shader_stencil_export = has_ext("GL_AMD_shader_stencil_export");
7800 GLAD_GL_AMD_shader_trinary_minmax = has_ext("GL_AMD_shader_trinary_minmax"); 7835 GLAD_GL_AMD_shader_trinary_minmax = has_ext("GL_AMD_shader_trinary_minmax");
@@ -8011,6 +8046,7 @@ static int find_extensionsGL(void) {
8011 GLAD_GL_ATI_vertex_attrib_array_object = has_ext("GL_ATI_vertex_attrib_array_object"); 8046 GLAD_GL_ATI_vertex_attrib_array_object = has_ext("GL_ATI_vertex_attrib_array_object");
8012 GLAD_GL_ATI_vertex_streams = has_ext("GL_ATI_vertex_streams"); 8047 GLAD_GL_ATI_vertex_streams = has_ext("GL_ATI_vertex_streams");
8013 GLAD_GL_EXT_422_pixels = has_ext("GL_EXT_422_pixels"); 8048 GLAD_GL_EXT_422_pixels = has_ext("GL_EXT_422_pixels");
8049 GLAD_GL_EXT_EGL_image_storage = has_ext("GL_EXT_EGL_image_storage");
8014 GLAD_GL_EXT_abgr = has_ext("GL_EXT_abgr"); 8050 GLAD_GL_EXT_abgr = has_ext("GL_EXT_abgr");
8015 GLAD_GL_EXT_bgra = has_ext("GL_EXT_bgra"); 8051 GLAD_GL_EXT_bgra = has_ext("GL_EXT_bgra");
8016 GLAD_GL_EXT_bindable_uniform = has_ext("GL_EXT_bindable_uniform"); 8052 GLAD_GL_EXT_bindable_uniform = has_ext("GL_EXT_bindable_uniform");
@@ -8077,6 +8113,8 @@ static int find_extensionsGL(void) {
8077 GLAD_GL_EXT_semaphore_win32 = has_ext("GL_EXT_semaphore_win32"); 8113 GLAD_GL_EXT_semaphore_win32 = has_ext("GL_EXT_semaphore_win32");
8078 GLAD_GL_EXT_separate_shader_objects = has_ext("GL_EXT_separate_shader_objects"); 8114 GLAD_GL_EXT_separate_shader_objects = has_ext("GL_EXT_separate_shader_objects");
8079 GLAD_GL_EXT_separate_specular_color = has_ext("GL_EXT_separate_specular_color"); 8115 GLAD_GL_EXT_separate_specular_color = has_ext("GL_EXT_separate_specular_color");
8116 GLAD_GL_EXT_shader_framebuffer_fetch = has_ext("GL_EXT_shader_framebuffer_fetch");
8117 GLAD_GL_EXT_shader_framebuffer_fetch_non_coherent = has_ext("GL_EXT_shader_framebuffer_fetch_non_coherent");
8080 GLAD_GL_EXT_shader_image_load_formatted = has_ext("GL_EXT_shader_image_load_formatted"); 8118 GLAD_GL_EXT_shader_image_load_formatted = has_ext("GL_EXT_shader_image_load_formatted");
8081 GLAD_GL_EXT_shader_image_load_store = has_ext("GL_EXT_shader_image_load_store"); 8119 GLAD_GL_EXT_shader_image_load_store = has_ext("GL_EXT_shader_image_load_store");
8082 GLAD_GL_EXT_shader_integer_mix = has_ext("GL_EXT_shader_integer_mix"); 8120 GLAD_GL_EXT_shader_integer_mix = has_ext("GL_EXT_shader_integer_mix");
@@ -8135,6 +8173,7 @@ static int find_extensionsGL(void) {
8135 GLAD_GL_INGR_blend_func_separate = has_ext("GL_INGR_blend_func_separate"); 8173 GLAD_GL_INGR_blend_func_separate = has_ext("GL_INGR_blend_func_separate");
8136 GLAD_GL_INGR_color_clamp = has_ext("GL_INGR_color_clamp"); 8174 GLAD_GL_INGR_color_clamp = has_ext("GL_INGR_color_clamp");
8137 GLAD_GL_INGR_interlace_read = has_ext("GL_INGR_interlace_read"); 8175 GLAD_GL_INGR_interlace_read = has_ext("GL_INGR_interlace_read");
8176 GLAD_GL_INTEL_blackhole_render = has_ext("GL_INTEL_blackhole_render");
8138 GLAD_GL_INTEL_conservative_rasterization = has_ext("GL_INTEL_conservative_rasterization"); 8177 GLAD_GL_INTEL_conservative_rasterization = has_ext("GL_INTEL_conservative_rasterization");
8139 GLAD_GL_INTEL_fragment_shader_ordering = has_ext("GL_INTEL_fragment_shader_ordering"); 8178 GLAD_GL_INTEL_fragment_shader_ordering = has_ext("GL_INTEL_fragment_shader_ordering");
8140 GLAD_GL_INTEL_framebuffer_CMAA = has_ext("GL_INTEL_framebuffer_CMAA"); 8179 GLAD_GL_INTEL_framebuffer_CMAA = has_ext("GL_INTEL_framebuffer_CMAA");
@@ -8552,6 +8591,7 @@ int gladLoadGLLoader(GLADloadproc load) {
8552 load_GL_ATI_vertex_array_object(load); 8591 load_GL_ATI_vertex_array_object(load);
8553 load_GL_ATI_vertex_attrib_array_object(load); 8592 load_GL_ATI_vertex_attrib_array_object(load);
8554 load_GL_ATI_vertex_streams(load); 8593 load_GL_ATI_vertex_streams(load);
8594 load_GL_EXT_EGL_image_storage(load);
8555 load_GL_EXT_bindable_uniform(load); 8595 load_GL_EXT_bindable_uniform(load);
8556 load_GL_EXT_blend_color(load); 8596 load_GL_EXT_blend_color(load);
8557 load_GL_EXT_blend_equation_separate(load); 8597 load_GL_EXT_blend_equation_separate(load);
@@ -8599,6 +8639,7 @@ int gladLoadGLLoader(GLADloadproc load) {
8599 load_GL_EXT_semaphore_fd(load); 8639 load_GL_EXT_semaphore_fd(load);
8600 load_GL_EXT_semaphore_win32(load); 8640 load_GL_EXT_semaphore_win32(load);
8601 load_GL_EXT_separate_shader_objects(load); 8641 load_GL_EXT_separate_shader_objects(load);
8642 load_GL_EXT_shader_framebuffer_fetch_non_coherent(load);
8602 load_GL_EXT_shader_image_load_store(load); 8643 load_GL_EXT_shader_image_load_store(load);
8603 load_GL_EXT_stencil_clear_tag(load); 8644 load_GL_EXT_stencil_clear_tag(load);
8604 load_GL_EXT_stencil_two_side(load); 8645 load_GL_EXT_stencil_two_side(load);
@@ -8606,7 +8647,6 @@ int gladLoadGLLoader(GLADloadproc load) {
8606 load_GL_EXT_texture3D(load); 8647 load_GL_EXT_texture3D(load);
8607 load_GL_EXT_texture_array(load); 8648 load_GL_EXT_texture_array(load);
8608 load_GL_EXT_texture_buffer_object(load); 8649 load_GL_EXT_texture_buffer_object(load);
8609 load_GL_EXT_texture_filter_minmax(load);
8610 load_GL_EXT_texture_integer(load); 8650 load_GL_EXT_texture_integer(load);
8611 load_GL_EXT_texture_object(load); 8651 load_GL_EXT_texture_object(load);
8612 load_GL_EXT_texture_perturb_normal(load); 8652 load_GL_EXT_texture_perturb_normal(load);
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 {
76} 76}
77 77
78std::vector<std::shared_ptr<VfsDirectory>> PartitionFilesystem::GetSubdirectories() const { 78std::vector<std::shared_ptr<VfsDirectory>> PartitionFilesystem::GetSubdirectories() const {
79 return {}; 79 return pfs_dirs;
80} 80}
81 81
82std::string PartitionFilesystem::GetName() const { 82std::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 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include <utility>
6
5#include "core/file_sys/vfs_offset.h" 7#include "core/file_sys/vfs_offset.h"
6 8
7namespace FileSys { 9namespace FileSys {
8 10
9OffsetVfsFile::OffsetVfsFile(std::shared_ptr<VfsFile> file_, size_t size_, size_t offset_, 11OffsetVfsFile::OffsetVfsFile(std::shared_ptr<VfsFile> file_, size_t size_, size_t offset_,
10 const std::string& name_) 12 std::string name_)
11 : file(file_), offset(offset_), size(size_), name(name_) {} 13 : file(std::move(file_)), offset(offset_), size(size_), name(std::move(name_)) {}
12 14
13std::string OffsetVfsFile::GetName() const { 15std::string OffsetVfsFile::GetName() const {
14 return name.empty() ? file->GetName() : name; 16 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 {
14// the size of this wrapper. 14// the size of this wrapper.
15struct OffsetVfsFile : public VfsFile { 15struct OffsetVfsFile : public VfsFile {
16 OffsetVfsFile(std::shared_ptr<VfsFile> file, size_t size, size_t offset = 0, 16 OffsetVfsFile(std::shared_ptr<VfsFile> file, size_t size, size_t offset = 0,
17 const std::string& new_name = ""); 17 std::string new_name = "");
18 18
19 std::string GetName() const override; 19 std::string GetName() const override;
20 size_t GetSize() const override; 20 size_t GetSize() const override;
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 {
20static ResultCode WaitForAddress(VAddr address, s64 timeout) { 20static ResultCode WaitForAddress(VAddr address, s64 timeout) {
21 SharedPtr<Thread> current_thread = GetCurrentThread(); 21 SharedPtr<Thread> current_thread = GetCurrentThread();
22 current_thread->arb_wait_address = address; 22 current_thread->arb_wait_address = address;
23 current_thread->status = THREADSTATUS_WAIT_ARB; 23 current_thread->status = ThreadStatus::WaitArb;
24 current_thread->wakeup_callback = nullptr; 24 current_thread->wakeup_callback = nullptr;
25 25
26 current_thread->WakeAfterDelay(timeout); 26 current_thread->WakeAfterDelay(timeout);
@@ -65,7 +65,7 @@ static void WakeThreads(std::vector<SharedPtr<Thread>>& waiting_threads, s32 num
65 65
66 // Signal the waiting threads. 66 // Signal the waiting threads.
67 for (size_t i = 0; i < last; i++) { 67 for (size_t i = 0; i < last; i++) {
68 ASSERT(waiting_threads[i]->status == THREADSTATUS_WAIT_ARB); 68 ASSERT(waiting_threads[i]->status == ThreadStatus::WaitArb);
69 waiting_threads[i]->SetWaitSynchronizationResult(RESULT_SUCCESS); 69 waiting_threads[i]->SetWaitSynchronizationResult(RESULT_SUCCESS);
70 waiting_threads[i]->arb_wait_address = 0; 70 waiting_threads[i]->arb_wait_address = 0;
71 waiting_threads[i]->ResumeFromWait(); 71 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,
38 thread->wakeup_callback = 38 thread->wakeup_callback =
39 [context = *this, callback](ThreadWakeupReason reason, SharedPtr<Thread> thread, 39 [context = *this, callback](ThreadWakeupReason reason, SharedPtr<Thread> thread,
40 SharedPtr<WaitObject> object, size_t index) mutable -> bool { 40 SharedPtr<WaitObject> object, size_t index) mutable -> bool {
41 ASSERT(thread->status == THREADSTATUS_WAIT_HLE_EVENT); 41 ASSERT(thread->status == ThreadStatus::WaitHLEEvent);
42 callback(thread, context, reason); 42 callback(thread, context, reason);
43 context.WriteToOutgoingCommandBuffer(*thread); 43 context.WriteToOutgoingCommandBuffer(*thread);
44 return true; 44 return true;
@@ -50,7 +50,7 @@ SharedPtr<Event> HLERequestContext::SleepClientThread(SharedPtr<Thread> thread,
50 } 50 }
51 51
52 event->Clear(); 52 event->Clear();
53 thread->status = THREADSTATUS_WAIT_HLE_EVENT; 53 thread->status = ThreadStatus::WaitHLEEvent;
54 thread->wait_objects = {event}; 54 thread->wait_objects = {event};
55 event->AddWaitingThread(thread); 55 event->AddWaitingThread(thread);
56 56
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(
28 if (thread->mutex_wait_address != mutex_addr) 28 if (thread->mutex_wait_address != mutex_addr)
29 continue; 29 continue;
30 30
31 ASSERT(thread->status == THREADSTATUS_WAIT_MUTEX); 31 ASSERT(thread->status == ThreadStatus::WaitMutex);
32 32
33 ++num_waiters; 33 ++num_waiters;
34 if (highest_priority_thread == nullptr || 34 if (highest_priority_thread == nullptr ||
@@ -83,7 +83,7 @@ ResultCode Mutex::TryAcquire(VAddr address, Handle holding_thread_handle,
83 GetCurrentThread()->mutex_wait_address = address; 83 GetCurrentThread()->mutex_wait_address = address;
84 GetCurrentThread()->wait_handle = requesting_thread_handle; 84 GetCurrentThread()->wait_handle = requesting_thread_handle;
85 85
86 GetCurrentThread()->status = THREADSTATUS_WAIT_MUTEX; 86 GetCurrentThread()->status = ThreadStatus::WaitMutex;
87 GetCurrentThread()->wakeup_callback = nullptr; 87 GetCurrentThread()->wakeup_callback = nullptr;
88 88
89 // Update the lock holder thread's priority to prevent priority inversion. 89 // Update the lock holder thread's priority to prevent priority inversion.
@@ -121,7 +121,7 @@ ResultCode Mutex::Release(VAddr address) {
121 // Grant the mutex to the next waiting thread and resume it. 121 // Grant the mutex to the next waiting thread and resume it.
122 Memory::Write32(address, mutex_value); 122 Memory::Write32(address, mutex_value);
123 123
124 ASSERT(thread->status == THREADSTATUS_WAIT_MUTEX); 124 ASSERT(thread->status == ThreadStatus::WaitMutex);
125 thread->ResumeFromWait(); 125 thread->ResumeFromWait();
126 126
127 thread->lock_owner = nullptr; 127 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() {
34 Thread* next = nullptr; 34 Thread* next = nullptr;
35 Thread* thread = GetCurrentThread(); 35 Thread* thread = GetCurrentThread();
36 36
37 if (thread && thread->status == THREADSTATUS_RUNNING) { 37 if (thread && thread->status == ThreadStatus::Running) {
38 // We have to do better than the current thread. 38 // We have to do better than the current thread.
39 // This call returns null when that's not possible. 39 // This call returns null when that's not possible.
40 next = ready_queue.pop_first_better(thread->current_priority); 40 next = ready_queue.pop_first_better(thread->current_priority);
@@ -57,17 +57,17 @@ void Scheduler::SwitchContext(Thread* new_thread) {
57 previous_thread->last_running_ticks = CoreTiming::GetTicks(); 57 previous_thread->last_running_ticks = CoreTiming::GetTicks();
58 cpu_core->SaveContext(previous_thread->context); 58 cpu_core->SaveContext(previous_thread->context);
59 59
60 if (previous_thread->status == THREADSTATUS_RUNNING) { 60 if (previous_thread->status == ThreadStatus::Running) {
61 // This is only the case when a reschedule is triggered without the current thread 61 // This is only the case when a reschedule is triggered without the current thread
62 // yielding execution (i.e. an event triggered, system core time-sliced, etc) 62 // yielding execution (i.e. an event triggered, system core time-sliced, etc)
63 ready_queue.push_front(previous_thread->current_priority, previous_thread); 63 ready_queue.push_front(previous_thread->current_priority, previous_thread);
64 previous_thread->status = THREADSTATUS_READY; 64 previous_thread->status = ThreadStatus::Ready;
65 } 65 }
66 } 66 }
67 67
68 // Load context of new thread 68 // Load context of new thread
69 if (new_thread) { 69 if (new_thread) {
70 ASSERT_MSG(new_thread->status == THREADSTATUS_READY, 70 ASSERT_MSG(new_thread->status == ThreadStatus::Ready,
71 "Thread must be ready to become running."); 71 "Thread must be ready to become running.");
72 72
73 // Cancel any outstanding wakeup events for this thread 73 // Cancel any outstanding wakeup events for this thread
@@ -78,7 +78,7 @@ void Scheduler::SwitchContext(Thread* new_thread) {
78 current_thread = new_thread; 78 current_thread = new_thread;
79 79
80 ready_queue.remove(new_thread->current_priority, new_thread); 80 ready_queue.remove(new_thread->current_priority, new_thread);
81 new_thread->status = THREADSTATUS_RUNNING; 81 new_thread->status = ThreadStatus::Running;
82 82
83 if (previous_process != current_thread->owner_process) { 83 if (previous_process != current_thread->owner_process) {
84 Core::CurrentProcess() = current_thread->owner_process; 84 Core::CurrentProcess() = current_thread->owner_process;
@@ -129,14 +129,14 @@ void Scheduler::RemoveThread(Thread* thread) {
129void Scheduler::ScheduleThread(Thread* thread, u32 priority) { 129void Scheduler::ScheduleThread(Thread* thread, u32 priority) {
130 std::lock_guard<std::mutex> lock(scheduler_mutex); 130 std::lock_guard<std::mutex> lock(scheduler_mutex);
131 131
132 ASSERT(thread->status == THREADSTATUS_READY); 132 ASSERT(thread->status == ThreadStatus::Ready);
133 ready_queue.push_back(priority, thread); 133 ready_queue.push_back(priority, thread);
134} 134}
135 135
136void Scheduler::UnscheduleThread(Thread* thread, u32 priority) { 136void Scheduler::UnscheduleThread(Thread* thread, u32 priority) {
137 std::lock_guard<std::mutex> lock(scheduler_mutex); 137 std::lock_guard<std::mutex> lock(scheduler_mutex);
138 138
139 ASSERT(thread->status == THREADSTATUS_READY); 139 ASSERT(thread->status == ThreadStatus::Ready);
140 ready_queue.remove(priority, thread); 140 ready_queue.remove(priority, thread);
141} 141}
142 142
@@ -144,7 +144,7 @@ void Scheduler::SetThreadPriority(Thread* thread, u32 priority) {
144 std::lock_guard<std::mutex> lock(scheduler_mutex); 144 std::lock_guard<std::mutex> lock(scheduler_mutex);
145 145
146 // If thread was ready, adjust queues 146 // If thread was ready, adjust queues
147 if (thread->status == THREADSTATUS_READY) 147 if (thread->status == ThreadStatus::Ready)
148 ready_queue.move(thread, thread->current_priority, priority); 148 ready_queue.move(thread, thread->current_priority, priority);
149 else 149 else
150 ready_queue.prepare(priority); 150 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) {
110 result = hle_handler->HandleSyncRequest(context); 110 result = hle_handler->HandleSyncRequest(context);
111 } 111 }
112 112
113 if (thread->status == THREADSTATUS_RUNNING) { 113 if (thread->status == ThreadStatus::Running) {
114 // Put the thread to sleep until the server replies, it will be awoken in 114 // Put the thread to sleep until the server replies, it will be awoken in
115 // svcReplyAndReceive for LLE servers. 115 // svcReplyAndReceive for LLE servers.
116 thread->status = THREADSTATUS_WAIT_IPC; 116 thread->status = ThreadStatus::WaitIPC;
117 117
118 if (hle_handler != nullptr) { 118 if (hle_handler != nullptr) {
119 // For HLE services, we put the request threads to sleep for a short duration to 119 // 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) {
133/// Default thread wakeup callback for WaitSynchronization 133/// Default thread wakeup callback for WaitSynchronization
134static bool DefaultThreadWakeupCallback(ThreadWakeupReason reason, SharedPtr<Thread> thread, 134static bool DefaultThreadWakeupCallback(ThreadWakeupReason reason, SharedPtr<Thread> thread,
135 SharedPtr<WaitObject> object, size_t index) { 135 SharedPtr<WaitObject> object, size_t index) {
136 ASSERT(thread->status == THREADSTATUS_WAIT_SYNCH_ANY); 136 ASSERT(thread->status == ThreadStatus::WaitSynchAny);
137 137
138 if (reason == ThreadWakeupReason::Timeout) { 138 if (reason == ThreadWakeupReason::Timeout) {
139 thread->SetWaitSynchronizationResult(RESULT_TIMEOUT); 139 thread->SetWaitSynchronizationResult(RESULT_TIMEOUT);
@@ -197,7 +197,7 @@ static ResultCode WaitSynchronization(Handle* index, VAddr handles_address, u64
197 object->AddWaitingThread(thread); 197 object->AddWaitingThread(thread);
198 198
199 thread->wait_objects = std::move(objects); 199 thread->wait_objects = std::move(objects);
200 thread->status = THREADSTATUS_WAIT_SYNCH_ANY; 200 thread->status = ThreadStatus::WaitSynchAny;
201 201
202 // Create an event to wake the thread up after the specified nanosecond delay has passed 202 // Create an event to wake the thread up after the specified nanosecond delay has passed
203 thread->WakeAfterDelay(nano_seconds); 203 thread->WakeAfterDelay(nano_seconds);
@@ -217,7 +217,7 @@ static ResultCode CancelSynchronization(Handle thread_handle) {
217 return ERR_INVALID_HANDLE; 217 return ERR_INVALID_HANDLE;
218 } 218 }
219 219
220 ASSERT(thread->status == THREADSTATUS_WAIT_SYNCH_ANY); 220 ASSERT(thread->status == ThreadStatus::WaitSynchAny);
221 thread->SetWaitSynchronizationResult( 221 thread->SetWaitSynchronizationResult(
222 ResultCode(ErrorModule::Kernel, ErrCodes::SynchronizationCanceled)); 222 ResultCode(ErrorModule::Kernel, ErrCodes::SynchronizationCanceled));
223 thread->ResumeFromWait(); 223 thread->ResumeFromWait();
@@ -468,8 +468,8 @@ static void ExitProcess() {
468 continue; 468 continue;
469 469
470 // TODO(Subv): When are the other running/ready threads terminated? 470 // TODO(Subv): When are the other running/ready threads terminated?
471 ASSERT_MSG(thread->status == THREADSTATUS_WAIT_SYNCH_ANY || 471 ASSERT_MSG(thread->status == ThreadStatus::WaitSynchAny ||
472 thread->status == THREADSTATUS_WAIT_SYNCH_ALL, 472 thread->status == ThreadStatus::WaitSynchAll,
473 "Exiting processes with non-waiting threads is currently unimplemented"); 473 "Exiting processes with non-waiting threads is currently unimplemented");
474 474
475 thread->Stop(); 475 thread->Stop();
@@ -545,7 +545,7 @@ static ResultCode StartThread(Handle thread_handle) {
545 return ERR_INVALID_HANDLE; 545 return ERR_INVALID_HANDLE;
546 } 546 }
547 547
548 ASSERT(thread->status == THREADSTATUS_DORMANT); 548 ASSERT(thread->status == ThreadStatus::Dormant);
549 549
550 thread->ResumeFromWait(); 550 thread->ResumeFromWait();
551 Core::System::GetInstance().CpuCore(thread->processor_id).PrepareReschedule(); 551 Core::System::GetInstance().CpuCore(thread->processor_id).PrepareReschedule();
@@ -596,7 +596,7 @@ static ResultCode WaitProcessWideKeyAtomic(VAddr mutex_addr, VAddr condition_var
596 current_thread->condvar_wait_address = condition_variable_addr; 596 current_thread->condvar_wait_address = condition_variable_addr;
597 current_thread->mutex_wait_address = mutex_addr; 597 current_thread->mutex_wait_address = mutex_addr;
598 current_thread->wait_handle = thread_handle; 598 current_thread->wait_handle = thread_handle;
599 current_thread->status = THREADSTATUS_WAIT_MUTEX; 599 current_thread->status = ThreadStatus::WaitMutex;
600 current_thread->wakeup_callback = nullptr; 600 current_thread->wakeup_callback = nullptr;
601 601
602 current_thread->WakeAfterDelay(nano_seconds); 602 current_thread->WakeAfterDelay(nano_seconds);
@@ -656,7 +656,7 @@ static ResultCode SignalProcessWideKey(VAddr condition_variable_addr, s32 target
656 if (mutex_val == 0) { 656 if (mutex_val == 0) {
657 // We were able to acquire the mutex, resume this thread. 657 // We were able to acquire the mutex, resume this thread.
658 Memory::Write32(thread->mutex_wait_address, thread->wait_handle); 658 Memory::Write32(thread->mutex_wait_address, thread->wait_handle);
659 ASSERT(thread->status == THREADSTATUS_WAIT_MUTEX); 659 ASSERT(thread->status == ThreadStatus::WaitMutex);
660 thread->ResumeFromWait(); 660 thread->ResumeFromWait();
661 661
662 auto lock_owner = thread->lock_owner; 662 auto lock_owner = thread->lock_owner;
@@ -672,8 +672,8 @@ static ResultCode SignalProcessWideKey(VAddr condition_variable_addr, s32 target
672 Handle owner_handle = static_cast<Handle>(mutex_val & Mutex::MutexOwnerMask); 672 Handle owner_handle = static_cast<Handle>(mutex_val & Mutex::MutexOwnerMask);
673 auto owner = g_handle_table.Get<Thread>(owner_handle); 673 auto owner = g_handle_table.Get<Thread>(owner_handle);
674 ASSERT(owner); 674 ASSERT(owner);
675 ASSERT(thread->status != THREADSTATUS_RUNNING); 675 ASSERT(thread->status != ThreadStatus::Running);
676 thread->status = THREADSTATUS_WAIT_MUTEX; 676 thread->status = ThreadStatus::WaitMutex;
677 thread->wakeup_callback = nullptr; 677 thread->wakeup_callback = nullptr;
678 678
679 // Signal that the mutex now has a waiting thread. 679 // 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 {
30static CoreTiming::EventType* ThreadWakeupEventType = nullptr; 30static CoreTiming::EventType* ThreadWakeupEventType = nullptr;
31 31
32bool Thread::ShouldWait(Thread* thread) const { 32bool Thread::ShouldWait(Thread* thread) const {
33 return status != THREADSTATUS_DEAD; 33 return status != ThreadStatus::Dead;
34} 34}
35 35
36void Thread::Acquire(Thread* thread) { 36void Thread::Acquire(Thread* thread) {
@@ -63,11 +63,11 @@ void Thread::Stop() {
63 63
64 // Clean up thread from ready queue 64 // Clean up thread from ready queue
65 // This is only needed when the thread is termintated forcefully (SVC TerminateProcess) 65 // This is only needed when the thread is termintated forcefully (SVC TerminateProcess)
66 if (status == THREADSTATUS_READY) { 66 if (status == ThreadStatus::Ready) {
67 scheduler->UnscheduleThread(this, current_priority); 67 scheduler->UnscheduleThread(this, current_priority);
68 } 68 }
69 69
70 status = THREADSTATUS_DEAD; 70 status = ThreadStatus::Dead;
71 71
72 WakeupAllWaitingThreads(); 72 WakeupAllWaitingThreads();
73 73
@@ -86,7 +86,7 @@ void Thread::Stop() {
86 86
87void WaitCurrentThread_Sleep() { 87void WaitCurrentThread_Sleep() {
88 Thread* thread = GetCurrentThread(); 88 Thread* thread = GetCurrentThread();
89 thread->status = THREADSTATUS_WAIT_SLEEP; 89 thread->status = ThreadStatus::WaitSleep;
90} 90}
91 91
92void ExitCurrentThread() { 92void ExitCurrentThread() {
@@ -110,10 +110,9 @@ static void ThreadWakeupCallback(u64 thread_handle, int cycles_late) {
110 110
111 bool resume = true; 111 bool resume = true;
112 112
113 if (thread->status == THREADSTATUS_WAIT_SYNCH_ANY || 113 if (thread->status == ThreadStatus::WaitSynchAny ||
114 thread->status == THREADSTATUS_WAIT_SYNCH_ALL || 114 thread->status == ThreadStatus::WaitSynchAll ||
115 thread->status == THREADSTATUS_WAIT_HLE_EVENT) { 115 thread->status == ThreadStatus::WaitHLEEvent) {
116
117 // Remove the thread from each of its waiting objects' waitlists 116 // Remove the thread from each of its waiting objects' waitlists
118 for (auto& object : thread->wait_objects) 117 for (auto& object : thread->wait_objects)
119 object->RemoveWaitingThread(thread.get()); 118 object->RemoveWaitingThread(thread.get());
@@ -126,7 +125,7 @@ static void ThreadWakeupCallback(u64 thread_handle, int cycles_late) {
126 125
127 if (thread->mutex_wait_address != 0 || thread->condvar_wait_address != 0 || 126 if (thread->mutex_wait_address != 0 || thread->condvar_wait_address != 0 ||
128 thread->wait_handle) { 127 thread->wait_handle) {
129 ASSERT(thread->status == THREADSTATUS_WAIT_MUTEX); 128 ASSERT(thread->status == ThreadStatus::WaitMutex);
130 thread->mutex_wait_address = 0; 129 thread->mutex_wait_address = 0;
131 thread->condvar_wait_address = 0; 130 thread->condvar_wait_address = 0;
132 thread->wait_handle = 0; 131 thread->wait_handle = 0;
@@ -141,7 +140,7 @@ static void ThreadWakeupCallback(u64 thread_handle, int cycles_late) {
141 } 140 }
142 141
143 if (thread->arb_wait_address != 0) { 142 if (thread->arb_wait_address != 0) {
144 ASSERT(thread->status == THREADSTATUS_WAIT_ARB); 143 ASSERT(thread->status == ThreadStatus::WaitArb);
145 thread->arb_wait_address = 0; 144 thread->arb_wait_address = 0;
146 } 145 }
147 146
@@ -178,28 +177,28 @@ void Thread::ResumeFromWait() {
178 ASSERT_MSG(wait_objects.empty(), "Thread is waking up while waiting for objects"); 177 ASSERT_MSG(wait_objects.empty(), "Thread is waking up while waiting for objects");
179 178
180 switch (status) { 179 switch (status) {
181 case THREADSTATUS_WAIT_SYNCH_ALL: 180 case ThreadStatus::WaitSynchAll:
182 case THREADSTATUS_WAIT_SYNCH_ANY: 181 case ThreadStatus::WaitSynchAny:
183 case THREADSTATUS_WAIT_HLE_EVENT: 182 case ThreadStatus::WaitHLEEvent:
184 case THREADSTATUS_WAIT_SLEEP: 183 case ThreadStatus::WaitSleep:
185 case THREADSTATUS_WAIT_IPC: 184 case ThreadStatus::WaitIPC:
186 case THREADSTATUS_WAIT_MUTEX: 185 case ThreadStatus::WaitMutex:
187 case THREADSTATUS_WAIT_ARB: 186 case ThreadStatus::WaitArb:
188 break; 187 break;
189 188
190 case THREADSTATUS_READY: 189 case ThreadStatus::Ready:
191 // The thread's wakeup callback must have already been cleared when the thread was first 190 // The thread's wakeup callback must have already been cleared when the thread was first
192 // awoken. 191 // awoken.
193 ASSERT(wakeup_callback == nullptr); 192 ASSERT(wakeup_callback == nullptr);
194 // If the thread is waiting on multiple wait objects, it might be awoken more than once 193 // If the thread is waiting on multiple wait objects, it might be awoken more than once
195 // before actually resuming. We can ignore subsequent wakeups if the thread status has 194 // before actually resuming. We can ignore subsequent wakeups if the thread status has
196 // already been set to THREADSTATUS_READY. 195 // already been set to ThreadStatus::Ready.
197 return; 196 return;
198 197
199 case THREADSTATUS_RUNNING: 198 case ThreadStatus::Running:
200 DEBUG_ASSERT_MSG(false, "Thread with object id {} has already resumed.", GetObjectId()); 199 DEBUG_ASSERT_MSG(false, "Thread with object id {} has already resumed.", GetObjectId());
201 return; 200 return;
202 case THREADSTATUS_DEAD: 201 case ThreadStatus::Dead:
203 // This should never happen, as threads must complete before being stopped. 202 // This should never happen, as threads must complete before being stopped.
204 DEBUG_ASSERT_MSG(false, "Thread with object id {} cannot be resumed because it's DEAD.", 203 DEBUG_ASSERT_MSG(false, "Thread with object id {} cannot be resumed because it's DEAD.",
205 GetObjectId()); 204 GetObjectId());
@@ -208,7 +207,7 @@ void Thread::ResumeFromWait() {
208 207
209 wakeup_callback = nullptr; 208 wakeup_callback = nullptr;
210 209
211 status = THREADSTATUS_READY; 210 status = ThreadStatus::Ready;
212 211
213 boost::optional<s32> new_processor_id = GetNextProcessorId(affinity_mask); 212 boost::optional<s32> new_processor_id = GetNextProcessorId(affinity_mask);
214 if (!new_processor_id) { 213 if (!new_processor_id) {
@@ -310,7 +309,7 @@ ResultVal<SharedPtr<Thread>> Thread::Create(std::string name, VAddr entry_point,
310 SharedPtr<Thread> thread(new Thread); 309 SharedPtr<Thread> thread(new Thread);
311 310
312 thread->thread_id = NewThreadId(); 311 thread->thread_id = NewThreadId();
313 thread->status = THREADSTATUS_DORMANT; 312 thread->status = ThreadStatus::Dormant;
314 thread->entry_point = entry_point; 313 thread->entry_point = entry_point;
315 thread->stack_top = stack_top; 314 thread->stack_top = stack_top;
316 thread->nominal_priority = thread->current_priority = priority; 315 thread->nominal_priority = thread->current_priority = priority;
@@ -471,7 +470,7 @@ void Thread::ChangeCore(u32 core, u64 mask) {
471 ideal_core = core; 470 ideal_core = core;
472 affinity_mask = mask; 471 affinity_mask = mask;
473 472
474 if (status != THREADSTATUS_READY) { 473 if (status != ThreadStatus::Ready) {
475 return; 474 return;
476 } 475 }
477 476
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 {
36 (1 << THREADPROCESSORID_2) | (1 << THREADPROCESSORID_3) 36 (1 << THREADPROCESSORID_2) | (1 << THREADPROCESSORID_3)
37}; 37};
38 38
39enum ThreadStatus { 39enum class ThreadStatus {
40 THREADSTATUS_RUNNING, ///< Currently running 40 Running, ///< Currently running
41 THREADSTATUS_READY, ///< Ready to run 41 Ready, ///< Ready to run
42 THREADSTATUS_WAIT_HLE_EVENT, ///< Waiting for hle event to finish 42 WaitHLEEvent, ///< Waiting for hle event to finish
43 THREADSTATUS_WAIT_SLEEP, ///< Waiting due to a SleepThread SVC 43 WaitSleep, ///< Waiting due to a SleepThread SVC
44 THREADSTATUS_WAIT_IPC, ///< Waiting for the reply from an IPC request 44 WaitIPC, ///< Waiting for the reply from an IPC request
45 THREADSTATUS_WAIT_SYNCH_ANY, ///< Waiting due to WaitSynch1 or WaitSynchN with wait_all = false 45 WaitSynchAny, ///< Waiting due to WaitSynch1 or WaitSynchN with wait_all = false
46 THREADSTATUS_WAIT_SYNCH_ALL, ///< Waiting due to WaitSynchronizationN with wait_all = true 46 WaitSynchAll, ///< Waiting due to WaitSynchronizationN with wait_all = true
47 THREADSTATUS_WAIT_MUTEX, ///< Waiting due to an ArbitrateLock/WaitProcessWideKey svc 47 WaitMutex, ///< Waiting due to an ArbitrateLock/WaitProcessWideKey svc
48 THREADSTATUS_WAIT_ARB, ///< Waiting due to a SignalToAddress/WaitForAddress svc 48 WaitArb, ///< Waiting due to a SignalToAddress/WaitForAddress svc
49 THREADSTATUS_DORMANT, ///< Created but not yet made ready 49 Dormant, ///< Created but not yet made ready
50 THREADSTATUS_DEAD ///< Run to completion, or forcefully terminated 50 Dead ///< Run to completion, or forcefully terminated
51}; 51};
52 52
53enum class ThreadWakeupReason { 53enum class ThreadWakeupReason {
@@ -194,14 +194,14 @@ public:
194 * with wait_all = true. 194 * with wait_all = true.
195 */ 195 */
196 bool IsSleepingOnWaitAll() const { 196 bool IsSleepingOnWaitAll() const {
197 return status == THREADSTATUS_WAIT_SYNCH_ALL; 197 return status == ThreadStatus::WaitSynchAll;
198 } 198 }
199 199
200 ARM_Interface::ThreadContext context; 200 ARM_Interface::ThreadContext context;
201 201
202 u32 thread_id; 202 u32 thread_id;
203 203
204 u32 status; 204 ThreadStatus status;
205 VAddr entry_point; 205 VAddr entry_point;
206 VAddr stack_top; 206 VAddr stack_top;
207 207
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() {
38 38
39 for (const auto& thread : waiting_threads) { 39 for (const auto& thread : waiting_threads) {
40 // The list of waiting threads must not contain threads that are not waiting to be awakened. 40 // The list of waiting threads must not contain threads that are not waiting to be awakened.
41 ASSERT_MSG(thread->status == THREADSTATUS_WAIT_SYNCH_ANY || 41 ASSERT_MSG(thread->status == ThreadStatus::WaitSynchAny ||
42 thread->status == THREADSTATUS_WAIT_SYNCH_ALL || 42 thread->status == ThreadStatus::WaitSynchAll ||
43 thread->status == THREADSTATUS_WAIT_HLE_EVENT, 43 thread->status == ThreadStatus::WaitHLEEvent,
44 "Inconsistent thread statuses in waiting_threads"); 44 "Inconsistent thread statuses in waiting_threads");
45 45
46 if (thread->current_priority >= candidate_priority) 46 if (thread->current_priority >= candidate_priority)
@@ -49,10 +49,10 @@ SharedPtr<Thread> WaitObject::GetHighestPriorityReadyThread() {
49 if (ShouldWait(thread.get())) 49 if (ShouldWait(thread.get()))
50 continue; 50 continue;
51 51
52 // A thread is ready to run if it's either in THREADSTATUS_WAIT_SYNCH_ANY or 52 // A thread is ready to run if it's either in ThreadStatus::WaitSynchAny or
53 // in THREADSTATUS_WAIT_SYNCH_ALL and the rest of the objects it is waiting on are ready. 53 // in ThreadStatus::WaitSynchAll and the rest of the objects it is waiting on are ready.
54 bool ready_to_run = true; 54 bool ready_to_run = true;
55 if (thread->status == THREADSTATUS_WAIT_SYNCH_ALL) { 55 if (thread->status == ThreadStatus::WaitSynchAll) {
56 ready_to_run = std::none_of(thread->wait_objects.begin(), thread->wait_objects.end(), 56 ready_to_run = std::none_of(thread->wait_objects.begin(), thread->wait_objects.end(),
57 [&thread](const SharedPtr<WaitObject>& object) { 57 [&thread](const SharedPtr<WaitObject>& object) {
58 return object->ShouldWait(thread.get()); 58 return object->ShouldWait(thread.get());
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 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include <array>
5#include <vector> 6#include <vector>
6#include "common/logging/log.h" 7#include "common/logging/log.h"
7#include "core/core_timing.h" 8#include "core/core_timing.h"
@@ -167,7 +168,7 @@ void AudOutU::ListAudioOutsImpl(Kernel::HLERequestContext& ctx) {
167 LOG_WARNING(Service_Audio, "(STUBBED) called"); 168 LOG_WARNING(Service_Audio, "(STUBBED) called");
168 IPC::RequestParser rp{ctx}; 169 IPC::RequestParser rp{ctx};
169 170
170 const std::string audio_interface = "AudioInterface"; 171 constexpr std::array<char, 15> audio_interface{{"AudioInterface"}};
171 ctx.WriteBuffer(audio_interface); 172 ctx.WriteBuffer(audio_interface);
172 173
173 IPC::ResponseBuilder rb = rp.MakeBuilder(3, 0, 0); 174 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 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include <array>
6
5#include "common/alignment.h" 7#include "common/alignment.h"
6#include "common/logging/log.h" 8#include "common/logging/log.h"
7#include "core/core_timing.h" 9#include "core/core_timing.h"
@@ -298,7 +300,7 @@ private:
298 LOG_WARNING(Service_Audio, "(STUBBED) called"); 300 LOG_WARNING(Service_Audio, "(STUBBED) called");
299 IPC::RequestParser rp{ctx}; 301 IPC::RequestParser rp{ctx};
300 302
301 const std::string audio_interface = "AudioInterface"; 303 constexpr std::array<char, 15> audio_interface{{"AudioInterface"}};
302 ctx.WriteBuffer(audio_interface); 304 ctx.WriteBuffer(audio_interface);
303 305
304 IPC::ResponseBuilder rb = rp.MakeBuilder(3, 0, 0); 306 IPC::ResponseBuilder rb = rp.MakeBuilder(3, 0, 0);
@@ -323,7 +325,7 @@ private:
323 LOG_WARNING(Service_Audio, "(STUBBED) called"); 325 LOG_WARNING(Service_Audio, "(STUBBED) called");
324 IPC::RequestParser rp{ctx}; 326 IPC::RequestParser rp{ctx};
325 327
326 const std::string audio_interface = "AudioDevice"; 328 constexpr std::array<char, 12> audio_interface{{"AudioDevice"}};
327 ctx.WriteBuffer(audio_interface); 329 ctx.WriteBuffer(audio_interface);
328 330
329 IPC::ResponseBuilder rb = rp.MakeBuilder(3, 0, 0); 331 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 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include <utility>
5#include <vector> 6#include <vector>
6 7
7#include "common/file_util.h" 8#include "common/file_util.h"
@@ -21,7 +22,7 @@
21 22
22namespace Loader { 23namespace Loader {
23 24
24AppLoader_NCA::AppLoader_NCA(FileSys::VirtualFile file) : AppLoader(file) {} 25AppLoader_NCA::AppLoader_NCA(FileSys::VirtualFile file) : AppLoader(std::move(file)) {}
25 26
26FileType AppLoader_NCA::IdentifyType(const FileSys::VirtualFile& file) { 27FileType AppLoader_NCA::IdentifyType(const FileSys::VirtualFile& file) {
27 // TODO(DarkLordZach): Assuming everything is decrypted. Add crypto support. 28 // 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 @@
2// Licensed under GPLv2 or any later version 2// Licensed under GPLv2 or any later version
3// Refer to the license.txt file included. 3// Refer to the license.txt file included.
4 4
5#include <utility>
5#include <vector> 6#include <vector>
6 7
7#include "common/common_funcs.h" 8#include "common/common_funcs.h"
@@ -48,7 +49,7 @@ struct ModHeader {
48}; 49};
49static_assert(sizeof(ModHeader) == 0x1c, "ModHeader has incorrect size."); 50static_assert(sizeof(ModHeader) == 0x1c, "ModHeader has incorrect size.");
50 51
51AppLoader_NRO::AppLoader_NRO(FileSys::VirtualFile file) : AppLoader(file) {} 52AppLoader_NRO::AppLoader_NRO(FileSys::VirtualFile file) : AppLoader(std::move(file)) {}
52 53
53FileType AppLoader_NRO::IdentifyType(const FileSys::VirtualFile& file) { 54FileType AppLoader_NRO::IdentifyType(const FileSys::VirtualFile& file) {
54 // Read NSO header 55 // 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) {
69static std::vector<u8> DecompressSegment(const std::vector<u8>& compressed_data, 69static std::vector<u8> DecompressSegment(const std::vector<u8>& compressed_data,
70 const NsoSegmentHeader& header) { 70 const NsoSegmentHeader& header) {
71 std::vector<u8> uncompressed_data(header.size); 71 std::vector<u8> uncompressed_data(header.size);
72 const int bytes_uncompressed = LZ4_decompress_safe( 72 const int bytes_uncompressed =
73 reinterpret_cast<const char*>(compressed_data.data()), 73 LZ4_decompress_safe(reinterpret_cast<const char*>(compressed_data.data()),
74 reinterpret_cast<char*>(uncompressed_data.data()), compressed_data.size(), header.size); 74 reinterpret_cast<char*>(uncompressed_data.data()),
75 static_cast<int>(compressed_data.size()), header.size);
75 76
76 ASSERT_MSG(bytes_uncompressed == header.size && bytes_uncompressed == uncompressed_data.size(), 77 ASSERT_MSG(bytes_uncompressed == static_cast<int>(header.size) &&
78 bytes_uncompressed == static_cast<int>(uncompressed_data.size()),
77 "{} != {} != {}", bytes_uncompressed, header.size, uncompressed_data.size()); 79 "{} != {} != {}", bytes_uncompressed, header.size, uncompressed_data.size());
78 80
79 return uncompressed_data; 81 return uncompressed_data;
80} 82}
81 83
82static std::vector<u8> ReadSegment(FileUtil::IOFile& file, const NsoSegmentHeader& header,
83 size_t compressed_size) {
84 std::vector<u8> compressed_data(compressed_size);
85
86 file.Seek(header.offset, SEEK_SET);
87 if (compressed_size != file.ReadBytes(compressed_data.data(), compressed_size)) {
88 LOG_CRITICAL(Loader, "Failed to read {} NSO LZ4 compressed bytes", compressed_size);
89 return {};
90 }
91
92 return DecompressSegment(compressed_data, header);
93}
94
95static constexpr u32 PageAlignSize(u32 size) { 84static constexpr u32 PageAlignSize(u32 size) {
96 return (size + Memory::PAGE_MASK) & ~Memory::PAGE_MASK; 85 return (size + Memory::PAGE_MASK) & ~Memory::PAGE_MASK;
97} 86}
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
317 auto& tex_info_buffer = fragment_shader.const_buffers[regs.tex_cb_index]; 317 auto& tex_info_buffer = fragment_shader.const_buffers[regs.tex_cb_index];
318 ASSERT(tex_info_buffer.enabled && tex_info_buffer.address != 0); 318 ASSERT(tex_info_buffer.enabled && tex_info_buffer.address != 0);
319 319
320 GPUVAddr tic_base_address = regs.tic.TICAddress();
321
322 GPUVAddr tex_info_buffer_end = tex_info_buffer.address + tex_info_buffer.size; 320 GPUVAddr tex_info_buffer_end = tex_info_buffer.address + tex_info_buffer.size;
323 321
324 // Offset into the texture constbuffer where the texture info begins. 322 // 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:
1405 1405
1406 // TEXS has two destination registers. RG goes into gpr0+0 and gpr0+1, and BA 1406 // TEXS has two destination registers. RG goes into gpr0+0 and gpr0+1, and BA
1407 // goes into gpr28+0 and gpr28+1 1407 // goes into gpr28+0 and gpr28+1
1408 size_t offset{}; 1408 size_t texs_offset{};
1409 1409
1410 for (const auto& dest : {instr.gpr0.Value(), instr.gpr28.Value()}) { 1410 for (const auto& dest : {instr.gpr0.Value(), instr.gpr28.Value()}) {
1411 for (unsigned elem = 0; elem < 2; ++elem) { 1411 for (unsigned elem = 0; elem < 2; ++elem) {
@@ -1413,7 +1413,8 @@ private:
1413 // Skip disabled components 1413 // Skip disabled components
1414 continue; 1414 continue;
1415 } 1415 }
1416 regs.SetRegisterToFloat(dest, elem + offset, texture, 1, 4, false, elem); 1416 regs.SetRegisterToFloat(dest, elem + texs_offset, texture, 1, 4, false,
1417 elem);
1417 } 1418 }
1418 1419
1419 if (!instr.texs.HasTwoDestinations()) { 1420 if (!instr.texs.HasTwoDestinations()) {
@@ -1421,7 +1422,7 @@ private:
1421 break; 1422 break;
1422 } 1423 }
1423 1424
1424 offset += 2; 1425 texs_offset += 2;
1425 } 1426 }
1426 --shader.scope; 1427 --shader.scope;
1427 shader.AddLine("}"); 1428 shader.AddLine("}");
@@ -1463,7 +1464,6 @@ private:
1463 op_b = "abs(" + op_b + ')'; 1464 op_b = "abs(" + op_b + ')';
1464 } 1465 }
1465 1466
1466 using Tegra::Shader::Pred;
1467 // We can't use the constant predicate as destination. 1467 // We can't use the constant predicate as destination.
1468 ASSERT(instr.fsetp.pred3 != static_cast<u64>(Pred::UnusedIndex)); 1468 ASSERT(instr.fsetp.pred3 != static_cast<u64>(Pred::UnusedIndex));
1469 1469
@@ -1500,7 +1500,6 @@ private:
1500 } 1500 }
1501 } 1501 }
1502 1502
1503 using Tegra::Shader::Pred;
1504 // We can't use the constant predicate as destination. 1503 // We can't use the constant predicate as destination.
1505 ASSERT(instr.isetp.pred3 != static_cast<u64>(Pred::UnusedIndex)); 1504 ASSERT(instr.isetp.pred3 != static_cast<u64>(Pred::UnusedIndex));
1506 1505
@@ -1528,7 +1527,6 @@ private:
1528 std::string op_b = 1527 std::string op_b =
1529 GetPredicateCondition(instr.psetp.pred29, instr.psetp.neg_pred29 != 0); 1528 GetPredicateCondition(instr.psetp.pred29, instr.psetp.neg_pred29 != 0);
1530 1529
1531 using Tegra::Shader::Pred;
1532 // We can't use the constant predicate as destination. 1530 // We can't use the constant predicate as destination.
1533 ASSERT(instr.psetp.pred3 != static_cast<u64>(Pred::UnusedIndex)); 1531 ASSERT(instr.psetp.pred3 != static_cast<u64>(Pred::UnusedIndex));
1534 1532
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 {
181 } 181 }
182 182
183 // Textures 183 // Textures
184 for (int i = 0; i < std::size(texture_units); ++i) { 184 for (std::size_t i = 0; i < std::size(texture_units); ++i) {
185 if (texture_units[i].texture_2d != cur_state.texture_units[i].texture_2d) { 185 const auto& texture_unit = texture_units[i];
186 glActiveTexture(TextureUnits::MaxwellTexture(i).Enum()); 186 const auto& cur_state_texture_unit = cur_state.texture_units[i];
187 glBindTexture(GL_TEXTURE_2D, texture_units[i].texture_2d); 187
188 if (texture_unit.texture_2d != cur_state_texture_unit.texture_2d) {
189 glActiveTexture(TextureUnits::MaxwellTexture(static_cast<int>(i)).Enum());
190 glBindTexture(GL_TEXTURE_2D, texture_unit.texture_2d);
188 } 191 }
189 if (texture_units[i].sampler != cur_state.texture_units[i].sampler) { 192 if (texture_unit.sampler != cur_state_texture_unit.sampler) {
190 glBindSampler(static_cast<GLuint>(i), texture_units[i].sampler); 193 glBindSampler(static_cast<GLuint>(i), texture_unit.sampler);
191 } 194 }
192 // Update the texture swizzle 195 // Update the texture swizzle
193 if (texture_units[i].swizzle.r != cur_state.texture_units[i].swizzle.r || 196 if (texture_unit.swizzle.r != cur_state_texture_unit.swizzle.r ||
194 texture_units[i].swizzle.g != cur_state.texture_units[i].swizzle.g || 197 texture_unit.swizzle.g != cur_state_texture_unit.swizzle.g ||
195 texture_units[i].swizzle.b != cur_state.texture_units[i].swizzle.b || 198 texture_unit.swizzle.b != cur_state_texture_unit.swizzle.b ||
196 texture_units[i].swizzle.a != cur_state.texture_units[i].swizzle.a) { 199 texture_unit.swizzle.a != cur_state_texture_unit.swizzle.a) {
197 std::array<GLint, 4> mask = {texture_units[i].swizzle.r, texture_units[i].swizzle.g, 200 std::array<GLint, 4> mask = {texture_unit.swizzle.r, texture_unit.swizzle.g,
198 texture_units[i].swizzle.b, texture_units[i].swizzle.a}; 201 texture_unit.swizzle.b, texture_unit.swizzle.a};
199 glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, mask.data()); 202 glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_SWIZZLE_RGBA, mask.data());
200 } 203 }
201 } 204 }
202 205
203 // Constbuffers 206 // Constbuffers
204 for (u32 stage = 0; stage < draw.const_buffers.size(); ++stage) { 207 for (std::size_t stage = 0; stage < draw.const_buffers.size(); ++stage) {
205 for (u32 buffer_id = 0; buffer_id < draw.const_buffers[stage].size(); ++buffer_id) { 208 for (std::size_t buffer_id = 0; buffer_id < draw.const_buffers[stage].size(); ++buffer_id) {
206 auto& current = cur_state.draw.const_buffers[stage][buffer_id]; 209 const auto& current = cur_state.draw.const_buffers[stage][buffer_id];
207 auto& new_state = draw.const_buffers[stage][buffer_id]; 210 const auto& new_state = draw.const_buffers[stage][buffer_id];
211
208 if (current.enabled != new_state.enabled || current.bindpoint != new_state.bindpoint || 212 if (current.enabled != new_state.enabled || current.bindpoint != new_state.bindpoint ||
209 current.ssbo != new_state.ssbo) { 213 current.ssbo != new_state.ssbo) {
210 if (new_state.enabled) { 214 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 {
194 const auto& thread = static_cast<const Kernel::Thread&>(object); 194 const auto& thread = static_cast<const Kernel::Thread&>(object);
195 QString status; 195 QString status;
196 switch (thread.status) { 196 switch (thread.status) {
197 case THREADSTATUS_RUNNING: 197 case ThreadStatus::Running:
198 status = tr("running"); 198 status = tr("running");
199 break; 199 break;
200 case THREADSTATUS_READY: 200 case ThreadStatus::Ready:
201 status = tr("ready"); 201 status = tr("ready");
202 break; 202 break;
203 case THREADSTATUS_WAIT_HLE_EVENT: 203 case ThreadStatus::WaitHLEEvent:
204 status = tr("waiting for HLE return"); 204 status = tr("waiting for HLE return");
205 break; 205 break;
206 case THREADSTATUS_WAIT_SLEEP: 206 case ThreadStatus::WaitSleep:
207 status = tr("sleeping"); 207 status = tr("sleeping");
208 break; 208 break;
209 case THREADSTATUS_WAIT_SYNCH_ALL: 209 case ThreadStatus::WaitSynchAll:
210 case THREADSTATUS_WAIT_SYNCH_ANY: 210 case ThreadStatus::WaitSynchAny:
211 status = tr("waiting for objects"); 211 status = tr("waiting for objects");
212 break; 212 break;
213 case THREADSTATUS_WAIT_MUTEX: 213 case ThreadStatus::WaitMutex:
214 status = tr("waiting for mutex"); 214 status = tr("waiting for mutex");
215 break; 215 break;
216 case THREADSTATUS_WAIT_ARB: 216 case ThreadStatus::WaitArb:
217 status = tr("waiting for address arbiter"); 217 status = tr("waiting for address arbiter");
218 break; 218 break;
219 case THREADSTATUS_DORMANT: 219 case ThreadStatus::Dormant:
220 status = tr("dormant"); 220 status = tr("dormant");
221 break; 221 break;
222 case THREADSTATUS_DEAD: 222 case ThreadStatus::Dead:
223 status = tr("dead"); 223 status = tr("dead");
224 break; 224 break;
225 } 225 }
@@ -232,22 +232,22 @@ QString WaitTreeThread::GetText() const {
232QColor WaitTreeThread::GetColor() const { 232QColor WaitTreeThread::GetColor() const {
233 const auto& thread = static_cast<const Kernel::Thread&>(object); 233 const auto& thread = static_cast<const Kernel::Thread&>(object);
234 switch (thread.status) { 234 switch (thread.status) {
235 case THREADSTATUS_RUNNING: 235 case ThreadStatus::Running:
236 return QColor(Qt::GlobalColor::darkGreen); 236 return QColor(Qt::GlobalColor::darkGreen);
237 case THREADSTATUS_READY: 237 case ThreadStatus::Ready:
238 return QColor(Qt::GlobalColor::darkBlue); 238 return QColor(Qt::GlobalColor::darkBlue);
239 case THREADSTATUS_WAIT_HLE_EVENT: 239 case ThreadStatus::WaitHLEEvent:
240 return QColor(Qt::GlobalColor::darkRed); 240 return QColor(Qt::GlobalColor::darkRed);
241 case THREADSTATUS_WAIT_SLEEP: 241 case ThreadStatus::WaitSleep:
242 return QColor(Qt::GlobalColor::darkYellow); 242 return QColor(Qt::GlobalColor::darkYellow);
243 case THREADSTATUS_WAIT_SYNCH_ALL: 243 case ThreadStatus::WaitSynchAll:
244 case THREADSTATUS_WAIT_SYNCH_ANY: 244 case ThreadStatus::WaitSynchAny:
245 case THREADSTATUS_WAIT_MUTEX: 245 case ThreadStatus::WaitMutex:
246 case THREADSTATUS_WAIT_ARB: 246 case ThreadStatus::WaitArb:
247 return QColor(Qt::GlobalColor::red); 247 return QColor(Qt::GlobalColor::red);
248 case THREADSTATUS_DORMANT: 248 case ThreadStatus::Dormant:
249 return QColor(Qt::GlobalColor::darkCyan); 249 return QColor(Qt::GlobalColor::darkCyan);
250 case THREADSTATUS_DEAD: 250 case ThreadStatus::Dead:
251 return QColor(Qt::GlobalColor::gray); 251 return QColor(Qt::GlobalColor::gray);
252 default: 252 default:
253 return WaitTreeItem::GetColor(); 253 return WaitTreeItem::GetColor();
@@ -291,8 +291,8 @@ std::vector<std::unique_ptr<WaitTreeItem>> WaitTreeThread::GetChildren() const {
291 else 291 else
292 list.push_back(std::make_unique<WaitTreeText>(tr("not waiting for mutex"))); 292 list.push_back(std::make_unique<WaitTreeText>(tr("not waiting for mutex")));
293 293
294 if (thread.status == THREADSTATUS_WAIT_SYNCH_ANY || 294 if (thread.status == ThreadStatus::WaitSynchAny ||
295 thread.status == THREADSTATUS_WAIT_SYNCH_ALL) { 295 thread.status == ThreadStatus::WaitSynchAll) {
296 list.push_back(std::make_unique<WaitTreeObjectList>(thread.wait_objects, 296 list.push_back(std::make_unique<WaitTreeObjectList>(thread.wait_objects,
297 thread.IsSleepingOnWaitAll())); 297 thread.IsSleepingOnWaitAll()));
298 } 298 }