package vendor:glslang

⌘K
Ctrl+K
or
/

    Types

    Client ¶

    Client :: enum i32 {
    	NONE, 
    	VULKAN, 
    	OPENGL, 
    	COUNT, 
    }

    Free_Include_Result_Func ¶

    Free_Include_Result_Func :: proc(ctx: rawptr, result: ^Include_Result) -> i32

    Include_Callbacks ¶

    Include_Callbacks :: struct {
    	include_system:      Include_System_Func,
    	include_local:       Include_Local_Func,
    	free_include_result: Free_Include_Result_Func,
    }

    Include_Local_Func ¶

    Include_Local_Func :: proc(ctx: rawptr, header_name: cstring, includer_name: cstring, include_depth: uint) -> ^Include_Result

    Include_Result ¶

    Include_Result :: struct {
    	header_name:   cstring,
    	header_data:   cstring,
    	header_length: uint,
    }

    Include_System_Func ¶

    Include_System_Func :: proc(ctx: rawptr, header_name: cstring, includer_name: cstring, include_depth: uint) -> ^Include_Result

    Input ¶

    Input :: struct {
    	language:                          Source,
    	stage:                             Shader_Stage,
    	client:                            Client,
    	client_version:                    Target_Client_Version,
    	target_language:                   Target_Language,
    	target_language_version:           Target_Language_Version,
    	code:                              cstring,
    	default_version:                   i32,
    	default_profile:                   Profile,
    	force_default_version_and_profile: i32,
    	forward_compatible:                i32,
    	messages:                          Messages,
    	resource:                          ^Resource,
    	callbacks:                         Include_Callbacks,
    	callbacks_ctx:                     rawptr,
    }
    Related Procedures With Parameters

    Limits ¶

    Limits :: struct {
    	non_inductive_for_loops:                  bool,
    	while_loops:                              bool,
    	do_while_loops:                           bool,
    	general_uniform_indexing:                 bool,
    	general_attribute_matrix_vector_indexing: bool,
    	general_varying_indexing:                 bool,
    	general_sampler_indexing:                 bool,
    	general_variable_indexing:                bool,
    	general_constant_matrix_vector_indexing:  bool,
    }

    Mapper ¶

    Mapper :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    Messages ¶

    Messages :: enum i32 {
    	DEFAULT_BIT                 = 0, 
    	RELAXED_ERRORS_BIT          = 1, 
    	SUPPRESS_WARNINGS_BIT       = 2, 
    	AST_BIT                     = 4, 
    	SPV_RULES_BIT               = 8, 
    	VULKAN_RULES_BIT            = 16, 
    	ONLY_PREPROCESSOR_BIT       = 32, 
    	READ_HLSL_BIT               = 64, 
    	CASCADING_ERRORS_BIT        = 128, 
    	KEEP_UNCALLED_BIT           = 256, 
    	HLSL_OFFSETS_BIT            = 512, 
    	DEBUG_INFO_BIT              = 1024, 
    	HLSL_ENABLE_16BIT_TYPES_BIT = 2048, 
    	HLSL_LEGALIZATION_BIT       = 4096, 
    	HLSL_DX9_COMPATIBLE_BIT     = 8192, 
    	BUILTIN_SYMBOL_TABLE_BIT    = 16384, 
    	ENHANCED                    = 32768, 
    	ABSOLUTE_PATH               = 65536, 
    	DISPLAY_ERROR_COLUMN        = 131072, 
    	LINK_TIME_OPTIMIZATION_BIT  = 262144, 
    	VALIDATE_CROSS_STAGE_IO_BIT = 524288, 
    	COUNT, 
    }

    Profile ¶

    Profile :: enum i32 {
    	BAD_PROFILE           = 0, 
    	NO_PROFILE            = 1, 
    	CORE_PROFILE          = 2, 
    	COMPATIBILITY_PROFILE = 4, 
    	ES_PROFILE            = 8, 
    	COUNT, 
    }

    Resolver ¶

    Resolver :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    Resource ¶

    Resource :: struct {
    	max_lights:                                    i32,
    	max_clip_planes:                               i32,
    	max_texture_units:                             i32,
    	max_texture_coords:                            i32,
    	max_vertex_attribs:                            i32,
    	max_vertex_uniform_components:                 i32,
    	max_varying_floats:                            i32,
    	max_vertex_texture_image_units:                i32,
    	max_combined_texture_image_units:              i32,
    	max_texture_image_units:                       i32,
    	max_fragment_uniform_components:               i32,
    	max_draw_buffers:                              i32,
    	max_vertex_uniform_vectors:                    i32,
    	max_varying_vectors:                           i32,
    	max_fragment_uniform_vectors:                  i32,
    	max_vertex_output_vectors:                     i32,
    	max_fragment_input_vectors:                    i32,
    	min_program_texel_offset:                      i32,
    	max_program_texel_offset:                      i32,
    	max_clip_distances:                            i32,
    	max_compute_work_group_count_x:                i32,
    	max_compute_work_group_count_y:                i32,
    	max_compute_work_group_count_z:                i32,
    	max_compute_work_group_size_x:                 i32,
    	max_compute_work_group_size_y:                 i32,
    	max_compute_work_group_size_z:                 i32,
    	max_compute_uniform_components:                i32,
    	max_compute_texture_image_units:               i32,
    	max_compute_image_uniforms:                    i32,
    	max_compute_atomic_counters:                   i32,
    	max_compute_atomic_counter_buffers:            i32,
    	max_varying_components:                        i32,
    	max_vertex_output_components:                  i32,
    	max_geometry_input_components:                 i32,
    	max_geometry_output_components:                i32,
    	max_fragment_input_components:                 i32,
    	max_image_units:                               i32,
    	max_combined_image_units_and_fragment_outputs: i32,
    	max_combined_shader_output_resources:          i32,
    	max_image_samples:                             i32,
    	max_vertex_image_uniforms:                     i32,
    	max_tess_control_image_uniforms:               i32,
    	max_tess_evaluation_image_uniforms:            i32,
    	max_geometry_image_uniforms:                   i32,
    	max_fragment_image_uniforms:                   i32,
    	max_combined_image_uniforms:                   i32,
    	max_geometry_texture_image_units:              i32,
    	max_geometry_output_vertices:                  i32,
    	max_geometry_total_output_components:          i32,
    	max_geometry_uniform_components:               i32,
    	max_geometry_varying_components:               i32,
    	max_tess_control_input_components:             i32,
    	max_tess_control_output_components:            i32,
    	max_tess_control_texture_image_units:          i32,
    	max_tess_control_uniform_components:           i32,
    	max_tess_control_total_output_components:      i32,
    	max_tess_evaluation_input_components:          i32,
    	max_tess_evaluation_output_components:         i32,
    	max_tess_evaluation_texture_image_units:       i32,
    	max_tess_evaluation_uniform_components:        i32,
    	max_tess_patch_components:                     i32,
    	max_patch_vertices:                            i32,
    	max_tess_gen_level:                            i32,
    	max_viewports:                                 i32,
    	max_vertex_atomic_counters:                    i32,
    	max_tess_control_atomic_counters:              i32,
    	max_tess_evaluation_atomic_counters:           i32,
    	max_geometry_atomic_counters:                  i32,
    	max_fragment_atomic_counters:                  i32,
    	max_combined_atomic_counters:                  i32,
    	max_atomic_counter_bindings:                   i32,
    	max_vertex_atomic_counter_buffers:             i32,
    	max_tess_control_atomic_counter_buffers:       i32,
    	max_tess_evaluation_atomic_counter_buffers:    i32,
    	max_geometry_atomic_counter_buffers:           i32,
    	max_fragment_atomic_counter_buffers:           i32,
    	max_combined_atomic_counter_buffers:           i32,
    	max_atomic_counter_buffer_size:                i32,
    	max_transform_feedback_buffers:                i32,
    	max_transform_feedback_interleaved_components: i32,
    	max_cull_distances:                            i32,
    	max_combined_clip_and_cull_distances:          i32,
    	max_samples:                                   i32,
    	max_mesh_output_vertices_nv:                   i32,
    	max_mesh_output_primitives_nv:                 i32,
    	max_mesh_work_group_size_x_nv:                 i32,
    	max_mesh_work_group_size_y_nv:                 i32,
    	max_mesh_work_group_size_z_nv:                 i32,
    	max_task_work_group_size_x_nv:                 i32,
    	max_task_work_group_size_y_nv:                 i32,
    	max_task_work_group_size_z_nv:                 i32,
    	max_mesh_view_count_nv:                        i32,
    	max_mesh_output_vertices_ext:                  i32,
    	max_mesh_output_primitives_ext:                i32,
    	max_mesh_work_group_size_x_ext:                i32,
    	max_mesh_work_group_size_y_ext:                i32,
    	max_mesh_work_group_size_z_ext:                i32,
    	max_task_work_group_size_x_ext:                i32,
    	max_task_work_group_size_y_ext:                i32,
    	max_task_work_group_size_z_ext:                i32,
    	_max_union:                                    struct #raw_union {
    		max_mesh_view_count_ext:          i32,
    		max_dual_source_draw_buffers_ext: i32,
    	},
    	limits:                                        Limits,
    }
    Related Procedures With Returns

    Resource_Type ¶

    Resource_Type :: enum i32 {
    	SAMPLER, 
    	TEXTURE, 
    	IMAGE, 
    	UBO, 
    	SSBO, 
    	UAV, 
    	COMBINED_SAMPLER, 
    	AS, 
    	TENSOR, 
    	COUNT, 
    }
    Related Procedures With Parameters

    SPV_Options ¶

    SPV_Options :: struct {
    	generate_debug_info:                  bool,
    	strip_debug_info:                     bool,
    	disable_optimizer:                    bool,
    	optimize_size:                        bool,
    	disassemble:                          bool,
    	validate:                             bool,
    	emit_nonsemantic_shader_debug_info:   bool,
    	emit_nonsemantic_shader_debug_source: bool,
    	compile_only:                         bool,
    	optimize_allow_expanded_id_bound:     bool,
    }
    Related Procedures With Parameters

    Shader_Options ¶

    Shader_Options :: enum i32 {
    	DEFAULT_BIT          = 0, 
    	AUTO_MAP_BINDINGS    = 1, 
    	AUTO_MAP_LOCATIONS   = 2, 
    	VULKAN_RULES_RELAXED = 4, 
    	COUNT, 
    }

    Shader_Stage ¶

    Shader_Stage :: enum i32 {
    	VERTEX, 
    	TESSCONTROL, 
    	TESSEVALUATION, 
    	GEOMETRY, 
    	FRAGMENT, 
    	COMPUTE, 
    	RAYGEN, 
    	RAYGEN_NV      = 6, 
    	INTERSECT, 
    	INTERSECT_NV   = 7, 
    	ANYHIT, 
    	ANYHIT_NV      = 8, 
    	CLOSESTHIT, 
    	CLOSESTHIT_NV  = 9, 
    	MISS, 
    	MISS_NV        = 10, 
    	CALLABLE, 
    	CALLABLE_NV    = 11, 
    	TASK, 
    	TASK_NV        = 12, 
    	MESH, 
    	MESH_NV        = 13, 
    	COUNT, 
    }
    Related Procedures With Parameters

    Shader_Stage_Mask ¶

    Shader_Stage_Mask :: enum i32 {
    	VERTEX_MASK         = 1, 
    	TESSCONTROL_MASK    = 2, 
    	TESSEVALUATION_MASK = 4, 
    	GEOMETRY_MASK       = 8, 
    	FRAGMENT_MASK       = 16, 
    	COMPUTE_MASK        = 32, 
    	RAYGEN_MASK         = 64, 
    	INTERSECT_MASK      = 128, 
    	ANYHIT_MASK         = 256, 
    	CLOSESTHIT_MASK     = 512, 
    	MISS_MASK           = 1024, 
    	CALLABLE_MASK       = 2048, 
    	TASK_MASK           = 4096, 
    	MESH_MASK           = 8192, 
    }

    Source ¶

    Source :: enum i32 {
    	NONE, 
    	GLSL, 
    	HLSL, 
    	COUNT, 
    }

    Target_Client_Version ¶

    Target_Client_Version :: enum i32 {
    	VULKAN_1_0 = 4194304, 
    	VULKAN_1_1 = 4198400, 
    	VULKAN_1_2 = 4202496, 
    	VULKAN_1_3 = 4206592, 
    	VULKAN_1_4 = 4210688, 
    	OPENGL_450 = 450, 
    	COUNT      = 6, 
    }

    Target_Language ¶

    Target_Language :: enum i32 {
    	NONE, 
    	SPV, 
    	COUNT, 
    }

    Target_Language_Version ¶

    Target_Language_Version :: enum i32 {
    	SPV_1_0 = 65536, 
    	SPV_1_1 = 65792, 
    	SPV_1_2 = 66048, 
    	SPV_1_3 = 66304, 
    	SPV_1_4 = 66560, 
    	SPV_1_5 = 66816, 
    	SPV_1_6 = 67072, 
    	COUNT   = 7, 
    }

    Version ¶

    Version :: struct {
    	major:  i32,
    	minor:  i32,
    	patch:  i32,
    	flavor: cstring,
    }
    Related Procedures With Parameters

    Constants

    This section is empty.

    Variables

    This section is empty.

    Procedures

    default_resource ¶

    default_resource :: proc "c" () -> ^Resource ---

    finalize_process ¶

    finalize_process :: proc "c" () ---

    get_version ¶

    get_version :: proc "c" (version: ^Version) ---

    glsl_mapper_create ¶

    glsl_mapper_create :: proc "c" () -> ^Mapper ---

    glsl_mapper_delete ¶

    glsl_mapper_delete :: proc "c" (mapper: ^Mapper) ---

    glsl_resolver_create ¶

    glsl_resolver_create :: proc "c" (program: ^Program, stage: Shader_Stage) -> ^Resolver ---

    glsl_resolver_delete ¶

    glsl_resolver_delete :: proc "c" (resolver: ^Resolver) ---

    initialize_process ¶

    initialize_process :: proc "c" () -> i32 ---

    program_SPIRV_generate ¶

    program_SPIRV_generate :: proc "c" (program: ^Program, stage: Shader_Stage) ---

    program_SPIRV_generate_with_options ¶

    program_SPIRV_generate_with_options :: proc "c" (program: ^Program, stage: Shader_Stage, spv_options: ^SPV_Options) ---

    program_SPIRV_get ¶

    program_SPIRV_get :: proc "c" (program: ^Program, spirv: ^u32) ---

    program_SPIRV_get_messages ¶

    program_SPIRV_get_messages :: proc "c" (program: ^Program) -> cstring ---

    program_SPIRV_get_ptr ¶

    program_SPIRV_get_ptr :: proc "c" (program: ^Program) -> ^u32 ---

    program_SPIRV_get_size ¶

    program_SPIRV_get_size :: proc "c" (program: ^Program) -> uint ---

    program_add_shader ¶

    program_add_shader :: proc "c" (program: ^Program, shader: ^Shader) ---

    program_add_source_text ¶

    program_add_source_text :: proc "c" (program: ^Program, stage: Shader_Stage, text: cstring, len: uint) ---

    program_create ¶

    program_create :: proc "c" () -> ^Program ---

    program_delete ¶

    program_delete :: proc "c" (program: ^Program) ---

    program_get_info_debug_log ¶

    program_get_info_debug_log :: proc "c" (program: ^Program) -> cstring ---

    program_get_info_log ¶

    program_get_info_log :: proc "c" (program: ^Program) -> cstring ---
    program_link :: proc "c" (program: ^Program, messages: i32) -> i32 ---

    program_map_io ¶

    program_map_io :: proc "c" (program: ^Program) -> i32 ---

    program_map_io_with_resolver_and_mapper ¶

    program_map_io_with_resolver_and_mapper :: proc "c" (program: ^Program, resolver: ^Resolver, mapper: ^Mapper) -> i32 ---

    program_set_source_file ¶

    program_set_source_file :: proc "c" (program: ^Program, stage: Shader_Stage, file: cstring) ---

    shader_create ¶

    shader_create :: proc "c" (input: ^Input) -> ^Shader ---

    shader_delete ¶

    shader_delete :: proc "c" (shader: ^Shader) ---

    shader_get_info_debug_log ¶

    shader_get_info_debug_log :: proc "c" (shader: ^Shader) -> cstring ---

    shader_get_info_log ¶

    shader_get_info_log :: proc "c" (shader: ^Shader) -> cstring ---

    shader_get_preprocessed_code ¶

    shader_get_preprocessed_code :: proc "c" (shader: ^Shader) -> cstring ---

    shader_parse ¶

    shader_parse :: proc "c" (shader: ^Shader, input: ^Input) -> i32 ---

    shader_preprocess ¶

    shader_preprocess :: proc "c" (shader: ^Shader, input: ^Input) -> i32 ---

    shader_set_default_uniform_block_name ¶

    shader_set_default_uniform_block_name :: proc "c" (shader: ^Shader, name: cstring) ---

    shader_set_default_uniform_block_set_and_binding ¶

    shader_set_default_uniform_block_set_and_binding :: proc "c" (shader: ^Shader, set: u32, binding: u32) ---

    shader_set_entry_point ¶

    shader_set_entry_point :: proc "c" (shader: ^Shader, s: cstring) ---

    shader_set_glsl_version ¶

    shader_set_glsl_version :: proc "c" (shader: ^Shader, version: i32) ---

    shader_set_invert_y ¶

    shader_set_invert_y :: proc "c" (shader: ^Shader, y: bool) ---

    shader_set_options ¶

    shader_set_options :: proc "c" (shader: ^Shader, options: i32) ---

    shader_set_preamble ¶

    shader_set_preamble :: proc "c" (shader: ^Shader, s: cstring) ---

    shader_set_preprocessed_code ¶

    shader_set_preprocessed_code :: proc "c" (shader: ^Shader, code: cstring) ---

    shader_set_resource_set_binding ¶

    shader_set_resource_set_binding :: proc "c" (shader: ^Shader, bindings: ^cstring, num_bindings: u32) ---

    shader_shift_binding ¶

    shader_shift_binding :: proc "c" (shader: ^Shader, res: Resource_Type, base: u32) ---

    shader_shift_binding_for_set ¶

    shader_shift_binding_for_set :: proc "c" (shader: ^Shader, res: Resource_Type, base: u32, set: u32) ---

    Procedure Groups

    This section is empty.

    Source Files

    Generation Information

    Generated with odin version dev-v0.0.1 (vendor "odin") Linux_amd64 @ 2026-01-30 10:23:17.971518170 +0000 UTC