Skip to content

Instantly share code, notes, and snippets.

@Octachron
Created June 1, 2017 10:35
Show Gist options
  • Save Octachron/e09758d0e25a2c1696355d1d2990391c to your computer and use it in GitHub Desktop.
Save Octachron/e09758d0e25a2c1696355d1d2990391c to your computer and use it in GitHub Desktop.
open Ctypes
let libvulkan = Dl.dlopen ~filename:"libvulkan.so" ~flags:Dl.[RTLD_NOW]
let foreign name = Foreign.foreign ~from:libvulkan name
module Printer = Format
open Vk__const
include Builtin_types
module System_allocation_scope = struct
type t = | Command
| Object
| Cache
| Device
| Instance
let to_int = function
| Command -> 0
| Object -> 1
| Cache -> 2
| Device -> 3
| Instance -> 4
let of_int = function
| 0 -> Command
| 1 -> Object
| 2 -> Cache
| 3 -> Device
| 4 -> Instance
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Command -> "Command"
| Object -> "Object"
| Cache -> "Cache"
| Device -> "Device"
| Instance -> "Instance")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let system_allocation_scope, system_allocation_scope_opt = System_allocation_scope.(view,view_opt)
type system_allocation_scope = System_allocation_scope.t
let allocation_function, allocation_function_opt = let ty = (ptr void)
@->size_t @->size_t @->system_allocation_scope @-> returning (ptr void) in
(Foreign.funptr ty, Foreign.funptr_opt ty)
module Debug_report_flags_ext = struct
include Bitset.Make()
let debug = make_index 4
let error = make_index 3
let performance_warning = make_index 2
let warning = make_index 1
let information = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem debug set then
Printer.fprintf ppf "debug;@ "
else ();
if mem error set then
Printer.fprintf ppf "error;@ "
else ();
if mem performance_warning set then
Printer.fprintf ppf "performance_warning;@ "
else ();
if mem warning set then
Printer.fprintf ppf "warning;@ "
else ();
if mem information set then
Printer.fprintf ppf "information;@ "
else ();
Printer.fprintf ppf "}@]"
end
type debug_report_flags_ext = Debug_report_flags_ext.t
let debug_report_flags_ext, debug_report_flags_ext_opt = Debug_report_flags_ext.(view, view_opt)
let debug_report_flag_bits_ext = Debug_report_flags_ext.index_view
let debug_report_flag_bits_ext_opt = Debug_report_flags_ext.index_view_opt
module Debug_report_object_type_ext = struct
type t = | Unknown
| Instance
| Physical_device
| Device
| Queue
| Semaphore
| Command_buffer
| Fence
| Device_memory
| Buffer
| Image
| Event
| Query_pool
| Buffer_view
| Image_view
| Shader_module
| Pipeline_cache
| Pipeline_layout
| Render_pass
| Pipeline
| Descriptor_set_layout
| Sampler
| Descriptor_pool
| Descriptor_set
| Framebuffer
| Command_pool
| Surface_khr
| Swapchain_khr
| Debug_report_callback_ext
| Display_khr
| Display_mode_khr
| Object_table_nvx
| Indirect_commands_layout_nvx
| Descriptor_update_template_khr
let to_int = function
| Unknown -> 0
| Instance -> 1
| Physical_device -> 2
| Device -> 3
| Queue -> 4
| Semaphore -> 5
| Command_buffer -> 6
| Fence -> 7
| Device_memory -> 8
| Buffer -> 9
| Image -> 10
| Event -> 11
| Query_pool -> 12
| Buffer_view -> 13
| Image_view -> 14
| Shader_module -> 15
| Pipeline_cache -> 16
| Pipeline_layout -> 17
| Render_pass -> 18
| Pipeline -> 19
| Descriptor_set_layout -> 20
| Sampler -> 21
| Descriptor_pool -> 22
| Descriptor_set -> 23
| Framebuffer -> 24
| Command_pool -> 25
| Surface_khr -> 26
| Swapchain_khr -> 27
| Debug_report_callback_ext -> 28
| Display_khr -> 29
| Display_mode_khr -> 30
| Object_table_nvx -> 31
| Indirect_commands_layout_nvx -> 32
| Descriptor_update_template_khr -> 1000085000
let of_int = function
| 0 -> Unknown
| 1 -> Instance
| 2 -> Physical_device
| 3 -> Device
| 4 -> Queue
| 5 -> Semaphore
| 6 -> Command_buffer
| 7 -> Fence
| 8 -> Device_memory
| 9 -> Buffer
| 10 -> Image
| 11 -> Event
| 12 -> Query_pool
| 13 -> Buffer_view
| 14 -> Image_view
| 15 -> Shader_module
| 16 -> Pipeline_cache
| 17 -> Pipeline_layout
| 18 -> Render_pass
| 19 -> Pipeline
| 20 -> Descriptor_set_layout
| 21 -> Sampler
| 22 -> Descriptor_pool
| 23 -> Descriptor_set
| 24 -> Framebuffer
| 25 -> Command_pool
| 26 -> Surface_khr
| 27 -> Swapchain_khr
| 28 -> Debug_report_callback_ext
| 29 -> Display_khr
| 30 -> Display_mode_khr
| 31 -> Object_table_nvx
| 32 -> Indirect_commands_layout_nvx
| 1000085000 -> Descriptor_update_template_khr
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Unknown -> "Unknown"
| Instance -> "Instance"
| Physical_device -> "Physical_device"
| Device -> "Device"
| Queue -> "Queue"
| Semaphore -> "Semaphore"
| Command_buffer -> "Command_buffer"
| Fence -> "Fence"
| Device_memory -> "Device_memory"
| Buffer -> "Buffer"
| Image -> "Image"
| Event -> "Event"
| Query_pool -> "Query_pool"
| Buffer_view -> "Buffer_view"
| Image_view -> "Image_view"
| Shader_module -> "Shader_module"
| Pipeline_cache -> "Pipeline_cache"
| Pipeline_layout -> "Pipeline_layout"
| Render_pass -> "Render_pass"
| Pipeline -> "Pipeline"
| Descriptor_set_layout -> "Descriptor_set_layout"
| Sampler -> "Sampler"
| Descriptor_pool -> "Descriptor_pool"
| Descriptor_set -> "Descriptor_set"
| Framebuffer -> "Framebuffer"
| Command_pool -> "Command_pool"
| Surface_khr -> "Surface_khr"
| Swapchain_khr -> "Swapchain_khr"
| Debug_report_callback_ext -> "Debug_report_callback_ext"
| Display_khr -> "Display_khr"
| Display_mode_khr -> "Display_mode_khr"
| Object_table_nvx -> "Object_table_nvx"
| Indirect_commands_layout_nvx -> "Indirect_commands_layout_nvx"
| Descriptor_update_template_khr -> "Descriptor_update_template_khr")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let debug_report_object_type_ext, debug_report_object_type_ext_opt = Debug_report_object_type_ext.(view,view_opt)
type debug_report_object_type_ext = Debug_report_object_type_ext.t
let debug_report_callback_ext, debug_report_callback_ext_opt =
let ty = debug_report_flags_ext @->debug_report_object_type_ext
@->uint_64_t @->size_t @->int_32_t @->(ptr char) @->(ptr char)
@->(ptr void) @-> returning bool_32 in (Foreign.funptr ty,
Foreign.funptr_opt ty)
let free_function, free_function_opt = let ty = (ptr void) @->(ptr void) @->
returning void in (Foreign.funptr ty, Foreign.funptr_opt ty)
module Internal_allocation_type = struct
type t = | Executable
let to_int = function
| Executable -> 0
let of_int = function
| 0 -> Executable
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Executable -> "Executable")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let internal_allocation_type, internal_allocation_type_opt = Internal_allocation_type.(view,view_opt)
type internal_allocation_type = Internal_allocation_type.t
let internal_allocation_notification, internal_allocation_notification_opt =
let ty = (ptr void) @->size_t @->internal_allocation_type
@->system_allocation_scope @-> returning void in (Foreign.funptr ty,
Foreign.funptr_opt ty)
let internal_free_notification, internal_free_notification_opt =
let ty = (ptr void) @->size_t @->internal_allocation_type
@->system_allocation_scope @-> returning void in (Foreign.funptr ty,
Foreign.funptr_opt ty)
let reallocation_function, reallocation_function_opt = let ty = (ptr void)
@->(ptr void) @->size_t @->size_t @->system_allocation_scope @->
returning (ptr void) in (Foreign.funptr ty, Foreign.funptr_opt ty)
let void_function = ptr void
module Access_flags = struct
include Bitset.Make()
let command_process_write_bit_nvx = make_index 18
let command_process_read_bit_nvx = make_index 17
let memory_write = make_index 16
let memory_read = make_index 15
let host_write = make_index 14
let host_read = make_index 13
let transfer_write = make_index 12
let transfer_read = make_index 11
let depth_stencil_attachment_write = make_index 10
let depth_stencil_attachment_read = make_index 9
let color_attachment_write = make_index 8
let color_attachment_read = make_index 7
let shader_write = make_index 6
let shader_read = make_index 5
let input_attachment_read = make_index 4
let uniform_read = make_index 3
let vertex_attribute_read = make_index 2
let index_read = make_index 1
let indirect_command_read = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem command_process_write_bit_nvx set then
Printer.fprintf ppf "command_process_write_bit_nvx;@ "
else ();
if mem command_process_read_bit_nvx set then
Printer.fprintf ppf "command_process_read_bit_nvx;@ "
else ();
if mem memory_write set then
Printer.fprintf ppf "memory_write;@ "
else ();
if mem memory_read set then
Printer.fprintf ppf "memory_read;@ "
else ();
if mem host_write set then
Printer.fprintf ppf "host_write;@ "
else ();
if mem host_read set then
Printer.fprintf ppf "host_read;@ "
else ();
if mem transfer_write set then
Printer.fprintf ppf "transfer_write;@ "
else ();
if mem transfer_read set then
Printer.fprintf ppf "transfer_read;@ "
else ();
if mem depth_stencil_attachment_write set then
Printer.fprintf ppf "depth_stencil_attachment_write;@ "
else ();
if mem depth_stencil_attachment_read set then
Printer.fprintf ppf "depth_stencil_attachment_read;@ "
else ();
if mem color_attachment_write set then
Printer.fprintf ppf "color_attachment_write;@ "
else ();
if mem color_attachment_read set then
Printer.fprintf ppf "color_attachment_read;@ "
else ();
if mem shader_write set then
Printer.fprintf ppf "shader_write;@ "
else ();
if mem shader_read set then
Printer.fprintf ppf "shader_read;@ "
else ();
if mem input_attachment_read set then
Printer.fprintf ppf "input_attachment_read;@ "
else ();
if mem uniform_read set then
Printer.fprintf ppf "uniform_read;@ "
else ();
if mem vertex_attribute_read set then
Printer.fprintf ppf "vertex_attribute_read;@ "
else ();
if mem index_read set then
Printer.fprintf ppf "index_read;@ "
else ();
if mem indirect_command_read set then
Printer.fprintf ppf "indirect_command_read;@ "
else ();
Printer.fprintf ppf "}@]"
end
type access_flags = Access_flags.t
let access_flags, access_flags_opt = Access_flags.(view, view_opt)
let access_flag_bits = Access_flags.index_view
let access_flag_bits_opt = Access_flags.index_view_opt
module Structure_type = struct
type t = | Application_info
| Instance_create_info
| Device_queue_create_info
| Device_create_info
| Submit_info
| Memory_allocate_info
| Mapped_memory_range
| Bind_sparse_info
| Fence_create_info
| Semaphore_create_info
| Event_create_info
| Query_pool_create_info
| Buffer_create_info
| Buffer_view_create_info
| Image_create_info
| Image_view_create_info
| Shader_module_create_info
| Pipeline_cache_create_info
| Pipeline_shader_stage_create_info
| Pipeline_vertex_input_state_create_info
| Pipeline_input_assembly_state_create_info
| Pipeline_tessellation_state_create_info
| Pipeline_viewport_state_create_info
| Pipeline_rasterization_state_create_info
| Pipeline_multisample_state_create_info
| Pipeline_depth_stencil_state_create_info
| Pipeline_color_blend_state_create_info
| Pipeline_dynamic_state_create_info
| Graphics_pipeline_create_info
| Compute_pipeline_create_info
| Pipeline_layout_create_info
| Sampler_create_info
| Descriptor_set_layout_create_info
| Descriptor_pool_create_info
| Descriptor_set_allocate_info
| Write_descriptor_set
| Copy_descriptor_set
| Framebuffer_create_info
| Render_pass_create_info
| Command_pool_create_info
| Command_buffer_allocate_info
| Command_buffer_inheritance_info
| Command_buffer_begin_info
| Render_pass_begin_info
| Buffer_memory_barrier
| Image_memory_barrier
| Memory_barrier
| Loader_instance_create_info
| Loader_device_create_info
| Swapchain_create_info_khr
| Present_info_khr
| Display_mode_create_info_khr
| Display_surface_create_info_khr
| Display_present_info_khr
| Xlib_surface_create_info_khr
| Xcb_surface_create_info_khr
| Wayland_surface_create_info_khr
| Mir_surface_create_info_khr
| Android_surface_create_info_khr
| Win_32_surface_create_info_khr
| Debug_report_callback_create_info_ext
| Pipeline_rasterization_state_rasterization_order_amd
| Debug_marker_object_name_info_ext
| Debug_marker_object_tag_info_ext
| Debug_marker_marker_info_ext
| Dedicated_allocation_image_create_info_nv
| Dedicated_allocation_buffer_create_info_nv
| Dedicated_allocation_memory_allocate_info_nv
| Texture_lod_gather_format_properties_amd
| Render_pass_multiview_create_info_khx
| Physical_device_multiview_features_khx
| Physical_device_multiview_properties_khx
| External_memory_image_create_info_nv
| Export_memory_allocate_info_nv
| Import_memory_win_32_handle_info_nv
| Export_memory_win_32_handle_info_nv
| Win_32_keyed_mutex_acquire_release_info_nv
| Physical_device_features_2_khr
| Physical_device_properties_2_khr
| Format_properties_2_khr
| Image_format_properties_2_khr
| Physical_device_image_format_info_2_khr
| Queue_family_properties_2_khr
| Physical_device_memory_properties_2_khr
| Sparse_image_format_properties_2_khr
| Physical_device_sparse_image_format_info_2_khr
| Memory_allocate_flags_info_khx
| Bind_buffer_memory_info_khx
| Bind_image_memory_info_khx
| Device_group_render_pass_begin_info_khx
| Device_group_command_buffer_begin_info_khx
| Device_group_submit_info_khx
| Device_group_bind_sparse_info_khx
| Device_group_present_capabilities_khx
| Image_swapchain_create_info_khx
| Bind_image_memory_swapchain_info_khx
| Acquire_next_image_info_khx
| Device_group_present_info_khx
| Device_group_swapchain_create_info_khx
| Validation_flags_ext
| Vi_surface_create_info_nn
| Physical_device_group_properties_khx
| Device_group_device_create_info_khx
| Physical_device_external_image_format_info_khx
| External_image_format_properties_khx
| Physical_device_external_buffer_info_khx
| External_buffer_properties_khx
| Physical_device_id_properties_khx
| External_memory_buffer_create_info_khx
| External_memory_image_create_info_khx
| Export_memory_allocate_info_khx
| Import_memory_win_32_handle_info_khx
| Export_memory_win_32_handle_info_khx
| Memory_win_32_handle_properties_khx
| Import_memory_fd_info_khx
| Memory_fd_properties_khx
| Win_32_keyed_mutex_acquire_release_info_khx
| Physical_device_external_semaphore_info_khx
| External_semaphore_properties_khx
| Export_semaphore_create_info_khx
| Import_semaphore_win_32_handle_info_khx
| Export_semaphore_win_32_handle_info_khx
| D3d_12_fence_submit_info_khx
| Import_semaphore_fd_info_khx
| Physical_device_push_descriptor_properties_khr
| Present_regions_khr
| Descriptor_update_template_create_info_khr
| Object_table_create_info_nvx
| Indirect_commands_layout_create_info_nvx
| Cmd_process_commands_info_nvx
| Cmd_reserve_space_for_commands_info_nvx
| Device_generated_commands_limits_nvx
| Device_generated_commands_features_nvx
| Pipeline_viewport_w_scaling_state_create_info_nv
| Surface_capabilities_2_ext
| Display_power_info_ext
| Device_event_info_ext
| Display_event_info_ext
| Swapchain_counter_create_info_ext
| Present_times_info_google
| Physical_device_multiview_per_view_attributes_properties_nvx
| Pipeline_viewport_swizzle_state_create_info_nv
| Physical_device_discard_rectangle_properties_ext
| Pipeline_discard_rectangle_state_create_info_ext
| Hdr_metadata_ext
| Shared_present_surface_capabilities_khr
| Physical_device_surface_info_2_khr
| Surface_capabilities_2_khr
| Surface_format_2_khr
| Ios_surface_create_info_mvk
| Macos_surface_create_info_mvk
let to_int = function
| Application_info -> 0
| Instance_create_info -> 1
| Device_queue_create_info -> 2
| Device_create_info -> 3
| Submit_info -> 4
| Memory_allocate_info -> 5
| Mapped_memory_range -> 6
| Bind_sparse_info -> 7
| Fence_create_info -> 8
| Semaphore_create_info -> 9
| Event_create_info -> 10
| Query_pool_create_info -> 11
| Buffer_create_info -> 12
| Buffer_view_create_info -> 13
| Image_create_info -> 14
| Image_view_create_info -> 15
| Shader_module_create_info -> 16
| Pipeline_cache_create_info -> 17
| Pipeline_shader_stage_create_info -> 18
| Pipeline_vertex_input_state_create_info -> 19
| Pipeline_input_assembly_state_create_info -> 20
| Pipeline_tessellation_state_create_info -> 21
| Pipeline_viewport_state_create_info -> 22
| Pipeline_rasterization_state_create_info -> 23
| Pipeline_multisample_state_create_info -> 24
| Pipeline_depth_stencil_state_create_info -> 25
| Pipeline_color_blend_state_create_info -> 26
| Pipeline_dynamic_state_create_info -> 27
| Graphics_pipeline_create_info -> 28
| Compute_pipeline_create_info -> 29
| Pipeline_layout_create_info -> 30
| Sampler_create_info -> 31
| Descriptor_set_layout_create_info -> 32
| Descriptor_pool_create_info -> 33
| Descriptor_set_allocate_info -> 34
| Write_descriptor_set -> 35
| Copy_descriptor_set -> 36
| Framebuffer_create_info -> 37
| Render_pass_create_info -> 38
| Command_pool_create_info -> 39
| Command_buffer_allocate_info -> 40
| Command_buffer_inheritance_info -> 41
| Command_buffer_begin_info -> 42
| Render_pass_begin_info -> 43
| Buffer_memory_barrier -> 44
| Image_memory_barrier -> 45
| Memory_barrier -> 46
| Loader_instance_create_info -> 47
| Loader_device_create_info -> 48
| Swapchain_create_info_khr -> 1000001000
| Present_info_khr -> 1000001001
| Display_mode_create_info_khr -> 1000002000
| Display_surface_create_info_khr -> 1000002001
| Display_present_info_khr -> 1000003000
| Xlib_surface_create_info_khr -> 1000004000
| Xcb_surface_create_info_khr -> 1000005000
| Wayland_surface_create_info_khr -> 1000006000
| Mir_surface_create_info_khr -> 1000007000
| Android_surface_create_info_khr -> 1000008000
| Win_32_surface_create_info_khr -> 1000009000
| Debug_report_callback_create_info_ext -> 1000011000
| Pipeline_rasterization_state_rasterization_order_amd -> 1000018000
| Debug_marker_object_name_info_ext -> 1000022000
| Debug_marker_object_tag_info_ext -> 1000022001
| Debug_marker_marker_info_ext -> 1000022002
| Dedicated_allocation_image_create_info_nv -> 1000026000
| Dedicated_allocation_buffer_create_info_nv -> 1000026001
| Dedicated_allocation_memory_allocate_info_nv -> 1000026002
| Texture_lod_gather_format_properties_amd -> 1000041000
| Render_pass_multiview_create_info_khx -> 1000053000
| Physical_device_multiview_features_khx -> 1000053001
| Physical_device_multiview_properties_khx -> 1000053002
| External_memory_image_create_info_nv -> 1000056000
| Export_memory_allocate_info_nv -> 1000056001
| Import_memory_win_32_handle_info_nv -> 1000057000
| Export_memory_win_32_handle_info_nv -> 1000057001
| Win_32_keyed_mutex_acquire_release_info_nv -> 1000058000
| Physical_device_features_2_khr -> 1000059000
| Physical_device_properties_2_khr -> 1000059001
| Format_properties_2_khr -> 1000059002
| Image_format_properties_2_khr -> 1000059003
| Physical_device_image_format_info_2_khr -> 1000059004
| Queue_family_properties_2_khr -> 1000059005
| Physical_device_memory_properties_2_khr -> 1000059006
| Sparse_image_format_properties_2_khr -> 1000059007
| Physical_device_sparse_image_format_info_2_khr -> 1000059008
| Memory_allocate_flags_info_khx -> 1000060000
| Bind_buffer_memory_info_khx -> 1000060001
| Bind_image_memory_info_khx -> 1000060002
| Device_group_render_pass_begin_info_khx -> 1000060003
| Device_group_command_buffer_begin_info_khx -> 1000060004
| Device_group_submit_info_khx -> 1000060005
| Device_group_bind_sparse_info_khx -> 1000060006
| Device_group_present_capabilities_khx -> 1000060007
| Image_swapchain_create_info_khx -> 1000060008
| Bind_image_memory_swapchain_info_khx -> 1000060009
| Acquire_next_image_info_khx -> 1000060010
| Device_group_present_info_khx -> 1000060011
| Device_group_swapchain_create_info_khx -> 1000060012
| Validation_flags_ext -> 1000061000
| Vi_surface_create_info_nn -> 1000062000
| Physical_device_group_properties_khx -> 1000070000
| Device_group_device_create_info_khx -> 1000070001
| Physical_device_external_image_format_info_khx -> 1000071000
| External_image_format_properties_khx -> 1000071001
| Physical_device_external_buffer_info_khx -> 1000071002
| External_buffer_properties_khx -> 1000071003
| Physical_device_id_properties_khx -> 1000071004
| External_memory_buffer_create_info_khx -> 1000072000
| External_memory_image_create_info_khx -> 1000072001
| Export_memory_allocate_info_khx -> 1000072002
| Import_memory_win_32_handle_info_khx -> 1000073000
| Export_memory_win_32_handle_info_khx -> 1000073001
| Memory_win_32_handle_properties_khx -> 1000073002
| Import_memory_fd_info_khx -> 1000074000
| Memory_fd_properties_khx -> 1000074001
| Win_32_keyed_mutex_acquire_release_info_khx -> 1000075000
| Physical_device_external_semaphore_info_khx -> 1000076000
| External_semaphore_properties_khx -> 1000076001
| Export_semaphore_create_info_khx -> 1000077000
| Import_semaphore_win_32_handle_info_khx -> 1000078000
| Export_semaphore_win_32_handle_info_khx -> 1000078001
| D3d_12_fence_submit_info_khx -> 1000078002
| Import_semaphore_fd_info_khx -> 1000079000
| Physical_device_push_descriptor_properties_khr -> 1000080000
| Present_regions_khr -> 1000084000
| Descriptor_update_template_create_info_khr -> 1000085000
| Object_table_create_info_nvx -> 1000086000
| Indirect_commands_layout_create_info_nvx -> 1000086001
| Cmd_process_commands_info_nvx -> 1000086002
| Cmd_reserve_space_for_commands_info_nvx -> 1000086003
| Device_generated_commands_limits_nvx -> 1000086004
| Device_generated_commands_features_nvx -> 1000086005
| Pipeline_viewport_w_scaling_state_create_info_nv -> 1000087000
| Surface_capabilities_2_ext -> 1000090000
| Display_power_info_ext -> 1000091000
| Device_event_info_ext -> 1000091001
| Display_event_info_ext -> 1000091002
| Swapchain_counter_create_info_ext -> 1000091003
| Present_times_info_google -> 1000092000
| Physical_device_multiview_per_view_attributes_properties_nvx -> 1000097000
| Pipeline_viewport_swizzle_state_create_info_nv -> 1000098000
| Physical_device_discard_rectangle_properties_ext -> 1000099000
| Pipeline_discard_rectangle_state_create_info_ext -> 1000099001
| Hdr_metadata_ext -> 1000105000
| Shared_present_surface_capabilities_khr -> 1000111000
| Physical_device_surface_info_2_khr -> 1000119000
| Surface_capabilities_2_khr -> 1000119001
| Surface_format_2_khr -> 1000119002
| Ios_surface_create_info_mvk -> 1000122000
| Macos_surface_create_info_mvk -> 1000123000
let of_int = function
| 0 -> Application_info
| 1 -> Instance_create_info
| 2 -> Device_queue_create_info
| 3 -> Device_create_info
| 4 -> Submit_info
| 5 -> Memory_allocate_info
| 6 -> Mapped_memory_range
| 7 -> Bind_sparse_info
| 8 -> Fence_create_info
| 9 -> Semaphore_create_info
| 10 -> Event_create_info
| 11 -> Query_pool_create_info
| 12 -> Buffer_create_info
| 13 -> Buffer_view_create_info
| 14 -> Image_create_info
| 15 -> Image_view_create_info
| 16 -> Shader_module_create_info
| 17 -> Pipeline_cache_create_info
| 18 -> Pipeline_shader_stage_create_info
| 19 -> Pipeline_vertex_input_state_create_info
| 20 -> Pipeline_input_assembly_state_create_info
| 21 -> Pipeline_tessellation_state_create_info
| 22 -> Pipeline_viewport_state_create_info
| 23 -> Pipeline_rasterization_state_create_info
| 24 -> Pipeline_multisample_state_create_info
| 25 -> Pipeline_depth_stencil_state_create_info
| 26 -> Pipeline_color_blend_state_create_info
| 27 -> Pipeline_dynamic_state_create_info
| 28 -> Graphics_pipeline_create_info
| 29 -> Compute_pipeline_create_info
| 30 -> Pipeline_layout_create_info
| 31 -> Sampler_create_info
| 32 -> Descriptor_set_layout_create_info
| 33 -> Descriptor_pool_create_info
| 34 -> Descriptor_set_allocate_info
| 35 -> Write_descriptor_set
| 36 -> Copy_descriptor_set
| 37 -> Framebuffer_create_info
| 38 -> Render_pass_create_info
| 39 -> Command_pool_create_info
| 40 -> Command_buffer_allocate_info
| 41 -> Command_buffer_inheritance_info
| 42 -> Command_buffer_begin_info
| 43 -> Render_pass_begin_info
| 44 -> Buffer_memory_barrier
| 45 -> Image_memory_barrier
| 46 -> Memory_barrier
| 47 -> Loader_instance_create_info
| 48 -> Loader_device_create_info
| 1000001000 -> Swapchain_create_info_khr
| 1000001001 -> Present_info_khr
| 1000002000 -> Display_mode_create_info_khr
| 1000002001 -> Display_surface_create_info_khr
| 1000003000 -> Display_present_info_khr
| 1000004000 -> Xlib_surface_create_info_khr
| 1000005000 -> Xcb_surface_create_info_khr
| 1000006000 -> Wayland_surface_create_info_khr
| 1000007000 -> Mir_surface_create_info_khr
| 1000008000 -> Android_surface_create_info_khr
| 1000009000 -> Win_32_surface_create_info_khr
| 1000011000 -> Debug_report_callback_create_info_ext
| 1000018000 -> Pipeline_rasterization_state_rasterization_order_amd
| 1000022000 -> Debug_marker_object_name_info_ext
| 1000022001 -> Debug_marker_object_tag_info_ext
| 1000022002 -> Debug_marker_marker_info_ext
| 1000026000 -> Dedicated_allocation_image_create_info_nv
| 1000026001 -> Dedicated_allocation_buffer_create_info_nv
| 1000026002 -> Dedicated_allocation_memory_allocate_info_nv
| 1000041000 -> Texture_lod_gather_format_properties_amd
| 1000053000 -> Render_pass_multiview_create_info_khx
| 1000053001 -> Physical_device_multiview_features_khx
| 1000053002 -> Physical_device_multiview_properties_khx
| 1000056000 -> External_memory_image_create_info_nv
| 1000056001 -> Export_memory_allocate_info_nv
| 1000057000 -> Import_memory_win_32_handle_info_nv
| 1000057001 -> Export_memory_win_32_handle_info_nv
| 1000058000 -> Win_32_keyed_mutex_acquire_release_info_nv
| 1000059000 -> Physical_device_features_2_khr
| 1000059001 -> Physical_device_properties_2_khr
| 1000059002 -> Format_properties_2_khr
| 1000059003 -> Image_format_properties_2_khr
| 1000059004 -> Physical_device_image_format_info_2_khr
| 1000059005 -> Queue_family_properties_2_khr
| 1000059006 -> Physical_device_memory_properties_2_khr
| 1000059007 -> Sparse_image_format_properties_2_khr
| 1000059008 -> Physical_device_sparse_image_format_info_2_khr
| 1000060000 -> Memory_allocate_flags_info_khx
| 1000060001 -> Bind_buffer_memory_info_khx
| 1000060002 -> Bind_image_memory_info_khx
| 1000060003 -> Device_group_render_pass_begin_info_khx
| 1000060004 -> Device_group_command_buffer_begin_info_khx
| 1000060005 -> Device_group_submit_info_khx
| 1000060006 -> Device_group_bind_sparse_info_khx
| 1000060007 -> Device_group_present_capabilities_khx
| 1000060008 -> Image_swapchain_create_info_khx
| 1000060009 -> Bind_image_memory_swapchain_info_khx
| 1000060010 -> Acquire_next_image_info_khx
| 1000060011 -> Device_group_present_info_khx
| 1000060012 -> Device_group_swapchain_create_info_khx
| 1000061000 -> Validation_flags_ext
| 1000062000 -> Vi_surface_create_info_nn
| 1000070000 -> Physical_device_group_properties_khx
| 1000070001 -> Device_group_device_create_info_khx
| 1000071000 -> Physical_device_external_image_format_info_khx
| 1000071001 -> External_image_format_properties_khx
| 1000071002 -> Physical_device_external_buffer_info_khx
| 1000071003 -> External_buffer_properties_khx
| 1000071004 -> Physical_device_id_properties_khx
| 1000072000 -> External_memory_buffer_create_info_khx
| 1000072001 -> External_memory_image_create_info_khx
| 1000072002 -> Export_memory_allocate_info_khx
| 1000073000 -> Import_memory_win_32_handle_info_khx
| 1000073001 -> Export_memory_win_32_handle_info_khx
| 1000073002 -> Memory_win_32_handle_properties_khx
| 1000074000 -> Import_memory_fd_info_khx
| 1000074001 -> Memory_fd_properties_khx
| 1000075000 -> Win_32_keyed_mutex_acquire_release_info_khx
| 1000076000 -> Physical_device_external_semaphore_info_khx
| 1000076001 -> External_semaphore_properties_khx
| 1000077000 -> Export_semaphore_create_info_khx
| 1000078000 -> Import_semaphore_win_32_handle_info_khx
| 1000078001 -> Export_semaphore_win_32_handle_info_khx
| 1000078002 -> D3d_12_fence_submit_info_khx
| 1000079000 -> Import_semaphore_fd_info_khx
| 1000080000 -> Physical_device_push_descriptor_properties_khr
| 1000084000 -> Present_regions_khr
| 1000085000 -> Descriptor_update_template_create_info_khr
| 1000086000 -> Object_table_create_info_nvx
| 1000086001 -> Indirect_commands_layout_create_info_nvx
| 1000086002 -> Cmd_process_commands_info_nvx
| 1000086003 -> Cmd_reserve_space_for_commands_info_nvx
| 1000086004 -> Device_generated_commands_limits_nvx
| 1000086005 -> Device_generated_commands_features_nvx
| 1000087000 -> Pipeline_viewport_w_scaling_state_create_info_nv
| 1000090000 -> Surface_capabilities_2_ext
| 1000091000 -> Display_power_info_ext
| 1000091001 -> Device_event_info_ext
| 1000091002 -> Display_event_info_ext
| 1000091003 -> Swapchain_counter_create_info_ext
| 1000092000 -> Present_times_info_google
| 1000097000 -> Physical_device_multiview_per_view_attributes_properties_nvx
| 1000098000 -> Pipeline_viewport_swizzle_state_create_info_nv
| 1000099000 -> Physical_device_discard_rectangle_properties_ext
| 1000099001 -> Pipeline_discard_rectangle_state_create_info_ext
| 1000105000 -> Hdr_metadata_ext
| 1000111000 -> Shared_present_surface_capabilities_khr
| 1000119000 -> Physical_device_surface_info_2_khr
| 1000119001 -> Surface_capabilities_2_khr
| 1000119002 -> Surface_format_2_khr
| 1000122000 -> Ios_surface_create_info_mvk
| 1000123000 -> Macos_surface_create_info_mvk
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Application_info -> "Application_info"
| Instance_create_info -> "Instance_create_info"
| Device_queue_create_info -> "Device_queue_create_info"
| Device_create_info -> "Device_create_info"
| Submit_info -> "Submit_info"
| Memory_allocate_info -> "Memory_allocate_info"
| Mapped_memory_range -> "Mapped_memory_range"
| Bind_sparse_info -> "Bind_sparse_info"
| Fence_create_info -> "Fence_create_info"
| Semaphore_create_info -> "Semaphore_create_info"
| Event_create_info -> "Event_create_info"
| Query_pool_create_info -> "Query_pool_create_info"
| Buffer_create_info -> "Buffer_create_info"
| Buffer_view_create_info -> "Buffer_view_create_info"
| Image_create_info -> "Image_create_info"
| Image_view_create_info -> "Image_view_create_info"
| Shader_module_create_info -> "Shader_module_create_info"
| Pipeline_cache_create_info -> "Pipeline_cache_create_info"
| Pipeline_shader_stage_create_info -> "Pipeline_shader_stage_create_info"
| Pipeline_vertex_input_state_create_info -> "Pipeline_vertex_input_state_create_info"
| Pipeline_input_assembly_state_create_info -> "Pipeline_input_assembly_state_create_info"
| Pipeline_tessellation_state_create_info -> "Pipeline_tessellation_state_create_info"
| Pipeline_viewport_state_create_info -> "Pipeline_viewport_state_create_info"
| Pipeline_rasterization_state_create_info -> "Pipeline_rasterization_state_create_info"
| Pipeline_multisample_state_create_info -> "Pipeline_multisample_state_create_info"
| Pipeline_depth_stencil_state_create_info -> "Pipeline_depth_stencil_state_create_info"
| Pipeline_color_blend_state_create_info -> "Pipeline_color_blend_state_create_info"
| Pipeline_dynamic_state_create_info -> "Pipeline_dynamic_state_create_info"
| Graphics_pipeline_create_info -> "Graphics_pipeline_create_info"
| Compute_pipeline_create_info -> "Compute_pipeline_create_info"
| Pipeline_layout_create_info -> "Pipeline_layout_create_info"
| Sampler_create_info -> "Sampler_create_info"
| Descriptor_set_layout_create_info -> "Descriptor_set_layout_create_info"
| Descriptor_pool_create_info -> "Descriptor_pool_create_info"
| Descriptor_set_allocate_info -> "Descriptor_set_allocate_info"
| Write_descriptor_set -> "Write_descriptor_set"
| Copy_descriptor_set -> "Copy_descriptor_set"
| Framebuffer_create_info -> "Framebuffer_create_info"
| Render_pass_create_info -> "Render_pass_create_info"
| Command_pool_create_info -> "Command_pool_create_info"
| Command_buffer_allocate_info -> "Command_buffer_allocate_info"
| Command_buffer_inheritance_info -> "Command_buffer_inheritance_info"
| Command_buffer_begin_info -> "Command_buffer_begin_info"
| Render_pass_begin_info -> "Render_pass_begin_info"
| Buffer_memory_barrier -> "Buffer_memory_barrier"
| Image_memory_barrier -> "Image_memory_barrier"
| Memory_barrier -> "Memory_barrier"
| Loader_instance_create_info -> "Loader_instance_create_info"
| Loader_device_create_info -> "Loader_device_create_info"
| Swapchain_create_info_khr -> "Swapchain_create_info_khr"
| Present_info_khr -> "Present_info_khr"
| Display_mode_create_info_khr -> "Display_mode_create_info_khr"
| Display_surface_create_info_khr -> "Display_surface_create_info_khr"
| Display_present_info_khr -> "Display_present_info_khr"
| Xlib_surface_create_info_khr -> "Xlib_surface_create_info_khr"
| Xcb_surface_create_info_khr -> "Xcb_surface_create_info_khr"
| Wayland_surface_create_info_khr -> "Wayland_surface_create_info_khr"
| Mir_surface_create_info_khr -> "Mir_surface_create_info_khr"
| Android_surface_create_info_khr -> "Android_surface_create_info_khr"
| Win_32_surface_create_info_khr -> "Win_32_surface_create_info_khr"
| Debug_report_callback_create_info_ext -> "Debug_report_callback_create_info_ext"
| Pipeline_rasterization_state_rasterization_order_amd -> "Pipeline_rasterization_state_rasterization_order_amd"
| Debug_marker_object_name_info_ext -> "Debug_marker_object_name_info_ext"
| Debug_marker_object_tag_info_ext -> "Debug_marker_object_tag_info_ext"
| Debug_marker_marker_info_ext -> "Debug_marker_marker_info_ext"
| Dedicated_allocation_image_create_info_nv -> "Dedicated_allocation_image_create_info_nv"
| Dedicated_allocation_buffer_create_info_nv -> "Dedicated_allocation_buffer_create_info_nv"
| Dedicated_allocation_memory_allocate_info_nv -> "Dedicated_allocation_memory_allocate_info_nv"
| Texture_lod_gather_format_properties_amd -> "Texture_lod_gather_format_properties_amd"
| Render_pass_multiview_create_info_khx -> "Render_pass_multiview_create_info_khx"
| Physical_device_multiview_features_khx -> "Physical_device_multiview_features_khx"
| Physical_device_multiview_properties_khx -> "Physical_device_multiview_properties_khx"
| External_memory_image_create_info_nv -> "External_memory_image_create_info_nv"
| Export_memory_allocate_info_nv -> "Export_memory_allocate_info_nv"
| Import_memory_win_32_handle_info_nv -> "Import_memory_win_32_handle_info_nv"
| Export_memory_win_32_handle_info_nv -> "Export_memory_win_32_handle_info_nv"
| Win_32_keyed_mutex_acquire_release_info_nv -> "Win_32_keyed_mutex_acquire_release_info_nv"
| Physical_device_features_2_khr -> "Physical_device_features_2_khr"
| Physical_device_properties_2_khr -> "Physical_device_properties_2_khr"
| Format_properties_2_khr -> "Format_properties_2_khr"
| Image_format_properties_2_khr -> "Image_format_properties_2_khr"
| Physical_device_image_format_info_2_khr -> "Physical_device_image_format_info_2_khr"
| Queue_family_properties_2_khr -> "Queue_family_properties_2_khr"
| Physical_device_memory_properties_2_khr -> "Physical_device_memory_properties_2_khr"
| Sparse_image_format_properties_2_khr -> "Sparse_image_format_properties_2_khr"
| Physical_device_sparse_image_format_info_2_khr -> "Physical_device_sparse_image_format_info_2_khr"
| Memory_allocate_flags_info_khx -> "Memory_allocate_flags_info_khx"
| Bind_buffer_memory_info_khx -> "Bind_buffer_memory_info_khx"
| Bind_image_memory_info_khx -> "Bind_image_memory_info_khx"
| Device_group_render_pass_begin_info_khx -> "Device_group_render_pass_begin_info_khx"
| Device_group_command_buffer_begin_info_khx -> "Device_group_command_buffer_begin_info_khx"
| Device_group_submit_info_khx -> "Device_group_submit_info_khx"
| Device_group_bind_sparse_info_khx -> "Device_group_bind_sparse_info_khx"
| Device_group_present_capabilities_khx -> "Device_group_present_capabilities_khx"
| Image_swapchain_create_info_khx -> "Image_swapchain_create_info_khx"
| Bind_image_memory_swapchain_info_khx -> "Bind_image_memory_swapchain_info_khx"
| Acquire_next_image_info_khx -> "Acquire_next_image_info_khx"
| Device_group_present_info_khx -> "Device_group_present_info_khx"
| Device_group_swapchain_create_info_khx -> "Device_group_swapchain_create_info_khx"
| Validation_flags_ext -> "Validation_flags_ext"
| Vi_surface_create_info_nn -> "Vi_surface_create_info_nn"
| Physical_device_group_properties_khx -> "Physical_device_group_properties_khx"
| Device_group_device_create_info_khx -> "Device_group_device_create_info_khx"
| Physical_device_external_image_format_info_khx -> "Physical_device_external_image_format_info_khx"
| External_image_format_properties_khx -> "External_image_format_properties_khx"
| Physical_device_external_buffer_info_khx -> "Physical_device_external_buffer_info_khx"
| External_buffer_properties_khx -> "External_buffer_properties_khx"
| Physical_device_id_properties_khx -> "Physical_device_id_properties_khx"
| External_memory_buffer_create_info_khx -> "External_memory_buffer_create_info_khx"
| External_memory_image_create_info_khx -> "External_memory_image_create_info_khx"
| Export_memory_allocate_info_khx -> "Export_memory_allocate_info_khx"
| Import_memory_win_32_handle_info_khx -> "Import_memory_win_32_handle_info_khx"
| Export_memory_win_32_handle_info_khx -> "Export_memory_win_32_handle_info_khx"
| Memory_win_32_handle_properties_khx -> "Memory_win_32_handle_properties_khx"
| Import_memory_fd_info_khx -> "Import_memory_fd_info_khx"
| Memory_fd_properties_khx -> "Memory_fd_properties_khx"
| Win_32_keyed_mutex_acquire_release_info_khx -> "Win_32_keyed_mutex_acquire_release_info_khx"
| Physical_device_external_semaphore_info_khx -> "Physical_device_external_semaphore_info_khx"
| External_semaphore_properties_khx -> "External_semaphore_properties_khx"
| Export_semaphore_create_info_khx -> "Export_semaphore_create_info_khx"
| Import_semaphore_win_32_handle_info_khx -> "Import_semaphore_win_32_handle_info_khx"
| Export_semaphore_win_32_handle_info_khx -> "Export_semaphore_win_32_handle_info_khx"
| D3d_12_fence_submit_info_khx -> "D3d_12_fence_submit_info_khx"
| Import_semaphore_fd_info_khx -> "Import_semaphore_fd_info_khx"
| Physical_device_push_descriptor_properties_khr -> "Physical_device_push_descriptor_properties_khr"
| Present_regions_khr -> "Present_regions_khr"
| Descriptor_update_template_create_info_khr -> "Descriptor_update_template_create_info_khr"
| Object_table_create_info_nvx -> "Object_table_create_info_nvx"
| Indirect_commands_layout_create_info_nvx -> "Indirect_commands_layout_create_info_nvx"
| Cmd_process_commands_info_nvx -> "Cmd_process_commands_info_nvx"
| Cmd_reserve_space_for_commands_info_nvx -> "Cmd_reserve_space_for_commands_info_nvx"
| Device_generated_commands_limits_nvx -> "Device_generated_commands_limits_nvx"
| Device_generated_commands_features_nvx -> "Device_generated_commands_features_nvx"
| Pipeline_viewport_w_scaling_state_create_info_nv -> "Pipeline_viewport_w_scaling_state_create_info_nv"
| Surface_capabilities_2_ext -> "Surface_capabilities_2_ext"
| Display_power_info_ext -> "Display_power_info_ext"
| Device_event_info_ext -> "Device_event_info_ext"
| Display_event_info_ext -> "Display_event_info_ext"
| Swapchain_counter_create_info_ext -> "Swapchain_counter_create_info_ext"
| Present_times_info_google -> "Present_times_info_google"
| Physical_device_multiview_per_view_attributes_properties_nvx -> "Physical_device_multiview_per_view_attributes_properties_nvx"
| Pipeline_viewport_swizzle_state_create_info_nv -> "Pipeline_viewport_swizzle_state_create_info_nv"
| Physical_device_discard_rectangle_properties_ext -> "Physical_device_discard_rectangle_properties_ext"
| Pipeline_discard_rectangle_state_create_info_ext -> "Pipeline_discard_rectangle_state_create_info_ext"
| Hdr_metadata_ext -> "Hdr_metadata_ext"
| Shared_present_surface_capabilities_khr -> "Shared_present_surface_capabilities_khr"
| Physical_device_surface_info_2_khr -> "Physical_device_surface_info_2_khr"
| Surface_capabilities_2_khr -> "Surface_capabilities_2_khr"
| Surface_format_2_khr -> "Surface_format_2_khr"
| Ios_surface_create_info_mvk -> "Ios_surface_create_info_mvk"
| Macos_surface_create_info_mvk -> "Macos_surface_create_info_mvk")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let structure_type, structure_type_opt = Structure_type.(view,view_opt)
type structure_type = Structure_type.t
module Swapchain_khr = Handle.Make()
type swapchain_khr = Swapchain_khr.t
let swapchain_khr, swapchain_khr_opt = Swapchain_khr.(view,view_opt)
module Semaphore = Handle.Make()
type semaphore = Semaphore.t
let semaphore, semaphore_opt = Semaphore.(view,view_opt)
module Fence = Handle.Make()
type fence = Fence.t
let fence, fence_opt = Fence.(view,view_opt)
module Acquire_next_image_info_khx = struct type t
type acquire_next_image_info_khx = t
let t: t structure typ = structure "acquire_next_image_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let swapchain = field t "swapchain" swapchain_khr
let timeout = field t "timeout" uint_64_t
let semaphore = field t "semaphore" semaphore_opt
let fence = field t "fence" fence_opt
let device_mask = field t "device_mask" uint_32_t
end
let swapchain record = Ctypes.getf record Fields.swapchain
let timeout record = Ctypes.getf record Fields.timeout
let semaphore record = Ctypes.getf record Fields.semaphore
let fence record = Ctypes.getf record Fields.fence
let device_mask record = Ctypes.getf record Fields.device_mask
let () = Ctypes.seal t
exception Unknown_record_extension
type acquire_next_image_info_khx_extension = ..
type acquire_next_image_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~swapchain:arg__swapchain
~timeout:arg__timeout?semaphore:arg__semaphore?fence:arg__fence
~device_mask:arg__device_mask ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Acquire_next_image_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.swapchain arg__swapchain;
Ctypes.setf generated__x__ Fields.timeout arg__timeout;
Ctypes.setf generated__x__ Fields.semaphore arg__semaphore;
Ctypes.setf generated__x__ Fields.fence arg__fence;
Ctypes.setf generated__x__ Fields.device_mask arg__device_mask;
Ctypes.addr generated__x__
end
let acquire_next_image_info_khx = Acquire_next_image_info_khx.t
type acquire_next_image_info_khx = Acquire_next_image_info_khx.t
module Allocation_callbacks = struct type t type allocation_callbacks = t
let t: t structure typ = structure "allocation_callbacks"
module Fields=struct
let user_data = field t "user_data" (ptr_opt (void))
let pfn_allocation = field t "pfn_allocation" allocation_function
let pfn_reallocation = field t "pfn_reallocation" reallocation_function
let pfn_free = field t "pfn_free" free_function
let pfn_internal_allocation = field t "pfn_internal_allocation" internal_allocation_notification_opt
let pfn_internal_free = field t "pfn_internal_free" internal_free_notification_opt
end
let user_data record = Ctypes.getf record Fields.user_data
let pfn_allocation record = Ctypes.getf record Fields.pfn_allocation
let pfn_reallocation record = Ctypes.getf record Fields.pfn_reallocation
let pfn_free record = Ctypes.getf record Fields.pfn_free
let pfn_internal_allocation record = Ctypes.getf record Fields.pfn_internal_allocation
let pfn_internal_free record = Ctypes.getf record Fields.pfn_internal_free
let () = Ctypes.seal t
let make ?user_data:arg__user_data~pfn_allocation:arg__pfn_allocation
~pfn_reallocation:arg__pfn_reallocation~pfn_free:arg__pfn_free
?pfn_internal_allocation:arg__pfn_internal_allocation
?pfn_internal_free:arg__pfn_internal_free ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.user_data arg__user_data;
Ctypes.setf generated__x__ Fields.pfn_allocation arg__pfn_allocation;
Ctypes.setf generated__x__ Fields.pfn_reallocation arg__pfn_reallocation;
Ctypes.setf generated__x__ Fields.pfn_free arg__pfn_free;
Ctypes.setf generated__x__ Fields.pfn_internal_allocation arg__pfn_internal_allocation;
Ctypes.setf generated__x__ Fields.pfn_internal_free arg__pfn_internal_free;
Ctypes.addr generated__x__ end
let allocation_callbacks = Allocation_callbacks.t
type allocation_callbacks = Allocation_callbacks.t
module Application_info = struct type t type application_info = t
let t: t structure typ = structure "application_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let application_name = field t "application_name" string_opt
let application_version = field t "application_version" uint_32_t
let engine_name = field t "engine_name" string_opt
let engine_version = field t "engine_version" uint_32_t
let api_version = field t "api_version" uint_32_t
end
let application_name record = Ctypes.getf record Fields.application_name
let application_version record = Ctypes.getf record Fields.application_version
let engine_name record = Ctypes.getf record Fields.engine_name
let engine_version record = Ctypes.getf record Fields.engine_version
let api_version record = Ctypes.getf record Fields.api_version
let () = Ctypes.seal t
exception Unknown_record_extension
type application_info_extension = ..
type application_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
?application_name:arg__application_name
~application_version:arg__application_version?engine_name:arg__engine_name
~engine_version:arg__engine_version~api_version:arg__api_version ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Application_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.application_name arg__application_name;
Ctypes.setf generated__x__ Fields.application_version arg__application_version;
Ctypes.setf generated__x__ Fields.engine_name arg__engine_name;
Ctypes.setf generated__x__ Fields.engine_version arg__engine_version;
Ctypes.setf generated__x__ Fields.api_version arg__api_version;
Ctypes.addr generated__x__
end
let application_info = Application_info.t
type application_info = Application_info.t
module Attachment_description_flags = struct
include Bitset.Make()
let may_alias = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem may_alias set then
Printer.fprintf ppf "may_alias;@ "
else ();
Printer.fprintf ppf "}@]"
end
type attachment_description_flags = Attachment_description_flags.t
let attachment_description_flags, attachment_description_flags_opt = Attachment_description_flags.(view, view_opt)
let attachment_description_flag_bits = Attachment_description_flags.index_view
let attachment_description_flag_bits_opt = Attachment_description_flags.index_view_opt
module Format = struct
type t = | Undefined
| R4g_4_unorm_pack_8
| R4g4b4a_4_unorm_pack_16
| B4g4r4a_4_unorm_pack_16
| R5g6b_5_unorm_pack_16
| B5g6r_5_unorm_pack_16
| R5g5b5a_1_unorm_pack_16
| B5g5r5a_1_unorm_pack_16
| A1r5g5b_5_unorm_pack_16
| R_8_unorm
| R_8_snorm
| R_8_uscaled
| R_8_sscaled
| R_8_uint
| R_8_sint
| R_8_srgb
| R8g_8_unorm
| R8g_8_snorm
| R8g_8_uscaled
| R8g_8_sscaled
| R8g_8_uint
| R8g_8_sint
| R8g_8_srgb
| R8g8b_8_unorm
| R8g8b_8_snorm
| R8g8b_8_uscaled
| R8g8b_8_sscaled
| R8g8b_8_uint
| R8g8b_8_sint
| R8g8b_8_srgb
| B8g8r_8_unorm
| B8g8r_8_snorm
| B8g8r_8_uscaled
| B8g8r_8_sscaled
| B8g8r_8_uint
| B8g8r_8_sint
| B8g8r_8_srgb
| R8g8b8a_8_unorm
| R8g8b8a_8_snorm
| R8g8b8a_8_uscaled
| R8g8b8a_8_sscaled
| R8g8b8a_8_uint
| R8g8b8a_8_sint
| R8g8b8a_8_srgb
| B8g8r8a_8_unorm
| B8g8r8a_8_snorm
| B8g8r8a_8_uscaled
| B8g8r8a_8_sscaled
| B8g8r8a_8_uint
| B8g8r8a_8_sint
| B8g8r8a_8_srgb
| A8b8g8r_8_unorm_pack_32
| A8b8g8r_8_snorm_pack_32
| A8b8g8r_8_uscaled_pack_32
| A8b8g8r_8_sscaled_pack_32
| A8b8g8r_8_uint_pack_32
| A8b8g8r_8_sint_pack_32
| A8b8g8r_8_srgb_pack_32
| A2r10g10b_10_unorm_pack_32
| A2r10g10b_10_snorm_pack_32
| A2r10g10b_10_uscaled_pack_32
| A2r10g10b_10_sscaled_pack_32
| A2r10g10b_10_uint_pack_32
| A2r10g10b_10_sint_pack_32
| A2b10g10r_10_unorm_pack_32
| A2b10g10r_10_snorm_pack_32
| A2b10g10r_10_uscaled_pack_32
| A2b10g10r_10_sscaled_pack_32
| A2b10g10r_10_uint_pack_32
| A2b10g10r_10_sint_pack_32
| R_16_unorm
| R_16_snorm
| R_16_uscaled
| R_16_sscaled
| R_16_uint
| R_16_sint
| R_16_sfloat
| R16g_16_unorm
| R16g_16_snorm
| R16g_16_uscaled
| R16g_16_sscaled
| R16g_16_uint
| R16g_16_sint
| R16g_16_sfloat
| R16g16b_16_unorm
| R16g16b_16_snorm
| R16g16b_16_uscaled
| R16g16b_16_sscaled
| R16g16b_16_uint
| R16g16b_16_sint
| R16g16b_16_sfloat
| R16g16b16a_16_unorm
| R16g16b16a_16_snorm
| R16g16b16a_16_uscaled
| R16g16b16a_16_sscaled
| R16g16b16a_16_uint
| R16g16b16a_16_sint
| R16g16b16a_16_sfloat
| R_32_uint
| R_32_sint
| R_32_sfloat
| R32g_32_uint
| R32g_32_sint
| R32g_32_sfloat
| R32g32b_32_uint
| R32g32b_32_sint
| R32g32b_32_sfloat
| R32g32b32a_32_uint
| R32g32b32a_32_sint
| R32g32b32a_32_sfloat
| R_64_uint
| R_64_sint
| R_64_sfloat
| R64g_64_uint
| R64g_64_sint
| R64g_64_sfloat
| R64g64b_64_uint
| R64g64b_64_sint
| R64g64b_64_sfloat
| R64g64b64a_64_uint
| R64g64b64a_64_sint
| R64g64b64a_64_sfloat
| B10g11r_11_ufloat_pack_32
| E5b9g9r_9_ufloat_pack_32
| D_16_unorm
| X_8_d_24_unorm_pack_32
| D_32_sfloat
| S_8_uint
| D_16_unorm_s_8_uint
| D_24_unorm_s_8_uint
| D_32_sfloat_s_8_uint
| Bc_1_rgb_unorm_block
| Bc_1_rgb_srgb_block
| Bc_1_rgba_unorm_block
| Bc_1_rgba_srgb_block
| Bc_2_unorm_block
| Bc_2_srgb_block
| Bc_3_unorm_block
| Bc_3_srgb_block
| Bc_4_unorm_block
| Bc_4_snorm_block
| Bc_5_unorm_block
| Bc_5_snorm_block
| Bc6h_ufloat_block
| Bc6h_sfloat_block
| Bc_7_unorm_block
| Bc_7_srgb_block
| Etc_2_r8g8b_8_unorm_block
| Etc_2_r8g8b_8_srgb_block
| Etc_2_r8g8b8a_1_unorm_block
| Etc_2_r8g8b8a_1_srgb_block
| Etc_2_r8g8b8a_8_unorm_block
| Etc_2_r8g8b8a_8_srgb_block
| Eac_r_11_unorm_block
| Eac_r_11_snorm_block
| Eac_r11g_11_unorm_block
| Eac_r11g_11_snorm_block
| Astc_4x4_unorm_block
| Astc_4x4_srgb_block
| Astc_5x4_unorm_block
| Astc_5x4_srgb_block
| Astc_5x5_unorm_block
| Astc_5x5_srgb_block
| Astc_6x5_unorm_block
| Astc_6x5_srgb_block
| Astc_6x6_unorm_block
| Astc_6x6_srgb_block
| Astc_8x5_unorm_block
| Astc_8x5_srgb_block
| Astc_8x6_unorm_block
| Astc_8x6_srgb_block
| Astc_8x8_unorm_block
| Astc_8x8_srgb_block
| Astc_10x5_unorm_block
| Astc_10x5_srgb_block
| Astc_10x6_unorm_block
| Astc_10x6_srgb_block
| Astc_10x8_unorm_block
| Astc_10x8_srgb_block
| Astc_10x10_unorm_block
| Astc_10x10_srgb_block
| Astc_12x10_unorm_block
| Astc_12x10_srgb_block
| Astc_12x12_unorm_block
| Astc_12x12_srgb_block
| Pvrtc_1_2bpp_unorm_block_img
| Pvrtc_1_4bpp_unorm_block_img
| Pvrtc_2_2bpp_unorm_block_img
| Pvrtc_2_4bpp_unorm_block_img
| Pvrtc_1_2bpp_srgb_block_img
| Pvrtc_1_4bpp_srgb_block_img
| Pvrtc_2_2bpp_srgb_block_img
| Pvrtc_2_4bpp_srgb_block_img
let to_int = function
| Undefined -> 0
| R4g_4_unorm_pack_8 -> 1
| R4g4b4a_4_unorm_pack_16 -> 2
| B4g4r4a_4_unorm_pack_16 -> 3
| R5g6b_5_unorm_pack_16 -> 4
| B5g6r_5_unorm_pack_16 -> 5
| R5g5b5a_1_unorm_pack_16 -> 6
| B5g5r5a_1_unorm_pack_16 -> 7
| A1r5g5b_5_unorm_pack_16 -> 8
| R_8_unorm -> 9
| R_8_snorm -> 10
| R_8_uscaled -> 11
| R_8_sscaled -> 12
| R_8_uint -> 13
| R_8_sint -> 14
| R_8_srgb -> 15
| R8g_8_unorm -> 16
| R8g_8_snorm -> 17
| R8g_8_uscaled -> 18
| R8g_8_sscaled -> 19
| R8g_8_uint -> 20
| R8g_8_sint -> 21
| R8g_8_srgb -> 22
| R8g8b_8_unorm -> 23
| R8g8b_8_snorm -> 24
| R8g8b_8_uscaled -> 25
| R8g8b_8_sscaled -> 26
| R8g8b_8_uint -> 27
| R8g8b_8_sint -> 28
| R8g8b_8_srgb -> 29
| B8g8r_8_unorm -> 30
| B8g8r_8_snorm -> 31
| B8g8r_8_uscaled -> 32
| B8g8r_8_sscaled -> 33
| B8g8r_8_uint -> 34
| B8g8r_8_sint -> 35
| B8g8r_8_srgb -> 36
| R8g8b8a_8_unorm -> 37
| R8g8b8a_8_snorm -> 38
| R8g8b8a_8_uscaled -> 39
| R8g8b8a_8_sscaled -> 40
| R8g8b8a_8_uint -> 41
| R8g8b8a_8_sint -> 42
| R8g8b8a_8_srgb -> 43
| B8g8r8a_8_unorm -> 44
| B8g8r8a_8_snorm -> 45
| B8g8r8a_8_uscaled -> 46
| B8g8r8a_8_sscaled -> 47
| B8g8r8a_8_uint -> 48
| B8g8r8a_8_sint -> 49
| B8g8r8a_8_srgb -> 50
| A8b8g8r_8_unorm_pack_32 -> 51
| A8b8g8r_8_snorm_pack_32 -> 52
| A8b8g8r_8_uscaled_pack_32 -> 53
| A8b8g8r_8_sscaled_pack_32 -> 54
| A8b8g8r_8_uint_pack_32 -> 55
| A8b8g8r_8_sint_pack_32 -> 56
| A8b8g8r_8_srgb_pack_32 -> 57
| A2r10g10b_10_unorm_pack_32 -> 58
| A2r10g10b_10_snorm_pack_32 -> 59
| A2r10g10b_10_uscaled_pack_32 -> 60
| A2r10g10b_10_sscaled_pack_32 -> 61
| A2r10g10b_10_uint_pack_32 -> 62
| A2r10g10b_10_sint_pack_32 -> 63
| A2b10g10r_10_unorm_pack_32 -> 64
| A2b10g10r_10_snorm_pack_32 -> 65
| A2b10g10r_10_uscaled_pack_32 -> 66
| A2b10g10r_10_sscaled_pack_32 -> 67
| A2b10g10r_10_uint_pack_32 -> 68
| A2b10g10r_10_sint_pack_32 -> 69
| R_16_unorm -> 70
| R_16_snorm -> 71
| R_16_uscaled -> 72
| R_16_sscaled -> 73
| R_16_uint -> 74
| R_16_sint -> 75
| R_16_sfloat -> 76
| R16g_16_unorm -> 77
| R16g_16_snorm -> 78
| R16g_16_uscaled -> 79
| R16g_16_sscaled -> 80
| R16g_16_uint -> 81
| R16g_16_sint -> 82
| R16g_16_sfloat -> 83
| R16g16b_16_unorm -> 84
| R16g16b_16_snorm -> 85
| R16g16b_16_uscaled -> 86
| R16g16b_16_sscaled -> 87
| R16g16b_16_uint -> 88
| R16g16b_16_sint -> 89
| R16g16b_16_sfloat -> 90
| R16g16b16a_16_unorm -> 91
| R16g16b16a_16_snorm -> 92
| R16g16b16a_16_uscaled -> 93
| R16g16b16a_16_sscaled -> 94
| R16g16b16a_16_uint -> 95
| R16g16b16a_16_sint -> 96
| R16g16b16a_16_sfloat -> 97
| R_32_uint -> 98
| R_32_sint -> 99
| R_32_sfloat -> 100
| R32g_32_uint -> 101
| R32g_32_sint -> 102
| R32g_32_sfloat -> 103
| R32g32b_32_uint -> 104
| R32g32b_32_sint -> 105
| R32g32b_32_sfloat -> 106
| R32g32b32a_32_uint -> 107
| R32g32b32a_32_sint -> 108
| R32g32b32a_32_sfloat -> 109
| R_64_uint -> 110
| R_64_sint -> 111
| R_64_sfloat -> 112
| R64g_64_uint -> 113
| R64g_64_sint -> 114
| R64g_64_sfloat -> 115
| R64g64b_64_uint -> 116
| R64g64b_64_sint -> 117
| R64g64b_64_sfloat -> 118
| R64g64b64a_64_uint -> 119
| R64g64b64a_64_sint -> 120
| R64g64b64a_64_sfloat -> 121
| B10g11r_11_ufloat_pack_32 -> 122
| E5b9g9r_9_ufloat_pack_32 -> 123
| D_16_unorm -> 124
| X_8_d_24_unorm_pack_32 -> 125
| D_32_sfloat -> 126
| S_8_uint -> 127
| D_16_unorm_s_8_uint -> 128
| D_24_unorm_s_8_uint -> 129
| D_32_sfloat_s_8_uint -> 130
| Bc_1_rgb_unorm_block -> 131
| Bc_1_rgb_srgb_block -> 132
| Bc_1_rgba_unorm_block -> 133
| Bc_1_rgba_srgb_block -> 134
| Bc_2_unorm_block -> 135
| Bc_2_srgb_block -> 136
| Bc_3_unorm_block -> 137
| Bc_3_srgb_block -> 138
| Bc_4_unorm_block -> 139
| Bc_4_snorm_block -> 140
| Bc_5_unorm_block -> 141
| Bc_5_snorm_block -> 142
| Bc6h_ufloat_block -> 143
| Bc6h_sfloat_block -> 144
| Bc_7_unorm_block -> 145
| Bc_7_srgb_block -> 146
| Etc_2_r8g8b_8_unorm_block -> 147
| Etc_2_r8g8b_8_srgb_block -> 148
| Etc_2_r8g8b8a_1_unorm_block -> 149
| Etc_2_r8g8b8a_1_srgb_block -> 150
| Etc_2_r8g8b8a_8_unorm_block -> 151
| Etc_2_r8g8b8a_8_srgb_block -> 152
| Eac_r_11_unorm_block -> 153
| Eac_r_11_snorm_block -> 154
| Eac_r11g_11_unorm_block -> 155
| Eac_r11g_11_snorm_block -> 156
| Astc_4x4_unorm_block -> 157
| Astc_4x4_srgb_block -> 158
| Astc_5x4_unorm_block -> 159
| Astc_5x4_srgb_block -> 160
| Astc_5x5_unorm_block -> 161
| Astc_5x5_srgb_block -> 162
| Astc_6x5_unorm_block -> 163
| Astc_6x5_srgb_block -> 164
| Astc_6x6_unorm_block -> 165
| Astc_6x6_srgb_block -> 166
| Astc_8x5_unorm_block -> 167
| Astc_8x5_srgb_block -> 168
| Astc_8x6_unorm_block -> 169
| Astc_8x6_srgb_block -> 170
| Astc_8x8_unorm_block -> 171
| Astc_8x8_srgb_block -> 172
| Astc_10x5_unorm_block -> 173
| Astc_10x5_srgb_block -> 174
| Astc_10x6_unorm_block -> 175
| Astc_10x6_srgb_block -> 176
| Astc_10x8_unorm_block -> 177
| Astc_10x8_srgb_block -> 178
| Astc_10x10_unorm_block -> 179
| Astc_10x10_srgb_block -> 180
| Astc_12x10_unorm_block -> 181
| Astc_12x10_srgb_block -> 182
| Astc_12x12_unorm_block -> 183
| Astc_12x12_srgb_block -> 184
| Pvrtc_1_2bpp_unorm_block_img -> 1000054000
| Pvrtc_1_4bpp_unorm_block_img -> 1000054001
| Pvrtc_2_2bpp_unorm_block_img -> 1000054002
| Pvrtc_2_4bpp_unorm_block_img -> 1000054003
| Pvrtc_1_2bpp_srgb_block_img -> 1000054004
| Pvrtc_1_4bpp_srgb_block_img -> 1000054005
| Pvrtc_2_2bpp_srgb_block_img -> 1000054006
| Pvrtc_2_4bpp_srgb_block_img -> 1000054007
let of_int = function
| 0 -> Undefined
| 1 -> R4g_4_unorm_pack_8
| 2 -> R4g4b4a_4_unorm_pack_16
| 3 -> B4g4r4a_4_unorm_pack_16
| 4 -> R5g6b_5_unorm_pack_16
| 5 -> B5g6r_5_unorm_pack_16
| 6 -> R5g5b5a_1_unorm_pack_16
| 7 -> B5g5r5a_1_unorm_pack_16
| 8 -> A1r5g5b_5_unorm_pack_16
| 9 -> R_8_unorm
| 10 -> R_8_snorm
| 11 -> R_8_uscaled
| 12 -> R_8_sscaled
| 13 -> R_8_uint
| 14 -> R_8_sint
| 15 -> R_8_srgb
| 16 -> R8g_8_unorm
| 17 -> R8g_8_snorm
| 18 -> R8g_8_uscaled
| 19 -> R8g_8_sscaled
| 20 -> R8g_8_uint
| 21 -> R8g_8_sint
| 22 -> R8g_8_srgb
| 23 -> R8g8b_8_unorm
| 24 -> R8g8b_8_snorm
| 25 -> R8g8b_8_uscaled
| 26 -> R8g8b_8_sscaled
| 27 -> R8g8b_8_uint
| 28 -> R8g8b_8_sint
| 29 -> R8g8b_8_srgb
| 30 -> B8g8r_8_unorm
| 31 -> B8g8r_8_snorm
| 32 -> B8g8r_8_uscaled
| 33 -> B8g8r_8_sscaled
| 34 -> B8g8r_8_uint
| 35 -> B8g8r_8_sint
| 36 -> B8g8r_8_srgb
| 37 -> R8g8b8a_8_unorm
| 38 -> R8g8b8a_8_snorm
| 39 -> R8g8b8a_8_uscaled
| 40 -> R8g8b8a_8_sscaled
| 41 -> R8g8b8a_8_uint
| 42 -> R8g8b8a_8_sint
| 43 -> R8g8b8a_8_srgb
| 44 -> B8g8r8a_8_unorm
| 45 -> B8g8r8a_8_snorm
| 46 -> B8g8r8a_8_uscaled
| 47 -> B8g8r8a_8_sscaled
| 48 -> B8g8r8a_8_uint
| 49 -> B8g8r8a_8_sint
| 50 -> B8g8r8a_8_srgb
| 51 -> A8b8g8r_8_unorm_pack_32
| 52 -> A8b8g8r_8_snorm_pack_32
| 53 -> A8b8g8r_8_uscaled_pack_32
| 54 -> A8b8g8r_8_sscaled_pack_32
| 55 -> A8b8g8r_8_uint_pack_32
| 56 -> A8b8g8r_8_sint_pack_32
| 57 -> A8b8g8r_8_srgb_pack_32
| 58 -> A2r10g10b_10_unorm_pack_32
| 59 -> A2r10g10b_10_snorm_pack_32
| 60 -> A2r10g10b_10_uscaled_pack_32
| 61 -> A2r10g10b_10_sscaled_pack_32
| 62 -> A2r10g10b_10_uint_pack_32
| 63 -> A2r10g10b_10_sint_pack_32
| 64 -> A2b10g10r_10_unorm_pack_32
| 65 -> A2b10g10r_10_snorm_pack_32
| 66 -> A2b10g10r_10_uscaled_pack_32
| 67 -> A2b10g10r_10_sscaled_pack_32
| 68 -> A2b10g10r_10_uint_pack_32
| 69 -> A2b10g10r_10_sint_pack_32
| 70 -> R_16_unorm
| 71 -> R_16_snorm
| 72 -> R_16_uscaled
| 73 -> R_16_sscaled
| 74 -> R_16_uint
| 75 -> R_16_sint
| 76 -> R_16_sfloat
| 77 -> R16g_16_unorm
| 78 -> R16g_16_snorm
| 79 -> R16g_16_uscaled
| 80 -> R16g_16_sscaled
| 81 -> R16g_16_uint
| 82 -> R16g_16_sint
| 83 -> R16g_16_sfloat
| 84 -> R16g16b_16_unorm
| 85 -> R16g16b_16_snorm
| 86 -> R16g16b_16_uscaled
| 87 -> R16g16b_16_sscaled
| 88 -> R16g16b_16_uint
| 89 -> R16g16b_16_sint
| 90 -> R16g16b_16_sfloat
| 91 -> R16g16b16a_16_unorm
| 92 -> R16g16b16a_16_snorm
| 93 -> R16g16b16a_16_uscaled
| 94 -> R16g16b16a_16_sscaled
| 95 -> R16g16b16a_16_uint
| 96 -> R16g16b16a_16_sint
| 97 -> R16g16b16a_16_sfloat
| 98 -> R_32_uint
| 99 -> R_32_sint
| 100 -> R_32_sfloat
| 101 -> R32g_32_uint
| 102 -> R32g_32_sint
| 103 -> R32g_32_sfloat
| 104 -> R32g32b_32_uint
| 105 -> R32g32b_32_sint
| 106 -> R32g32b_32_sfloat
| 107 -> R32g32b32a_32_uint
| 108 -> R32g32b32a_32_sint
| 109 -> R32g32b32a_32_sfloat
| 110 -> R_64_uint
| 111 -> R_64_sint
| 112 -> R_64_sfloat
| 113 -> R64g_64_uint
| 114 -> R64g_64_sint
| 115 -> R64g_64_sfloat
| 116 -> R64g64b_64_uint
| 117 -> R64g64b_64_sint
| 118 -> R64g64b_64_sfloat
| 119 -> R64g64b64a_64_uint
| 120 -> R64g64b64a_64_sint
| 121 -> R64g64b64a_64_sfloat
| 122 -> B10g11r_11_ufloat_pack_32
| 123 -> E5b9g9r_9_ufloat_pack_32
| 124 -> D_16_unorm
| 125 -> X_8_d_24_unorm_pack_32
| 126 -> D_32_sfloat
| 127 -> S_8_uint
| 128 -> D_16_unorm_s_8_uint
| 129 -> D_24_unorm_s_8_uint
| 130 -> D_32_sfloat_s_8_uint
| 131 -> Bc_1_rgb_unorm_block
| 132 -> Bc_1_rgb_srgb_block
| 133 -> Bc_1_rgba_unorm_block
| 134 -> Bc_1_rgba_srgb_block
| 135 -> Bc_2_unorm_block
| 136 -> Bc_2_srgb_block
| 137 -> Bc_3_unorm_block
| 138 -> Bc_3_srgb_block
| 139 -> Bc_4_unorm_block
| 140 -> Bc_4_snorm_block
| 141 -> Bc_5_unorm_block
| 142 -> Bc_5_snorm_block
| 143 -> Bc6h_ufloat_block
| 144 -> Bc6h_sfloat_block
| 145 -> Bc_7_unorm_block
| 146 -> Bc_7_srgb_block
| 147 -> Etc_2_r8g8b_8_unorm_block
| 148 -> Etc_2_r8g8b_8_srgb_block
| 149 -> Etc_2_r8g8b8a_1_unorm_block
| 150 -> Etc_2_r8g8b8a_1_srgb_block
| 151 -> Etc_2_r8g8b8a_8_unorm_block
| 152 -> Etc_2_r8g8b8a_8_srgb_block
| 153 -> Eac_r_11_unorm_block
| 154 -> Eac_r_11_snorm_block
| 155 -> Eac_r11g_11_unorm_block
| 156 -> Eac_r11g_11_snorm_block
| 157 -> Astc_4x4_unorm_block
| 158 -> Astc_4x4_srgb_block
| 159 -> Astc_5x4_unorm_block
| 160 -> Astc_5x4_srgb_block
| 161 -> Astc_5x5_unorm_block
| 162 -> Astc_5x5_srgb_block
| 163 -> Astc_6x5_unorm_block
| 164 -> Astc_6x5_srgb_block
| 165 -> Astc_6x6_unorm_block
| 166 -> Astc_6x6_srgb_block
| 167 -> Astc_8x5_unorm_block
| 168 -> Astc_8x5_srgb_block
| 169 -> Astc_8x6_unorm_block
| 170 -> Astc_8x6_srgb_block
| 171 -> Astc_8x8_unorm_block
| 172 -> Astc_8x8_srgb_block
| 173 -> Astc_10x5_unorm_block
| 174 -> Astc_10x5_srgb_block
| 175 -> Astc_10x6_unorm_block
| 176 -> Astc_10x6_srgb_block
| 177 -> Astc_10x8_unorm_block
| 178 -> Astc_10x8_srgb_block
| 179 -> Astc_10x10_unorm_block
| 180 -> Astc_10x10_srgb_block
| 181 -> Astc_12x10_unorm_block
| 182 -> Astc_12x10_srgb_block
| 183 -> Astc_12x12_unorm_block
| 184 -> Astc_12x12_srgb_block
| 1000054000 -> Pvrtc_1_2bpp_unorm_block_img
| 1000054001 -> Pvrtc_1_4bpp_unorm_block_img
| 1000054002 -> Pvrtc_2_2bpp_unorm_block_img
| 1000054003 -> Pvrtc_2_4bpp_unorm_block_img
| 1000054004 -> Pvrtc_1_2bpp_srgb_block_img
| 1000054005 -> Pvrtc_1_4bpp_srgb_block_img
| 1000054006 -> Pvrtc_2_2bpp_srgb_block_img
| 1000054007 -> Pvrtc_2_4bpp_srgb_block_img
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Undefined -> "Undefined"
| R4g_4_unorm_pack_8 -> "R4g_4_unorm_pack_8"
| R4g4b4a_4_unorm_pack_16 -> "R4g4b4a_4_unorm_pack_16"
| B4g4r4a_4_unorm_pack_16 -> "B4g4r4a_4_unorm_pack_16"
| R5g6b_5_unorm_pack_16 -> "R5g6b_5_unorm_pack_16"
| B5g6r_5_unorm_pack_16 -> "B5g6r_5_unorm_pack_16"
| R5g5b5a_1_unorm_pack_16 -> "R5g5b5a_1_unorm_pack_16"
| B5g5r5a_1_unorm_pack_16 -> "B5g5r5a_1_unorm_pack_16"
| A1r5g5b_5_unorm_pack_16 -> "A1r5g5b_5_unorm_pack_16"
| R_8_unorm -> "R_8_unorm"
| R_8_snorm -> "R_8_snorm"
| R_8_uscaled -> "R_8_uscaled"
| R_8_sscaled -> "R_8_sscaled"
| R_8_uint -> "R_8_uint"
| R_8_sint -> "R_8_sint"
| R_8_srgb -> "R_8_srgb"
| R8g_8_unorm -> "R8g_8_unorm"
| R8g_8_snorm -> "R8g_8_snorm"
| R8g_8_uscaled -> "R8g_8_uscaled"
| R8g_8_sscaled -> "R8g_8_sscaled"
| R8g_8_uint -> "R8g_8_uint"
| R8g_8_sint -> "R8g_8_sint"
| R8g_8_srgb -> "R8g_8_srgb"
| R8g8b_8_unorm -> "R8g8b_8_unorm"
| R8g8b_8_snorm -> "R8g8b_8_snorm"
| R8g8b_8_uscaled -> "R8g8b_8_uscaled"
| R8g8b_8_sscaled -> "R8g8b_8_sscaled"
| R8g8b_8_uint -> "R8g8b_8_uint"
| R8g8b_8_sint -> "R8g8b_8_sint"
| R8g8b_8_srgb -> "R8g8b_8_srgb"
| B8g8r_8_unorm -> "B8g8r_8_unorm"
| B8g8r_8_snorm -> "B8g8r_8_snorm"
| B8g8r_8_uscaled -> "B8g8r_8_uscaled"
| B8g8r_8_sscaled -> "B8g8r_8_sscaled"
| B8g8r_8_uint -> "B8g8r_8_uint"
| B8g8r_8_sint -> "B8g8r_8_sint"
| B8g8r_8_srgb -> "B8g8r_8_srgb"
| R8g8b8a_8_unorm -> "R8g8b8a_8_unorm"
| R8g8b8a_8_snorm -> "R8g8b8a_8_snorm"
| R8g8b8a_8_uscaled -> "R8g8b8a_8_uscaled"
| R8g8b8a_8_sscaled -> "R8g8b8a_8_sscaled"
| R8g8b8a_8_uint -> "R8g8b8a_8_uint"
| R8g8b8a_8_sint -> "R8g8b8a_8_sint"
| R8g8b8a_8_srgb -> "R8g8b8a_8_srgb"
| B8g8r8a_8_unorm -> "B8g8r8a_8_unorm"
| B8g8r8a_8_snorm -> "B8g8r8a_8_snorm"
| B8g8r8a_8_uscaled -> "B8g8r8a_8_uscaled"
| B8g8r8a_8_sscaled -> "B8g8r8a_8_sscaled"
| B8g8r8a_8_uint -> "B8g8r8a_8_uint"
| B8g8r8a_8_sint -> "B8g8r8a_8_sint"
| B8g8r8a_8_srgb -> "B8g8r8a_8_srgb"
| A8b8g8r_8_unorm_pack_32 -> "A8b8g8r_8_unorm_pack_32"
| A8b8g8r_8_snorm_pack_32 -> "A8b8g8r_8_snorm_pack_32"
| A8b8g8r_8_uscaled_pack_32 -> "A8b8g8r_8_uscaled_pack_32"
| A8b8g8r_8_sscaled_pack_32 -> "A8b8g8r_8_sscaled_pack_32"
| A8b8g8r_8_uint_pack_32 -> "A8b8g8r_8_uint_pack_32"
| A8b8g8r_8_sint_pack_32 -> "A8b8g8r_8_sint_pack_32"
| A8b8g8r_8_srgb_pack_32 -> "A8b8g8r_8_srgb_pack_32"
| A2r10g10b_10_unorm_pack_32 -> "A2r10g10b_10_unorm_pack_32"
| A2r10g10b_10_snorm_pack_32 -> "A2r10g10b_10_snorm_pack_32"
| A2r10g10b_10_uscaled_pack_32 -> "A2r10g10b_10_uscaled_pack_32"
| A2r10g10b_10_sscaled_pack_32 -> "A2r10g10b_10_sscaled_pack_32"
| A2r10g10b_10_uint_pack_32 -> "A2r10g10b_10_uint_pack_32"
| A2r10g10b_10_sint_pack_32 -> "A2r10g10b_10_sint_pack_32"
| A2b10g10r_10_unorm_pack_32 -> "A2b10g10r_10_unorm_pack_32"
| A2b10g10r_10_snorm_pack_32 -> "A2b10g10r_10_snorm_pack_32"
| A2b10g10r_10_uscaled_pack_32 -> "A2b10g10r_10_uscaled_pack_32"
| A2b10g10r_10_sscaled_pack_32 -> "A2b10g10r_10_sscaled_pack_32"
| A2b10g10r_10_uint_pack_32 -> "A2b10g10r_10_uint_pack_32"
| A2b10g10r_10_sint_pack_32 -> "A2b10g10r_10_sint_pack_32"
| R_16_unorm -> "R_16_unorm"
| R_16_snorm -> "R_16_snorm"
| R_16_uscaled -> "R_16_uscaled"
| R_16_sscaled -> "R_16_sscaled"
| R_16_uint -> "R_16_uint"
| R_16_sint -> "R_16_sint"
| R_16_sfloat -> "R_16_sfloat"
| R16g_16_unorm -> "R16g_16_unorm"
| R16g_16_snorm -> "R16g_16_snorm"
| R16g_16_uscaled -> "R16g_16_uscaled"
| R16g_16_sscaled -> "R16g_16_sscaled"
| R16g_16_uint -> "R16g_16_uint"
| R16g_16_sint -> "R16g_16_sint"
| R16g_16_sfloat -> "R16g_16_sfloat"
| R16g16b_16_unorm -> "R16g16b_16_unorm"
| R16g16b_16_snorm -> "R16g16b_16_snorm"
| R16g16b_16_uscaled -> "R16g16b_16_uscaled"
| R16g16b_16_sscaled -> "R16g16b_16_sscaled"
| R16g16b_16_uint -> "R16g16b_16_uint"
| R16g16b_16_sint -> "R16g16b_16_sint"
| R16g16b_16_sfloat -> "R16g16b_16_sfloat"
| R16g16b16a_16_unorm -> "R16g16b16a_16_unorm"
| R16g16b16a_16_snorm -> "R16g16b16a_16_snorm"
| R16g16b16a_16_uscaled -> "R16g16b16a_16_uscaled"
| R16g16b16a_16_sscaled -> "R16g16b16a_16_sscaled"
| R16g16b16a_16_uint -> "R16g16b16a_16_uint"
| R16g16b16a_16_sint -> "R16g16b16a_16_sint"
| R16g16b16a_16_sfloat -> "R16g16b16a_16_sfloat"
| R_32_uint -> "R_32_uint"
| R_32_sint -> "R_32_sint"
| R_32_sfloat -> "R_32_sfloat"
| R32g_32_uint -> "R32g_32_uint"
| R32g_32_sint -> "R32g_32_sint"
| R32g_32_sfloat -> "R32g_32_sfloat"
| R32g32b_32_uint -> "R32g32b_32_uint"
| R32g32b_32_sint -> "R32g32b_32_sint"
| R32g32b_32_sfloat -> "R32g32b_32_sfloat"
| R32g32b32a_32_uint -> "R32g32b32a_32_uint"
| R32g32b32a_32_sint -> "R32g32b32a_32_sint"
| R32g32b32a_32_sfloat -> "R32g32b32a_32_sfloat"
| R_64_uint -> "R_64_uint"
| R_64_sint -> "R_64_sint"
| R_64_sfloat -> "R_64_sfloat"
| R64g_64_uint -> "R64g_64_uint"
| R64g_64_sint -> "R64g_64_sint"
| R64g_64_sfloat -> "R64g_64_sfloat"
| R64g64b_64_uint -> "R64g64b_64_uint"
| R64g64b_64_sint -> "R64g64b_64_sint"
| R64g64b_64_sfloat -> "R64g64b_64_sfloat"
| R64g64b64a_64_uint -> "R64g64b64a_64_uint"
| R64g64b64a_64_sint -> "R64g64b64a_64_sint"
| R64g64b64a_64_sfloat -> "R64g64b64a_64_sfloat"
| B10g11r_11_ufloat_pack_32 -> "B10g11r_11_ufloat_pack_32"
| E5b9g9r_9_ufloat_pack_32 -> "E5b9g9r_9_ufloat_pack_32"
| D_16_unorm -> "D_16_unorm"
| X_8_d_24_unorm_pack_32 -> "X_8_d_24_unorm_pack_32"
| D_32_sfloat -> "D_32_sfloat"
| S_8_uint -> "S_8_uint"
| D_16_unorm_s_8_uint -> "D_16_unorm_s_8_uint"
| D_24_unorm_s_8_uint -> "D_24_unorm_s_8_uint"
| D_32_sfloat_s_8_uint -> "D_32_sfloat_s_8_uint"
| Bc_1_rgb_unorm_block -> "Bc_1_rgb_unorm_block"
| Bc_1_rgb_srgb_block -> "Bc_1_rgb_srgb_block"
| Bc_1_rgba_unorm_block -> "Bc_1_rgba_unorm_block"
| Bc_1_rgba_srgb_block -> "Bc_1_rgba_srgb_block"
| Bc_2_unorm_block -> "Bc_2_unorm_block"
| Bc_2_srgb_block -> "Bc_2_srgb_block"
| Bc_3_unorm_block -> "Bc_3_unorm_block"
| Bc_3_srgb_block -> "Bc_3_srgb_block"
| Bc_4_unorm_block -> "Bc_4_unorm_block"
| Bc_4_snorm_block -> "Bc_4_snorm_block"
| Bc_5_unorm_block -> "Bc_5_unorm_block"
| Bc_5_snorm_block -> "Bc_5_snorm_block"
| Bc6h_ufloat_block -> "Bc6h_ufloat_block"
| Bc6h_sfloat_block -> "Bc6h_sfloat_block"
| Bc_7_unorm_block -> "Bc_7_unorm_block"
| Bc_7_srgb_block -> "Bc_7_srgb_block"
| Etc_2_r8g8b_8_unorm_block -> "Etc_2_r8g8b_8_unorm_block"
| Etc_2_r8g8b_8_srgb_block -> "Etc_2_r8g8b_8_srgb_block"
| Etc_2_r8g8b8a_1_unorm_block -> "Etc_2_r8g8b8a_1_unorm_block"
| Etc_2_r8g8b8a_1_srgb_block -> "Etc_2_r8g8b8a_1_srgb_block"
| Etc_2_r8g8b8a_8_unorm_block -> "Etc_2_r8g8b8a_8_unorm_block"
| Etc_2_r8g8b8a_8_srgb_block -> "Etc_2_r8g8b8a_8_srgb_block"
| Eac_r_11_unorm_block -> "Eac_r_11_unorm_block"
| Eac_r_11_snorm_block -> "Eac_r_11_snorm_block"
| Eac_r11g_11_unorm_block -> "Eac_r11g_11_unorm_block"
| Eac_r11g_11_snorm_block -> "Eac_r11g_11_snorm_block"
| Astc_4x4_unorm_block -> "Astc_4x4_unorm_block"
| Astc_4x4_srgb_block -> "Astc_4x4_srgb_block"
| Astc_5x4_unorm_block -> "Astc_5x4_unorm_block"
| Astc_5x4_srgb_block -> "Astc_5x4_srgb_block"
| Astc_5x5_unorm_block -> "Astc_5x5_unorm_block"
| Astc_5x5_srgb_block -> "Astc_5x5_srgb_block"
| Astc_6x5_unorm_block -> "Astc_6x5_unorm_block"
| Astc_6x5_srgb_block -> "Astc_6x5_srgb_block"
| Astc_6x6_unorm_block -> "Astc_6x6_unorm_block"
| Astc_6x6_srgb_block -> "Astc_6x6_srgb_block"
| Astc_8x5_unorm_block -> "Astc_8x5_unorm_block"
| Astc_8x5_srgb_block -> "Astc_8x5_srgb_block"
| Astc_8x6_unorm_block -> "Astc_8x6_unorm_block"
| Astc_8x6_srgb_block -> "Astc_8x6_srgb_block"
| Astc_8x8_unorm_block -> "Astc_8x8_unorm_block"
| Astc_8x8_srgb_block -> "Astc_8x8_srgb_block"
| Astc_10x5_unorm_block -> "Astc_10x5_unorm_block"
| Astc_10x5_srgb_block -> "Astc_10x5_srgb_block"
| Astc_10x6_unorm_block -> "Astc_10x6_unorm_block"
| Astc_10x6_srgb_block -> "Astc_10x6_srgb_block"
| Astc_10x8_unorm_block -> "Astc_10x8_unorm_block"
| Astc_10x8_srgb_block -> "Astc_10x8_srgb_block"
| Astc_10x10_unorm_block -> "Astc_10x10_unorm_block"
| Astc_10x10_srgb_block -> "Astc_10x10_srgb_block"
| Astc_12x10_unorm_block -> "Astc_12x10_unorm_block"
| Astc_12x10_srgb_block -> "Astc_12x10_srgb_block"
| Astc_12x12_unorm_block -> "Astc_12x12_unorm_block"
| Astc_12x12_srgb_block -> "Astc_12x12_srgb_block"
| Pvrtc_1_2bpp_unorm_block_img -> "Pvrtc_1_2bpp_unorm_block_img"
| Pvrtc_1_4bpp_unorm_block_img -> "Pvrtc_1_4bpp_unorm_block_img"
| Pvrtc_2_2bpp_unorm_block_img -> "Pvrtc_2_2bpp_unorm_block_img"
| Pvrtc_2_4bpp_unorm_block_img -> "Pvrtc_2_4bpp_unorm_block_img"
| Pvrtc_1_2bpp_srgb_block_img -> "Pvrtc_1_2bpp_srgb_block_img"
| Pvrtc_1_4bpp_srgb_block_img -> "Pvrtc_1_4bpp_srgb_block_img"
| Pvrtc_2_2bpp_srgb_block_img -> "Pvrtc_2_2bpp_srgb_block_img"
| Pvrtc_2_4bpp_srgb_block_img -> "Pvrtc_2_4bpp_srgb_block_img")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let format, format_opt = Format.(view,view_opt)
type format = Format.t
module Sample_count_flags = struct
include Bitset.Make()
let n64 = make_index 6
let n32 = make_index 5
let n16 = make_index 4
let n8 = make_index 3
let n4 = make_index 2
let n2 = make_index 1
let n1 = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem n64 set then
Printer.fprintf ppf "n64;@ "
else ();
if mem n32 set then
Printer.fprintf ppf "n32;@ "
else ();
if mem n16 set then
Printer.fprintf ppf "n16;@ "
else ();
if mem n8 set then
Printer.fprintf ppf "n8;@ "
else ();
if mem n4 set then
Printer.fprintf ppf "n4;@ "
else ();
if mem n2 set then
Printer.fprintf ppf "n2;@ "
else ();
if mem n1 set then
Printer.fprintf ppf "n1;@ "
else ();
Printer.fprintf ppf "}@]"
end
type sample_count_flags = Sample_count_flags.t
let sample_count_flags, sample_count_flags_opt = Sample_count_flags.(view, view_opt)
let sample_count_flag_bits = Sample_count_flags.index_view
let sample_count_flag_bits_opt = Sample_count_flags.index_view_opt
module Attachment_load_op = struct
type t = | Load
| Clear
| Dont_care
let to_int = function
| Load -> 0
| Clear -> 1
| Dont_care -> 2
let of_int = function
| 0 -> Load
| 1 -> Clear
| 2 -> Dont_care
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Load -> "Load"
| Clear -> "Clear"
| Dont_care -> "Dont_care")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let attachment_load_op, attachment_load_op_opt = Attachment_load_op.(view,view_opt)
type attachment_load_op = Attachment_load_op.t
module Attachment_store_op = struct
type t = | Store
| Dont_care
let to_int = function
| Store -> 0
| Dont_care -> 1
let of_int = function
| 0 -> Store
| 1 -> Dont_care
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Store -> "Store"
| Dont_care -> "Dont_care")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let attachment_store_op, attachment_store_op_opt = Attachment_store_op.(view,view_opt)
type attachment_store_op = Attachment_store_op.t
module Image_layout = struct
type t = | Undefined
| General
| Color_attachment_optimal
| Depth_stencil_attachment_optimal
| Depth_stencil_read_only_optimal
| Shader_read_only_optimal
| Transfer_src_optimal
| Transfer_dst_optimal
| Preinitialized
| Present_src_khr
| Shared_present_khr
let to_int = function
| Undefined -> 0
| General -> 1
| Color_attachment_optimal -> 2
| Depth_stencil_attachment_optimal -> 3
| Depth_stencil_read_only_optimal -> 4
| Shader_read_only_optimal -> 5
| Transfer_src_optimal -> 6
| Transfer_dst_optimal -> 7
| Preinitialized -> 8
| Present_src_khr -> 1000001002
| Shared_present_khr -> 1000111000
let of_int = function
| 0 -> Undefined
| 1 -> General
| 2 -> Color_attachment_optimal
| 3 -> Depth_stencil_attachment_optimal
| 4 -> Depth_stencil_read_only_optimal
| 5 -> Shader_read_only_optimal
| 6 -> Transfer_src_optimal
| 7 -> Transfer_dst_optimal
| 8 -> Preinitialized
| 1000001002 -> Present_src_khr
| 1000111000 -> Shared_present_khr
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Undefined -> "Undefined"
| General -> "General"
| Color_attachment_optimal -> "Color_attachment_optimal"
| Depth_stencil_attachment_optimal -> "Depth_stencil_attachment_optimal"
| Depth_stencil_read_only_optimal -> "Depth_stencil_read_only_optimal"
| Shader_read_only_optimal -> "Shader_read_only_optimal"
| Transfer_src_optimal -> "Transfer_src_optimal"
| Transfer_dst_optimal -> "Transfer_dst_optimal"
| Preinitialized -> "Preinitialized"
| Present_src_khr -> "Present_src_khr"
| Shared_present_khr -> "Shared_present_khr")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let image_layout, image_layout_opt = Image_layout.(view,view_opt)
type image_layout = Image_layout.t
module Attachment_description = struct type t
type attachment_description = t
let t: t structure typ = structure "attachment_description"
module Fields=struct
let flags = field t "flags" attachment_description_flags_opt
let format = field t "format" format
let samples = field t "samples" sample_count_flag_bits
let load_op = field t "load_op" attachment_load_op
let store_op = field t "store_op" attachment_store_op
let stencil_load_op = field t "stencil_load_op" attachment_load_op
let stencil_store_op = field t "stencil_store_op" attachment_store_op
let initial_layout = field t "initial_layout" image_layout
let final_layout = field t "final_layout" image_layout
end
let flags record = Ctypes.getf record Fields.flags
let format record = Ctypes.getf record Fields.format
let samples record = Ctypes.getf record Fields.samples
let load_op record = Ctypes.getf record Fields.load_op
let store_op record = Ctypes.getf record Fields.store_op
let stencil_load_op record = Ctypes.getf record Fields.stencil_load_op
let stencil_store_op record = Ctypes.getf record Fields.stencil_store_op
let initial_layout record = Ctypes.getf record Fields.initial_layout
let final_layout record = Ctypes.getf record Fields.final_layout
let () = Ctypes.seal t
let make ?flags:arg__flags~format:arg__format~samples:arg__samples
~load_op:arg__load_op~store_op:arg__store_op
~stencil_load_op:arg__stencil_load_op
~stencil_store_op:arg__stencil_store_op
~initial_layout:arg__initial_layout~final_layout:arg__final_layout ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.format arg__format;
Ctypes.setf generated__x__ Fields.samples arg__samples;
Ctypes.setf generated__x__ Fields.load_op arg__load_op;
Ctypes.setf generated__x__ Fields.store_op arg__store_op;
Ctypes.setf generated__x__ Fields.stencil_load_op arg__stencil_load_op;
Ctypes.setf generated__x__ Fields.stencil_store_op arg__stencil_store_op;
Ctypes.setf generated__x__ Fields.initial_layout arg__initial_layout;
Ctypes.setf generated__x__ Fields.final_layout arg__final_layout;
Ctypes.addr generated__x__ end
let attachment_description = Attachment_description.t
type attachment_description = Attachment_description.t
module Attachment_reference = struct type t type attachment_reference = t
let t: t structure typ = structure "attachment_reference"
module Fields=struct
let attachment = field t "attachment" uint_32_t
let layout = field t "layout" image_layout
end
let attachment record = Ctypes.getf record Fields.attachment
let layout record = Ctypes.getf record Fields.layout
let () = Ctypes.seal t
let make ~attachment:arg__attachment~layout:arg__layout =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.attachment arg__attachment;
Ctypes.setf generated__x__ Fields.layout arg__layout;
Ctypes.addr generated__x__ end
let attachment_reference = Attachment_reference.t
type attachment_reference = Attachment_reference.t
module Buffer = Handle.Make()
type buffer = Buffer.t
let buffer, buffer_opt = Buffer.(view,view_opt)
module Device_memory = Handle.Make()
type device_memory = Device_memory.t
let device_memory, device_memory_opt = Device_memory.(view,view_opt)
module Device_size = Alias(struct type t = uint_64_t let ctype = uint_64_t
let of_int = Uint_64_t.of_int let to_int = Uint_64_t.to_int end)
let device_size = Device_size.ctype
module Bind_buffer_memory_info_khx = struct type t
type bind_buffer_memory_info_khx = t
let t: t structure typ = structure "bind_buffer_memory_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let buffer = field t "buffer" buffer
let memory = field t "memory" device_memory
let memory_offset = field t "memory_offset" device_size
let device_index_count = field t "device_index_count" uint_32_t_opt
let device_indices = field t "device_indices" (ptr uint_32_t)
end
let buffer record = Ctypes.getf record Fields.buffer
let memory record = Ctypes.getf record Fields.memory
let memory_offset record = Ctypes.getf record Fields.memory_offset
let device_indices record = match Ctypes.getf record Fields.device_index_count, Ctypes.getf record Fields.device_indices with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type bind_buffer_memory_info_khx_extension = ..
type bind_buffer_memory_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~buffer:arg__buffer
~memory:arg__memory~memory_offset:arg__memory_offset
?device_indices:arg__device_indices ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Bind_buffer_memory_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.buffer arg__buffer;
Ctypes.setf generated__x__ Fields.memory arg__memory;
Ctypes.setf generated__x__ Fields.memory_offset arg__memory_offset;
begin match arg__device_indices with
| None ->
(Ctypes.setf generated__x__ Fields.device_index_count None;
Ctypes.setf generated__x__ Fields.device_indices (Obj.magic @@ Ctypes.null))
|Some arg__device_indices ->(Ctypes.setf generated__x__ Fields.device_index_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__device_indices)));
Ctypes.setf generated__x__ Fields.device_indices (Ctypes.CArray.start arg__device_indices))
end;
Ctypes.addr generated__x__
end
let bind_buffer_memory_info_khx = Bind_buffer_memory_info_khx.t
type bind_buffer_memory_info_khx = Bind_buffer_memory_info_khx.t
module Image = Handle.Make()
type image = Image.t
let image, image_opt = Image.(view,view_opt)
module Offset_2d = struct type t type offset_2d = t
let t: t structure typ = structure "offset_2d"
module Fields=struct
let x = field t "x" int_32_t
let y = field t "y" int_32_t
end
let x record = Ctypes.getf record Fields.x
let y record = Ctypes.getf record Fields.y let () = Ctypes.seal t
let make ~x:arg__x~y:arg__y = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.x arg__x;
Ctypes.setf generated__x__ Fields.y arg__y; Ctypes.addr generated__x__ end
let offset_2d = Offset_2d.t
type offset_2d = Offset_2d.t
module Extent_2d = struct type t type extent_2d = t
let t: t structure typ = structure "extent_2d"
module Fields=struct
let width = field t "width" uint_32_t
let height = field t "height" uint_32_t
end
let width record = Ctypes.getf record Fields.width
let height record = Ctypes.getf record Fields.height
let () = Ctypes.seal t
let make ~width:arg__width~height:arg__height =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.width arg__width;
Ctypes.setf generated__x__ Fields.height arg__height;
Ctypes.addr generated__x__ end
let extent_2d = Extent_2d.t
type extent_2d = Extent_2d.t
module Rect_2d = struct type t type rect_2d = t
let t: t structure typ = structure "rect_2d"
module Fields=struct
let offset = field t "offset" offset_2d
let extent = field t "extent" extent_2d
end
let offset record = Ctypes.getf record Fields.offset
let extent record = Ctypes.getf record Fields.extent
let () = Ctypes.seal t
let make ~offset:arg__offset~extent:arg__extent =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.setf generated__x__ Fields.extent arg__extent;
Ctypes.addr generated__x__ end
let rect_2d = Rect_2d.t
type rect_2d = Rect_2d.t
module Bind_image_memory_info_khx = struct type t
type bind_image_memory_info_khx = t
let t: t structure typ = structure "bind_image_memory_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let image = field t "image" image
let memory = field t "memory" device_memory
let memory_offset = field t "memory_offset" device_size
let device_index_count = field t "device_index_count" uint_32_t_opt
let device_indices = field t "device_indices" (ptr uint_32_t)
let s_f_rr_ect_count = field t "s_f_rr_ect_count" uint_32_t_opt
let s_f_rr_ects = field t "s_f_rr_ects" (ptr rect_2d)
end
let image record = Ctypes.getf record Fields.image
let memory record = Ctypes.getf record Fields.memory
let memory_offset record = Ctypes.getf record Fields.memory_offset
let device_indices record = match Ctypes.getf record Fields.device_index_count, Ctypes.getf record Fields.device_indices with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let s_f_rr_ects record = match Ctypes.getf record Fields.s_f_rr_ect_count, Ctypes.getf record Fields.s_f_rr_ects with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type bind_image_memory_info_khx_extension = ..
type bind_image_memory_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~image:arg__image
~memory:arg__memory~memory_offset:arg__memory_offset
?device_indices:arg__device_indices?s_f_rr_ects:arg__s_f_rr_ects ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Bind_image_memory_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.image arg__image;
Ctypes.setf generated__x__ Fields.memory arg__memory;
Ctypes.setf generated__x__ Fields.memory_offset arg__memory_offset;
begin match arg__device_indices with
| None ->
(Ctypes.setf generated__x__ Fields.device_index_count None;
Ctypes.setf generated__x__ Fields.device_indices (Obj.magic @@ Ctypes.null))
|Some arg__device_indices ->(Ctypes.setf generated__x__ Fields.device_index_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__device_indices)));
Ctypes.setf generated__x__ Fields.device_indices (Ctypes.CArray.start arg__device_indices))
end;
begin match arg__s_f_rr_ects with
| None ->
(Ctypes.setf generated__x__ Fields.s_f_rr_ect_count None;
Ctypes.setf generated__x__ Fields.s_f_rr_ects (Obj.magic @@ Ctypes.null))
|Some arg__s_f_rr_ects ->(Ctypes.setf generated__x__ Fields.s_f_rr_ect_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__s_f_rr_ects)));
Ctypes.setf generated__x__ Fields.s_f_rr_ects (Ctypes.CArray.start arg__s_f_rr_ects))
end;
Ctypes.addr generated__x__
end
let bind_image_memory_info_khx = Bind_image_memory_info_khx.t
type bind_image_memory_info_khx = Bind_image_memory_info_khx.t
module Bind_image_memory_swapchain_info_khx = struct type t
type bind_image_memory_swapchain_info_khx = t
let t: t structure typ = structure "bind_image_memory_swapchain_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let swapchain = field t "swapchain" swapchain_khr
let image_index = field t "image_index" uint_32_t
end
let swapchain record = Ctypes.getf record Fields.swapchain
let image_index record = Ctypes.getf record Fields.image_index
let () = Ctypes.seal t
exception Unknown_record_extension
type bind_image_memory_swapchain_info_khx_extension = ..
type bind_image_memory_swapchain_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~swapchain:arg__swapchain
~image_index:arg__image_index ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Bind_image_memory_swapchain_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.swapchain arg__swapchain;
Ctypes.setf generated__x__ Fields.image_index arg__image_index;
Ctypes.addr generated__x__
end
let bind_image_memory_swapchain_info_khx = Bind_image_memory_swapchain_info_khx.t
type bind_image_memory_swapchain_info_khx = Bind_image_memory_swapchain_info_khx.t
module Sparse_memory_bind_flags = struct
include Bitset.Make()
let metadata = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem metadata set then
Printer.fprintf ppf "metadata;@ "
else ();
Printer.fprintf ppf "}@]"
end
type sparse_memory_bind_flags = Sparse_memory_bind_flags.t
let sparse_memory_bind_flags, sparse_memory_bind_flags_opt = Sparse_memory_bind_flags.(view, view_opt)
let sparse_memory_bind_flag_bits = Sparse_memory_bind_flags.index_view
let sparse_memory_bind_flag_bits_opt = Sparse_memory_bind_flags.index_view_opt
module Sparse_memory_bind = struct type t type sparse_memory_bind = t
let t: t structure typ = structure "sparse_memory_bind"
module Fields=struct
let resource_offset = field t "resource_offset" device_size
let size = field t "size" device_size
let memory = field t "memory" device_memory_opt
let memory_offset = field t "memory_offset" device_size
let flags = field t "flags" sparse_memory_bind_flags_opt
end
let resource_offset record = Ctypes.getf record Fields.resource_offset
let size record = Ctypes.getf record Fields.size
let memory record = Ctypes.getf record Fields.memory
let memory_offset record = Ctypes.getf record Fields.memory_offset
let flags record = Ctypes.getf record Fields.flags
let () = Ctypes.seal t
let make ~resource_offset:arg__resource_offset~size:arg__size
?memory:arg__memory~memory_offset:arg__memory_offset?flags:arg__flags ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.resource_offset arg__resource_offset;
Ctypes.setf generated__x__ Fields.size arg__size;
Ctypes.setf generated__x__ Fields.memory arg__memory;
Ctypes.setf generated__x__ Fields.memory_offset arg__memory_offset;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.addr generated__x__ end
let sparse_memory_bind = Sparse_memory_bind.t
type sparse_memory_bind = Sparse_memory_bind.t
module Sparse_buffer_memory_bind_info = struct type t
type sparse_buffer_memory_bind_info = t
let t: t structure typ = structure "sparse_buffer_memory_bind_info"
module Fields=struct
let buffer = field t "buffer" buffer
let bind_count = field t "bind_count" uint_32_t
let binds = field t "binds" (ptr sparse_memory_bind)
end
let buffer record = Ctypes.getf record Fields.buffer
let binds record = let bind_count = Ctypes.getf record Fields.bind_count and binds = Ctypes.getf record Fields.binds in
Ctypes.CArray.from_ptr (binds) (Uint_32_t.to_int (bind_count))
let () = Ctypes.seal t
let make ~buffer:arg__buffer~binds:arg__binds =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.buffer arg__buffer;
Ctypes.setf generated__x__ Fields.bind_count (Uint_32_t.of_int(Ctypes.CArray.length arg__binds));
Ctypes.setf generated__x__ Fields.binds (Ctypes.CArray.start arg__binds);
Ctypes.addr generated__x__ end
let sparse_buffer_memory_bind_info = Sparse_buffer_memory_bind_info.t
type sparse_buffer_memory_bind_info = Sparse_buffer_memory_bind_info.t
module Sparse_image_opaque_memory_bind_info = struct type t
type sparse_image_opaque_memory_bind_info = t
let t: t structure typ = structure "sparse_image_opaque_memory_bind_info"
module Fields=struct
let image = field t "image" image
let bind_count = field t "bind_count" uint_32_t
let binds = field t "binds" (ptr sparse_memory_bind)
end
let image record = Ctypes.getf record Fields.image
let binds record = let bind_count = Ctypes.getf record Fields.bind_count and binds = Ctypes.getf record Fields.binds in
Ctypes.CArray.from_ptr (binds) (Uint_32_t.to_int (bind_count))
let () = Ctypes.seal t
let make ~image:arg__image~binds:arg__binds =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.image arg__image;
Ctypes.setf generated__x__ Fields.bind_count (Uint_32_t.of_int(Ctypes.CArray.length arg__binds));
Ctypes.setf generated__x__ Fields.binds (Ctypes.CArray.start arg__binds);
Ctypes.addr generated__x__ end
let sparse_image_opaque_memory_bind_info = Sparse_image_opaque_memory_bind_info.t
type sparse_image_opaque_memory_bind_info = Sparse_image_opaque_memory_bind_info.t
module Image_aspect_flags = struct
include Bitset.Make()
let metadata = make_index 3
let stencil = make_index 2
let depth = make_index 1
let color = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem metadata set then
Printer.fprintf ppf "metadata;@ "
else ();
if mem stencil set then
Printer.fprintf ppf "stencil;@ "
else ();
if mem depth set then
Printer.fprintf ppf "depth;@ "
else ();
if mem color set then
Printer.fprintf ppf "color;@ "
else ();
Printer.fprintf ppf "}@]"
end
type image_aspect_flags = Image_aspect_flags.t
let image_aspect_flags, image_aspect_flags_opt = Image_aspect_flags.(view, view_opt)
let image_aspect_flag_bits = Image_aspect_flags.index_view
let image_aspect_flag_bits_opt = Image_aspect_flags.index_view_opt
module Image_subresource = struct type t type image_subresource = t
let t: t structure typ = structure "image_subresource"
module Fields=struct
let aspect_mask = field t "aspect_mask" image_aspect_flags
let mip_level = field t "mip_level" uint_32_t
let array_layer = field t "array_layer" uint_32_t
end
let aspect_mask record = Ctypes.getf record Fields.aspect_mask
let mip_level record = Ctypes.getf record Fields.mip_level
let array_layer record = Ctypes.getf record Fields.array_layer
let () = Ctypes.seal t
let make ~aspect_mask:arg__aspect_mask~mip_level:arg__mip_level
~array_layer:arg__array_layer = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.aspect_mask arg__aspect_mask;
Ctypes.setf generated__x__ Fields.mip_level arg__mip_level;
Ctypes.setf generated__x__ Fields.array_layer arg__array_layer;
Ctypes.addr generated__x__ end
let image_subresource = Image_subresource.t
type image_subresource = Image_subresource.t
module Offset_3d = struct type t type offset_3d = t
let t: t structure typ = structure "offset_3d"
module Fields=struct
let x = field t "x" int_32_t
let y = field t "y" int_32_t
let z = field t "z" int_32_t
end
let x record = Ctypes.getf record Fields.x
let y record = Ctypes.getf record Fields.y
let z record = Ctypes.getf record Fields.z let () = Ctypes.seal t
let make ~x:arg__x~y:arg__y~z:arg__z =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.x arg__x;
Ctypes.setf generated__x__ Fields.y arg__y;
Ctypes.setf generated__x__ Fields.z arg__z; Ctypes.addr generated__x__ end
let offset_3d = Offset_3d.t
type offset_3d = Offset_3d.t
module Extent_3d = struct type t type extent_3d = t
let t: t structure typ = structure "extent_3d"
module Fields=struct
let width = field t "width" uint_32_t
let height = field t "height" uint_32_t
let depth = field t "depth" uint_32_t
end
let width record = Ctypes.getf record Fields.width
let height record = Ctypes.getf record Fields.height
let depth record = Ctypes.getf record Fields.depth let () = Ctypes.seal t
let make ~width:arg__width~height:arg__height~depth:arg__depth =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.width arg__width;
Ctypes.setf generated__x__ Fields.height arg__height;
Ctypes.setf generated__x__ Fields.depth arg__depth;
Ctypes.addr generated__x__ end
let extent_3d = Extent_3d.t
type extent_3d = Extent_3d.t
module Sparse_image_memory_bind = struct type t
type sparse_image_memory_bind = t
let t: t structure typ = structure "sparse_image_memory_bind"
module Fields=struct
let subresource = field t "subresource" image_subresource
let offset = field t "offset" offset_3d
let extent = field t "extent" extent_3d
let memory = field t "memory" device_memory_opt
let memory_offset = field t "memory_offset" device_size
let flags = field t "flags" sparse_memory_bind_flags_opt
end
let subresource record = Ctypes.getf record Fields.subresource
let offset record = Ctypes.getf record Fields.offset
let extent record = Ctypes.getf record Fields.extent
let memory record = Ctypes.getf record Fields.memory
let memory_offset record = Ctypes.getf record Fields.memory_offset
let flags record = Ctypes.getf record Fields.flags let () = Ctypes.seal t
let make ~subresource:arg__subresource~offset:arg__offset
~extent:arg__extent?memory:arg__memory~memory_offset:arg__memory_offset
?flags:arg__flags ()= let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.subresource arg__subresource;
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.setf generated__x__ Fields.extent arg__extent;
Ctypes.setf generated__x__ Fields.memory arg__memory;
Ctypes.setf generated__x__ Fields.memory_offset arg__memory_offset;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.addr generated__x__ end
let sparse_image_memory_bind = Sparse_image_memory_bind.t
type sparse_image_memory_bind = Sparse_image_memory_bind.t
module Sparse_image_memory_bind_info = struct type t
type sparse_image_memory_bind_info = t
let t: t structure typ = structure "sparse_image_memory_bind_info"
module Fields=struct
let image = field t "image" image
let bind_count = field t "bind_count" uint_32_t
let binds = field t "binds" (ptr sparse_image_memory_bind)
end
let image record = Ctypes.getf record Fields.image
let binds record = let bind_count = Ctypes.getf record Fields.bind_count and binds = Ctypes.getf record Fields.binds in
Ctypes.CArray.from_ptr (binds) (Uint_32_t.to_int (bind_count))
let () = Ctypes.seal t
let make ~image:arg__image~binds:arg__binds =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.image arg__image;
Ctypes.setf generated__x__ Fields.bind_count (Uint_32_t.of_int(Ctypes.CArray.length arg__binds));
Ctypes.setf generated__x__ Fields.binds (Ctypes.CArray.start arg__binds);
Ctypes.addr generated__x__ end
let sparse_image_memory_bind_info = Sparse_image_memory_bind_info.t
type sparse_image_memory_bind_info = Sparse_image_memory_bind_info.t
module Bind_sparse_info = struct type t type bind_sparse_info = t
let t: t structure typ = structure "bind_sparse_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let wait_semaphore_count = field t "wait_semaphore_count" uint_32_t_opt
let wait_semaphores = field t "wait_semaphores" (ptr semaphore)
let buffer_bind_count = field t "buffer_bind_count" uint_32_t_opt
let buffer_binds = field t "buffer_binds" (ptr sparse_buffer_memory_bind_info)
let image_opaque_bind_count = field t "image_opaque_bind_count" uint_32_t_opt
let image_opaque_binds = field t "image_opaque_binds" (ptr sparse_image_opaque_memory_bind_info)
let image_bind_count = field t "image_bind_count" uint_32_t_opt
let image_binds = field t "image_binds" (ptr sparse_image_memory_bind_info)
let signal_semaphore_count = field t "signal_semaphore_count" uint_32_t_opt
let signal_semaphores = field t "signal_semaphores" (ptr semaphore)
end
let wait_semaphores record = match Ctypes.getf record Fields.wait_semaphore_count, Ctypes.getf record Fields.wait_semaphores with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let buffer_binds record = match Ctypes.getf record Fields.buffer_bind_count, Ctypes.getf record Fields.buffer_binds with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let image_opaque_binds record = match Ctypes.getf record Fields.image_opaque_bind_count, Ctypes.getf record Fields.image_opaque_binds with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let image_binds record = match Ctypes.getf record Fields.image_bind_count, Ctypes.getf record Fields.image_binds with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let signal_semaphores record = match Ctypes.getf record Fields.signal_semaphore_count, Ctypes.getf record Fields.signal_semaphores with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type bind_sparse_info_extension = ..
type bind_sparse_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
?wait_semaphores:arg__wait_semaphores?buffer_binds:arg__buffer_binds
?image_opaque_binds:arg__image_opaque_binds?image_binds:arg__image_binds
?signal_semaphores:arg__signal_semaphores ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Bind_sparse_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
begin match arg__wait_semaphores with
| None ->
(Ctypes.setf generated__x__ Fields.wait_semaphore_count None;
Ctypes.setf generated__x__ Fields.wait_semaphores (Obj.magic @@ Ctypes.null))
|Some arg__wait_semaphores ->(Ctypes.setf generated__x__ Fields.wait_semaphore_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__wait_semaphores)));
Ctypes.setf generated__x__ Fields.wait_semaphores (Ctypes.CArray.start arg__wait_semaphores))
end;
begin match arg__buffer_binds with
| None ->
(Ctypes.setf generated__x__ Fields.buffer_bind_count None;
Ctypes.setf generated__x__ Fields.buffer_binds (Obj.magic @@ Ctypes.null))
|Some arg__buffer_binds ->(Ctypes.setf generated__x__ Fields.buffer_bind_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__buffer_binds)));
Ctypes.setf generated__x__ Fields.buffer_binds (Ctypes.CArray.start arg__buffer_binds))
end;
begin match arg__image_opaque_binds with
| None ->
(Ctypes.setf generated__x__ Fields.image_opaque_bind_count None;
Ctypes.setf generated__x__ Fields.image_opaque_binds (Obj.magic @@ Ctypes.null))
|Some arg__image_opaque_binds ->(Ctypes.setf generated__x__ Fields.image_opaque_bind_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__image_opaque_binds)));
Ctypes.setf generated__x__ Fields.image_opaque_binds (Ctypes.CArray.start arg__image_opaque_binds))
end;
begin match arg__image_binds with
| None ->
(Ctypes.setf generated__x__ Fields.image_bind_count None;
Ctypes.setf generated__x__ Fields.image_binds (Obj.magic @@ Ctypes.null))
|Some arg__image_binds ->(Ctypes.setf generated__x__ Fields.image_bind_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__image_binds)));
Ctypes.setf generated__x__ Fields.image_binds (Ctypes.CArray.start arg__image_binds))
end;
begin match arg__signal_semaphores with
| None ->
(Ctypes.setf generated__x__ Fields.signal_semaphore_count None;
Ctypes.setf generated__x__ Fields.signal_semaphores (Obj.magic @@ Ctypes.null))
|Some arg__signal_semaphores ->(Ctypes.setf generated__x__ Fields.signal_semaphore_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__signal_semaphores)));
Ctypes.setf generated__x__ Fields.signal_semaphores (Ctypes.CArray.start arg__signal_semaphores))
end;
Ctypes.addr generated__x__
end
let bind_sparse_info = Bind_sparse_info.t
type bind_sparse_info = Bind_sparse_info.t
module Blend_factor = struct
type t = | Zero
| One
| Src_color
| One_minus_src_color
| Dst_color
| One_minus_dst_color
| Src_alpha
| One_minus_src_alpha
| Dst_alpha
| One_minus_dst_alpha
| Constant_color
| One_minus_constant_color
| Constant_alpha
| One_minus_constant_alpha
| Src_alpha_saturate
| Src_1_color
| One_minus_src_1_color
| Src_1_alpha
| One_minus_src_1_alpha
let to_int = function
| Zero -> 0
| One -> 1
| Src_color -> 2
| One_minus_src_color -> 3
| Dst_color -> 4
| One_minus_dst_color -> 5
| Src_alpha -> 6
| One_minus_src_alpha -> 7
| Dst_alpha -> 8
| One_minus_dst_alpha -> 9
| Constant_color -> 10
| One_minus_constant_color -> 11
| Constant_alpha -> 12
| One_minus_constant_alpha -> 13
| Src_alpha_saturate -> 14
| Src_1_color -> 15
| One_minus_src_1_color -> 16
| Src_1_alpha -> 17
| One_minus_src_1_alpha -> 18
let of_int = function
| 0 -> Zero
| 1 -> One
| 2 -> Src_color
| 3 -> One_minus_src_color
| 4 -> Dst_color
| 5 -> One_minus_dst_color
| 6 -> Src_alpha
| 7 -> One_minus_src_alpha
| 8 -> Dst_alpha
| 9 -> One_minus_dst_alpha
| 10 -> Constant_color
| 11 -> One_minus_constant_color
| 12 -> Constant_alpha
| 13 -> One_minus_constant_alpha
| 14 -> Src_alpha_saturate
| 15 -> Src_1_color
| 16 -> One_minus_src_1_color
| 17 -> Src_1_alpha
| 18 -> One_minus_src_1_alpha
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Zero -> "Zero"
| One -> "One"
| Src_color -> "Src_color"
| One_minus_src_color -> "One_minus_src_color"
| Dst_color -> "Dst_color"
| One_minus_dst_color -> "One_minus_dst_color"
| Src_alpha -> "Src_alpha"
| One_minus_src_alpha -> "One_minus_src_alpha"
| Dst_alpha -> "Dst_alpha"
| One_minus_dst_alpha -> "One_minus_dst_alpha"
| Constant_color -> "Constant_color"
| One_minus_constant_color -> "One_minus_constant_color"
| Constant_alpha -> "Constant_alpha"
| One_minus_constant_alpha -> "One_minus_constant_alpha"
| Src_alpha_saturate -> "Src_alpha_saturate"
| Src_1_color -> "Src_1_color"
| One_minus_src_1_color -> "One_minus_src_1_color"
| Src_1_alpha -> "Src_1_alpha"
| One_minus_src_1_alpha -> "One_minus_src_1_alpha")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let blend_factor, blend_factor_opt = Blend_factor.(view,view_opt)
type blend_factor = Blend_factor.t
module Blend_op = struct
type t = | Add
| Subtract
| Reverse_subtract
| Min
| Max
let to_int = function
| Add -> 0
| Subtract -> 1
| Reverse_subtract -> 2
| Min -> 3
| Max -> 4
let of_int = function
| 0 -> Add
| 1 -> Subtract
| 2 -> Reverse_subtract
| 3 -> Min
| 4 -> Max
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Add -> "Add"
| Subtract -> "Subtract"
| Reverse_subtract -> "Reverse_subtract"
| Min -> "Min"
| Max -> "Max")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let blend_op, blend_op_opt = Blend_op.(view,view_opt)
type blend_op = Blend_op.t
module Border_color = struct
type t = | Float_transparent_black
| Int_transparent_black
| Float_opaque_black
| Int_opaque_black
| Float_opaque_white
| Int_opaque_white
let to_int = function
| Float_transparent_black -> 0
| Int_transparent_black -> 1
| Float_opaque_black -> 2
| Int_opaque_black -> 3
| Float_opaque_white -> 4
| Int_opaque_white -> 5
let of_int = function
| 0 -> Float_transparent_black
| 1 -> Int_transparent_black
| 2 -> Float_opaque_black
| 3 -> Int_opaque_black
| 4 -> Float_opaque_white
| 5 -> Int_opaque_white
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Float_transparent_black -> "Float_transparent_black"
| Int_transparent_black -> "Int_transparent_black"
| Float_opaque_black -> "Float_opaque_black"
| Int_opaque_black -> "Int_opaque_black"
| Float_opaque_white -> "Float_opaque_white"
| Int_opaque_white -> "Int_opaque_white")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let border_color, border_color_opt = Border_color.(view,view_opt)
type border_color = Border_color.t
module Buffer_copy = struct type t type buffer_copy = t
let t: t structure typ = structure "buffer_copy"
module Fields=struct
let src_offset = field t "src_offset" device_size
let dst_offset = field t "dst_offset" device_size
let size = field t "size" device_size
end
let src_offset record = Ctypes.getf record Fields.src_offset
let dst_offset record = Ctypes.getf record Fields.dst_offset
let size record = Ctypes.getf record Fields.size let () = Ctypes.seal t
let make ~src_offset:arg__src_offset~dst_offset:arg__dst_offset
~size:arg__size = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.src_offset arg__src_offset;
Ctypes.setf generated__x__ Fields.dst_offset arg__dst_offset;
Ctypes.setf generated__x__ Fields.size arg__size;
Ctypes.addr generated__x__ end
let buffer_copy = Buffer_copy.t
type buffer_copy = Buffer_copy.t
module Buffer_create_flags = struct
include Bitset.Make()
let sparse_aliased = make_index 2
let sparse_residency = make_index 1
let sparse_binding = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem sparse_aliased set then
Printer.fprintf ppf "sparse_aliased;@ "
else ();
if mem sparse_residency set then
Printer.fprintf ppf "sparse_residency;@ "
else ();
if mem sparse_binding set then
Printer.fprintf ppf "sparse_binding;@ "
else ();
Printer.fprintf ppf "}@]"
end
type buffer_create_flags = Buffer_create_flags.t
let buffer_create_flags, buffer_create_flags_opt = Buffer_create_flags.(view, view_opt)
let buffer_create_flag_bits = Buffer_create_flags.index_view
let buffer_create_flag_bits_opt = Buffer_create_flags.index_view_opt
module Buffer_usage_flags = struct
include Bitset.Make()
let indirect_buffer = make_index 8
let vertex_buffer = make_index 7
let index_buffer = make_index 6
let storage_buffer = make_index 5
let uniform_buffer = make_index 4
let storage_texel_buffer = make_index 3
let uniform_texel_buffer = make_index 2
let transfer_dst = make_index 1
let transfer_src = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem indirect_buffer set then
Printer.fprintf ppf "indirect_buffer;@ "
else ();
if mem vertex_buffer set then
Printer.fprintf ppf "vertex_buffer;@ "
else ();
if mem index_buffer set then
Printer.fprintf ppf "index_buffer;@ "
else ();
if mem storage_buffer set then
Printer.fprintf ppf "storage_buffer;@ "
else ();
if mem uniform_buffer set then
Printer.fprintf ppf "uniform_buffer;@ "
else ();
if mem storage_texel_buffer set then
Printer.fprintf ppf "storage_texel_buffer;@ "
else ();
if mem uniform_texel_buffer set then
Printer.fprintf ppf "uniform_texel_buffer;@ "
else ();
if mem transfer_dst set then
Printer.fprintf ppf "transfer_dst;@ "
else ();
if mem transfer_src set then
Printer.fprintf ppf "transfer_src;@ "
else ();
Printer.fprintf ppf "}@]"
end
type buffer_usage_flags = Buffer_usage_flags.t
let buffer_usage_flags, buffer_usage_flags_opt = Buffer_usage_flags.(view, view_opt)
let buffer_usage_flag_bits = Buffer_usage_flags.index_view
let buffer_usage_flag_bits_opt = Buffer_usage_flags.index_view_opt
module Sharing_mode = struct
type t = | Exclusive
| Concurrent
let to_int = function
| Exclusive -> 0
| Concurrent -> 1
let of_int = function
| 0 -> Exclusive
| 1 -> Concurrent
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Exclusive -> "Exclusive"
| Concurrent -> "Concurrent")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let sharing_mode, sharing_mode_opt = Sharing_mode.(view,view_opt)
type sharing_mode = Sharing_mode.t
module Buffer_create_info = struct type t type buffer_create_info = t
let t: t structure typ = structure "buffer_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" buffer_create_flags_opt
let size = field t "size" device_size
let usage = field t "usage" buffer_usage_flags
let sharing_mode = field t "sharing_mode" sharing_mode
let queue_family_index_count = field t "queue_family_index_count" uint_32_t_opt
let queue_family_indices = field t "queue_family_indices" (ptr uint_32_t)
end
let flags record = Ctypes.getf record Fields.flags
let size record = Ctypes.getf record Fields.size
let usage record = Ctypes.getf record Fields.usage
let sharing_mode record = Ctypes.getf record Fields.sharing_mode
let queue_family_indices record = match Ctypes.getf record Fields.queue_family_index_count, Ctypes.getf record Fields.queue_family_indices with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type buffer_create_info_extension = ..
type buffer_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~size:arg__size~usage:arg__usage~sharing_mode:arg__sharing_mode
?queue_family_indices:arg__queue_family_indices ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Buffer_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.size arg__size;
Ctypes.setf generated__x__ Fields.usage arg__usage;
Ctypes.setf generated__x__ Fields.sharing_mode arg__sharing_mode;
begin match arg__queue_family_indices with
| None ->
(Ctypes.setf generated__x__ Fields.queue_family_index_count None;
Ctypes.setf generated__x__ Fields.queue_family_indices (Obj.magic @@ Ctypes.null))
|Some arg__queue_family_indices ->(Ctypes.setf generated__x__ Fields.queue_family_index_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__queue_family_indices)));
Ctypes.setf generated__x__ Fields.queue_family_indices (Ctypes.CArray.start arg__queue_family_indices))
end;
Ctypes.addr generated__x__
end
let buffer_create_info = Buffer_create_info.t
type buffer_create_info = Buffer_create_info.t
module Image_subresource_layers = struct type t
type image_subresource_layers = t
let t: t structure typ = structure "image_subresource_layers"
module Fields=struct
let aspect_mask = field t "aspect_mask" image_aspect_flags
let mip_level = field t "mip_level" uint_32_t
let base_array_layer = field t "base_array_layer" uint_32_t
let layer_count = field t "layer_count" uint_32_t
end
let aspect_mask record = Ctypes.getf record Fields.aspect_mask
let mip_level record = Ctypes.getf record Fields.mip_level
let base_array_layer record = Ctypes.getf record Fields.base_array_layer
let layer_count record = Ctypes.getf record Fields.layer_count
let () = Ctypes.seal t
let make ~aspect_mask:arg__aspect_mask~mip_level:arg__mip_level
~base_array_layer:arg__base_array_layer~layer_count:arg__layer_count =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.aspect_mask arg__aspect_mask;
Ctypes.setf generated__x__ Fields.mip_level arg__mip_level;
Ctypes.setf generated__x__ Fields.base_array_layer arg__base_array_layer;
Ctypes.setf generated__x__ Fields.layer_count arg__layer_count;
Ctypes.addr generated__x__ end
let image_subresource_layers = Image_subresource_layers.t
type image_subresource_layers = Image_subresource_layers.t
module Buffer_image_copy = struct type t type buffer_image_copy = t
let t: t structure typ = structure "buffer_image_copy"
module Fields=struct
let buffer_offset = field t "buffer_offset" device_size
let buffer_row_length = field t "buffer_row_length" uint_32_t
let buffer_image_height = field t "buffer_image_height" uint_32_t
let image_subresource = field t "image_subresource" image_subresource_layers
let image_offset = field t "image_offset" offset_3d
let image_extent = field t "image_extent" extent_3d
end
let buffer_offset record = Ctypes.getf record Fields.buffer_offset
let buffer_row_length record = Ctypes.getf record Fields.buffer_row_length
let buffer_image_height record = Ctypes.getf record Fields.buffer_image_height
let image_subresource record = Ctypes.getf record Fields.image_subresource
let image_offset record = Ctypes.getf record Fields.image_offset
let image_extent record = Ctypes.getf record Fields.image_extent
let () = Ctypes.seal t
let make ~buffer_offset:arg__buffer_offset
~buffer_row_length:arg__buffer_row_length
~buffer_image_height:arg__buffer_image_height
~image_subresource:arg__image_subresource~image_offset:arg__image_offset
~image_extent:arg__image_extent = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.buffer_offset arg__buffer_offset;
Ctypes.setf generated__x__ Fields.buffer_row_length arg__buffer_row_length;
Ctypes.setf generated__x__ Fields.buffer_image_height arg__buffer_image_height;
Ctypes.setf generated__x__ Fields.image_subresource arg__image_subresource;
Ctypes.setf generated__x__ Fields.image_offset arg__image_offset;
Ctypes.setf generated__x__ Fields.image_extent arg__image_extent;
Ctypes.addr generated__x__ end
let buffer_image_copy = Buffer_image_copy.t
type buffer_image_copy = Buffer_image_copy.t
module Buffer_memory_barrier = struct type t type buffer_memory_barrier = t
let t: t structure typ = structure "buffer_memory_barrier"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let src_access_mask = field t "src_access_mask" access_flags_opt
let dst_access_mask = field t "dst_access_mask" access_flags_opt
let src_queue_family_index = field t "src_queue_family_index" uint_32_t
let dst_queue_family_index = field t "dst_queue_family_index" uint_32_t
let buffer = field t "buffer" buffer
let offset = field t "offset" device_size
let size = field t "size" device_size
end
let src_access_mask record = Ctypes.getf record Fields.src_access_mask
let dst_access_mask record = Ctypes.getf record Fields.dst_access_mask
let src_queue_family_index record = Ctypes.getf record Fields.src_queue_family_index
let dst_queue_family_index record = Ctypes.getf record Fields.dst_queue_family_index
let buffer record = Ctypes.getf record Fields.buffer
let offset record = Ctypes.getf record Fields.offset
let size record = Ctypes.getf record Fields.size let () = Ctypes.seal t
exception Unknown_record_extension
type buffer_memory_barrier_extension = ..
type buffer_memory_barrier_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
?src_access_mask:arg__src_access_mask?dst_access_mask:arg__dst_access_mask
~src_queue_family_index:arg__src_queue_family_index
~dst_queue_family_index:arg__dst_queue_family_index~buffer:arg__buffer
~offset:arg__offset~size:arg__size ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Buffer_memory_barrier, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.src_access_mask arg__src_access_mask;
Ctypes.setf generated__x__ Fields.dst_access_mask arg__dst_access_mask;
Ctypes.setf generated__x__ Fields.src_queue_family_index arg__src_queue_family_index;
Ctypes.setf generated__x__ Fields.dst_queue_family_index arg__dst_queue_family_index;
Ctypes.setf generated__x__ Fields.buffer arg__buffer;
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.setf generated__x__ Fields.size arg__size; Ctypes.addr generated__x__
end
let buffer_memory_barrier = Buffer_memory_barrier.t
type buffer_memory_barrier = Buffer_memory_barrier.t
module Buffer_view = Handle.Make()
type buffer_view = Buffer_view.t
let buffer_view, buffer_view_opt = Buffer_view.(view,view_opt)
module Buffer_view_create_flags = Bitset.Make()
type buffer_view_create_flags = Buffer_view_create_flags.t
let buffer_view_create_flags, buffer_view_create_flags_opt = Buffer_view_create_flags.(view, view_opt)
let buffer_view_create_flag_bits = Buffer_view_create_flags.index_view
let buffer_view_create_flag_bits_opt = Buffer_view_create_flags.index_view_opt
module Buffer_view_create_info = struct type t
type buffer_view_create_info = t
let t: t structure typ = structure "buffer_view_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" buffer_view_create_flags_opt
let buffer = field t "buffer" buffer
let format = field t "format" format
let offset = field t "offset" device_size
let range = field t "range" device_size
end
let flags record = Ctypes.getf record Fields.flags
let buffer record = Ctypes.getf record Fields.buffer
let format record = Ctypes.getf record Fields.format
let offset record = Ctypes.getf record Fields.offset
let range record = Ctypes.getf record Fields.range let () = Ctypes.seal t
exception Unknown_record_extension
type buffer_view_create_info_extension = ..
type buffer_view_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~buffer:arg__buffer~format:arg__format~offset:arg__offset~range:arg__range
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Buffer_view_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.buffer arg__buffer;
Ctypes.setf generated__x__ Fields.format arg__format;
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.setf generated__x__ Fields.range arg__range;
Ctypes.addr generated__x__
end
let buffer_view_create_info = Buffer_view_create_info.t
type buffer_view_create_info = Buffer_view_create_info.t
module Clear_color_value = struct type t type clear_color_value = t
let t: t union typ = union "clear_color_value"
let float_32 = field t "float_32" (array 4 @@ float)
let int_32 = field t "int_32" (array 4 @@ int_32_t)
let uint_32 = field t "uint_32" (array 4 @@ uint_32_t)
let () = Ctypes.seal t end
let clear_color_value = Clear_color_value.t
type clear_color_value = Clear_color_value.t
module Clear_depth_stencil_value = struct type t
type clear_depth_stencil_value = t
let t: t structure typ = structure "clear_depth_stencil_value"
module Fields=struct
let depth = field t "depth" float
let stencil = field t "stencil" uint_32_t
end
let depth record = Ctypes.getf record Fields.depth
let stencil record = Ctypes.getf record Fields.stencil
let () = Ctypes.seal t
let make ~depth:arg__depth~stencil:arg__stencil =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.depth arg__depth;
Ctypes.setf generated__x__ Fields.stencil arg__stencil;
Ctypes.addr generated__x__ end
let clear_depth_stencil_value = Clear_depth_stencil_value.t
type clear_depth_stencil_value = Clear_depth_stencil_value.t
module Clear_value = struct type t type clear_value = t
let t: t union typ = union "clear_value"
let color = field t "color" clear_color_value
let depth_stencil = field t "depth_stencil" clear_depth_stencil_value
let () = Ctypes.seal t end
let clear_value = Clear_value.t
type clear_value = Clear_value.t
module Clear_attachment = struct type t type clear_attachment = t
let t: t structure typ = structure "clear_attachment"
module Fields=struct
let aspect_mask = field t "aspect_mask" image_aspect_flags
let color_attachment = field t "color_attachment" uint_32_t
let clear_value = field t "clear_value" clear_value
end
let aspect_mask record = Ctypes.getf record Fields.aspect_mask
let color_attachment record = Ctypes.getf record Fields.color_attachment
let clear_value record = Ctypes.getf record Fields.clear_value
let () = Ctypes.seal t
let make ~aspect_mask:arg__aspect_mask
~color_attachment:arg__color_attachment~clear_value:arg__clear_value =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.aspect_mask arg__aspect_mask;
Ctypes.setf generated__x__ Fields.color_attachment arg__color_attachment;
Ctypes.setf generated__x__ Fields.clear_value arg__clear_value;
Ctypes.addr generated__x__ end
let clear_attachment = Clear_attachment.t
type clear_attachment = Clear_attachment.t
module Clear_rect = struct type t type clear_rect = t
let t: t structure typ = structure "clear_rect"
module Fields=struct
let rect = field t "rect" rect_2d
let base_array_layer = field t "base_array_layer" uint_32_t
let layer_count = field t "layer_count" uint_32_t
end
let rect record = Ctypes.getf record Fields.rect
let base_array_layer record = Ctypes.getf record Fields.base_array_layer
let layer_count record = Ctypes.getf record Fields.layer_count
let () = Ctypes.seal t
let make ~rect:arg__rect~base_array_layer:arg__base_array_layer
~layer_count:arg__layer_count = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.rect arg__rect;
Ctypes.setf generated__x__ Fields.base_array_layer arg__base_array_layer;
Ctypes.setf generated__x__ Fields.layer_count arg__layer_count;
Ctypes.addr generated__x__ end
let clear_rect = Clear_rect.t
type clear_rect = Clear_rect.t
module Object_table_nvx = Handle.Make()
type object_table_nvx = Object_table_nvx.t
let object_table_nvx, object_table_nvx_opt = Object_table_nvx.(view,view_opt)
module Indirect_commands_layout_nvx = Handle.Make()
type indirect_commands_layout_nvx = Indirect_commands_layout_nvx.t
let indirect_commands_layout_nvx, indirect_commands_layout_nvx_opt = Indirect_commands_layout_nvx.(view,view_opt)
module Indirect_commands_token_type_nvx = struct
type t = | Indirect_commands_token_pipeline
| Indirect_commands_token_descriptor_set
| Indirect_commands_token_index_buffer
| Indirect_commands_token_vertex_buffer
| Indirect_commands_token_push_constant
| Indirect_commands_token_draw_indexed
| Indirect_commands_token_draw
| Indirect_commands_token_dispatch
let to_int = function
| Indirect_commands_token_pipeline -> 0
| Indirect_commands_token_descriptor_set -> 1
| Indirect_commands_token_index_buffer -> 2
| Indirect_commands_token_vertex_buffer -> 3
| Indirect_commands_token_push_constant -> 4
| Indirect_commands_token_draw_indexed -> 5
| Indirect_commands_token_draw -> 6
| Indirect_commands_token_dispatch -> 7
let of_int = function
| 0 -> Indirect_commands_token_pipeline
| 1 -> Indirect_commands_token_descriptor_set
| 2 -> Indirect_commands_token_index_buffer
| 3 -> Indirect_commands_token_vertex_buffer
| 4 -> Indirect_commands_token_push_constant
| 5 -> Indirect_commands_token_draw_indexed
| 6 -> Indirect_commands_token_draw
| 7 -> Indirect_commands_token_dispatch
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Indirect_commands_token_pipeline -> "Indirect_commands_token_pipeline"
| Indirect_commands_token_descriptor_set -> "Indirect_commands_token_descriptor_set"
| Indirect_commands_token_index_buffer -> "Indirect_commands_token_index_buffer"
| Indirect_commands_token_vertex_buffer -> "Indirect_commands_token_vertex_buffer"
| Indirect_commands_token_push_constant -> "Indirect_commands_token_push_constant"
| Indirect_commands_token_draw_indexed -> "Indirect_commands_token_draw_indexed"
| Indirect_commands_token_draw -> "Indirect_commands_token_draw"
| Indirect_commands_token_dispatch -> "Indirect_commands_token_dispatch")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let indirect_commands_token_type_nvx, indirect_commands_token_type_nvx_opt = Indirect_commands_token_type_nvx.(view,view_opt)
type indirect_commands_token_type_nvx = Indirect_commands_token_type_nvx.t
module Indirect_commands_token_nvx = struct type t
type indirect_commands_token_nvx = t
let t: t structure typ = structure "indirect_commands_token_nvx"
module Fields=struct
let token_type = field t "token_type" indirect_commands_token_type_nvx
let buffer = field t "buffer" buffer
let offset = field t "offset" device_size
end
let token_type record = Ctypes.getf record Fields.token_type
let buffer record = Ctypes.getf record Fields.buffer
let offset record = Ctypes.getf record Fields.offset
let () = Ctypes.seal t
let make ~token_type:arg__token_type~buffer:arg__buffer~offset:arg__offset
= let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.token_type arg__token_type;
Ctypes.setf generated__x__ Fields.buffer arg__buffer;
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.addr generated__x__ end
let indirect_commands_token_nvx = Indirect_commands_token_nvx.t
type indirect_commands_token_nvx = Indirect_commands_token_nvx.t
module Command_buffer = Handle.Make()
type command_buffer = Command_buffer.t
let command_buffer, command_buffer_opt = Command_buffer.(view,view_opt)
module Cmd_process_commands_info_nvx = struct type t
type cmd_process_commands_info_nvx = t
let t: t structure typ = structure "cmd_process_commands_info_nvx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let object_table = field t "object_table" object_table_nvx
let indirect_commands_layout = field t "indirect_commands_layout" indirect_commands_layout_nvx
let indirect_commands_token_count = field t "indirect_commands_token_count" uint_32_t
let indirect_commands_tokens = field t "indirect_commands_tokens" (ptr indirect_commands_token_nvx)
let max_sequences_count = field t "max_sequences_count" uint_32_t
let target_command_buffer = field t "target_command_buffer" command_buffer_opt
let sequences_count_buffer = field t "sequences_count_buffer" buffer_opt
let sequences_count_offset = field t "sequences_count_offset" device_size_opt
let sequences_index_buffer = field t "sequences_index_buffer" buffer_opt
let sequences_index_offset = field t "sequences_index_offset" device_size_opt
end
let object_table record = Ctypes.getf record Fields.object_table
let indirect_commands_layout record = Ctypes.getf record Fields.indirect_commands_layout
let indirect_commands_tokens record = let indirect_commands_token_count = Ctypes.getf record Fields.indirect_commands_token_count and indirect_commands_tokens = Ctypes.getf record Fields.indirect_commands_tokens in
Ctypes.CArray.from_ptr (indirect_commands_tokens) (Uint_32_t.to_int (indirect_commands_token_count))
let max_sequences_count record = Ctypes.getf record Fields.max_sequences_count
let target_command_buffer record = Ctypes.getf record Fields.target_command_buffer
let sequences_count_buffer record = Ctypes.getf record Fields.sequences_count_buffer
let sequences_count_offset record = Ctypes.getf record Fields.sequences_count_offset
let sequences_index_buffer record = Ctypes.getf record Fields.sequences_index_buffer
let sequences_index_offset record = Ctypes.getf record Fields.sequences_index_offset
let () = Ctypes.seal t
exception Unknown_record_extension
type cmd_process_commands_info_nvx_extension = ..
type cmd_process_commands_info_nvx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~object_table:arg__object_table
~indirect_commands_layout:arg__indirect_commands_layout
~indirect_commands_tokens:arg__indirect_commands_tokens
~max_sequences_count:arg__max_sequences_count
?target_command_buffer:arg__target_command_buffer
?sequences_count_buffer:arg__sequences_count_buffer
?sequences_count_offset:arg__sequences_count_offset
?sequences_index_buffer:arg__sequences_index_buffer
?sequences_index_offset:arg__sequences_index_offset ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Cmd_process_commands_info_nvx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.object_table arg__object_table;
Ctypes.setf generated__x__ Fields.indirect_commands_layout arg__indirect_commands_layout;
Ctypes.setf generated__x__ Fields.indirect_commands_token_count (Uint_32_t.of_int(Ctypes.CArray.length arg__indirect_commands_tokens));
Ctypes.setf generated__x__ Fields.indirect_commands_tokens (Ctypes.CArray.start arg__indirect_commands_tokens);
Ctypes.setf generated__x__ Fields.max_sequences_count arg__max_sequences_count;
Ctypes.setf generated__x__ Fields.target_command_buffer arg__target_command_buffer;
Ctypes.setf generated__x__ Fields.sequences_count_buffer arg__sequences_count_buffer;
Ctypes.setf generated__x__ Fields.sequences_count_offset arg__sequences_count_offset;
Ctypes.setf generated__x__ Fields.sequences_index_buffer arg__sequences_index_buffer;
Ctypes.setf generated__x__ Fields.sequences_index_offset arg__sequences_index_offset;
Ctypes.addr generated__x__
end
let cmd_process_commands_info_nvx = Cmd_process_commands_info_nvx.t
type cmd_process_commands_info_nvx = Cmd_process_commands_info_nvx.t
module Cmd_reserve_space_for_commands_info_nvx = struct type t
type cmd_reserve_space_for_commands_info_nvx = t
let t: t structure typ = structure "cmd_reserve_space_for_commands_info_nvx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let object_table = field t "object_table" object_table_nvx
let indirect_commands_layout = field t "indirect_commands_layout" indirect_commands_layout_nvx
let max_sequences_count = field t "max_sequences_count" uint_32_t
end
let object_table record = Ctypes.getf record Fields.object_table
let indirect_commands_layout record = Ctypes.getf record Fields.indirect_commands_layout
let max_sequences_count record = Ctypes.getf record Fields.max_sequences_count
let () = Ctypes.seal t
exception Unknown_record_extension
type cmd_reserve_space_for_commands_info_nvx_extension = ..
type cmd_reserve_space_for_commands_info_nvx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~object_table:arg__object_table
~indirect_commands_layout:arg__indirect_commands_layout
~max_sequences_count:arg__max_sequences_count ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Cmd_reserve_space_for_commands_info_nvx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.object_table arg__object_table;
Ctypes.setf generated__x__ Fields.indirect_commands_layout arg__indirect_commands_layout;
Ctypes.setf generated__x__ Fields.max_sequences_count arg__max_sequences_count;
Ctypes.addr generated__x__
end
let cmd_reserve_space_for_commands_info_nvx = Cmd_reserve_space_for_commands_info_nvx.t
type cmd_reserve_space_for_commands_info_nvx = Cmd_reserve_space_for_commands_info_nvx.t
module Color_component_flags = struct
include Bitset.Make()
let a = make_index 3
let b = make_index 2
let g = make_index 1
let r = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem a set then
Printer.fprintf ppf "a;@ "
else ();
if mem b set then
Printer.fprintf ppf "b;@ "
else ();
if mem g set then
Printer.fprintf ppf "g;@ "
else ();
if mem r set then
Printer.fprintf ppf "r;@ "
else ();
Printer.fprintf ppf "}@]"
end
type color_component_flags = Color_component_flags.t
let color_component_flags, color_component_flags_opt = Color_component_flags.(view, view_opt)
let color_component_flag_bits = Color_component_flags.index_view
let color_component_flag_bits_opt = Color_component_flags.index_view_opt
module Color_space_khr = struct
type t = | Srgb_nonlinear
| Display_p_3_nonlinear_ext
| Extended_srgb_linear_ext
| Dci_p_3_linear_ext
| Dci_p_3_nonlinear_ext
| Bt_709_linear_ext
| Bt_709_nonlinear_ext
| Bt_2020_linear_ext
| Hdr_10_st_2084_ext
| Dolbyvision_ext
| Hdr_10_hlg_ext
| Adobergb_linear_ext
| Adobergb_nonlinear_ext
| Pass_through_ext
let to_int = function
| Srgb_nonlinear -> 0
| Display_p_3_nonlinear_ext -> 1000104001
| Extended_srgb_linear_ext -> 1000104002
| Dci_p_3_linear_ext -> 1000104003
| Dci_p_3_nonlinear_ext -> 1000104004
| Bt_709_linear_ext -> 1000104005
| Bt_709_nonlinear_ext -> 1000104006
| Bt_2020_linear_ext -> 1000104007
| Hdr_10_st_2084_ext -> 1000104008
| Dolbyvision_ext -> 1000104009
| Hdr_10_hlg_ext -> 1000104010
| Adobergb_linear_ext -> 1000104011
| Adobergb_nonlinear_ext -> 1000104012
| Pass_through_ext -> 1000104013
let of_int = function
| 0 -> Srgb_nonlinear
| 1000104001 -> Display_p_3_nonlinear_ext
| 1000104002 -> Extended_srgb_linear_ext
| 1000104003 -> Dci_p_3_linear_ext
| 1000104004 -> Dci_p_3_nonlinear_ext
| 1000104005 -> Bt_709_linear_ext
| 1000104006 -> Bt_709_nonlinear_ext
| 1000104007 -> Bt_2020_linear_ext
| 1000104008 -> Hdr_10_st_2084_ext
| 1000104009 -> Dolbyvision_ext
| 1000104010 -> Hdr_10_hlg_ext
| 1000104011 -> Adobergb_linear_ext
| 1000104012 -> Adobergb_nonlinear_ext
| 1000104013 -> Pass_through_ext
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Srgb_nonlinear -> "Srgb_nonlinear"
| Display_p_3_nonlinear_ext -> "Display_p_3_nonlinear_ext"
| Extended_srgb_linear_ext -> "Extended_srgb_linear_ext"
| Dci_p_3_linear_ext -> "Dci_p_3_linear_ext"
| Dci_p_3_nonlinear_ext -> "Dci_p_3_nonlinear_ext"
| Bt_709_linear_ext -> "Bt_709_linear_ext"
| Bt_709_nonlinear_ext -> "Bt_709_nonlinear_ext"
| Bt_2020_linear_ext -> "Bt_2020_linear_ext"
| Hdr_10_st_2084_ext -> "Hdr_10_st_2084_ext"
| Dolbyvision_ext -> "Dolbyvision_ext"
| Hdr_10_hlg_ext -> "Hdr_10_hlg_ext"
| Adobergb_linear_ext -> "Adobergb_linear_ext"
| Adobergb_nonlinear_ext -> "Adobergb_nonlinear_ext"
| Pass_through_ext -> "Pass_through_ext")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let color_space_khr, color_space_khr_opt = Color_space_khr.(view,view_opt)
type color_space_khr = Color_space_khr.t
module Command_pool = Handle.Make()
type command_pool = Command_pool.t
let command_pool, command_pool_opt = Command_pool.(view,view_opt)
module Command_buffer_level = struct
type t = | Primary
| Secondary
let to_int = function
| Primary -> 0
| Secondary -> 1
let of_int = function
| 0 -> Primary
| 1 -> Secondary
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Primary -> "Primary"
| Secondary -> "Secondary")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let command_buffer_level, command_buffer_level_opt = Command_buffer_level.(view,view_opt)
type command_buffer_level = Command_buffer_level.t
module Command_buffer_allocate_info = struct type t
type command_buffer_allocate_info = t
let t: t structure typ = structure "command_buffer_allocate_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let command_pool = field t "command_pool" command_pool
let level = field t "level" command_buffer_level
let command_buffer_count = field t "command_buffer_count" uint_32_t
end
let command_pool record = Ctypes.getf record Fields.command_pool
let level record = Ctypes.getf record Fields.level
let command_buffer_count record = Ctypes.getf record Fields.command_buffer_count
let () = Ctypes.seal t
exception Unknown_record_extension
type command_buffer_allocate_info_extension = ..
type command_buffer_allocate_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~command_pool:arg__command_pool
~level:arg__level~command_buffer_count:arg__command_buffer_count ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Command_buffer_allocate_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.command_pool arg__command_pool;
Ctypes.setf generated__x__ Fields.level arg__level;
Ctypes.setf generated__x__ Fields.command_buffer_count arg__command_buffer_count;
Ctypes.addr generated__x__
end
let command_buffer_allocate_info = Command_buffer_allocate_info.t
type command_buffer_allocate_info = Command_buffer_allocate_info.t
module Command_buffer_usage_flags = struct
include Bitset.Make()
let simultaneous_use = make_index 2
let render_pass_continue = make_index 1
let one_time_submit = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem simultaneous_use set then
Printer.fprintf ppf "simultaneous_use;@ "
else ();
if mem render_pass_continue set then
Printer.fprintf ppf "render_pass_continue;@ "
else ();
if mem one_time_submit set then
Printer.fprintf ppf "one_time_submit;@ "
else ();
Printer.fprintf ppf "}@]"
end
type command_buffer_usage_flags = Command_buffer_usage_flags.t
let command_buffer_usage_flags, command_buffer_usage_flags_opt = Command_buffer_usage_flags.(view, view_opt)
let command_buffer_usage_flag_bits = Command_buffer_usage_flags.index_view
let command_buffer_usage_flag_bits_opt = Command_buffer_usage_flags.index_view_opt
module Render_pass = Handle.Make()
type render_pass = Render_pass.t
let render_pass, render_pass_opt = Render_pass.(view,view_opt)
module Framebuffer = Handle.Make()
type framebuffer = Framebuffer.t
let framebuffer, framebuffer_opt = Framebuffer.(view,view_opt)
module Query_control_flags = struct
include Bitset.Make()
let precise = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem precise set then
Printer.fprintf ppf "precise;@ "
else ();
Printer.fprintf ppf "}@]"
end
type query_control_flags = Query_control_flags.t
let query_control_flags, query_control_flags_opt = Query_control_flags.(view, view_opt)
let query_control_flag_bits = Query_control_flags.index_view
let query_control_flag_bits_opt = Query_control_flags.index_view_opt
module Query_pipeline_statistic_flags = struct
include Bitset.Make()
let compute_shader_invocations = make_index 10
let tessellation_evaluation_shader_invocations = make_index 9
let tessellation_control_shader_patches = make_index 8
let fragment_shader_invocations = make_index 7
let clipping_primitives = make_index 6
let clipping_invocations = make_index 5
let geometry_shader_primitives = make_index 4
let geometry_shader_invocations = make_index 3
let vertex_shader_invocations = make_index 2
let input_assembly_primitives = make_index 1
let input_assembly_vertices = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem compute_shader_invocations set then
Printer.fprintf ppf "compute_shader_invocations;@ "
else ();
if mem tessellation_evaluation_shader_invocations set then
Printer.fprintf ppf "tessellation_evaluation_shader_invocations;@ "
else ();
if mem tessellation_control_shader_patches set then
Printer.fprintf ppf "tessellation_control_shader_patches;@ "
else ();
if mem fragment_shader_invocations set then
Printer.fprintf ppf "fragment_shader_invocations;@ "
else ();
if mem clipping_primitives set then
Printer.fprintf ppf "clipping_primitives;@ "
else ();
if mem clipping_invocations set then
Printer.fprintf ppf "clipping_invocations;@ "
else ();
if mem geometry_shader_primitives set then
Printer.fprintf ppf "geometry_shader_primitives;@ "
else ();
if mem geometry_shader_invocations set then
Printer.fprintf ppf "geometry_shader_invocations;@ "
else ();
if mem vertex_shader_invocations set then
Printer.fprintf ppf "vertex_shader_invocations;@ "
else ();
if mem input_assembly_primitives set then
Printer.fprintf ppf "input_assembly_primitives;@ "
else ();
if mem input_assembly_vertices set then
Printer.fprintf ppf "input_assembly_vertices;@ "
else ();
Printer.fprintf ppf "}@]"
end
type query_pipeline_statistic_flags = Query_pipeline_statistic_flags.t
let query_pipeline_statistic_flags, query_pipeline_statistic_flags_opt = Query_pipeline_statistic_flags.(view, view_opt)
let query_pipeline_statistic_flag_bits = Query_pipeline_statistic_flags.index_view
let query_pipeline_statistic_flag_bits_opt = Query_pipeline_statistic_flags.index_view_opt
module Command_buffer_inheritance_info = struct type t
type command_buffer_inheritance_info = t
let t: t structure typ = structure "command_buffer_inheritance_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let render_pass = field t "render_pass" render_pass_opt
let subpass = field t "subpass" uint_32_t
let framebuffer = field t "framebuffer" framebuffer_opt
let occlusion_query_enable = field t "occlusion_query_enable" bool_32
let query_flags = field t "query_flags" query_control_flags_opt
let pipeline_statistics = field t "pipeline_statistics" query_pipeline_statistic_flags_opt
end
let render_pass record = Ctypes.getf record Fields.render_pass
let subpass record = Ctypes.getf record Fields.subpass
let framebuffer record = Ctypes.getf record Fields.framebuffer
let occlusion_query_enable record = Ctypes.getf record Fields.occlusion_query_enable
let query_flags record = Ctypes.getf record Fields.query_flags
let pipeline_statistics record = Ctypes.getf record Fields.pipeline_statistics
let () = Ctypes.seal t
exception Unknown_record_extension
type command_buffer_inheritance_info_extension = ..
type command_buffer_inheritance_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
?render_pass:arg__render_pass~subpass:arg__subpass
?framebuffer:arg__framebuffer
~occlusion_query_enable:arg__occlusion_query_enable
?query_flags:arg__query_flags
?pipeline_statistics:arg__pipeline_statistics ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Command_buffer_inheritance_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.render_pass arg__render_pass;
Ctypes.setf generated__x__ Fields.subpass arg__subpass;
Ctypes.setf generated__x__ Fields.framebuffer arg__framebuffer;
Ctypes.setf generated__x__ Fields.occlusion_query_enable arg__occlusion_query_enable;
Ctypes.setf generated__x__ Fields.query_flags arg__query_flags;
Ctypes.setf generated__x__ Fields.pipeline_statistics arg__pipeline_statistics;
Ctypes.addr generated__x__
end
let command_buffer_inheritance_info = Command_buffer_inheritance_info.t
type command_buffer_inheritance_info = Command_buffer_inheritance_info.t
module Command_buffer_begin_info = struct type t
type command_buffer_begin_info = t
let t: t structure typ = structure "command_buffer_begin_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" command_buffer_usage_flags_opt
let inheritance_info = field t "inheritance_info" (ptr_opt (command_buffer_inheritance_info))
end
let flags record = Ctypes.getf record Fields.flags
let inheritance_info record = Ctypes.getf record Fields.inheritance_info
let () = Ctypes.seal t
exception Unknown_record_extension
type command_buffer_begin_info_extension = ..
type command_buffer_begin_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
?inheritance_info:arg__inheritance_info ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Command_buffer_begin_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.inheritance_info arg__inheritance_info;
Ctypes.addr generated__x__
end
let command_buffer_begin_info = Command_buffer_begin_info.t
type command_buffer_begin_info = Command_buffer_begin_info.t
module Command_buffer_reset_flags = struct
include Bitset.Make()
let release_resources = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem release_resources set then
Printer.fprintf ppf "release_resources;@ "
else ();
Printer.fprintf ppf "}@]"
end
type command_buffer_reset_flags = Command_buffer_reset_flags.t
let command_buffer_reset_flags, command_buffer_reset_flags_opt = Command_buffer_reset_flags.(view, view_opt)
let command_buffer_reset_flag_bits = Command_buffer_reset_flags.index_view
let command_buffer_reset_flag_bits_opt = Command_buffer_reset_flags.index_view_opt
module Command_pool_create_flags = struct
include Bitset.Make()
let reset_command_buffer = make_index 1
let transient = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem reset_command_buffer set then
Printer.fprintf ppf "reset_command_buffer;@ "
else ();
if mem transient set then
Printer.fprintf ppf "transient;@ "
else ();
Printer.fprintf ppf "}@]"
end
type command_pool_create_flags = Command_pool_create_flags.t
let command_pool_create_flags, command_pool_create_flags_opt = Command_pool_create_flags.(view, view_opt)
let command_pool_create_flag_bits = Command_pool_create_flags.index_view
let command_pool_create_flag_bits_opt = Command_pool_create_flags.index_view_opt
module Command_pool_create_info = struct type t
type command_pool_create_info = t
let t: t structure typ = structure "command_pool_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" command_pool_create_flags_opt
let queue_family_index = field t "queue_family_index" uint_32_t
end
let flags record = Ctypes.getf record Fields.flags
let queue_family_index record = Ctypes.getf record Fields.queue_family_index
let () = Ctypes.seal t
exception Unknown_record_extension
type command_pool_create_info_extension = ..
type command_pool_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~queue_family_index:arg__queue_family_index ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Command_pool_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.queue_family_index arg__queue_family_index;
Ctypes.addr generated__x__
end
let command_pool_create_info = Command_pool_create_info.t
type command_pool_create_info = Command_pool_create_info.t
module Command_pool_reset_flags = struct
include Bitset.Make()
let release_resources = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem release_resources set then
Printer.fprintf ppf "release_resources;@ "
else ();
Printer.fprintf ppf "}@]"
end
type command_pool_reset_flags = Command_pool_reset_flags.t
let command_pool_reset_flags, command_pool_reset_flags_opt = Command_pool_reset_flags.(view, view_opt)
let command_pool_reset_flag_bits = Command_pool_reset_flags.index_view
let command_pool_reset_flag_bits_opt = Command_pool_reset_flags.index_view_opt
module Command_pool_trim_flags_khr = Bitset.Make()
type command_pool_trim_flags_khr = Command_pool_trim_flags_khr.t
let command_pool_trim_flags_khr, command_pool_trim_flags_khr_opt = Command_pool_trim_flags_khr.(view, view_opt)
let command_pool_trim_flag_bits_khr = Command_pool_trim_flags_khr.index_view
let command_pool_trim_flag_bits_khr_opt = Command_pool_trim_flags_khr.index_view_opt
module Compare_op = struct
type t = | Never
| Less
| Equal
| Less_or_equal
| Greater
| Not_equal
| Greater_or_equal
| Always
let to_int = function
| Never -> 0
| Less -> 1
| Equal -> 2
| Less_or_equal -> 3
| Greater -> 4
| Not_equal -> 5
| Greater_or_equal -> 6
| Always -> 7
let of_int = function
| 0 -> Never
| 1 -> Less
| 2 -> Equal
| 3 -> Less_or_equal
| 4 -> Greater
| 5 -> Not_equal
| 6 -> Greater_or_equal
| 7 -> Always
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Never -> "Never"
| Less -> "Less"
| Equal -> "Equal"
| Less_or_equal -> "Less_or_equal"
| Greater -> "Greater"
| Not_equal -> "Not_equal"
| Greater_or_equal -> "Greater_or_equal"
| Always -> "Always")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let compare_op, compare_op_opt = Compare_op.(view,view_opt)
type compare_op = Compare_op.t
module Component_swizzle = struct
type t = | Identity
| Zero
| One
| R
| G
| B
| A
let to_int = function
| Identity -> 0
| Zero -> 1
| One -> 2
| R -> 3
| G -> 4
| B -> 5
| A -> 6
let of_int = function
| 0 -> Identity
| 1 -> Zero
| 2 -> One
| 3 -> R
| 4 -> G
| 5 -> B
| 6 -> A
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Identity -> "Identity"
| Zero -> "Zero"
| One -> "One"
| R -> "R"
| G -> "G"
| B -> "B"
| A -> "A")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let component_swizzle, component_swizzle_opt = Component_swizzle.(view,view_opt)
type component_swizzle = Component_swizzle.t
module Component_mapping = struct type t type component_mapping = t
let t: t structure typ = structure "component_mapping"
module Fields=struct
let r = field t "r" component_swizzle
let g = field t "g" component_swizzle
let b = field t "b" component_swizzle
let a = field t "a" component_swizzle
end
let r record = Ctypes.getf record Fields.r
let g record = Ctypes.getf record Fields.g
let b record = Ctypes.getf record Fields.b
let a record = Ctypes.getf record Fields.a let () = Ctypes.seal t
let make ~r:arg__r~g:arg__g~b:arg__b~a:arg__a =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.r arg__r;
Ctypes.setf generated__x__ Fields.g arg__g;
Ctypes.setf generated__x__ Fields.b arg__b;
Ctypes.setf generated__x__ Fields.a arg__a; Ctypes.addr generated__x__ end
let component_mapping = Component_mapping.t
type component_mapping = Component_mapping.t
module Composite_alpha_flags_khr = struct
include Bitset.Make()
let inherit' = make_index 3
let post_multiplied = make_index 2
let pre_multiplied = make_index 1
let opaque = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem inherit' set then
Printer.fprintf ppf "inherit';@ "
else ();
if mem post_multiplied set then
Printer.fprintf ppf "post_multiplied;@ "
else ();
if mem pre_multiplied set then
Printer.fprintf ppf "pre_multiplied;@ "
else ();
if mem opaque set then
Printer.fprintf ppf "opaque;@ "
else ();
Printer.fprintf ppf "}@]"
end
type composite_alpha_flags_khr = Composite_alpha_flags_khr.t
let composite_alpha_flags_khr, composite_alpha_flags_khr_opt = Composite_alpha_flags_khr.(view, view_opt)
let composite_alpha_flag_bits_khr = Composite_alpha_flags_khr.index_view
let composite_alpha_flag_bits_khr_opt = Composite_alpha_flags_khr.index_view_opt
module Pipeline_create_flags = struct
include Bitset.Make()
let dispatch_base_khx = make_index 4
let view_index_from_device_index_bit_khx = make_index 3
let derivative = make_index 2
let allow_derivatives = make_index 1
let disable_optimization = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem dispatch_base_khx set then
Printer.fprintf ppf "dispatch_base_khx;@ "
else ();
if mem view_index_from_device_index_bit_khx set then
Printer.fprintf ppf "view_index_from_device_index_bit_khx;@ "
else ();
if mem derivative set then
Printer.fprintf ppf "derivative;@ "
else ();
if mem allow_derivatives set then
Printer.fprintf ppf "allow_derivatives;@ "
else ();
if mem disable_optimization set then
Printer.fprintf ppf "disable_optimization;@ "
else ();
Printer.fprintf ppf "}@]"
end
type pipeline_create_flags = Pipeline_create_flags.t
let pipeline_create_flags, pipeline_create_flags_opt = Pipeline_create_flags.(view, view_opt)
let pipeline_create_flag_bits = Pipeline_create_flags.index_view
let pipeline_create_flag_bits_opt = Pipeline_create_flags.index_view_opt
module Pipeline_shader_stage_create_flags = Bitset.Make()
type pipeline_shader_stage_create_flags = Pipeline_shader_stage_create_flags.t
let pipeline_shader_stage_create_flags, pipeline_shader_stage_create_flags_opt = Pipeline_shader_stage_create_flags.(view, view_opt)
let pipeline_shader_stage_create_flag_bits = Pipeline_shader_stage_create_flags.index_view
let pipeline_shader_stage_create_flag_bits_opt = Pipeline_shader_stage_create_flags.index_view_opt
module Shader_stage_flags = struct
include Bitset.Make()
let compute = make_index 5
let fragment = make_index 4
let geometry = make_index 3
let tessellation_evaluation = make_index 2
let tessellation_control = make_index 1
let vertex = make_index 0
let all = of_int 2147483647
let all_graphics = of_int 31
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem compute set then
Printer.fprintf ppf "compute;@ "
else ();
if mem fragment set then
Printer.fprintf ppf "fragment;@ "
else ();
if mem geometry set then
Printer.fprintf ppf "geometry;@ "
else ();
if mem tessellation_evaluation set then
Printer.fprintf ppf "tessellation_evaluation;@ "
else ();
if mem tessellation_control set then
Printer.fprintf ppf "tessellation_control;@ "
else ();
if mem vertex set then
Printer.fprintf ppf "vertex;@ "
else ();
Printer.fprintf ppf "}@]"
end
type shader_stage_flags = Shader_stage_flags.t
let shader_stage_flags, shader_stage_flags_opt = Shader_stage_flags.(view, view_opt)
let shader_stage_flag_bits = Shader_stage_flags.index_view
let shader_stage_flag_bits_opt = Shader_stage_flags.index_view_opt
module Shader_module = Handle.Make()
type shader_module = Shader_module.t
let shader_module, shader_module_opt = Shader_module.(view,view_opt)
module Specialization_map_entry = struct type t
type specialization_map_entry = t
let t: t structure typ = structure "specialization_map_entry"
module Fields=struct
let constant_id = field t "constant_id" uint_32_t
let offset = field t "offset" uint_32_t
let size = field t "size" size_t
end
let constant_id record = Ctypes.getf record Fields.constant_id
let offset record = Ctypes.getf record Fields.offset
let size record = Ctypes.getf record Fields.size let () = Ctypes.seal t
let make ~constant_id:arg__constant_id~offset:arg__offset~size:arg__size
= let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.constant_id arg__constant_id;
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.setf generated__x__ Fields.size arg__size;
Ctypes.addr generated__x__ end
let specialization_map_entry = Specialization_map_entry.t
type specialization_map_entry = Specialization_map_entry.t
module Specialization_info = struct type t type specialization_info = t
let t: t structure typ = structure "specialization_info"
module Fields=struct
let map_entry_count = field t "map_entry_count" uint_32_t_opt
let map_entries = field t "map_entries" (ptr specialization_map_entry)
let data_size = field t "data_size" size_t_opt
let data = field t "data" (ptr void)
end
let map_entries record = match Ctypes.getf record Fields.map_entry_count, Ctypes.getf record Fields.map_entries with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let data record = match Ctypes.getf record Fields.data_size, Ctypes.getf record Fields.data with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Size_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
let make ?map_entries:arg__map_entries?data:arg__data ()=
let generated__x__ = Ctypes.make t in
begin match arg__map_entries with
| None ->
(Ctypes.setf generated__x__ Fields.map_entry_count None;
Ctypes.setf generated__x__ Fields.map_entries (Obj.magic @@ Ctypes.null))
|Some arg__map_entries ->(Ctypes.setf generated__x__ Fields.map_entry_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__map_entries)));
Ctypes.setf generated__x__ Fields.map_entries (Ctypes.CArray.start arg__map_entries))
end;
begin match arg__data with
| None ->
(Ctypes.setf generated__x__ Fields.data_size None;
Ctypes.setf generated__x__ Fields.data (Obj.magic @@ Ctypes.null))
|Some arg__data ->(Ctypes.setf generated__x__ Fields.data_size (Some(Size_t.of_int(Ctypes.CArray.length arg__data)));
Ctypes.setf generated__x__ Fields.data (Ctypes.CArray.start arg__data))
end;
Ctypes.addr generated__x__ end
let specialization_info = Specialization_info.t
type specialization_info = Specialization_info.t
module Pipeline_shader_stage_create_info = struct type t
type pipeline_shader_stage_create_info = t
let t: t structure typ = structure "pipeline_shader_stage_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_shader_stage_create_flags_opt
let stage = field t "stage" shader_stage_flag_bits
let module' = field t "module'" shader_module
let name = field t "name" string
let specialization_info = field t "specialization_info" (ptr_opt (specialization_info))
end
let flags record = Ctypes.getf record Fields.flags
let stage record = Ctypes.getf record Fields.stage
let module' record = Ctypes.getf record Fields.module'
let name record = Ctypes.getf record Fields.name
let specialization_info record = Ctypes.getf record Fields.specialization_info
let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_shader_stage_create_info_extension = ..
type pipeline_shader_stage_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags~stage:arg__stage
~module':arg__module'~name:arg__name
?specialization_info:arg__specialization_info ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_shader_stage_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.stage arg__stage;
Ctypes.setf generated__x__ Fields.module' arg__module';
Ctypes.setf generated__x__ Fields.name arg__name;
Ctypes.setf generated__x__ Fields.specialization_info arg__specialization_info;
Ctypes.addr generated__x__
end
let pipeline_shader_stage_create_info = Pipeline_shader_stage_create_info.t
type pipeline_shader_stage_create_info = Pipeline_shader_stage_create_info.t
module Pipeline_layout = Handle.Make()
type pipeline_layout = Pipeline_layout.t
let pipeline_layout, pipeline_layout_opt = Pipeline_layout.(view,view_opt)
module Pipeline = Handle.Make()
type pipeline = Pipeline.t
let pipeline, pipeline_opt = Pipeline.(view,view_opt)
module Compute_pipeline_create_info = struct type t
type compute_pipeline_create_info = t
let t: t structure typ = structure "compute_pipeline_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_create_flags_opt
let stage = field t "stage" pipeline_shader_stage_create_info
let layout = field t "layout" pipeline_layout
let base_pipeline_handle = field t "base_pipeline_handle" pipeline_opt
let base_pipeline_index = field t "base_pipeline_index" int_32_t
end
let flags record = Ctypes.getf record Fields.flags
let stage record = Ctypes.getf record Fields.stage
let layout record = Ctypes.getf record Fields.layout
let base_pipeline_handle record = Ctypes.getf record Fields.base_pipeline_handle
let base_pipeline_index record = Ctypes.getf record Fields.base_pipeline_index
let () = Ctypes.seal t
exception Unknown_record_extension
type compute_pipeline_create_info_extension = ..
type compute_pipeline_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags~stage:arg__stage
~layout:arg__layout?base_pipeline_handle:arg__base_pipeline_handle
~base_pipeline_index:arg__base_pipeline_index ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Compute_pipeline_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.stage arg__stage;
Ctypes.setf generated__x__ Fields.layout arg__layout;
Ctypes.setf generated__x__ Fields.base_pipeline_handle arg__base_pipeline_handle;
Ctypes.setf generated__x__ Fields.base_pipeline_index arg__base_pipeline_index;
Ctypes.addr generated__x__
end
let compute_pipeline_create_info = Compute_pipeline_create_info.t
type compute_pipeline_create_info = Compute_pipeline_create_info.t
module Descriptor_set = Handle.Make()
type descriptor_set = Descriptor_set.t
let descriptor_set, descriptor_set_opt = Descriptor_set.(view,view_opt)
module Copy_descriptor_set = struct type t type copy_descriptor_set = t
let t: t structure typ = structure "copy_descriptor_set"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let src_set = field t "src_set" descriptor_set
let src_binding = field t "src_binding" uint_32_t
let src_array_element = field t "src_array_element" uint_32_t
let dst_set = field t "dst_set" descriptor_set
let dst_binding = field t "dst_binding" uint_32_t
let dst_array_element = field t "dst_array_element" uint_32_t
let descriptor_count = field t "descriptor_count" uint_32_t
end
let src_set record = Ctypes.getf record Fields.src_set
let src_binding record = Ctypes.getf record Fields.src_binding
let src_array_element record = Ctypes.getf record Fields.src_array_element
let dst_set record = Ctypes.getf record Fields.dst_set
let dst_binding record = Ctypes.getf record Fields.dst_binding
let dst_array_element record = Ctypes.getf record Fields.dst_array_element
let descriptor_count record = Ctypes.getf record Fields.descriptor_count
let () = Ctypes.seal t
exception Unknown_record_extension
type copy_descriptor_set_extension = ..
type copy_descriptor_set_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~src_set:arg__src_set
~src_binding:arg__src_binding~src_array_element:arg__src_array_element
~dst_set:arg__dst_set~dst_binding:arg__dst_binding
~dst_array_element:arg__dst_array_element
~descriptor_count:arg__descriptor_count ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Copy_descriptor_set, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.src_set arg__src_set;
Ctypes.setf generated__x__ Fields.src_binding arg__src_binding;
Ctypes.setf generated__x__ Fields.src_array_element arg__src_array_element;
Ctypes.setf generated__x__ Fields.dst_set arg__dst_set;
Ctypes.setf generated__x__ Fields.dst_binding arg__dst_binding;
Ctypes.setf generated__x__ Fields.dst_array_element arg__dst_array_element;
Ctypes.setf generated__x__ Fields.descriptor_count arg__descriptor_count;
Ctypes.addr generated__x__
end
let copy_descriptor_set = Copy_descriptor_set.t
type copy_descriptor_set = Copy_descriptor_set.t
module Cull_mode_flags = struct
include Bitset.Make()
let back = make_index 1
let front = make_index 0
let front_and_back = of_int 3
let none = of_int 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem back set then
Printer.fprintf ppf "back;@ "
else ();
if mem front set then
Printer.fprintf ppf "front;@ "
else ();
Printer.fprintf ppf "}@]"
end
type cull_mode_flags = Cull_mode_flags.t
let cull_mode_flags, cull_mode_flags_opt = Cull_mode_flags.(view, view_opt)
let cull_mode_flag_bits = Cull_mode_flags.index_view
let cull_mode_flag_bits_opt = Cull_mode_flags.index_view_opt
module D3d_12_fence_submit_info_khx = struct type t
type d3d_12_fence_submit_info_khx = t
let t: t structure typ = structure "d3d_12_fence_submit_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let wait_semaphore_values_count = field t "wait_semaphore_values_count" uint_32_t_opt
let wait_semaphore_values = field t "wait_semaphore_values" (ptr_opt (uint_64_t))
let signal_semaphore_values_count = field t "signal_semaphore_values_count" uint_32_t_opt
let signal_semaphore_values = field t "signal_semaphore_values" (ptr_opt (uint_64_t))
end
let wait_semaphore_values record = match Ctypes.getf record Fields.wait_semaphore_values_count, Ctypes.getf record Fields.wait_semaphore_values with
| Some n, Some(a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let signal_semaphore_values record = match Ctypes.getf record Fields.signal_semaphore_values_count, Ctypes.getf record Fields.signal_semaphore_values with
| Some n, Some(a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type d3d_12_fence_submit_info_khx_extension = ..
type d3d_12_fence_submit_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
?wait_semaphore_values:arg__wait_semaphore_values
?signal_semaphore_values:arg__signal_semaphore_values ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.D3d_12_fence_submit_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
begin match arg__wait_semaphore_values with
| None ->
(Ctypes.setf generated__x__ Fields.wait_semaphore_values_count None;
Ctypes.setf generated__x__ Fields.wait_semaphore_values (Obj.magic @@ Ctypes.null))
|Some arg__wait_semaphore_values ->(Ctypes.setf generated__x__ Fields.wait_semaphore_values_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__wait_semaphore_values)));
Ctypes.setf generated__x__ Fields.wait_semaphore_values (Some(Ctypes.CArray.start arg__wait_semaphore_values)))
end;
begin match arg__signal_semaphore_values with
| None ->
(Ctypes.setf generated__x__ Fields.signal_semaphore_values_count None;
Ctypes.setf generated__x__ Fields.signal_semaphore_values (Obj.magic @@ Ctypes.null))
|Some arg__signal_semaphore_values ->(Ctypes.setf generated__x__ Fields.signal_semaphore_values_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__signal_semaphore_values)));
Ctypes.setf generated__x__ Fields.signal_semaphore_values (Some(Ctypes.CArray.start arg__signal_semaphore_values)))
end;
Ctypes.addr generated__x__
end
let d3d_12_fence_submit_info_khx = D3d_12_fence_submit_info_khx.t
type d3d_12_fence_submit_info_khx = D3d_12_fence_submit_info_khx.t
module Debug_marker_marker_info_ext = struct type t
type debug_marker_marker_info_ext = t
let t: t structure typ = structure "debug_marker_marker_info_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let marker_name = field t "marker_name" string
let color = field t "color" (ptr_opt (float))
end
let marker_name record = Ctypes.getf record Fields.marker_name
let color record = Ctypes.getf record Fields.color let () = Ctypes.seal t
exception Unknown_record_extension
type debug_marker_marker_info_ext_extension = ..
type debug_marker_marker_info_ext_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~marker_name:arg__marker_name
?color:arg__color ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Debug_marker_marker_info_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.marker_name arg__marker_name;
Ctypes.setf generated__x__ Fields.color arg__color;
Ctypes.addr generated__x__
end
let debug_marker_marker_info_ext = Debug_marker_marker_info_ext.t
type debug_marker_marker_info_ext = Debug_marker_marker_info_ext.t
module Debug_marker_object_name_info_ext = struct type t
type debug_marker_object_name_info_ext = t
let t: t structure typ = structure "debug_marker_object_name_info_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let object_type = field t "object_type" debug_report_object_type_ext
let object' = field t "object'" uint_64_t
let object_name = field t "object_name" string
end
let object_type record = Ctypes.getf record Fields.object_type
let object' record = Ctypes.getf record Fields.object'
let object_name record = Ctypes.getf record Fields.object_name
let () = Ctypes.seal t
exception Unknown_record_extension
type debug_marker_object_name_info_ext_extension = ..
type debug_marker_object_name_info_ext_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~object_type:arg__object_type
~object':arg__object'~object_name:arg__object_name ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Debug_marker_object_name_info_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.object_type arg__object_type;
Ctypes.setf generated__x__ Fields.object' arg__object';
Ctypes.setf generated__x__ Fields.object_name arg__object_name;
Ctypes.addr generated__x__
end
let debug_marker_object_name_info_ext = Debug_marker_object_name_info_ext.t
type debug_marker_object_name_info_ext = Debug_marker_object_name_info_ext.t
module Debug_marker_object_tag_info_ext = struct type t
type debug_marker_object_tag_info_ext = t
let t: t structure typ = structure "debug_marker_object_tag_info_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let object_type = field t "object_type" debug_report_object_type_ext
let object' = field t "object'" uint_64_t
let tag_name = field t "tag_name" uint_64_t
let tag_size = field t "tag_size" size_t
let tag = field t "tag" (ptr void)
end
let object_type record = Ctypes.getf record Fields.object_type
let object' record = Ctypes.getf record Fields.object'
let tag_name record = Ctypes.getf record Fields.tag_name
let tag record = let tag_size = Ctypes.getf record Fields.tag_size and tag = Ctypes.getf record Fields.tag in
Ctypes.CArray.from_ptr (tag) (Size_t.to_int (tag_size))
let () = Ctypes.seal t
exception Unknown_record_extension
type debug_marker_object_tag_info_ext_extension = ..
type debug_marker_object_tag_info_ext_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~object_type:arg__object_type
~object':arg__object'~tag_name:arg__tag_name~tag:arg__tag ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Debug_marker_object_tag_info_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.object_type arg__object_type;
Ctypes.setf generated__x__ Fields.object' arg__object';
Ctypes.setf generated__x__ Fields.tag_name arg__tag_name;
Ctypes.setf generated__x__ Fields.tag_size (Size_t.of_int(Ctypes.CArray.length arg__tag));
Ctypes.setf generated__x__ Fields.tag (Ctypes.CArray.start arg__tag);
Ctypes.addr generated__x__
end
let debug_marker_object_tag_info_ext = Debug_marker_object_tag_info_ext.t
type debug_marker_object_tag_info_ext = Debug_marker_object_tag_info_ext.t
module Debug_report_callback_create_info_ext = struct type t
type debug_report_callback_create_info_ext = t
let t: t structure typ = structure "debug_report_callback_create_info_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" debug_report_flags_ext_opt
let pfn_callback = field t "pfn_callback" debug_report_callback_ext
let user_data = field t "user_data" (ptr_opt (void))
end
let flags record = Ctypes.getf record Fields.flags
let pfn_callback record = Ctypes.getf record Fields.pfn_callback
let user_data record = Ctypes.getf record Fields.user_data
let () = Ctypes.seal t
exception Unknown_record_extension
type debug_report_callback_create_info_ext_extension = ..
type debug_report_callback_create_info_ext_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~pfn_callback:arg__pfn_callback?user_data:arg__user_data ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Debug_report_callback_create_info_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.pfn_callback arg__pfn_callback;
Ctypes.setf generated__x__ Fields.user_data arg__user_data;
Ctypes.addr generated__x__
end
let debug_report_callback_create_info_ext = Debug_report_callback_create_info_ext.t
type debug_report_callback_create_info_ext = Debug_report_callback_create_info_ext.t
module Dedicated_allocation_buffer_create_info_nv = struct type t
type dedicated_allocation_buffer_create_info_nv = t
let t: t structure typ = structure "dedicated_allocation_buffer_create_info_nv"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let dedicated_allocation = field t "dedicated_allocation" bool_32
end
let dedicated_allocation record = Ctypes.getf record Fields.dedicated_allocation
let () = Ctypes.seal t
exception Unknown_record_extension
type dedicated_allocation_buffer_create_info_nv_extension = ..
type dedicated_allocation_buffer_create_info_nv_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~dedicated_allocation:arg__dedicated_allocation ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Dedicated_allocation_buffer_create_info_nv, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.dedicated_allocation arg__dedicated_allocation;
Ctypes.addr generated__x__
end
let dedicated_allocation_buffer_create_info_nv = Dedicated_allocation_buffer_create_info_nv.t
type dedicated_allocation_buffer_create_info_nv = Dedicated_allocation_buffer_create_info_nv.t
module Dedicated_allocation_image_create_info_nv = struct type t
type dedicated_allocation_image_create_info_nv = t
let t: t structure typ = structure "dedicated_allocation_image_create_info_nv"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let dedicated_allocation = field t "dedicated_allocation" bool_32
end
let dedicated_allocation record = Ctypes.getf record Fields.dedicated_allocation
let () = Ctypes.seal t
exception Unknown_record_extension
type dedicated_allocation_image_create_info_nv_extension = ..
type dedicated_allocation_image_create_info_nv_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~dedicated_allocation:arg__dedicated_allocation ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Dedicated_allocation_image_create_info_nv, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.dedicated_allocation arg__dedicated_allocation;
Ctypes.addr generated__x__
end
let dedicated_allocation_image_create_info_nv = Dedicated_allocation_image_create_info_nv.t
type dedicated_allocation_image_create_info_nv = Dedicated_allocation_image_create_info_nv.t
module Dedicated_allocation_memory_allocate_info_nv = struct type t
type dedicated_allocation_memory_allocate_info_nv = t
let t: t structure typ = structure "dedicated_allocation_memory_allocate_info_nv"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let image = field t "image" image_opt
let buffer = field t "buffer" buffer_opt
end
let image record = Ctypes.getf record Fields.image
let buffer record = Ctypes.getf record Fields.buffer
let () = Ctypes.seal t
exception Unknown_record_extension
type dedicated_allocation_memory_allocate_info_nv_extension = ..
type dedicated_allocation_memory_allocate_info_nv_extension +=
| No_extension
let make ?extension:(arg__ext=No_extension)?image:arg__image
?buffer:arg__buffer ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Dedicated_allocation_memory_allocate_info_nv, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.image arg__image;
Ctypes.setf generated__x__ Fields.buffer arg__buffer;
Ctypes.addr generated__x__
end
let dedicated_allocation_memory_allocate_info_nv = Dedicated_allocation_memory_allocate_info_nv.t
type dedicated_allocation_memory_allocate_info_nv = Dedicated_allocation_memory_allocate_info_nv.t
module Dependency_flags = struct
include Bitset.Make()
let device_group_bit_khx = make_index 2
let view_local_bit_khx = make_index 1
let by_region = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem device_group_bit_khx set then
Printer.fprintf ppf "device_group_bit_khx;@ "
else ();
if mem view_local_bit_khx set then
Printer.fprintf ppf "view_local_bit_khx;@ "
else ();
if mem by_region set then
Printer.fprintf ppf "by_region;@ "
else ();
Printer.fprintf ppf "}@]"
end
type dependency_flags = Dependency_flags.t
let dependency_flags, dependency_flags_opt = Dependency_flags.(view, view_opt)
let dependency_flag_bits = Dependency_flags.index_view
let dependency_flag_bits_opt = Dependency_flags.index_view_opt
module Descriptor_buffer_info = struct type t
type descriptor_buffer_info = t
let t: t structure typ = structure "descriptor_buffer_info"
module Fields=struct
let buffer = field t "buffer" buffer
let offset = field t "offset" device_size
let range = field t "range" device_size
end
let buffer record = Ctypes.getf record Fields.buffer
let offset record = Ctypes.getf record Fields.offset
let range record = Ctypes.getf record Fields.range
let () = Ctypes.seal t
let make ~buffer:arg__buffer~offset:arg__offset~range:arg__range =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.buffer arg__buffer;
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.setf generated__x__ Fields.range arg__range;
Ctypes.addr generated__x__ end
let descriptor_buffer_info = Descriptor_buffer_info.t
type descriptor_buffer_info = Descriptor_buffer_info.t
module Sampler = Handle.Make()
type sampler = Sampler.t
let sampler, sampler_opt = Sampler.(view,view_opt)
module Image_view = Handle.Make()
type image_view = Image_view.t
let image_view, image_view_opt = Image_view.(view,view_opt)
module Descriptor_image_info = struct type t type descriptor_image_info = t
let t: t structure typ = structure "descriptor_image_info"
module Fields=struct
let sampler = field t "sampler" sampler
let image_view = field t "image_view" image_view
let image_layout = field t "image_layout" image_layout
end
let sampler record = Ctypes.getf record Fields.sampler
let image_view record = Ctypes.getf record Fields.image_view
let image_layout record = Ctypes.getf record Fields.image_layout
let () = Ctypes.seal t
let make ~sampler:arg__sampler~image_view:arg__image_view
~image_layout:arg__image_layout = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.sampler arg__sampler;
Ctypes.setf generated__x__ Fields.image_view arg__image_view;
Ctypes.setf generated__x__ Fields.image_layout arg__image_layout;
Ctypes.addr generated__x__ end
let descriptor_image_info = Descriptor_image_info.t
type descriptor_image_info = Descriptor_image_info.t
module Descriptor_pool = Handle.Make()
type descriptor_pool = Descriptor_pool.t
let descriptor_pool, descriptor_pool_opt = Descriptor_pool.(view,view_opt)
module Descriptor_pool_create_flags = struct
include Bitset.Make()
let free_descriptor_set = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem free_descriptor_set set then
Printer.fprintf ppf "free_descriptor_set;@ "
else ();
Printer.fprintf ppf "}@]"
end
type descriptor_pool_create_flags = Descriptor_pool_create_flags.t
let descriptor_pool_create_flags, descriptor_pool_create_flags_opt = Descriptor_pool_create_flags.(view, view_opt)
let descriptor_pool_create_flag_bits = Descriptor_pool_create_flags.index_view
let descriptor_pool_create_flag_bits_opt = Descriptor_pool_create_flags.index_view_opt
module Descriptor_type = struct
type t = | Sampler
| Combined_image_sampler
| Sampled_image
| Storage_image
| Uniform_texel_buffer
| Storage_texel_buffer
| Uniform_buffer
| Storage_buffer
| Uniform_buffer_dynamic
| Storage_buffer_dynamic
| Input_attachment
let to_int = function
| Sampler -> 0
| Combined_image_sampler -> 1
| Sampled_image -> 2
| Storage_image -> 3
| Uniform_texel_buffer -> 4
| Storage_texel_buffer -> 5
| Uniform_buffer -> 6
| Storage_buffer -> 7
| Uniform_buffer_dynamic -> 8
| Storage_buffer_dynamic -> 9
| Input_attachment -> 10
let of_int = function
| 0 -> Sampler
| 1 -> Combined_image_sampler
| 2 -> Sampled_image
| 3 -> Storage_image
| 4 -> Uniform_texel_buffer
| 5 -> Storage_texel_buffer
| 6 -> Uniform_buffer
| 7 -> Storage_buffer
| 8 -> Uniform_buffer_dynamic
| 9 -> Storage_buffer_dynamic
| 10 -> Input_attachment
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Sampler -> "Sampler"
| Combined_image_sampler -> "Combined_image_sampler"
| Sampled_image -> "Sampled_image"
| Storage_image -> "Storage_image"
| Uniform_texel_buffer -> "Uniform_texel_buffer"
| Storage_texel_buffer -> "Storage_texel_buffer"
| Uniform_buffer -> "Uniform_buffer"
| Storage_buffer -> "Storage_buffer"
| Uniform_buffer_dynamic -> "Uniform_buffer_dynamic"
| Storage_buffer_dynamic -> "Storage_buffer_dynamic"
| Input_attachment -> "Input_attachment")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let descriptor_type, descriptor_type_opt = Descriptor_type.(view,view_opt)
type descriptor_type = Descriptor_type.t
module Descriptor_pool_size = struct type t type descriptor_pool_size = t
let t: t structure typ = structure "descriptor_pool_size"
module Fields=struct
let typ = field t "typ" descriptor_type
let descriptor_count = field t "descriptor_count" uint_32_t
end
let typ record = Ctypes.getf record Fields.typ
let descriptor_count record = Ctypes.getf record Fields.descriptor_count
let () = Ctypes.seal t
let make ~typ:arg__typ~descriptor_count:arg__descriptor_count =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.typ arg__typ;
Ctypes.setf generated__x__ Fields.descriptor_count arg__descriptor_count;
Ctypes.addr generated__x__ end
let descriptor_pool_size = Descriptor_pool_size.t
type descriptor_pool_size = Descriptor_pool_size.t
module Descriptor_pool_create_info = struct type t
type descriptor_pool_create_info = t
let t: t structure typ = structure "descriptor_pool_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" descriptor_pool_create_flags_opt
let max_sets = field t "max_sets" uint_32_t
let pool_size_count = field t "pool_size_count" uint_32_t
let pool_sizes = field t "pool_sizes" (ptr descriptor_pool_size)
end
let flags record = Ctypes.getf record Fields.flags
let max_sets record = Ctypes.getf record Fields.max_sets
let pool_sizes record = let pool_size_count = Ctypes.getf record Fields.pool_size_count and pool_sizes = Ctypes.getf record Fields.pool_sizes in
Ctypes.CArray.from_ptr (pool_sizes) (Uint_32_t.to_int (pool_size_count))
let () = Ctypes.seal t
exception Unknown_record_extension
type descriptor_pool_create_info_extension = ..
type descriptor_pool_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~max_sets:arg__max_sets~pool_sizes:arg__pool_sizes ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Descriptor_pool_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.max_sets arg__max_sets;
Ctypes.setf generated__x__ Fields.pool_size_count (Uint_32_t.of_int(Ctypes.CArray.length arg__pool_sizes));
Ctypes.setf generated__x__ Fields.pool_sizes (Ctypes.CArray.start arg__pool_sizes);
Ctypes.addr generated__x__
end
let descriptor_pool_create_info = Descriptor_pool_create_info.t
type descriptor_pool_create_info = Descriptor_pool_create_info.t
module Descriptor_pool_reset_flags = Bitset.Make()
type descriptor_pool_reset_flags = Descriptor_pool_reset_flags.t
let descriptor_pool_reset_flags, descriptor_pool_reset_flags_opt = Descriptor_pool_reset_flags.(view, view_opt)
let descriptor_pool_reset_flag_bits = Descriptor_pool_reset_flags.index_view
let descriptor_pool_reset_flag_bits_opt = Descriptor_pool_reset_flags.index_view_opt
module Descriptor_set_layout = Handle.Make()
type descriptor_set_layout = Descriptor_set_layout.t
let descriptor_set_layout, descriptor_set_layout_opt = Descriptor_set_layout.(view,view_opt)
module Descriptor_set_allocate_info = struct type t
type descriptor_set_allocate_info = t
let t: t structure typ = structure "descriptor_set_allocate_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let descriptor_pool = field t "descriptor_pool" descriptor_pool
let descriptor_set_count = field t "descriptor_set_count" uint_32_t
let set_layouts = field t "set_layouts" (ptr descriptor_set_layout)
end
let descriptor_pool record = Ctypes.getf record Fields.descriptor_pool
let set_layouts record = let descriptor_set_count = Ctypes.getf record Fields.descriptor_set_count and set_layouts = Ctypes.getf record Fields.set_layouts in
Ctypes.CArray.from_ptr (set_layouts) (Uint_32_t.to_int (descriptor_set_count))
let () = Ctypes.seal t
exception Unknown_record_extension
type descriptor_set_allocate_info_extension = ..
type descriptor_set_allocate_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~descriptor_pool:arg__descriptor_pool~set_layouts:arg__set_layouts ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Descriptor_set_allocate_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.descriptor_pool arg__descriptor_pool;
Ctypes.setf generated__x__ Fields.descriptor_set_count (Uint_32_t.of_int(Ctypes.CArray.length arg__set_layouts));
Ctypes.setf generated__x__ Fields.set_layouts (Ctypes.CArray.start arg__set_layouts);
Ctypes.addr generated__x__
end
let descriptor_set_allocate_info = Descriptor_set_allocate_info.t
type descriptor_set_allocate_info = Descriptor_set_allocate_info.t
module Descriptor_set_layout_binding = struct type t
type descriptor_set_layout_binding = t
let t: t structure typ = structure "descriptor_set_layout_binding"
module Fields=struct
let binding = field t "binding" uint_32_t
let descriptor_type = field t "descriptor_type" descriptor_type
let descriptor_count = field t "descriptor_count" uint_32_t_opt
let stage_flags = field t "stage_flags" shader_stage_flags
let immutable_samplers = field t "immutable_samplers" (ptr_opt (sampler))
end
let binding record = Ctypes.getf record Fields.binding
let descriptor_type record = Ctypes.getf record Fields.descriptor_type
let descriptor_count record = Ctypes.getf record Fields.descriptor_count
let stage_flags record = Ctypes.getf record Fields.stage_flags
let immutable_samplers record = Ctypes.getf record Fields.immutable_samplers
let () = Ctypes.seal t
let make ~binding:arg__binding~descriptor_type:arg__descriptor_type
?descriptor_count:arg__descriptor_count~stage_flags:arg__stage_flags
?immutable_samplers:arg__immutable_samplers ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.binding arg__binding;
Ctypes.setf generated__x__ Fields.descriptor_type arg__descriptor_type;
Ctypes.setf generated__x__ Fields.descriptor_count arg__descriptor_count;
Ctypes.setf generated__x__ Fields.stage_flags arg__stage_flags;
Ctypes.setf generated__x__ Fields.immutable_samplers arg__immutable_samplers;
Ctypes.addr generated__x__ end
let descriptor_set_layout_binding = Descriptor_set_layout_binding.t
type descriptor_set_layout_binding = Descriptor_set_layout_binding.t
module Descriptor_set_layout_create_flags = struct
include Bitset.Make()
let push_descriptor_bit_khr = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem push_descriptor_bit_khr set then
Printer.fprintf ppf "push_descriptor_bit_khr;@ "
else ();
Printer.fprintf ppf "}@]"
end
type descriptor_set_layout_create_flags = Descriptor_set_layout_create_flags.t
let descriptor_set_layout_create_flags, descriptor_set_layout_create_flags_opt = Descriptor_set_layout_create_flags.(view, view_opt)
let descriptor_set_layout_create_flag_bits = Descriptor_set_layout_create_flags.index_view
let descriptor_set_layout_create_flag_bits_opt = Descriptor_set_layout_create_flags.index_view_opt
module Descriptor_set_layout_create_info = struct type t
type descriptor_set_layout_create_info = t
let t: t structure typ = structure "descriptor_set_layout_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" descriptor_set_layout_create_flags_opt
let binding_count = field t "binding_count" uint_32_t_opt
let bindings = field t "bindings" (ptr descriptor_set_layout_binding)
end
let flags record = Ctypes.getf record Fields.flags
let bindings record = match Ctypes.getf record Fields.binding_count, Ctypes.getf record Fields.bindings with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type descriptor_set_layout_create_info_extension = ..
type descriptor_set_layout_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
?bindings:arg__bindings ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Descriptor_set_layout_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
begin match arg__bindings with
| None ->
(Ctypes.setf generated__x__ Fields.binding_count None;
Ctypes.setf generated__x__ Fields.bindings (Obj.magic @@ Ctypes.null))
|Some arg__bindings ->(Ctypes.setf generated__x__ Fields.binding_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__bindings)));
Ctypes.setf generated__x__ Fields.bindings (Ctypes.CArray.start arg__bindings))
end;
Ctypes.addr generated__x__
end
let descriptor_set_layout_create_info = Descriptor_set_layout_create_info.t
type descriptor_set_layout_create_info = Descriptor_set_layout_create_info.t
module Descriptor_update_template_create_flags_khr = Bitset.Make()
type descriptor_update_template_create_flags_khr = Descriptor_update_template_create_flags_khr.t
let descriptor_update_template_create_flags_khr, descriptor_update_template_create_flags_khr_opt = Descriptor_update_template_create_flags_khr.(view, view_opt)
let descriptor_update_template_create_flag_bits_khr = Descriptor_update_template_create_flags_khr.index_view
let descriptor_update_template_create_flag_bits_khr_opt = Descriptor_update_template_create_flags_khr.index_view_opt
module Descriptor_update_template_entry_khr = struct type t
type descriptor_update_template_entry_khr = t
let t: t structure typ = structure "descriptor_update_template_entry_khr"
module Fields=struct
let dst_binding = field t "dst_binding" uint_32_t
let dst_array_element = field t "dst_array_element" uint_32_t
let descriptor_count = field t "descriptor_count" uint_32_t
let descriptor_type = field t "descriptor_type" descriptor_type
let offset = field t "offset" size_t
let stride = field t "stride" size_t
end
let dst_binding record = Ctypes.getf record Fields.dst_binding
let dst_array_element record = Ctypes.getf record Fields.dst_array_element
let descriptor_count record = Ctypes.getf record Fields.descriptor_count
let descriptor_type record = Ctypes.getf record Fields.descriptor_type
let offset record = Ctypes.getf record Fields.offset
let stride record = Ctypes.getf record Fields.stride
let () = Ctypes.seal t
let make ~dst_binding:arg__dst_binding
~dst_array_element:arg__dst_array_element
~descriptor_count:arg__descriptor_count
~descriptor_type:arg__descriptor_type~offset:arg__offset~stride:arg__stride
= let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.dst_binding arg__dst_binding;
Ctypes.setf generated__x__ Fields.dst_array_element arg__dst_array_element;
Ctypes.setf generated__x__ Fields.descriptor_count arg__descriptor_count;
Ctypes.setf generated__x__ Fields.descriptor_type arg__descriptor_type;
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.setf generated__x__ Fields.stride arg__stride;
Ctypes.addr generated__x__ end
let descriptor_update_template_entry_khr = Descriptor_update_template_entry_khr.t
type descriptor_update_template_entry_khr = Descriptor_update_template_entry_khr.t
module Descriptor_update_template_type_khr = struct
type t = | Descriptor_set
| Push_descriptors
let to_int = function
| Descriptor_set -> 0
| Push_descriptors -> 1
let of_int = function
| 0 -> Descriptor_set
| 1 -> Push_descriptors
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Descriptor_set -> "Descriptor_set"
| Push_descriptors -> "Push_descriptors")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let descriptor_update_template_type_khr, descriptor_update_template_type_khr_opt = Descriptor_update_template_type_khr.(view,view_opt)
type descriptor_update_template_type_khr = Descriptor_update_template_type_khr.t
module Pipeline_bind_point = struct
type t = | Graphics
| Compute
let to_int = function
| Graphics -> 0
| Compute -> 1
let of_int = function
| 0 -> Graphics
| 1 -> Compute
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Graphics -> "Graphics"
| Compute -> "Compute")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let pipeline_bind_point, pipeline_bind_point_opt = Pipeline_bind_point.(view,view_opt)
type pipeline_bind_point = Pipeline_bind_point.t
module Descriptor_update_template_create_info_khr = struct type t
type descriptor_update_template_create_info_khr = t
let t: t structure typ = structure "descriptor_update_template_create_info_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" descriptor_update_template_create_flags_khr_opt
let descriptor_update_entry_count = field t "descriptor_update_entry_count" uint_32_t
let descriptor_update_entries = field t "descriptor_update_entries" (ptr descriptor_update_template_entry_khr)
let template_type = field t "template_type" descriptor_update_template_type_khr
let descriptor_set_layout = field t "descriptor_set_layout" descriptor_set_layout_opt
let pipeline_bind_point = field t "pipeline_bind_point" pipeline_bind_point_opt
let pipeline_layout = field t "pipeline_layout" pipeline_layout_opt
let set = field t "set" uint_32_t_opt
end
let flags record = Ctypes.getf record Fields.flags
let descriptor_update_entries record = let descriptor_update_entry_count = Ctypes.getf record Fields.descriptor_update_entry_count and descriptor_update_entries = Ctypes.getf record Fields.descriptor_update_entries in
Ctypes.CArray.from_ptr (descriptor_update_entries) (Uint_32_t.to_int (descriptor_update_entry_count))
let template_type record = Ctypes.getf record Fields.template_type
let descriptor_set_layout record = Ctypes.getf record Fields.descriptor_set_layout
let pipeline_bind_point record = Ctypes.getf record Fields.pipeline_bind_point
let pipeline_layout record = Ctypes.getf record Fields.pipeline_layout
let set record = Ctypes.getf record Fields.set let () = Ctypes.seal t
exception Unknown_record_extension
type descriptor_update_template_create_info_khr_extension = ..
type descriptor_update_template_create_info_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~descriptor_update_entries:arg__descriptor_update_entries
~template_type:arg__template_type
?descriptor_set_layout:arg__descriptor_set_layout
?pipeline_bind_point:arg__pipeline_bind_point
?pipeline_layout:arg__pipeline_layout?set:arg__set ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Descriptor_update_template_create_info_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.descriptor_update_entry_count (Uint_32_t.of_int(Ctypes.CArray.length arg__descriptor_update_entries));
Ctypes.setf generated__x__ Fields.descriptor_update_entries (Ctypes.CArray.start arg__descriptor_update_entries);
Ctypes.setf generated__x__ Fields.template_type arg__template_type;
Ctypes.setf generated__x__ Fields.descriptor_set_layout arg__descriptor_set_layout;
Ctypes.setf generated__x__ Fields.pipeline_bind_point arg__pipeline_bind_point;
Ctypes.setf generated__x__ Fields.pipeline_layout arg__pipeline_layout;
Ctypes.setf generated__x__ Fields.set arg__set; Ctypes.addr generated__x__
end
let descriptor_update_template_create_info_khr = Descriptor_update_template_create_info_khr.t
type descriptor_update_template_create_info_khr = Descriptor_update_template_create_info_khr.t
module Descriptor_update_template_khr = Handle.Make()
type descriptor_update_template_khr = Descriptor_update_template_khr.t
let descriptor_update_template_khr, descriptor_update_template_khr_opt = Descriptor_update_template_khr.(view,view_opt)
module Device = Handle.Make()
type device = Device.t
let device, device_opt = Device.(view,view_opt)
module Device_create_flags = Bitset.Make()
type device_create_flags = Device_create_flags.t
let device_create_flags, device_create_flags_opt = Device_create_flags.(view, view_opt)
let device_create_flag_bits = Device_create_flags.index_view
let device_create_flag_bits_opt = Device_create_flags.index_view_opt
module Physical_device_multiview_features_khx = struct type t
type physical_device_multiview_features_khx = t
let t: t structure typ = structure "physical_device_multiview_features_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let multiview = field t "multiview" bool_32
let multiview_geometry_shader = field t "multiview_geometry_shader" bool_32
let multiview_tessellation_shader = field t "multiview_tessellation_shader" bool_32
end
let multiview record = Ctypes.getf record Fields.multiview
let multiview_geometry_shader record = Ctypes.getf record Fields.multiview_geometry_shader
let multiview_tessellation_shader record = Ctypes.getf record Fields.multiview_tessellation_shader
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_multiview_features_khx_extension = ..
type physical_device_multiview_features_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~multiview:arg__multiview
~multiview_geometry_shader:arg__multiview_geometry_shader
~multiview_tessellation_shader:arg__multiview_tessellation_shader ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_multiview_features_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.multiview arg__multiview;
Ctypes.setf generated__x__ Fields.multiview_geometry_shader arg__multiview_geometry_shader;
Ctypes.setf generated__x__ Fields.multiview_tessellation_shader arg__multiview_tessellation_shader;
Ctypes.addr generated__x__
end
let physical_device_multiview_features_khx = Physical_device_multiview_features_khx.t
type physical_device_multiview_features_khx = Physical_device_multiview_features_khx.t
module Physical_device = Handle.Make()
type physical_device = Physical_device.t
let physical_device, physical_device_opt = Physical_device.(view,view_opt)
module Device_group_device_create_info_khx = struct type t
type device_group_device_create_info_khx = t
let t: t structure typ = structure "device_group_device_create_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let physical_device_count = field t "physical_device_count" uint_32_t_opt
let physical_devices = field t "physical_devices" (ptr physical_device)
end
let physical_devices record = match Ctypes.getf record Fields.physical_device_count, Ctypes.getf record Fields.physical_devices with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type device_group_device_create_info_khx_extension = ..
type device_group_device_create_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
?physical_devices:arg__physical_devices ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_group_device_create_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
begin match arg__physical_devices with
| None ->
(Ctypes.setf generated__x__ Fields.physical_device_count None;
Ctypes.setf generated__x__ Fields.physical_devices (Obj.magic @@ Ctypes.null))
|Some arg__physical_devices ->(Ctypes.setf generated__x__ Fields.physical_device_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__physical_devices)));
Ctypes.setf generated__x__ Fields.physical_devices (Ctypes.CArray.start arg__physical_devices))
end;
Ctypes.addr generated__x__
end
let device_group_device_create_info_khx = Device_group_device_create_info_khx.t
type device_group_device_create_info_khx = Device_group_device_create_info_khx.t
module Device_queue_create_flags = Bitset.Make()
type device_queue_create_flags = Device_queue_create_flags.t
let device_queue_create_flags, device_queue_create_flags_opt = Device_queue_create_flags.(view, view_opt)
let device_queue_create_flag_bits = Device_queue_create_flags.index_view
let device_queue_create_flag_bits_opt = Device_queue_create_flags.index_view_opt
module Device_queue_create_info = struct type t
type device_queue_create_info = t
let t: t structure typ = structure "device_queue_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" device_queue_create_flags_opt
let queue_family_index = field t "queue_family_index" uint_32_t
let queue_count = field t "queue_count" uint_32_t
let queue_priorities = field t "queue_priorities" (ptr float)
end
let flags record = Ctypes.getf record Fields.flags
let queue_family_index record = Ctypes.getf record Fields.queue_family_index
let queue_priorities record = let queue_count = Ctypes.getf record Fields.queue_count and queue_priorities = Ctypes.getf record Fields.queue_priorities in
Ctypes.CArray.from_ptr (queue_priorities) (Uint_32_t.to_int (queue_count))
let () = Ctypes.seal t
exception Unknown_record_extension
type device_queue_create_info_extension = ..
type device_queue_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~queue_family_index:arg__queue_family_index
~queue_priorities:arg__queue_priorities ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_queue_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.queue_family_index arg__queue_family_index;
Ctypes.setf generated__x__ Fields.queue_count (Uint_32_t.of_int(Ctypes.CArray.length arg__queue_priorities));
Ctypes.setf generated__x__ Fields.queue_priorities (Ctypes.CArray.start arg__queue_priorities);
Ctypes.addr generated__x__
end
let device_queue_create_info = Device_queue_create_info.t
type device_queue_create_info = Device_queue_create_info.t
module Physical_device_features = struct type t
type physical_device_features = t
let t: t structure typ = structure "physical_device_features"
module Fields=struct
let robust_buffer_access = field t "robust_buffer_access" bool_32
let full_draw_index_uint_32 = field t "full_draw_index_uint_32" bool_32
let image_cube_array = field t "image_cube_array" bool_32
let independent_blend = field t "independent_blend" bool_32
let geometry_shader = field t "geometry_shader" bool_32
let tessellation_shader = field t "tessellation_shader" bool_32
let sample_rate_shading = field t "sample_rate_shading" bool_32
let dual_src_blend = field t "dual_src_blend" bool_32
let logic_op = field t "logic_op" bool_32
let multi_draw_indirect = field t "multi_draw_indirect" bool_32
let draw_indirect_first_instance = field t "draw_indirect_first_instance" bool_32
let depth_clamp = field t "depth_clamp" bool_32
let depth_bias_clamp = field t "depth_bias_clamp" bool_32
let fill_mode_non_solid = field t "fill_mode_non_solid" bool_32
let depth_bounds = field t "depth_bounds" bool_32
let wide_lines = field t "wide_lines" bool_32
let large_points = field t "large_points" bool_32
let alpha_to_one = field t "alpha_to_one" bool_32
let multi_viewport = field t "multi_viewport" bool_32
let sampler_anisotropy = field t "sampler_anisotropy" bool_32
let texture_compression_e_t_c_2 = field t "texture_compression_e_t_c_2" bool_32
let texturecompressionastc_ldr = field t "texturecompressionastc_ldr" bool_32
let texture_compression_b_c = field t "texture_compression_b_c" bool_32
let occlusion_query_precise = field t "occlusion_query_precise" bool_32
let pipeline_statistics_query = field t "pipeline_statistics_query" bool_32
let vertex_pipeline_stores_and_atomics = field t "vertex_pipeline_stores_and_atomics" bool_32
let fragment_stores_and_atomics = field t "fragment_stores_and_atomics" bool_32
let shader_tessellation_and_geometry_point_size = field t "shader_tessellation_and_geometry_point_size" bool_32
let shader_image_gather_extended = field t "shader_image_gather_extended" bool_32
let shader_storage_image_extended_formats = field t "shader_storage_image_extended_formats" bool_32
let shader_storage_image_multisample = field t "shader_storage_image_multisample" bool_32
let shader_storage_image_read_without_format = field t "shader_storage_image_read_without_format" bool_32
let shader_storage_image_write_without_format = field t "shader_storage_image_write_without_format" bool_32
let shader_uniform_buffer_array_dynamic_indexing = field t "shader_uniform_buffer_array_dynamic_indexing" bool_32
let shader_sampled_image_array_dynamic_indexing = field t "shader_sampled_image_array_dynamic_indexing" bool_32
let shader_storage_buffer_array_dynamic_indexing = field t "shader_storage_buffer_array_dynamic_indexing" bool_32
let shader_storage_image_array_dynamic_indexing = field t "shader_storage_image_array_dynamic_indexing" bool_32
let shader_clip_distance = field t "shader_clip_distance" bool_32
let shader_cull_distance = field t "shader_cull_distance" bool_32
let shader_float_64 = field t "shader_float_64" bool_32
let shader_int_64 = field t "shader_int_64" bool_32
let shader_int_16 = field t "shader_int_16" bool_32
let shader_resource_residency = field t "shader_resource_residency" bool_32
let shader_resource_min_lod = field t "shader_resource_min_lod" bool_32
let sparse_binding = field t "sparse_binding" bool_32
let sparse_residency_buffer = field t "sparse_residency_buffer" bool_32
let sparse_residency_image_2d = field t "sparse_residency_image_2d" bool_32
let sparse_residency_image_3d = field t "sparse_residency_image_3d" bool_32
let sparse_residency_2_s_a_m_p_l_e_s = field t "sparse_residency_2_s_a_m_p_l_e_s" bool_32
let sparse_residency_4_s_a_m_p_l_e_s = field t "sparse_residency_4_s_a_m_p_l_e_s" bool_32
let sparse_residency_8_s_a_m_p_l_e_s = field t "sparse_residency_8_s_a_m_p_l_e_s" bool_32
let sparse_residency_16_s_a_m_p_l_e_s = field t "sparse_residency_16_s_a_m_p_l_e_s" bool_32
let sparse_residency_aliased = field t "sparse_residency_aliased" bool_32
let variable_multisample_rate = field t "variable_multisample_rate" bool_32
let inherited_queries = field t "inherited_queries" bool_32
end
let robust_buffer_access record = Ctypes.getf record Fields.robust_buffer_access
let full_draw_index_uint_32 record = Ctypes.getf record Fields.full_draw_index_uint_32
let image_cube_array record = Ctypes.getf record Fields.image_cube_array
let independent_blend record = Ctypes.getf record Fields.independent_blend
let geometry_shader record = Ctypes.getf record Fields.geometry_shader
let tessellation_shader record = Ctypes.getf record Fields.tessellation_shader
let sample_rate_shading record = Ctypes.getf record Fields.sample_rate_shading
let dual_src_blend record = Ctypes.getf record Fields.dual_src_blend
let logic_op record = Ctypes.getf record Fields.logic_op
let multi_draw_indirect record = Ctypes.getf record Fields.multi_draw_indirect
let draw_indirect_first_instance record = Ctypes.getf record Fields.draw_indirect_first_instance
let depth_clamp record = Ctypes.getf record Fields.depth_clamp
let depth_bias_clamp record = Ctypes.getf record Fields.depth_bias_clamp
let fill_mode_non_solid record = Ctypes.getf record Fields.fill_mode_non_solid
let depth_bounds record = Ctypes.getf record Fields.depth_bounds
let wide_lines record = Ctypes.getf record Fields.wide_lines
let large_points record = Ctypes.getf record Fields.large_points
let alpha_to_one record = Ctypes.getf record Fields.alpha_to_one
let multi_viewport record = Ctypes.getf record Fields.multi_viewport
let sampler_anisotropy record = Ctypes.getf record Fields.sampler_anisotropy
let texture_compression_e_t_c_2 record = Ctypes.getf record Fields.texture_compression_e_t_c_2
let texturecompressionastc_ldr record = Ctypes.getf record Fields.texturecompressionastc_ldr
let texture_compression_b_c record = Ctypes.getf record Fields.texture_compression_b_c
let occlusion_query_precise record = Ctypes.getf record Fields.occlusion_query_precise
let pipeline_statistics_query record = Ctypes.getf record Fields.pipeline_statistics_query
let vertex_pipeline_stores_and_atomics record = Ctypes.getf record Fields.vertex_pipeline_stores_and_atomics
let fragment_stores_and_atomics record = Ctypes.getf record Fields.fragment_stores_and_atomics
let shader_tessellation_and_geometry_point_size record = Ctypes.getf record Fields.shader_tessellation_and_geometry_point_size
let shader_image_gather_extended record = Ctypes.getf record Fields.shader_image_gather_extended
let shader_storage_image_extended_formats record = Ctypes.getf record Fields.shader_storage_image_extended_formats
let shader_storage_image_multisample record = Ctypes.getf record Fields.shader_storage_image_multisample
let shader_storage_image_read_without_format record = Ctypes.getf record Fields.shader_storage_image_read_without_format
let shader_storage_image_write_without_format record = Ctypes.getf record Fields.shader_storage_image_write_without_format
let shader_uniform_buffer_array_dynamic_indexing record = Ctypes.getf record Fields.shader_uniform_buffer_array_dynamic_indexing
let shader_sampled_image_array_dynamic_indexing record = Ctypes.getf record Fields.shader_sampled_image_array_dynamic_indexing
let shader_storage_buffer_array_dynamic_indexing record = Ctypes.getf record Fields.shader_storage_buffer_array_dynamic_indexing
let shader_storage_image_array_dynamic_indexing record = Ctypes.getf record Fields.shader_storage_image_array_dynamic_indexing
let shader_clip_distance record = Ctypes.getf record Fields.shader_clip_distance
let shader_cull_distance record = Ctypes.getf record Fields.shader_cull_distance
let shader_float_64 record = Ctypes.getf record Fields.shader_float_64
let shader_int_64 record = Ctypes.getf record Fields.shader_int_64
let shader_int_16 record = Ctypes.getf record Fields.shader_int_16
let shader_resource_residency record = Ctypes.getf record Fields.shader_resource_residency
let shader_resource_min_lod record = Ctypes.getf record Fields.shader_resource_min_lod
let sparse_binding record = Ctypes.getf record Fields.sparse_binding
let sparse_residency_buffer record = Ctypes.getf record Fields.sparse_residency_buffer
let sparse_residency_image_2d record = Ctypes.getf record Fields.sparse_residency_image_2d
let sparse_residency_image_3d record = Ctypes.getf record Fields.sparse_residency_image_3d
let sparse_residency_2_s_a_m_p_l_e_s record = Ctypes.getf record Fields.sparse_residency_2_s_a_m_p_l_e_s
let sparse_residency_4_s_a_m_p_l_e_s record = Ctypes.getf record Fields.sparse_residency_4_s_a_m_p_l_e_s
let sparse_residency_8_s_a_m_p_l_e_s record = Ctypes.getf record Fields.sparse_residency_8_s_a_m_p_l_e_s
let sparse_residency_16_s_a_m_p_l_e_s record = Ctypes.getf record Fields.sparse_residency_16_s_a_m_p_l_e_s
let sparse_residency_aliased record = Ctypes.getf record Fields.sparse_residency_aliased
let variable_multisample_rate record = Ctypes.getf record Fields.variable_multisample_rate
let inherited_queries record = Ctypes.getf record Fields.inherited_queries
let () = Ctypes.seal t
let make ~robust_buffer_access:arg__robust_buffer_access
~full_draw_index_uint_32:arg__full_draw_index_uint_32
~image_cube_array:arg__image_cube_array
~independent_blend:arg__independent_blend
~geometry_shader:arg__geometry_shader
~tessellation_shader:arg__tessellation_shader
~sample_rate_shading:arg__sample_rate_shading
~dual_src_blend:arg__dual_src_blend~logic_op:arg__logic_op
~multi_draw_indirect:arg__multi_draw_indirect
~draw_indirect_first_instance:arg__draw_indirect_first_instance
~depth_clamp:arg__depth_clamp~depth_bias_clamp:arg__depth_bias_clamp
~fill_mode_non_solid:arg__fill_mode_non_solid
~depth_bounds:arg__depth_bounds~wide_lines:arg__wide_lines
~large_points:arg__large_points~alpha_to_one:arg__alpha_to_one
~multi_viewport:arg__multi_viewport
~sampler_anisotropy:arg__sampler_anisotropy
~texture_compression_e_t_c_2:arg__texture_compression_e_t_c_2
~texturecompressionastc_ldr:arg__texturecompressionastc_ldr
~texture_compression_b_c:arg__texture_compression_b_c
~occlusion_query_precise:arg__occlusion_query_precise
~pipeline_statistics_query:arg__pipeline_statistics_query
~vertex_pipeline_stores_and_atomics:arg__vertex_pipeline_stores_and_atomics
~fragment_stores_and_atomics:arg__fragment_stores_and_atomics
~shader_tessellation_and_geometry_point_size:arg__shader_tessellation_and_geometry_point_size
~shader_image_gather_extended:arg__shader_image_gather_extended
~shader_storage_image_extended_formats:arg__shader_storage_image_extended_formats
~shader_storage_image_multisample:arg__shader_storage_image_multisample
~shader_storage_image_read_without_format:arg__shader_storage_image_read_without_format
~shader_storage_image_write_without_format:arg__shader_storage_image_write_without_format
~shader_uniform_buffer_array_dynamic_indexing:arg__shader_uniform_buffer_array_dynamic_indexing
~shader_sampled_image_array_dynamic_indexing:arg__shader_sampled_image_array_dynamic_indexing
~shader_storage_buffer_array_dynamic_indexing:arg__shader_storage_buffer_array_dynamic_indexing
~shader_storage_image_array_dynamic_indexing:arg__shader_storage_image_array_dynamic_indexing
~shader_clip_distance:arg__shader_clip_distance
~shader_cull_distance:arg__shader_cull_distance
~shader_float_64:arg__shader_float_64~shader_int_64:arg__shader_int_64
~shader_int_16:arg__shader_int_16
~shader_resource_residency:arg__shader_resource_residency
~shader_resource_min_lod:arg__shader_resource_min_lod
~sparse_binding:arg__sparse_binding
~sparse_residency_buffer:arg__sparse_residency_buffer
~sparse_residency_image_2d:arg__sparse_residency_image_2d
~sparse_residency_image_3d:arg__sparse_residency_image_3d
~sparse_residency_2_s_a_m_p_l_e_s:arg__sparse_residency_2_s_a_m_p_l_e_s
~sparse_residency_4_s_a_m_p_l_e_s:arg__sparse_residency_4_s_a_m_p_l_e_s
~sparse_residency_8_s_a_m_p_l_e_s:arg__sparse_residency_8_s_a_m_p_l_e_s
~sparse_residency_16_s_a_m_p_l_e_s:arg__sparse_residency_16_s_a_m_p_l_e_s
~sparse_residency_aliased:arg__sparse_residency_aliased
~variable_multisample_rate:arg__variable_multisample_rate
~inherited_queries:arg__inherited_queries =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.robust_buffer_access arg__robust_buffer_access;
Ctypes.setf generated__x__ Fields.full_draw_index_uint_32 arg__full_draw_index_uint_32;
Ctypes.setf generated__x__ Fields.image_cube_array arg__image_cube_array;
Ctypes.setf generated__x__ Fields.independent_blend arg__independent_blend;
Ctypes.setf generated__x__ Fields.geometry_shader arg__geometry_shader;
Ctypes.setf generated__x__ Fields.tessellation_shader arg__tessellation_shader;
Ctypes.setf generated__x__ Fields.sample_rate_shading arg__sample_rate_shading;
Ctypes.setf generated__x__ Fields.dual_src_blend arg__dual_src_blend;
Ctypes.setf generated__x__ Fields.logic_op arg__logic_op;
Ctypes.setf generated__x__ Fields.multi_draw_indirect arg__multi_draw_indirect;
Ctypes.setf generated__x__ Fields.draw_indirect_first_instance arg__draw_indirect_first_instance;
Ctypes.setf generated__x__ Fields.depth_clamp arg__depth_clamp;
Ctypes.setf generated__x__ Fields.depth_bias_clamp arg__depth_bias_clamp;
Ctypes.setf generated__x__ Fields.fill_mode_non_solid arg__fill_mode_non_solid;
Ctypes.setf generated__x__ Fields.depth_bounds arg__depth_bounds;
Ctypes.setf generated__x__ Fields.wide_lines arg__wide_lines;
Ctypes.setf generated__x__ Fields.large_points arg__large_points;
Ctypes.setf generated__x__ Fields.alpha_to_one arg__alpha_to_one;
Ctypes.setf generated__x__ Fields.multi_viewport arg__multi_viewport;
Ctypes.setf generated__x__ Fields.sampler_anisotropy arg__sampler_anisotropy;
Ctypes.setf generated__x__ Fields.texture_compression_e_t_c_2 arg__texture_compression_e_t_c_2;
Ctypes.setf generated__x__ Fields.texturecompressionastc_ldr arg__texturecompressionastc_ldr;
Ctypes.setf generated__x__ Fields.texture_compression_b_c arg__texture_compression_b_c;
Ctypes.setf generated__x__ Fields.occlusion_query_precise arg__occlusion_query_precise;
Ctypes.setf generated__x__ Fields.pipeline_statistics_query arg__pipeline_statistics_query;
Ctypes.setf generated__x__ Fields.vertex_pipeline_stores_and_atomics arg__vertex_pipeline_stores_and_atomics;
Ctypes.setf generated__x__ Fields.fragment_stores_and_atomics arg__fragment_stores_and_atomics;
Ctypes.setf generated__x__ Fields.shader_tessellation_and_geometry_point_size arg__shader_tessellation_and_geometry_point_size;
Ctypes.setf generated__x__ Fields.shader_image_gather_extended arg__shader_image_gather_extended;
Ctypes.setf generated__x__ Fields.shader_storage_image_extended_formats arg__shader_storage_image_extended_formats;
Ctypes.setf generated__x__ Fields.shader_storage_image_multisample arg__shader_storage_image_multisample;
Ctypes.setf generated__x__ Fields.shader_storage_image_read_without_format arg__shader_storage_image_read_without_format;
Ctypes.setf generated__x__ Fields.shader_storage_image_write_without_format arg__shader_storage_image_write_without_format;
Ctypes.setf generated__x__ Fields.shader_uniform_buffer_array_dynamic_indexing arg__shader_uniform_buffer_array_dynamic_indexing;
Ctypes.setf generated__x__ Fields.shader_sampled_image_array_dynamic_indexing arg__shader_sampled_image_array_dynamic_indexing;
Ctypes.setf generated__x__ Fields.shader_storage_buffer_array_dynamic_indexing arg__shader_storage_buffer_array_dynamic_indexing;
Ctypes.setf generated__x__ Fields.shader_storage_image_array_dynamic_indexing arg__shader_storage_image_array_dynamic_indexing;
Ctypes.setf generated__x__ Fields.shader_clip_distance arg__shader_clip_distance;
Ctypes.setf generated__x__ Fields.shader_cull_distance arg__shader_cull_distance;
Ctypes.setf generated__x__ Fields.shader_float_64 arg__shader_float_64;
Ctypes.setf generated__x__ Fields.shader_int_64 arg__shader_int_64;
Ctypes.setf generated__x__ Fields.shader_int_16 arg__shader_int_16;
Ctypes.setf generated__x__ Fields.shader_resource_residency arg__shader_resource_residency;
Ctypes.setf generated__x__ Fields.shader_resource_min_lod arg__shader_resource_min_lod;
Ctypes.setf generated__x__ Fields.sparse_binding arg__sparse_binding;
Ctypes.setf generated__x__ Fields.sparse_residency_buffer arg__sparse_residency_buffer;
Ctypes.setf generated__x__ Fields.sparse_residency_image_2d arg__sparse_residency_image_2d;
Ctypes.setf generated__x__ Fields.sparse_residency_image_3d arg__sparse_residency_image_3d;
Ctypes.setf generated__x__ Fields.sparse_residency_2_s_a_m_p_l_e_s arg__sparse_residency_2_s_a_m_p_l_e_s;
Ctypes.setf generated__x__ Fields.sparse_residency_4_s_a_m_p_l_e_s arg__sparse_residency_4_s_a_m_p_l_e_s;
Ctypes.setf generated__x__ Fields.sparse_residency_8_s_a_m_p_l_e_s arg__sparse_residency_8_s_a_m_p_l_e_s;
Ctypes.setf generated__x__ Fields.sparse_residency_16_s_a_m_p_l_e_s arg__sparse_residency_16_s_a_m_p_l_e_s;
Ctypes.setf generated__x__ Fields.sparse_residency_aliased arg__sparse_residency_aliased;
Ctypes.setf generated__x__ Fields.variable_multisample_rate arg__variable_multisample_rate;
Ctypes.setf generated__x__ Fields.inherited_queries arg__inherited_queries;
Ctypes.addr generated__x__ end
let physical_device_features = Physical_device_features.t
type physical_device_features = Physical_device_features.t
module Device_create_info = struct type t type device_create_info = t
let t: t structure typ = structure "device_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" device_create_flags_opt
let queue_create_info_count = field t "queue_create_info_count" uint_32_t
let queue_create_infos = field t "queue_create_infos" (ptr device_queue_create_info)
let enabled_layer_count = field t "enabled_layer_count" uint_32_t_opt
let enabled_layer_names = field t "enabled_layer_names" (ptr (string))
let enabled_extension_count = field t "enabled_extension_count" uint_32_t_opt
let enabled_extension_names = field t "enabled_extension_names" (ptr (string))
let enabled_features = field t "enabled_features" (ptr_opt (physical_device_features))
end
let flags record = Ctypes.getf record Fields.flags
let queue_create_infos record = let queue_create_info_count = Ctypes.getf record Fields.queue_create_info_count and queue_create_infos = Ctypes.getf record Fields.queue_create_infos in
Ctypes.CArray.from_ptr (queue_create_infos) (Uint_32_t.to_int (queue_create_info_count))
let enabled_layer_names record = match Ctypes.getf record Fields.enabled_layer_count, Ctypes.getf record Fields.enabled_layer_names with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let enabled_extension_names record = match Ctypes.getf record Fields.enabled_extension_count, Ctypes.getf record Fields.enabled_extension_names with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let enabled_features record = Ctypes.getf record Fields.enabled_features
let () = Ctypes.seal t
exception Unknown_record_extension
type device_create_info_extension = ..
type device_create_info_extension += | No_extension
| Physical_device_multiview_features_khx of physical_device_multiview_features_khx Ctypes.structure Ctypes.ptr
| Device_group_device_create_info_khx of device_group_device_create_info_khx Ctypes.structure Ctypes.ptr
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~queue_create_infos:arg__queue_create_infos
?enabled_layer_names:arg__enabled_layer_names
?enabled_extension_names:arg__enabled_extension_names
?enabled_features:arg__enabled_features ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_create_info, Ctypes.null
| Physical_device_multiview_features_khx x ->
Structure_type.Physical_device_multiview_features_khx,
Ctypes.( coerce (ptr physical_device_multiview_features_khx) (ptr void) x )
| Device_group_device_create_info_khx x ->
Structure_type.Device_group_device_create_info_khx,
Ctypes.( coerce (ptr device_group_device_create_info_khx) (ptr void) x )
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.queue_create_info_count (Uint_32_t.of_int(Ctypes.CArray.length arg__queue_create_infos));
Ctypes.setf generated__x__ Fields.queue_create_infos (Ctypes.CArray.start arg__queue_create_infos);
begin match arg__enabled_layer_names with
| None ->
(Ctypes.setf generated__x__ Fields.enabled_layer_count None;
Ctypes.setf generated__x__ Fields.enabled_layer_names (Obj.magic @@ Ctypes.null))
|Some arg__enabled_layer_names ->(Ctypes.setf generated__x__ Fields.enabled_layer_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__enabled_layer_names)));
Ctypes.setf generated__x__ Fields.enabled_layer_names (Ctypes.CArray.start arg__enabled_layer_names))
end;
begin match arg__enabled_extension_names with
| None ->
(Ctypes.setf generated__x__ Fields.enabled_extension_count None;
Ctypes.setf generated__x__ Fields.enabled_extension_names (Obj.magic @@ Ctypes.null))
|Some arg__enabled_extension_names ->(Ctypes.setf generated__x__ Fields.enabled_extension_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__enabled_extension_names)));
Ctypes.setf generated__x__ Fields.enabled_extension_names (Ctypes.CArray.start arg__enabled_extension_names))
end;
Ctypes.setf generated__x__ Fields.enabled_features arg__enabled_features;
Ctypes.addr generated__x__
end
let device_create_info = Device_create_info.t
type device_create_info = Device_create_info.t
module Device_event_type_ext = struct
type t = | Display_hotplug
let to_int = function
| Display_hotplug -> 0
let of_int = function
| 0 -> Display_hotplug
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Display_hotplug -> "Display_hotplug")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let device_event_type_ext, device_event_type_ext_opt = Device_event_type_ext.(view,view_opt)
type device_event_type_ext = Device_event_type_ext.t
module Device_event_info_ext = struct type t type device_event_info_ext = t
let t: t structure typ = structure "device_event_info_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let device_event = field t "device_event" device_event_type_ext
end
let device_event record = Ctypes.getf record Fields.device_event
let () = Ctypes.seal t
exception Unknown_record_extension
type device_event_info_ext_extension = ..
type device_event_info_ext_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~device_event:arg__device_event
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_event_info_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.device_event arg__device_event;
Ctypes.addr generated__x__
end
let device_event_info_ext = Device_event_info_ext.t
type device_event_info_ext = Device_event_info_ext.t
module Device_generated_commands_features_nvx = struct type t
type device_generated_commands_features_nvx = t
let t: t structure typ = structure "device_generated_commands_features_nvx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let compute_binding_point_support = field t "compute_binding_point_support" bool_32
end
let compute_binding_point_support record = Ctypes.getf record Fields.compute_binding_point_support
let () = Ctypes.seal t
exception Unknown_record_extension
type device_generated_commands_features_nvx_extension = ..
type device_generated_commands_features_nvx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~compute_binding_point_support:arg__compute_binding_point_support ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_generated_commands_features_nvx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.compute_binding_point_support arg__compute_binding_point_support;
Ctypes.addr generated__x__
end
let device_generated_commands_features_nvx = Device_generated_commands_features_nvx.t
type device_generated_commands_features_nvx = Device_generated_commands_features_nvx.t
module Device_generated_commands_limits_nvx = struct type t
type device_generated_commands_limits_nvx = t
let t: t structure typ = structure "device_generated_commands_limits_nvx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let max_indirect_commands_layout_token_count = field t "max_indirect_commands_layout_token_count" uint_32_t
let max_object_entry_counts = field t "max_object_entry_counts" uint_32_t
let min_sequence_count_buffer_offset_alignment = field t "min_sequence_count_buffer_offset_alignment" uint_32_t
let min_sequence_index_buffer_offset_alignment = field t "min_sequence_index_buffer_offset_alignment" uint_32_t
let min_commands_token_buffer_offset_alignment = field t "min_commands_token_buffer_offset_alignment" uint_32_t
end
let max_indirect_commands_layout_token_count record = Ctypes.getf record Fields.max_indirect_commands_layout_token_count
let max_object_entry_counts record = Ctypes.getf record Fields.max_object_entry_counts
let min_sequence_count_buffer_offset_alignment record = Ctypes.getf record Fields.min_sequence_count_buffer_offset_alignment
let min_sequence_index_buffer_offset_alignment record = Ctypes.getf record Fields.min_sequence_index_buffer_offset_alignment
let min_commands_token_buffer_offset_alignment record = Ctypes.getf record Fields.min_commands_token_buffer_offset_alignment
let () = Ctypes.seal t
exception Unknown_record_extension
type device_generated_commands_limits_nvx_extension = ..
type device_generated_commands_limits_nvx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~max_indirect_commands_layout_token_count:arg__max_indirect_commands_layout_token_count
~max_object_entry_counts:arg__max_object_entry_counts
~min_sequence_count_buffer_offset_alignment:arg__min_sequence_count_buffer_offset_alignment
~min_sequence_index_buffer_offset_alignment:arg__min_sequence_index_buffer_offset_alignment
~min_commands_token_buffer_offset_alignment:arg__min_commands_token_buffer_offset_alignment
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_generated_commands_limits_nvx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.max_indirect_commands_layout_token_count arg__max_indirect_commands_layout_token_count;
Ctypes.setf generated__x__ Fields.max_object_entry_counts arg__max_object_entry_counts;
Ctypes.setf generated__x__ Fields.min_sequence_count_buffer_offset_alignment arg__min_sequence_count_buffer_offset_alignment;
Ctypes.setf generated__x__ Fields.min_sequence_index_buffer_offset_alignment arg__min_sequence_index_buffer_offset_alignment;
Ctypes.setf generated__x__ Fields.min_commands_token_buffer_offset_alignment arg__min_commands_token_buffer_offset_alignment;
Ctypes.addr generated__x__
end
let device_generated_commands_limits_nvx = Device_generated_commands_limits_nvx.t
type device_generated_commands_limits_nvx = Device_generated_commands_limits_nvx.t
module Device_group_bind_sparse_info_khx = struct type t
type device_group_bind_sparse_info_khx = t
let t: t structure typ = structure "device_group_bind_sparse_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let resource_device_index = field t "resource_device_index" uint_32_t
let memory_device_index = field t "memory_device_index" uint_32_t
end
let resource_device_index record = Ctypes.getf record Fields.resource_device_index
let memory_device_index record = Ctypes.getf record Fields.memory_device_index
let () = Ctypes.seal t
exception Unknown_record_extension
type device_group_bind_sparse_info_khx_extension = ..
type device_group_bind_sparse_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~resource_device_index:arg__resource_device_index
~memory_device_index:arg__memory_device_index ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_group_bind_sparse_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.resource_device_index arg__resource_device_index;
Ctypes.setf generated__x__ Fields.memory_device_index arg__memory_device_index;
Ctypes.addr generated__x__
end
let device_group_bind_sparse_info_khx = Device_group_bind_sparse_info_khx.t
type device_group_bind_sparse_info_khx = Device_group_bind_sparse_info_khx.t
module Device_group_command_buffer_begin_info_khx = struct type t
type device_group_command_buffer_begin_info_khx = t
let t: t structure typ = structure "device_group_command_buffer_begin_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let device_mask = field t "device_mask" uint_32_t
end
let device_mask record = Ctypes.getf record Fields.device_mask
let () = Ctypes.seal t
exception Unknown_record_extension
type device_group_command_buffer_begin_info_khx_extension = ..
type device_group_command_buffer_begin_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~device_mask:arg__device_mask ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_group_command_buffer_begin_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.device_mask arg__device_mask;
Ctypes.addr generated__x__
end
let device_group_command_buffer_begin_info_khx = Device_group_command_buffer_begin_info_khx.t
type device_group_command_buffer_begin_info_khx = Device_group_command_buffer_begin_info_khx.t
module Device_group_present_mode_flags_khx = struct
include Bitset.Make()
let local_multi_device = make_index 3
let sum = make_index 2
let remote = make_index 1
let local = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem local_multi_device set then
Printer.fprintf ppf "local_multi_device;@ "
else ();
if mem sum set then
Printer.fprintf ppf "sum;@ "
else ();
if mem remote set then
Printer.fprintf ppf "remote;@ "
else ();
if mem local set then
Printer.fprintf ppf "local;@ "
else ();
Printer.fprintf ppf "}@]"
end
type device_group_present_mode_flags_khx = Device_group_present_mode_flags_khx.t
let device_group_present_mode_flags_khx, device_group_present_mode_flags_khx_opt = Device_group_present_mode_flags_khx.(view, view_opt)
let device_group_present_mode_flag_bits_khx = Device_group_present_mode_flags_khx.index_view
let device_group_present_mode_flag_bits_khx_opt = Device_group_present_mode_flags_khx.index_view_opt
module Device_group_present_capabilities_khx = struct type t
type device_group_present_capabilities_khx = t
let t: t structure typ = structure "device_group_present_capabilities_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let present_mask = field t "present_mask" (array max_device_group_size_khx @@ uint_32_t)
let modes = field t "modes" device_group_present_mode_flags_khx
end
let present_mask record = Ctypes.getf record Fields.present_mask
let modes record = Ctypes.getf record Fields.modes
let () = Ctypes.seal t
exception Unknown_record_extension
type device_group_present_capabilities_khx_extension = ..
type device_group_present_capabilities_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~present_mask:arg__present_mask
~modes:arg__modes ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_group_present_capabilities_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.present_mask arg__present_mask;
Ctypes.setf generated__x__ Fields.modes arg__modes;
Ctypes.addr generated__x__
end
let device_group_present_capabilities_khx = Device_group_present_capabilities_khx.t
type device_group_present_capabilities_khx = Device_group_present_capabilities_khx.t
module Device_group_present_info_khx = struct type t
type device_group_present_info_khx = t
let t: t structure typ = structure "device_group_present_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let swapchain_count = field t "swapchain_count" uint_32_t_opt
let device_masks = field t "device_masks" (ptr uint_32_t)
let mode = field t "mode" device_group_present_mode_flag_bits_khx
end
let device_masks record = match Ctypes.getf record Fields.swapchain_count, Ctypes.getf record Fields.device_masks with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let mode record = Ctypes.getf record Fields.mode
let () = Ctypes.seal t
exception Unknown_record_extension
type device_group_present_info_khx_extension = ..
type device_group_present_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?device_masks:arg__device_masks
~mode:arg__mode ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_group_present_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
begin match arg__device_masks with
| None ->
(Ctypes.setf generated__x__ Fields.swapchain_count None;
Ctypes.setf generated__x__ Fields.device_masks (Obj.magic @@ Ctypes.null))
|Some arg__device_masks ->(Ctypes.setf generated__x__ Fields.swapchain_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__device_masks)));
Ctypes.setf generated__x__ Fields.device_masks (Ctypes.CArray.start arg__device_masks))
end;
Ctypes.setf generated__x__ Fields.mode arg__mode; Ctypes.addr generated__x__
end
let device_group_present_info_khx = Device_group_present_info_khx.t
type device_group_present_info_khx = Device_group_present_info_khx.t
module Device_group_render_pass_begin_info_khx = struct type t
type device_group_render_pass_begin_info_khx = t
let t: t structure typ = structure "device_group_render_pass_begin_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let device_mask = field t "device_mask" uint_32_t
let device_render_area_count = field t "device_render_area_count" uint_32_t_opt
let device_render_areas = field t "device_render_areas" (ptr rect_2d)
end
let device_mask record = Ctypes.getf record Fields.device_mask
let device_render_areas record = match Ctypes.getf record Fields.device_render_area_count, Ctypes.getf record Fields.device_render_areas with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type device_group_render_pass_begin_info_khx_extension = ..
type device_group_render_pass_begin_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~device_mask:arg__device_mask
?device_render_areas:arg__device_render_areas ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_group_render_pass_begin_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.device_mask arg__device_mask;
begin match arg__device_render_areas with
| None ->
(Ctypes.setf generated__x__ Fields.device_render_area_count None;
Ctypes.setf generated__x__ Fields.device_render_areas (Obj.magic @@ Ctypes.null))
|Some arg__device_render_areas ->(Ctypes.setf generated__x__ Fields.device_render_area_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__device_render_areas)));
Ctypes.setf generated__x__ Fields.device_render_areas (Ctypes.CArray.start arg__device_render_areas))
end;
Ctypes.addr generated__x__
end
let device_group_render_pass_begin_info_khx = Device_group_render_pass_begin_info_khx.t
type device_group_render_pass_begin_info_khx = Device_group_render_pass_begin_info_khx.t
module Device_group_submit_info_khx = struct type t
type device_group_submit_info_khx = t
let t: t structure typ = structure "device_group_submit_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let wait_semaphore_count = field t "wait_semaphore_count" uint_32_t_opt
let wait_semaphore_device_indices = field t "wait_semaphore_device_indices" (ptr uint_32_t)
let command_buffer_count = field t "command_buffer_count" uint_32_t_opt
let command_buffer_device_masks = field t "command_buffer_device_masks" (ptr uint_32_t)
let signal_semaphore_count = field t "signal_semaphore_count" uint_32_t_opt
let signal_semaphore_device_indices = field t "signal_semaphore_device_indices" (ptr uint_32_t)
end
let wait_semaphore_device_indices record = match Ctypes.getf record Fields.wait_semaphore_count, Ctypes.getf record Fields.wait_semaphore_device_indices with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let command_buffer_device_masks record = match Ctypes.getf record Fields.command_buffer_count, Ctypes.getf record Fields.command_buffer_device_masks with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let signal_semaphore_device_indices record = match Ctypes.getf record Fields.signal_semaphore_count, Ctypes.getf record Fields.signal_semaphore_device_indices with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type device_group_submit_info_khx_extension = ..
type device_group_submit_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
?wait_semaphore_device_indices:arg__wait_semaphore_device_indices
?command_buffer_device_masks:arg__command_buffer_device_masks
?signal_semaphore_device_indices:arg__signal_semaphore_device_indices ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_group_submit_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
begin match arg__wait_semaphore_device_indices with
| None ->
(Ctypes.setf generated__x__ Fields.wait_semaphore_count None;
Ctypes.setf generated__x__ Fields.wait_semaphore_device_indices (Obj.magic @@ Ctypes.null))
|Some arg__wait_semaphore_device_indices ->(Ctypes.setf generated__x__ Fields.wait_semaphore_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__wait_semaphore_device_indices)));
Ctypes.setf generated__x__ Fields.wait_semaphore_device_indices (Ctypes.CArray.start arg__wait_semaphore_device_indices))
end;
begin match arg__command_buffer_device_masks with
| None ->
(Ctypes.setf generated__x__ Fields.command_buffer_count None;
Ctypes.setf generated__x__ Fields.command_buffer_device_masks (Obj.magic @@ Ctypes.null))
|Some arg__command_buffer_device_masks ->(Ctypes.setf generated__x__ Fields.command_buffer_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__command_buffer_device_masks)));
Ctypes.setf generated__x__ Fields.command_buffer_device_masks (Ctypes.CArray.start arg__command_buffer_device_masks))
end;
begin match arg__signal_semaphore_device_indices with
| None ->
(Ctypes.setf generated__x__ Fields.signal_semaphore_count None;
Ctypes.setf generated__x__ Fields.signal_semaphore_device_indices (Obj.magic @@ Ctypes.null))
|Some arg__signal_semaphore_device_indices ->(Ctypes.setf generated__x__ Fields.signal_semaphore_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__signal_semaphore_device_indices)));
Ctypes.setf generated__x__ Fields.signal_semaphore_device_indices (Ctypes.CArray.start arg__signal_semaphore_device_indices))
end;
Ctypes.addr generated__x__
end
let device_group_submit_info_khx = Device_group_submit_info_khx.t
type device_group_submit_info_khx = Device_group_submit_info_khx.t
module Device_group_swapchain_create_info_khx = struct type t
type device_group_swapchain_create_info_khx = t
let t: t structure typ = structure "device_group_swapchain_create_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let modes = field t "modes" device_group_present_mode_flags_khx
end
let modes record = Ctypes.getf record Fields.modes
let () = Ctypes.seal t
exception Unknown_record_extension
type device_group_swapchain_create_info_khx_extension = ..
type device_group_swapchain_create_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~modes:arg__modes ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Device_group_swapchain_create_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.modes arg__modes;
Ctypes.addr generated__x__
end
let device_group_swapchain_create_info_khx = Device_group_swapchain_create_info_khx.t
type device_group_swapchain_create_info_khx = Device_group_swapchain_create_info_khx.t
module Discard_rectangle_mode_ext = struct
type t = | Inclusive
| Exclusive
let to_int = function
| Inclusive -> 0
| Exclusive -> 1
let of_int = function
| 0 -> Inclusive
| 1 -> Exclusive
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Inclusive -> "Inclusive"
| Exclusive -> "Exclusive")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let discard_rectangle_mode_ext, discard_rectangle_mode_ext_opt = Discard_rectangle_mode_ext.(view,view_opt)
type discard_rectangle_mode_ext = Discard_rectangle_mode_ext.t
module Dispatch_indirect_command = struct type t
type dispatch_indirect_command = t
let t: t structure typ = structure "dispatch_indirect_command"
module Fields=struct
let x = field t "x" uint_32_t
let y = field t "y" uint_32_t
let z = field t "z" uint_32_t
end
let x record = Ctypes.getf record Fields.x
let y record = Ctypes.getf record Fields.y
let z record = Ctypes.getf record Fields.z let () = Ctypes.seal t
let make ~x:arg__x~y:arg__y~z:arg__z =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.x arg__x;
Ctypes.setf generated__x__ Fields.y arg__y;
Ctypes.setf generated__x__ Fields.z arg__z; Ctypes.addr generated__x__ end
let dispatch_indirect_command = Dispatch_indirect_command.t
type dispatch_indirect_command = Dispatch_indirect_command.t
module Display_event_type_ext = struct
type t = | First_pixel_out
let to_int = function
| First_pixel_out -> 0
let of_int = function
| 0 -> First_pixel_out
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| First_pixel_out -> "First_pixel_out")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let display_event_type_ext, display_event_type_ext_opt = Display_event_type_ext.(view,view_opt)
type display_event_type_ext = Display_event_type_ext.t
module Display_event_info_ext = struct type t
type display_event_info_ext = t
let t: t structure typ = structure "display_event_info_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let display_event = field t "display_event" display_event_type_ext
end
let display_event record = Ctypes.getf record Fields.display_event
let () = Ctypes.seal t
exception Unknown_record_extension
type display_event_info_ext_extension = ..
type display_event_info_ext_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~display_event:arg__display_event
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Display_event_info_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.display_event arg__display_event;
Ctypes.addr generated__x__
end
let display_event_info_ext = Display_event_info_ext.t
type display_event_info_ext = Display_event_info_ext.t
module Display_khr = Handle.Make()
type display_khr = Display_khr.t
let display_khr, display_khr_opt = Display_khr.(view,view_opt)
module Display_mode_create_flags_khr = Bitset.Make()
type display_mode_create_flags_khr = Display_mode_create_flags_khr.t
let display_mode_create_flags_khr, display_mode_create_flags_khr_opt = Display_mode_create_flags_khr.(view, view_opt)
let display_mode_create_flag_bits_khr = Display_mode_create_flags_khr.index_view
let display_mode_create_flag_bits_khr_opt = Display_mode_create_flags_khr.index_view_opt
module Display_mode_parameters_khr = struct type t
type display_mode_parameters_khr = t
let t: t structure typ = structure "display_mode_parameters_khr"
module Fields=struct
let visible_region = field t "visible_region" extent_2d
let refresh_rate = field t "refresh_rate" uint_32_t
end
let visible_region record = Ctypes.getf record Fields.visible_region
let refresh_rate record = Ctypes.getf record Fields.refresh_rate
let () = Ctypes.seal t
let make ~visible_region:arg__visible_region~refresh_rate:arg__refresh_rate
= let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.visible_region arg__visible_region;
Ctypes.setf generated__x__ Fields.refresh_rate arg__refresh_rate;
Ctypes.addr generated__x__ end
let display_mode_parameters_khr = Display_mode_parameters_khr.t
type display_mode_parameters_khr = Display_mode_parameters_khr.t
module Display_mode_create_info_khr = struct type t
type display_mode_create_info_khr = t
let t: t structure typ = structure "display_mode_create_info_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" display_mode_create_flags_khr_opt
let parameters = field t "parameters" display_mode_parameters_khr
end
let flags record = Ctypes.getf record Fields.flags
let parameters record = Ctypes.getf record Fields.parameters
let () = Ctypes.seal t
exception Unknown_record_extension
type display_mode_create_info_khr_extension = ..
type display_mode_create_info_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~parameters:arg__parameters ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Display_mode_create_info_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.parameters arg__parameters;
Ctypes.addr generated__x__
end
let display_mode_create_info_khr = Display_mode_create_info_khr.t
type display_mode_create_info_khr = Display_mode_create_info_khr.t
module Display_mode_khr = Handle.Make()
type display_mode_khr = Display_mode_khr.t
let display_mode_khr, display_mode_khr_opt = Display_mode_khr.(view,view_opt)
module Display_mode_properties_khr = struct type t
type display_mode_properties_khr = t
let t: t structure typ = structure "display_mode_properties_khr"
module Fields=struct
let display_mode = field t "display_mode" display_mode_khr
let parameters = field t "parameters" display_mode_parameters_khr
end
let display_mode record = Ctypes.getf record Fields.display_mode
let parameters record = Ctypes.getf record Fields.parameters
let () = Ctypes.seal t
let make ~display_mode:arg__display_mode~parameters:arg__parameters =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.display_mode arg__display_mode;
Ctypes.setf generated__x__ Fields.parameters arg__parameters;
Ctypes.addr generated__x__ end
let display_mode_properties_khr = Display_mode_properties_khr.t
type display_mode_properties_khr = Display_mode_properties_khr.t
module Display_plane_alpha_flags_khr = struct
include Bitset.Make()
let per_pixel_premultiplied = make_index 3
let per_pixel = make_index 2
let global = make_index 1
let opaque = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem per_pixel_premultiplied set then
Printer.fprintf ppf "per_pixel_premultiplied;@ "
else ();
if mem per_pixel set then
Printer.fprintf ppf "per_pixel;@ "
else ();
if mem global set then
Printer.fprintf ppf "global;@ "
else ();
if mem opaque set then
Printer.fprintf ppf "opaque;@ "
else ();
Printer.fprintf ppf "}@]"
end
type display_plane_alpha_flags_khr = Display_plane_alpha_flags_khr.t
let display_plane_alpha_flags_khr, display_plane_alpha_flags_khr_opt = Display_plane_alpha_flags_khr.(view, view_opt)
let display_plane_alpha_flag_bits_khr = Display_plane_alpha_flags_khr.index_view
let display_plane_alpha_flag_bits_khr_opt = Display_plane_alpha_flags_khr.index_view_opt
module Display_plane_capabilities_khr = struct type t
type display_plane_capabilities_khr = t
let t: t structure typ = structure "display_plane_capabilities_khr"
module Fields=struct
let supported_alpha = field t "supported_alpha" display_plane_alpha_flags_khr_opt
let min_src_position = field t "min_src_position" offset_2d
let max_src_position = field t "max_src_position" offset_2d
let min_src_extent = field t "min_src_extent" extent_2d
let max_src_extent = field t "max_src_extent" extent_2d
let min_dst_position = field t "min_dst_position" offset_2d
let max_dst_position = field t "max_dst_position" offset_2d
let min_dst_extent = field t "min_dst_extent" extent_2d
let max_dst_extent = field t "max_dst_extent" extent_2d
end
let supported_alpha record = Ctypes.getf record Fields.supported_alpha
let min_src_position record = Ctypes.getf record Fields.min_src_position
let max_src_position record = Ctypes.getf record Fields.max_src_position
let min_src_extent record = Ctypes.getf record Fields.min_src_extent
let max_src_extent record = Ctypes.getf record Fields.max_src_extent
let min_dst_position record = Ctypes.getf record Fields.min_dst_position
let max_dst_position record = Ctypes.getf record Fields.max_dst_position
let min_dst_extent record = Ctypes.getf record Fields.min_dst_extent
let max_dst_extent record = Ctypes.getf record Fields.max_dst_extent
let () = Ctypes.seal t
let make ?supported_alpha:arg__supported_alpha
~min_src_position:arg__min_src_position
~max_src_position:arg__max_src_position
~min_src_extent:arg__min_src_extent~max_src_extent:arg__max_src_extent
~min_dst_position:arg__min_dst_position
~max_dst_position:arg__max_dst_position
~min_dst_extent:arg__min_dst_extent~max_dst_extent:arg__max_dst_extent
()= let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.supported_alpha arg__supported_alpha;
Ctypes.setf generated__x__ Fields.min_src_position arg__min_src_position;
Ctypes.setf generated__x__ Fields.max_src_position arg__max_src_position;
Ctypes.setf generated__x__ Fields.min_src_extent arg__min_src_extent;
Ctypes.setf generated__x__ Fields.max_src_extent arg__max_src_extent;
Ctypes.setf generated__x__ Fields.min_dst_position arg__min_dst_position;
Ctypes.setf generated__x__ Fields.max_dst_position arg__max_dst_position;
Ctypes.setf generated__x__ Fields.min_dst_extent arg__min_dst_extent;
Ctypes.setf generated__x__ Fields.max_dst_extent arg__max_dst_extent;
Ctypes.addr generated__x__ end
let display_plane_capabilities_khr = Display_plane_capabilities_khr.t
type display_plane_capabilities_khr = Display_plane_capabilities_khr.t
module Display_plane_properties_khr = struct type t
type display_plane_properties_khr = t
let t: t structure typ = structure "display_plane_properties_khr"
module Fields=struct
let current_display = field t "current_display" display_khr
let current_stack_index = field t "current_stack_index" uint_32_t
end
let current_display record = Ctypes.getf record Fields.current_display
let current_stack_index record = Ctypes.getf record Fields.current_stack_index
let () = Ctypes.seal t
let make ~current_display:arg__current_display
~current_stack_index:arg__current_stack_index =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.current_display arg__current_display;
Ctypes.setf generated__x__ Fields.current_stack_index arg__current_stack_index;
Ctypes.addr generated__x__ end
let display_plane_properties_khr = Display_plane_properties_khr.t
type display_plane_properties_khr = Display_plane_properties_khr.t
module Display_power_state_ext = struct
type t = | Off
| Suspend
| On
let to_int = function
| Off -> 0
| Suspend -> 1
| On -> 2
let of_int = function
| 0 -> Off
| 1 -> Suspend
| 2 -> On
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Off -> "Off"
| Suspend -> "Suspend"
| On -> "On")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let display_power_state_ext, display_power_state_ext_opt = Display_power_state_ext.(view,view_opt)
type display_power_state_ext = Display_power_state_ext.t
module Display_power_info_ext = struct type t
type display_power_info_ext = t
let t: t structure typ = structure "display_power_info_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let power_state = field t "power_state" display_power_state_ext
end
let power_state record = Ctypes.getf record Fields.power_state
let () = Ctypes.seal t
exception Unknown_record_extension
type display_power_info_ext_extension = ..
type display_power_info_ext_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~power_state:arg__power_state ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Display_power_info_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.power_state arg__power_state;
Ctypes.addr generated__x__
end
let display_power_info_ext = Display_power_info_ext.t
type display_power_info_ext = Display_power_info_ext.t
module Display_present_info_khr = struct type t
type display_present_info_khr = t
let t: t structure typ = structure "display_present_info_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let src_rect = field t "src_rect" rect_2d
let dst_rect = field t "dst_rect" rect_2d
let persistent = field t "persistent" bool_32
end
let src_rect record = Ctypes.getf record Fields.src_rect
let dst_rect record = Ctypes.getf record Fields.dst_rect
let persistent record = Ctypes.getf record Fields.persistent
let () = Ctypes.seal t
exception Unknown_record_extension
type display_present_info_khr_extension = ..
type display_present_info_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~src_rect:arg__src_rect
~dst_rect:arg__dst_rect~persistent:arg__persistent ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Display_present_info_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.src_rect arg__src_rect;
Ctypes.setf generated__x__ Fields.dst_rect arg__dst_rect;
Ctypes.setf generated__x__ Fields.persistent arg__persistent;
Ctypes.addr generated__x__
end
let display_present_info_khr = Display_present_info_khr.t
type display_present_info_khr = Display_present_info_khr.t
module Surface_transform_flags_khr = struct
include Bitset.Make()
let inherit' = make_index 8
let horizontal_mirror_rotate_270 = make_index 7
let horizontal_mirror_rotate_180 = make_index 6
let horizontal_mirror_rotate_90 = make_index 5
let horizontal_mirror = make_index 4
let rotate_270 = make_index 3
let rotate_180 = make_index 2
let rotate_90 = make_index 1
let identity = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem inherit' set then
Printer.fprintf ppf "inherit';@ "
else ();
if mem horizontal_mirror_rotate_270 set then
Printer.fprintf ppf "horizontal_mirror_rotate_270;@ "
else ();
if mem horizontal_mirror_rotate_180 set then
Printer.fprintf ppf "horizontal_mirror_rotate_180;@ "
else ();
if mem horizontal_mirror_rotate_90 set then
Printer.fprintf ppf "horizontal_mirror_rotate_90;@ "
else ();
if mem horizontal_mirror set then
Printer.fprintf ppf "horizontal_mirror;@ "
else ();
if mem rotate_270 set then
Printer.fprintf ppf "rotate_270;@ "
else ();
if mem rotate_180 set then
Printer.fprintf ppf "rotate_180;@ "
else ();
if mem rotate_90 set then
Printer.fprintf ppf "rotate_90;@ "
else ();
if mem identity set then
Printer.fprintf ppf "identity;@ "
else ();
Printer.fprintf ppf "}@]"
end
type surface_transform_flags_khr = Surface_transform_flags_khr.t
let surface_transform_flags_khr, surface_transform_flags_khr_opt = Surface_transform_flags_khr.(view, view_opt)
let surface_transform_flag_bits_khr = Surface_transform_flags_khr.index_view
let surface_transform_flag_bits_khr_opt = Surface_transform_flags_khr.index_view_opt
module Display_properties_khr = struct type t
type display_properties_khr = t
let t: t structure typ = structure "display_properties_khr"
module Fields=struct
let display = field t "display" display_khr
let display_name = field t "display_name" string
let physical_dimensions = field t "physical_dimensions" extent_2d
let physical_resolution = field t "physical_resolution" extent_2d
let supported_transforms = field t "supported_transforms" surface_transform_flags_khr_opt
let plane_reorder_possible = field t "plane_reorder_possible" bool_32
let persistent_content = field t "persistent_content" bool_32
end
let display record = Ctypes.getf record Fields.display
let display_name record = Ctypes.getf record Fields.display_name
let physical_dimensions record = Ctypes.getf record Fields.physical_dimensions
let physical_resolution record = Ctypes.getf record Fields.physical_resolution
let supported_transforms record = Ctypes.getf record Fields.supported_transforms
let plane_reorder_possible record = Ctypes.getf record Fields.plane_reorder_possible
let persistent_content record = Ctypes.getf record Fields.persistent_content
let () = Ctypes.seal t
let make ~display:arg__display~display_name:arg__display_name
~physical_dimensions:arg__physical_dimensions
~physical_resolution:arg__physical_resolution
?supported_transforms:arg__supported_transforms
~plane_reorder_possible:arg__plane_reorder_possible
~persistent_content:arg__persistent_content ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.display arg__display;
Ctypes.setf generated__x__ Fields.display_name arg__display_name;
Ctypes.setf generated__x__ Fields.physical_dimensions arg__physical_dimensions;
Ctypes.setf generated__x__ Fields.physical_resolution arg__physical_resolution;
Ctypes.setf generated__x__ Fields.supported_transforms arg__supported_transforms;
Ctypes.setf generated__x__ Fields.plane_reorder_possible arg__plane_reorder_possible;
Ctypes.setf generated__x__ Fields.persistent_content arg__persistent_content;
Ctypes.addr generated__x__ end
let display_properties_khr = Display_properties_khr.t
type display_properties_khr = Display_properties_khr.t
module Display_surface_create_flags_khr = Bitset.Make()
type display_surface_create_flags_khr = Display_surface_create_flags_khr.t
let display_surface_create_flags_khr, display_surface_create_flags_khr_opt = Display_surface_create_flags_khr.(view, view_opt)
let display_surface_create_flag_bits_khr = Display_surface_create_flags_khr.index_view
let display_surface_create_flag_bits_khr_opt = Display_surface_create_flags_khr.index_view_opt
module Display_surface_create_info_khr = struct type t
type display_surface_create_info_khr = t
let t: t structure typ = structure "display_surface_create_info_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" display_surface_create_flags_khr_opt
let display_mode = field t "display_mode" display_mode_khr
let plane_index = field t "plane_index" uint_32_t
let plane_stack_index = field t "plane_stack_index" uint_32_t
let transform = field t "transform" surface_transform_flag_bits_khr
let global_alpha = field t "global_alpha" float
let alpha_mode = field t "alpha_mode" display_plane_alpha_flag_bits_khr
let image_extent = field t "image_extent" extent_2d
end
let flags record = Ctypes.getf record Fields.flags
let display_mode record = Ctypes.getf record Fields.display_mode
let plane_index record = Ctypes.getf record Fields.plane_index
let plane_stack_index record = Ctypes.getf record Fields.plane_stack_index
let transform record = Ctypes.getf record Fields.transform
let global_alpha record = Ctypes.getf record Fields.global_alpha
let alpha_mode record = Ctypes.getf record Fields.alpha_mode
let image_extent record = Ctypes.getf record Fields.image_extent
let () = Ctypes.seal t
exception Unknown_record_extension
type display_surface_create_info_khr_extension = ..
type display_surface_create_info_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~display_mode:arg__display_mode~plane_index:arg__plane_index
~plane_stack_index:arg__plane_stack_index~transform:arg__transform
~global_alpha:arg__global_alpha~alpha_mode:arg__alpha_mode
~image_extent:arg__image_extent ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Display_surface_create_info_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.display_mode arg__display_mode;
Ctypes.setf generated__x__ Fields.plane_index arg__plane_index;
Ctypes.setf generated__x__ Fields.plane_stack_index arg__plane_stack_index;
Ctypes.setf generated__x__ Fields.transform arg__transform;
Ctypes.setf generated__x__ Fields.global_alpha arg__global_alpha;
Ctypes.setf generated__x__ Fields.alpha_mode arg__alpha_mode;
Ctypes.setf generated__x__ Fields.image_extent arg__image_extent;
Ctypes.addr generated__x__
end
let display_surface_create_info_khr = Display_surface_create_info_khr.t
type display_surface_create_info_khr = Display_surface_create_info_khr.t
module Draw_indexed_indirect_command = struct type t
type draw_indexed_indirect_command = t
let t: t structure typ = structure "draw_indexed_indirect_command"
module Fields=struct
let index_count = field t "index_count" uint_32_t
let instance_count = field t "instance_count" uint_32_t
let first_index = field t "first_index" uint_32_t
let vertex_offset = field t "vertex_offset" int_32_t
let first_instance = field t "first_instance" uint_32_t
end
let index_count record = Ctypes.getf record Fields.index_count
let instance_count record = Ctypes.getf record Fields.instance_count
let first_index record = Ctypes.getf record Fields.first_index
let vertex_offset record = Ctypes.getf record Fields.vertex_offset
let first_instance record = Ctypes.getf record Fields.first_instance
let () = Ctypes.seal t
let make ~index_count:arg__index_count~instance_count:arg__instance_count
~first_index:arg__first_index~vertex_offset:arg__vertex_offset
~first_instance:arg__first_instance = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.index_count arg__index_count;
Ctypes.setf generated__x__ Fields.instance_count arg__instance_count;
Ctypes.setf generated__x__ Fields.first_index arg__first_index;
Ctypes.setf generated__x__ Fields.vertex_offset arg__vertex_offset;
Ctypes.setf generated__x__ Fields.first_instance arg__first_instance;
Ctypes.addr generated__x__ end
let draw_indexed_indirect_command = Draw_indexed_indirect_command.t
type draw_indexed_indirect_command = Draw_indexed_indirect_command.t
module Draw_indirect_command = struct type t type draw_indirect_command = t
let t: t structure typ = structure "draw_indirect_command"
module Fields=struct
let vertex_count = field t "vertex_count" uint_32_t
let instance_count = field t "instance_count" uint_32_t
let first_vertex = field t "first_vertex" uint_32_t
let first_instance = field t "first_instance" uint_32_t
end
let vertex_count record = Ctypes.getf record Fields.vertex_count
let instance_count record = Ctypes.getf record Fields.instance_count
let first_vertex record = Ctypes.getf record Fields.first_vertex
let first_instance record = Ctypes.getf record Fields.first_instance
let () = Ctypes.seal t
let make ~vertex_count:arg__vertex_count~instance_count:arg__instance_count
~first_vertex:arg__first_vertex~first_instance:arg__first_instance =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.vertex_count arg__vertex_count;
Ctypes.setf generated__x__ Fields.instance_count arg__instance_count;
Ctypes.setf generated__x__ Fields.first_vertex arg__first_vertex;
Ctypes.setf generated__x__ Fields.first_instance arg__first_instance;
Ctypes.addr generated__x__ end
let draw_indirect_command = Draw_indirect_command.t
type draw_indirect_command = Draw_indirect_command.t
module Dynamic_state = struct
type t = | Viewport
| Scissor
| Line_width
| Depth_bias
| Blend_constants
| Depth_bounds
| Stencil_compare_mask
| Stencil_write_mask
| Stencil_reference
| Viewport_w_scaling_nv
| Discard_rectangle_ext
let to_int = function
| Viewport -> 0
| Scissor -> 1
| Line_width -> 2
| Depth_bias -> 3
| Blend_constants -> 4
| Depth_bounds -> 5
| Stencil_compare_mask -> 6
| Stencil_write_mask -> 7
| Stencil_reference -> 8
| Viewport_w_scaling_nv -> 1000087000
| Discard_rectangle_ext -> 1000099000
let of_int = function
| 0 -> Viewport
| 1 -> Scissor
| 2 -> Line_width
| 3 -> Depth_bias
| 4 -> Blend_constants
| 5 -> Depth_bounds
| 6 -> Stencil_compare_mask
| 7 -> Stencil_write_mask
| 8 -> Stencil_reference
| 1000087000 -> Viewport_w_scaling_nv
| 1000099000 -> Discard_rectangle_ext
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Viewport -> "Viewport"
| Scissor -> "Scissor"
| Line_width -> "Line_width"
| Depth_bias -> "Depth_bias"
| Blend_constants -> "Blend_constants"
| Depth_bounds -> "Depth_bounds"
| Stencil_compare_mask -> "Stencil_compare_mask"
| Stencil_write_mask -> "Stencil_write_mask"
| Stencil_reference -> "Stencil_reference"
| Viewport_w_scaling_nv -> "Viewport_w_scaling_nv"
| Discard_rectangle_ext -> "Discard_rectangle_ext")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let dynamic_state, dynamic_state_opt = Dynamic_state.(view,view_opt)
type dynamic_state = Dynamic_state.t
module Event = Handle.Make()
type event = Event.t
let event, event_opt = Event.(view,view_opt)
module Event_create_flags = Bitset.Make()
type event_create_flags = Event_create_flags.t
let event_create_flags, event_create_flags_opt = Event_create_flags.(view, view_opt)
let event_create_flag_bits = Event_create_flags.index_view
let event_create_flag_bits_opt = Event_create_flags.index_view_opt
module Event_create_info = struct type t type event_create_info = t
let t: t structure typ = structure "event_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" event_create_flags_opt
end
let flags record = Ctypes.getf record Fields.flags
let () = Ctypes.seal t
exception Unknown_record_extension
type event_create_info_extension = ..
type event_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Event_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.addr generated__x__
end
let event_create_info = Event_create_info.t
type event_create_info = Event_create_info.t
module External_memory_handle_type_flags_khx = struct
include Bitset.Make()
let d3d_12_resource = make_index 6
let d3d_12_heap = make_index 5
let d3d_11_texture_kmt = make_index 4
let d3d_11_texture = make_index 3
let opaque_win_32_kmt = make_index 2
let opaque_win_32 = make_index 1
let opaque_fd = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem d3d_12_resource set then
Printer.fprintf ppf "d3d_12_resource;@ "
else ();
if mem d3d_12_heap set then
Printer.fprintf ppf "d3d_12_heap;@ "
else ();
if mem d3d_11_texture_kmt set then
Printer.fprintf ppf "d3d_11_texture_kmt;@ "
else ();
if mem d3d_11_texture set then
Printer.fprintf ppf "d3d_11_texture;@ "
else ();
if mem opaque_win_32_kmt set then
Printer.fprintf ppf "opaque_win_32_kmt;@ "
else ();
if mem opaque_win_32 set then
Printer.fprintf ppf "opaque_win_32;@ "
else ();
if mem opaque_fd set then
Printer.fprintf ppf "opaque_fd;@ "
else ();
Printer.fprintf ppf "}@]"
end
type external_memory_handle_type_flags_khx = External_memory_handle_type_flags_khx.t
let external_memory_handle_type_flags_khx, external_memory_handle_type_flags_khx_opt = External_memory_handle_type_flags_khx.(view, view_opt)
let external_memory_handle_type_flag_bits_khx = External_memory_handle_type_flags_khx.index_view
let external_memory_handle_type_flag_bits_khx_opt = External_memory_handle_type_flags_khx.index_view_opt
module Export_memory_allocate_info_khx = struct type t
type export_memory_allocate_info_khx = t
let t: t structure typ = structure "export_memory_allocate_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let handle_types = field t "handle_types" external_memory_handle_type_flags_khx_opt
end
let handle_types record = Ctypes.getf record Fields.handle_types
let () = Ctypes.seal t
exception Unknown_record_extension
type export_memory_allocate_info_khx_extension = ..
type export_memory_allocate_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?handle_types:arg__handle_types
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Export_memory_allocate_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.handle_types arg__handle_types;
Ctypes.addr generated__x__
end
let export_memory_allocate_info_khx = Export_memory_allocate_info_khx.t
type export_memory_allocate_info_khx = Export_memory_allocate_info_khx.t
module External_memory_handle_type_flags_nv = struct
include Bitset.Make()
let d3d_11_image_kmt = make_index 3
let d3d_11_image = make_index 2
let opaque_win_32_kmt = make_index 1
let opaque_win_32 = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem d3d_11_image_kmt set then
Printer.fprintf ppf "d3d_11_image_kmt;@ "
else ();
if mem d3d_11_image set then
Printer.fprintf ppf "d3d_11_image;@ "
else ();
if mem opaque_win_32_kmt set then
Printer.fprintf ppf "opaque_win_32_kmt;@ "
else ();
if mem opaque_win_32 set then
Printer.fprintf ppf "opaque_win_32;@ "
else ();
Printer.fprintf ppf "}@]"
end
type external_memory_handle_type_flags_nv = External_memory_handle_type_flags_nv.t
let external_memory_handle_type_flags_nv, external_memory_handle_type_flags_nv_opt = External_memory_handle_type_flags_nv.(view, view_opt)
let external_memory_handle_type_flag_bits_nv = External_memory_handle_type_flags_nv.index_view
let external_memory_handle_type_flag_bits_nv_opt = External_memory_handle_type_flags_nv.index_view_opt
module Export_memory_allocate_info_nv = struct type t
type export_memory_allocate_info_nv = t
let t: t structure typ = structure "export_memory_allocate_info_nv"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let handle_types = field t "handle_types" external_memory_handle_type_flags_nv_opt
end
let handle_types record = Ctypes.getf record Fields.handle_types
let () = Ctypes.seal t
exception Unknown_record_extension
type export_memory_allocate_info_nv_extension = ..
type export_memory_allocate_info_nv_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?handle_types:arg__handle_types
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Export_memory_allocate_info_nv, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.handle_types arg__handle_types;
Ctypes.addr generated__x__
end
let export_memory_allocate_info_nv = Export_memory_allocate_info_nv.t
type export_memory_allocate_info_nv = Export_memory_allocate_info_nv.t
module External_semaphore_handle_type_flags_khx = struct
include Bitset.Make()
let fence_fd = make_index 4
let d3d_12_fence = make_index 3
let opaque_win_32_kmt = make_index 2
let opaque_win_32 = make_index 1
let opaque_fd = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem fence_fd set then
Printer.fprintf ppf "fence_fd;@ "
else ();
if mem d3d_12_fence set then
Printer.fprintf ppf "d3d_12_fence;@ "
else ();
if mem opaque_win_32_kmt set then
Printer.fprintf ppf "opaque_win_32_kmt;@ "
else ();
if mem opaque_win_32 set then
Printer.fprintf ppf "opaque_win_32;@ "
else ();
if mem opaque_fd set then
Printer.fprintf ppf "opaque_fd;@ "
else ();
Printer.fprintf ppf "}@]"
end
type external_semaphore_handle_type_flags_khx = External_semaphore_handle_type_flags_khx.t
let external_semaphore_handle_type_flags_khx, external_semaphore_handle_type_flags_khx_opt = External_semaphore_handle_type_flags_khx.(view, view_opt)
let external_semaphore_handle_type_flag_bits_khx = External_semaphore_handle_type_flags_khx.index_view
let external_semaphore_handle_type_flag_bits_khx_opt = External_semaphore_handle_type_flags_khx.index_view_opt
module Export_semaphore_create_info_khx = struct type t
type export_semaphore_create_info_khx = t
let t: t structure typ = structure "export_semaphore_create_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let handle_types = field t "handle_types" external_semaphore_handle_type_flags_khx_opt
end
let handle_types record = Ctypes.getf record Fields.handle_types
let () = Ctypes.seal t
exception Unknown_record_extension
type export_semaphore_create_info_khx_extension = ..
type export_semaphore_create_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?handle_types:arg__handle_types
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Export_semaphore_create_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.handle_types arg__handle_types;
Ctypes.addr generated__x__
end
let export_semaphore_create_info_khx = Export_semaphore_create_info_khx.t
type export_semaphore_create_info_khx = Export_semaphore_create_info_khx.t
module Extension_properties = struct type t type extension_properties = t
let t: t structure typ = structure "extension_properties"
module Fields=struct
let extension_name = field t "extension_name" (array max_extension_name_size @@ char)
let spec_version = field t "spec_version" uint_32_t
end
let extension_name record = Ctypes.string_from_ptr
(Ctypes.CArray.start @@ Ctypes.getf record Fields.extension_name)
max_extension_name_size
let spec_version record = Ctypes.getf record Fields.spec_version
let () = Ctypes.seal t
let make ~extension_name:arg__extension_name~spec_version:arg__spec_version
= let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.extension_name arg__extension_name;
Ctypes.setf generated__x__ Fields.spec_version arg__spec_version;
Ctypes.addr generated__x__ end
let extension_properties = Extension_properties.t
type extension_properties = Extension_properties.t
module External_memory_feature_flags_khx = struct
include Bitset.Make()
let importable = make_index 2
let exportable = make_index 1
let dedicated_only = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem importable set then
Printer.fprintf ppf "importable;@ "
else ();
if mem exportable set then
Printer.fprintf ppf "exportable;@ "
else ();
if mem dedicated_only set then
Printer.fprintf ppf "dedicated_only;@ "
else ();
Printer.fprintf ppf "}@]"
end
type external_memory_feature_flags_khx = External_memory_feature_flags_khx.t
let external_memory_feature_flags_khx, external_memory_feature_flags_khx_opt = External_memory_feature_flags_khx.(view, view_opt)
let external_memory_feature_flag_bits_khx = External_memory_feature_flags_khx.index_view
let external_memory_feature_flag_bits_khx_opt = External_memory_feature_flags_khx.index_view_opt
module External_memory_properties_khx = struct type t
type external_memory_properties_khx = t
let t: t structure typ = structure "external_memory_properties_khx"
module Fields=struct
let external_memory_features = field t "external_memory_features" external_memory_feature_flags_khx
let export_from_imported_handle_types = field t "export_from_imported_handle_types" external_memory_handle_type_flags_khx_opt
let compatible_handle_types = field t "compatible_handle_types" external_memory_handle_type_flags_khx
end
let external_memory_features record = Ctypes.getf record Fields.external_memory_features
let export_from_imported_handle_types record = Ctypes.getf record Fields.export_from_imported_handle_types
let compatible_handle_types record = Ctypes.getf record Fields.compatible_handle_types
let () = Ctypes.seal t
let make ~external_memory_features:arg__external_memory_features
?export_from_imported_handle_types:arg__export_from_imported_handle_types
~compatible_handle_types:arg__compatible_handle_types ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.external_memory_features arg__external_memory_features;
Ctypes.setf generated__x__ Fields.export_from_imported_handle_types arg__export_from_imported_handle_types;
Ctypes.setf generated__x__ Fields.compatible_handle_types arg__compatible_handle_types;
Ctypes.addr generated__x__ end
let external_memory_properties_khx = External_memory_properties_khx.t
type external_memory_properties_khx = External_memory_properties_khx.t
module External_buffer_properties_khx = struct type t
type external_buffer_properties_khx = t
let t: t structure typ = structure "external_buffer_properties_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let external_memory_properties = field t "external_memory_properties" external_memory_properties_khx
end
let external_memory_properties record = Ctypes.getf record Fields.external_memory_properties
let () = Ctypes.seal t
exception Unknown_record_extension
type external_buffer_properties_khx_extension = ..
type external_buffer_properties_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~external_memory_properties:arg__external_memory_properties ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.External_buffer_properties_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.external_memory_properties arg__external_memory_properties;
Ctypes.addr generated__x__
end
let external_buffer_properties_khx = External_buffer_properties_khx.t
type external_buffer_properties_khx = External_buffer_properties_khx.t
module External_image_format_properties_khx = struct type t
type external_image_format_properties_khx = t
let t: t structure typ = structure "external_image_format_properties_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let external_memory_properties = field t "external_memory_properties" external_memory_properties_khx
end
let external_memory_properties record = Ctypes.getf record Fields.external_memory_properties
let () = Ctypes.seal t
exception Unknown_record_extension
type external_image_format_properties_khx_extension = ..
type external_image_format_properties_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~external_memory_properties:arg__external_memory_properties ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.External_image_format_properties_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.external_memory_properties arg__external_memory_properties;
Ctypes.addr generated__x__
end
let external_image_format_properties_khx = External_image_format_properties_khx.t
type external_image_format_properties_khx = External_image_format_properties_khx.t
module Image_format_properties = struct type t
type image_format_properties = t
let t: t structure typ = structure "image_format_properties"
module Fields=struct
let max_extent = field t "max_extent" extent_3d
let max_mip_levels = field t "max_mip_levels" uint_32_t
let max_array_layers = field t "max_array_layers" uint_32_t
let sample_counts = field t "sample_counts" sample_count_flags_opt
let max_resource_size = field t "max_resource_size" device_size
end
let max_extent record = Ctypes.getf record Fields.max_extent
let max_mip_levels record = Ctypes.getf record Fields.max_mip_levels
let max_array_layers record = Ctypes.getf record Fields.max_array_layers
let sample_counts record = Ctypes.getf record Fields.sample_counts
let max_resource_size record = Ctypes.getf record Fields.max_resource_size
let () = Ctypes.seal t
let make ~max_extent:arg__max_extent~max_mip_levels:arg__max_mip_levels
~max_array_layers:arg__max_array_layers?sample_counts:arg__sample_counts
~max_resource_size:arg__max_resource_size ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.max_extent arg__max_extent;
Ctypes.setf generated__x__ Fields.max_mip_levels arg__max_mip_levels;
Ctypes.setf generated__x__ Fields.max_array_layers arg__max_array_layers;
Ctypes.setf generated__x__ Fields.sample_counts arg__sample_counts;
Ctypes.setf generated__x__ Fields.max_resource_size arg__max_resource_size;
Ctypes.addr generated__x__ end
let image_format_properties = Image_format_properties.t
type image_format_properties = Image_format_properties.t
module External_memory_feature_flags_nv = struct
include Bitset.Make()
let importable = make_index 2
let exportable = make_index 1
let dedicated_only = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem importable set then
Printer.fprintf ppf "importable;@ "
else ();
if mem exportable set then
Printer.fprintf ppf "exportable;@ "
else ();
if mem dedicated_only set then
Printer.fprintf ppf "dedicated_only;@ "
else ();
Printer.fprintf ppf "}@]"
end
type external_memory_feature_flags_nv = External_memory_feature_flags_nv.t
let external_memory_feature_flags_nv, external_memory_feature_flags_nv_opt = External_memory_feature_flags_nv.(view, view_opt)
let external_memory_feature_flag_bits_nv = External_memory_feature_flags_nv.index_view
let external_memory_feature_flag_bits_nv_opt = External_memory_feature_flags_nv.index_view_opt
module External_image_format_properties_nv = struct type t
type external_image_format_properties_nv = t
let t: t structure typ = structure "external_image_format_properties_nv"
module Fields=struct
let image_format_properties = field t "image_format_properties" image_format_properties
let external_memory_features = field t "external_memory_features" external_memory_feature_flags_nv_opt
let export_from_imported_handle_types = field t "export_from_imported_handle_types" external_memory_handle_type_flags_nv_opt
let compatible_handle_types = field t "compatible_handle_types" external_memory_handle_type_flags_nv_opt
end
let image_format_properties record = Ctypes.getf record Fields.image_format_properties
let external_memory_features record = Ctypes.getf record Fields.external_memory_features
let export_from_imported_handle_types record = Ctypes.getf record Fields.export_from_imported_handle_types
let compatible_handle_types record = Ctypes.getf record Fields.compatible_handle_types
let () = Ctypes.seal t
let make ~image_format_properties:arg__image_format_properties
?external_memory_features:arg__external_memory_features
?export_from_imported_handle_types:arg__export_from_imported_handle_types
?compatible_handle_types:arg__compatible_handle_types ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.image_format_properties arg__image_format_properties;
Ctypes.setf generated__x__ Fields.external_memory_features arg__external_memory_features;
Ctypes.setf generated__x__ Fields.export_from_imported_handle_types arg__export_from_imported_handle_types;
Ctypes.setf generated__x__ Fields.compatible_handle_types arg__compatible_handle_types;
Ctypes.addr generated__x__ end
let external_image_format_properties_nv = External_image_format_properties_nv.t
type external_image_format_properties_nv = External_image_format_properties_nv.t
module External_memory_buffer_create_info_khx = struct type t
type external_memory_buffer_create_info_khx = t
let t: t structure typ = structure "external_memory_buffer_create_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let handle_types = field t "handle_types" external_memory_handle_type_flags_khx_opt
end
let handle_types record = Ctypes.getf record Fields.handle_types
let () = Ctypes.seal t
exception Unknown_record_extension
type external_memory_buffer_create_info_khx_extension = ..
type external_memory_buffer_create_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?handle_types:arg__handle_types
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.External_memory_buffer_create_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.handle_types arg__handle_types;
Ctypes.addr generated__x__
end
let external_memory_buffer_create_info_khx = External_memory_buffer_create_info_khx.t
type external_memory_buffer_create_info_khx = External_memory_buffer_create_info_khx.t
module External_memory_image_create_info_khx = struct type t
type external_memory_image_create_info_khx = t
let t: t structure typ = structure "external_memory_image_create_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let handle_types = field t "handle_types" external_memory_handle_type_flags_khx
end
let handle_types record = Ctypes.getf record Fields.handle_types
let () = Ctypes.seal t
exception Unknown_record_extension
type external_memory_image_create_info_khx_extension = ..
type external_memory_image_create_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~handle_types:arg__handle_types
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.External_memory_image_create_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.handle_types arg__handle_types;
Ctypes.addr generated__x__
end
let external_memory_image_create_info_khx = External_memory_image_create_info_khx.t
type external_memory_image_create_info_khx = External_memory_image_create_info_khx.t
module External_memory_image_create_info_nv = struct type t
type external_memory_image_create_info_nv = t
let t: t structure typ = structure "external_memory_image_create_info_nv"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let handle_types = field t "handle_types" external_memory_handle_type_flags_nv_opt
end
let handle_types record = Ctypes.getf record Fields.handle_types
let () = Ctypes.seal t
exception Unknown_record_extension
type external_memory_image_create_info_nv_extension = ..
type external_memory_image_create_info_nv_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?handle_types:arg__handle_types
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.External_memory_image_create_info_nv, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.handle_types arg__handle_types;
Ctypes.addr generated__x__
end
let external_memory_image_create_info_nv = External_memory_image_create_info_nv.t
type external_memory_image_create_info_nv = External_memory_image_create_info_nv.t
module External_semaphore_feature_flags_khx = struct
include Bitset.Make()
let importable = make_index 1
let exportable = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem importable set then
Printer.fprintf ppf "importable;@ "
else ();
if mem exportable set then
Printer.fprintf ppf "exportable;@ "
else ();
Printer.fprintf ppf "}@]"
end
type external_semaphore_feature_flags_khx = External_semaphore_feature_flags_khx.t
let external_semaphore_feature_flags_khx, external_semaphore_feature_flags_khx_opt = External_semaphore_feature_flags_khx.(view, view_opt)
let external_semaphore_feature_flag_bits_khx = External_semaphore_feature_flags_khx.index_view
let external_semaphore_feature_flag_bits_khx_opt = External_semaphore_feature_flags_khx.index_view_opt
module External_semaphore_properties_khx = struct type t
type external_semaphore_properties_khx = t
let t: t structure typ = structure "external_semaphore_properties_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let export_from_imported_handle_types = field t "export_from_imported_handle_types" external_semaphore_handle_type_flags_khx
let compatible_handle_types = field t "compatible_handle_types" external_semaphore_handle_type_flags_khx
let external_semaphore_features = field t "external_semaphore_features" external_semaphore_feature_flags_khx_opt
end
let export_from_imported_handle_types record = Ctypes.getf record Fields.export_from_imported_handle_types
let compatible_handle_types record = Ctypes.getf record Fields.compatible_handle_types
let external_semaphore_features record = Ctypes.getf record Fields.external_semaphore_features
let () = Ctypes.seal t
exception Unknown_record_extension
type external_semaphore_properties_khx_extension = ..
type external_semaphore_properties_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~export_from_imported_handle_types:arg__export_from_imported_handle_types
~compatible_handle_types:arg__compatible_handle_types
?external_semaphore_features:arg__external_semaphore_features ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.External_semaphore_properties_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.export_from_imported_handle_types arg__export_from_imported_handle_types;
Ctypes.setf generated__x__ Fields.compatible_handle_types arg__compatible_handle_types;
Ctypes.setf generated__x__ Fields.external_semaphore_features arg__external_semaphore_features;
Ctypes.addr generated__x__
end
let external_semaphore_properties_khx = External_semaphore_properties_khx.t
type external_semaphore_properties_khx = External_semaphore_properties_khx.t
module Fence_create_flags = struct
include Bitset.Make()
let signaled = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem signaled set then
Printer.fprintf ppf "signaled;@ "
else ();
Printer.fprintf ppf "}@]"
end
type fence_create_flags = Fence_create_flags.t
let fence_create_flags, fence_create_flags_opt = Fence_create_flags.(view, view_opt)
let fence_create_flag_bits = Fence_create_flags.index_view
let fence_create_flag_bits_opt = Fence_create_flags.index_view_opt
module Fence_create_info = struct type t type fence_create_info = t
let t: t structure typ = structure "fence_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" fence_create_flags_opt
end
let flags record = Ctypes.getf record Fields.flags
let () = Ctypes.seal t
exception Unknown_record_extension
type fence_create_info_extension = ..
type fence_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Fence_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.addr generated__x__
end
let fence_create_info = Fence_create_info.t
type fence_create_info = Fence_create_info.t
module Filter = struct
type t = | Nearest
| Linear
| Cubic_img
let to_int = function
| Nearest -> 0
| Linear -> 1
| Cubic_img -> 1000015000
let of_int = function
| 0 -> Nearest
| 1 -> Linear
| 1000015000 -> Cubic_img
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Nearest -> "Nearest"
| Linear -> "Linear"
| Cubic_img -> "Cubic_img")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let filter, filter_opt = Filter.(view,view_opt)
type filter = Filter.t
module Flags = Alias(struct type t = uint_32_t let ctype = uint_32_t
let of_int = Uint_32_t.of_int let to_int = Uint_32_t.to_int end)
let flags = Flags.ctype
module Format_feature_flags = struct
include Bitset.Make()
let transfer_dst_bit_khr = make_index 15
let transfer_src_bit_khr = make_index 14
let sampled_image_filter_cubic_bit_img = make_index 13
let sampled_image_filter_linear = make_index 12
let blit_dst = make_index 11
let blit_src = make_index 10
let depth_stencil_attachment = make_index 9
let color_attachment_blend = make_index 8
let color_attachment = make_index 7
let vertex_buffer = make_index 6
let storage_texel_buffer_atomic = make_index 5
let storage_texel_buffer = make_index 4
let uniform_texel_buffer = make_index 3
let storage_image_atomic = make_index 2
let storage_image = make_index 1
let sampled_image = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem transfer_dst_bit_khr set then
Printer.fprintf ppf "transfer_dst_bit_khr;@ "
else ();
if mem transfer_src_bit_khr set then
Printer.fprintf ppf "transfer_src_bit_khr;@ "
else ();
if mem sampled_image_filter_cubic_bit_img set then
Printer.fprintf ppf "sampled_image_filter_cubic_bit_img;@ "
else ();
if mem sampled_image_filter_linear set then
Printer.fprintf ppf "sampled_image_filter_linear;@ "
else ();
if mem blit_dst set then
Printer.fprintf ppf "blit_dst;@ "
else ();
if mem blit_src set then
Printer.fprintf ppf "blit_src;@ "
else ();
if mem depth_stencil_attachment set then
Printer.fprintf ppf "depth_stencil_attachment;@ "
else ();
if mem color_attachment_blend set then
Printer.fprintf ppf "color_attachment_blend;@ "
else ();
if mem color_attachment set then
Printer.fprintf ppf "color_attachment;@ "
else ();
if mem vertex_buffer set then
Printer.fprintf ppf "vertex_buffer;@ "
else ();
if mem storage_texel_buffer_atomic set then
Printer.fprintf ppf "storage_texel_buffer_atomic;@ "
else ();
if mem storage_texel_buffer set then
Printer.fprintf ppf "storage_texel_buffer;@ "
else ();
if mem uniform_texel_buffer set then
Printer.fprintf ppf "uniform_texel_buffer;@ "
else ();
if mem storage_image_atomic set then
Printer.fprintf ppf "storage_image_atomic;@ "
else ();
if mem storage_image set then
Printer.fprintf ppf "storage_image;@ "
else ();
if mem sampled_image set then
Printer.fprintf ppf "sampled_image;@ "
else ();
Printer.fprintf ppf "}@]"
end
type format_feature_flags = Format_feature_flags.t
let format_feature_flags, format_feature_flags_opt = Format_feature_flags.(view, view_opt)
let format_feature_flag_bits = Format_feature_flags.index_view
let format_feature_flag_bits_opt = Format_feature_flags.index_view_opt
module Format_properties = struct type t type format_properties = t
let t: t structure typ = structure "format_properties"
module Fields=struct
let linear_tiling_features = field t "linear_tiling_features" format_feature_flags_opt
let optimal_tiling_features = field t "optimal_tiling_features" format_feature_flags_opt
let buffer_features = field t "buffer_features" format_feature_flags_opt
end
let linear_tiling_features record = Ctypes.getf record Fields.linear_tiling_features
let optimal_tiling_features record = Ctypes.getf record Fields.optimal_tiling_features
let buffer_features record = Ctypes.getf record Fields.buffer_features
let () = Ctypes.seal t
let make ?linear_tiling_features:arg__linear_tiling_features
?optimal_tiling_features:arg__optimal_tiling_features
?buffer_features:arg__buffer_features ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.linear_tiling_features arg__linear_tiling_features;
Ctypes.setf generated__x__ Fields.optimal_tiling_features arg__optimal_tiling_features;
Ctypes.setf generated__x__ Fields.buffer_features arg__buffer_features;
Ctypes.addr generated__x__ end
let format_properties = Format_properties.t
type format_properties = Format_properties.t
module Format_properties_2_khr = struct type t
type format_properties_2_khr = t
let t: t structure typ = structure "format_properties_2_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let format_properties = field t "format_properties" format_properties
end
let format_properties record = Ctypes.getf record Fields.format_properties
let () = Ctypes.seal t
exception Unknown_record_extension
type format_properties_2_khr_extension = ..
type format_properties_2_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~format_properties:arg__format_properties ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Format_properties_2_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.format_properties arg__format_properties;
Ctypes.addr generated__x__
end
let format_properties_2_khr = Format_properties_2_khr.t
type format_properties_2_khr = Format_properties_2_khr.t
module Framebuffer_create_flags = Bitset.Make()
type framebuffer_create_flags = Framebuffer_create_flags.t
let framebuffer_create_flags, framebuffer_create_flags_opt = Framebuffer_create_flags.(view, view_opt)
let framebuffer_create_flag_bits = Framebuffer_create_flags.index_view
let framebuffer_create_flag_bits_opt = Framebuffer_create_flags.index_view_opt
module Framebuffer_create_info = struct type t
type framebuffer_create_info = t
let t: t structure typ = structure "framebuffer_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" framebuffer_create_flags_opt
let render_pass = field t "render_pass" render_pass
let attachment_count = field t "attachment_count" uint_32_t_opt
let attachments = field t "attachments" (ptr image_view)
let width = field t "width" uint_32_t
let height = field t "height" uint_32_t
let layers = field t "layers" uint_32_t
end
let flags record = Ctypes.getf record Fields.flags
let render_pass record = Ctypes.getf record Fields.render_pass
let attachments record = match Ctypes.getf record Fields.attachment_count, Ctypes.getf record Fields.attachments with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let width record = Ctypes.getf record Fields.width
let height record = Ctypes.getf record Fields.height
let layers record = Ctypes.getf record Fields.layers
let () = Ctypes.seal t
exception Unknown_record_extension
type framebuffer_create_info_extension = ..
type framebuffer_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~render_pass:arg__render_pass?attachments:arg__attachments~width:arg__width
~height:arg__height~layers:arg__layers ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Framebuffer_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.render_pass arg__render_pass;
begin match arg__attachments with
| None ->
(Ctypes.setf generated__x__ Fields.attachment_count None;
Ctypes.setf generated__x__ Fields.attachments (Obj.magic @@ Ctypes.null))
|Some arg__attachments ->(Ctypes.setf generated__x__ Fields.attachment_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__attachments)));
Ctypes.setf generated__x__ Fields.attachments (Ctypes.CArray.start arg__attachments))
end;
Ctypes.setf generated__x__ Fields.width arg__width;
Ctypes.setf generated__x__ Fields.height arg__height;
Ctypes.setf generated__x__ Fields.layers arg__layers;
Ctypes.addr generated__x__
end
let framebuffer_create_info = Framebuffer_create_info.t
type framebuffer_create_info = Framebuffer_create_info.t
module Front_face = struct
type t = | Counter_clockwise
| Clockwise
let to_int = function
| Counter_clockwise -> 0
| Clockwise -> 1
let of_int = function
| 0 -> Counter_clockwise
| 1 -> Clockwise
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Counter_clockwise -> "Counter_clockwise"
| Clockwise -> "Clockwise")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let front_face, front_face_opt = Front_face.(view,view_opt)
type front_face = Front_face.t
module Pipeline_vertex_input_state_create_flags = Bitset.Make()
type pipeline_vertex_input_state_create_flags = Pipeline_vertex_input_state_create_flags.t
let pipeline_vertex_input_state_create_flags, pipeline_vertex_input_state_create_flags_opt = Pipeline_vertex_input_state_create_flags.(view, view_opt)
let pipeline_vertex_input_state_create_flag_bits = Pipeline_vertex_input_state_create_flags.index_view
let pipeline_vertex_input_state_create_flag_bits_opt = Pipeline_vertex_input_state_create_flags.index_view_opt
module Vertex_input_rate = struct
type t = | Vertex
| Instance
let to_int = function
| Vertex -> 0
| Instance -> 1
let of_int = function
| 0 -> Vertex
| 1 -> Instance
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Vertex -> "Vertex"
| Instance -> "Instance")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let vertex_input_rate, vertex_input_rate_opt = Vertex_input_rate.(view,view_opt)
type vertex_input_rate = Vertex_input_rate.t
module Vertex_input_binding_description = struct type t
type vertex_input_binding_description = t
let t: t structure typ = structure "vertex_input_binding_description"
module Fields=struct
let binding = field t "binding" uint_32_t
let stride = field t "stride" uint_32_t
let input_rate = field t "input_rate" vertex_input_rate
end
let binding record = Ctypes.getf record Fields.binding
let stride record = Ctypes.getf record Fields.stride
let input_rate record = Ctypes.getf record Fields.input_rate
let () = Ctypes.seal t
let make ~binding:arg__binding~stride:arg__stride
~input_rate:arg__input_rate = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.binding arg__binding;
Ctypes.setf generated__x__ Fields.stride arg__stride;
Ctypes.setf generated__x__ Fields.input_rate arg__input_rate;
Ctypes.addr generated__x__ end
let vertex_input_binding_description = Vertex_input_binding_description.t
type vertex_input_binding_description = Vertex_input_binding_description.t
module Vertex_input_attribute_description = struct type t
type vertex_input_attribute_description = t
let t: t structure typ = structure "vertex_input_attribute_description"
module Fields=struct
let location = field t "location" uint_32_t
let binding = field t "binding" uint_32_t
let format = field t "format" format
let offset = field t "offset" uint_32_t
end
let location record = Ctypes.getf record Fields.location
let binding record = Ctypes.getf record Fields.binding
let format record = Ctypes.getf record Fields.format
let offset record = Ctypes.getf record Fields.offset
let () = Ctypes.seal t
let make ~location:arg__location~binding:arg__binding~format:arg__format
~offset:arg__offset = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.location arg__location;
Ctypes.setf generated__x__ Fields.binding arg__binding;
Ctypes.setf generated__x__ Fields.format arg__format;
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.addr generated__x__ end
let vertex_input_attribute_description = Vertex_input_attribute_description.t
type vertex_input_attribute_description = Vertex_input_attribute_description.t
module Pipeline_vertex_input_state_create_info = struct type t
type pipeline_vertex_input_state_create_info = t
let t: t structure typ = structure "pipeline_vertex_input_state_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_vertex_input_state_create_flags_opt
let vertex_binding_description_count = field t "vertex_binding_description_count" uint_32_t_opt
let vertex_binding_descriptions = field t "vertex_binding_descriptions" (ptr vertex_input_binding_description)
let vertex_attribute_description_count = field t "vertex_attribute_description_count" uint_32_t_opt
let vertex_attribute_descriptions = field t "vertex_attribute_descriptions" (ptr vertex_input_attribute_description)
end
let flags record = Ctypes.getf record Fields.flags
let vertex_binding_descriptions record = match Ctypes.getf record Fields.vertex_binding_description_count, Ctypes.getf record Fields.vertex_binding_descriptions with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let vertex_attribute_descriptions record = match Ctypes.getf record Fields.vertex_attribute_description_count, Ctypes.getf record Fields.vertex_attribute_descriptions with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_vertex_input_state_create_info_extension = ..
type pipeline_vertex_input_state_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
?vertex_binding_descriptions:arg__vertex_binding_descriptions
?vertex_attribute_descriptions:arg__vertex_attribute_descriptions ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_vertex_input_state_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
begin match arg__vertex_binding_descriptions with
| None ->
(Ctypes.setf generated__x__ Fields.vertex_binding_description_count None;
Ctypes.setf generated__x__ Fields.vertex_binding_descriptions (Obj.magic @@ Ctypes.null))
|Some arg__vertex_binding_descriptions ->(Ctypes.setf generated__x__ Fields.vertex_binding_description_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__vertex_binding_descriptions)));
Ctypes.setf generated__x__ Fields.vertex_binding_descriptions (Ctypes.CArray.start arg__vertex_binding_descriptions))
end;
begin match arg__vertex_attribute_descriptions with
| None ->
(Ctypes.setf generated__x__ Fields.vertex_attribute_description_count None;
Ctypes.setf generated__x__ Fields.vertex_attribute_descriptions (Obj.magic @@ Ctypes.null))
|Some arg__vertex_attribute_descriptions ->(Ctypes.setf generated__x__ Fields.vertex_attribute_description_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__vertex_attribute_descriptions)));
Ctypes.setf generated__x__ Fields.vertex_attribute_descriptions (Ctypes.CArray.start arg__vertex_attribute_descriptions))
end;
Ctypes.addr generated__x__
end
let pipeline_vertex_input_state_create_info = Pipeline_vertex_input_state_create_info.t
type pipeline_vertex_input_state_create_info = Pipeline_vertex_input_state_create_info.t
module Pipeline_input_assembly_state_create_flags = Bitset.Make()
type pipeline_input_assembly_state_create_flags = Pipeline_input_assembly_state_create_flags.t
let pipeline_input_assembly_state_create_flags, pipeline_input_assembly_state_create_flags_opt = Pipeline_input_assembly_state_create_flags.(view, view_opt)
let pipeline_input_assembly_state_create_flag_bits = Pipeline_input_assembly_state_create_flags.index_view
let pipeline_input_assembly_state_create_flag_bits_opt = Pipeline_input_assembly_state_create_flags.index_view_opt
module Primitive_topology = struct
type t = | Point_list
| Line_list
| Line_strip
| Triangle_list
| Triangle_strip
| Triangle_fan
| Line_list_with_adjacency
| Line_strip_with_adjacency
| Triangle_list_with_adjacency
| Triangle_strip_with_adjacency
| Patch_list
let to_int = function
| Point_list -> 0
| Line_list -> 1
| Line_strip -> 2
| Triangle_list -> 3
| Triangle_strip -> 4
| Triangle_fan -> 5
| Line_list_with_adjacency -> 6
| Line_strip_with_adjacency -> 7
| Triangle_list_with_adjacency -> 8
| Triangle_strip_with_adjacency -> 9
| Patch_list -> 10
let of_int = function
| 0 -> Point_list
| 1 -> Line_list
| 2 -> Line_strip
| 3 -> Triangle_list
| 4 -> Triangle_strip
| 5 -> Triangle_fan
| 6 -> Line_list_with_adjacency
| 7 -> Line_strip_with_adjacency
| 8 -> Triangle_list_with_adjacency
| 9 -> Triangle_strip_with_adjacency
| 10 -> Patch_list
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Point_list -> "Point_list"
| Line_list -> "Line_list"
| Line_strip -> "Line_strip"
| Triangle_list -> "Triangle_list"
| Triangle_strip -> "Triangle_strip"
| Triangle_fan -> "Triangle_fan"
| Line_list_with_adjacency -> "Line_list_with_adjacency"
| Line_strip_with_adjacency -> "Line_strip_with_adjacency"
| Triangle_list_with_adjacency -> "Triangle_list_with_adjacency"
| Triangle_strip_with_adjacency -> "Triangle_strip_with_adjacency"
| Patch_list -> "Patch_list")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let primitive_topology, primitive_topology_opt = Primitive_topology.(view,view_opt)
type primitive_topology = Primitive_topology.t
module Pipeline_input_assembly_state_create_info = struct type t
type pipeline_input_assembly_state_create_info = t
let t: t structure typ = structure "pipeline_input_assembly_state_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_input_assembly_state_create_flags_opt
let topology = field t "topology" primitive_topology
let primitive_restart_enable = field t "primitive_restart_enable" bool_32
end
let flags record = Ctypes.getf record Fields.flags
let topology record = Ctypes.getf record Fields.topology
let primitive_restart_enable record = Ctypes.getf record Fields.primitive_restart_enable
let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_input_assembly_state_create_info_extension = ..
type pipeline_input_assembly_state_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~topology:arg__topology
~primitive_restart_enable:arg__primitive_restart_enable ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_input_assembly_state_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.topology arg__topology;
Ctypes.setf generated__x__ Fields.primitive_restart_enable arg__primitive_restart_enable;
Ctypes.addr generated__x__
end
let pipeline_input_assembly_state_create_info = Pipeline_input_assembly_state_create_info.t
type pipeline_input_assembly_state_create_info = Pipeline_input_assembly_state_create_info.t
module Pipeline_tessellation_state_create_flags = Bitset.Make()
type pipeline_tessellation_state_create_flags = Pipeline_tessellation_state_create_flags.t
let pipeline_tessellation_state_create_flags, pipeline_tessellation_state_create_flags_opt = Pipeline_tessellation_state_create_flags.(view, view_opt)
let pipeline_tessellation_state_create_flag_bits = Pipeline_tessellation_state_create_flags.index_view
let pipeline_tessellation_state_create_flag_bits_opt = Pipeline_tessellation_state_create_flags.index_view_opt
module Pipeline_tessellation_state_create_info = struct type t
type pipeline_tessellation_state_create_info = t
let t: t structure typ = structure "pipeline_tessellation_state_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_tessellation_state_create_flags_opt
let patch_control_points = field t "patch_control_points" uint_32_t
end
let flags record = Ctypes.getf record Fields.flags
let patch_control_points record = Ctypes.getf record Fields.patch_control_points
let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_tessellation_state_create_info_extension = ..
type pipeline_tessellation_state_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~patch_control_points:arg__patch_control_points ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_tessellation_state_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.patch_control_points arg__patch_control_points;
Ctypes.addr generated__x__
end
let pipeline_tessellation_state_create_info = Pipeline_tessellation_state_create_info.t
type pipeline_tessellation_state_create_info = Pipeline_tessellation_state_create_info.t
module Pipeline_viewport_state_create_flags = Bitset.Make()
type pipeline_viewport_state_create_flags = Pipeline_viewport_state_create_flags.t
let pipeline_viewport_state_create_flags, pipeline_viewport_state_create_flags_opt = Pipeline_viewport_state_create_flags.(view, view_opt)
let pipeline_viewport_state_create_flag_bits = Pipeline_viewport_state_create_flags.index_view
let pipeline_viewport_state_create_flag_bits_opt = Pipeline_viewport_state_create_flags.index_view_opt
module Viewport = struct type t type viewport = t
let t: t structure typ = structure "viewport"
module Fields=struct
let x = field t "x" float
let y = field t "y" float
let width = field t "width" float
let height = field t "height" float
let min_depth = field t "min_depth" float
let max_depth = field t "max_depth" float
end
let x record = Ctypes.getf record Fields.x
let y record = Ctypes.getf record Fields.y
let width record = Ctypes.getf record Fields.width
let height record = Ctypes.getf record Fields.height
let min_depth record = Ctypes.getf record Fields.min_depth
let max_depth record = Ctypes.getf record Fields.max_depth
let () = Ctypes.seal t
let make ~x:arg__x~y:arg__y~width:arg__width~height:arg__height
~min_depth:arg__min_depth~max_depth:arg__max_depth =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.x arg__x;
Ctypes.setf generated__x__ Fields.y arg__y;
Ctypes.setf generated__x__ Fields.width arg__width;
Ctypes.setf generated__x__ Fields.height arg__height;
Ctypes.setf generated__x__ Fields.min_depth arg__min_depth;
Ctypes.setf generated__x__ Fields.max_depth arg__max_depth;
Ctypes.addr generated__x__ end
let viewport = Viewport.t
type viewport = Viewport.t
module Pipeline_viewport_state_create_info = struct type t
type pipeline_viewport_state_create_info = t
let t: t structure typ = structure "pipeline_viewport_state_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_viewport_state_create_flags_opt
let viewport_count = field t "viewport_count" uint_32_t
let viewports = field t "viewports" (ptr_opt (viewport))
let scissor_count = field t "scissor_count" uint_32_t
let scissors = field t "scissors" (ptr_opt (rect_2d))
end
let flags record = Ctypes.getf record Fields.flags
let viewports record = let viewport_count = Ctypes.getf record Fields.viewport_count and viewports = Ctypes.getf record Fields.viewports in
may (fun x -> Ctypes.CArray.from_ptr (x) (Uint_32_t.to_int (viewport_count))) viewports
let scissors record = let scissor_count = Ctypes.getf record Fields.scissor_count and scissors = Ctypes.getf record Fields.scissors in
may (fun x -> Ctypes.CArray.from_ptr (x) (Uint_32_t.to_int (scissor_count))) scissors
let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_viewport_state_create_info_extension = ..
type pipeline_viewport_state_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~viewports:arg__viewports~scissors:arg__scissors ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_viewport_state_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.viewport_count (Uint_32_t.of_int(Ctypes.CArray.length arg__viewports));
Ctypes.setf generated__x__ Fields.viewports (Some(Ctypes.CArray.start arg__viewports));
Ctypes.setf generated__x__ Fields.scissor_count (Uint_32_t.of_int(Ctypes.CArray.length arg__scissors));
Ctypes.setf generated__x__ Fields.scissors (Some(Ctypes.CArray.start arg__scissors));
Ctypes.addr generated__x__
end
let pipeline_viewport_state_create_info = Pipeline_viewport_state_create_info.t
type pipeline_viewport_state_create_info = Pipeline_viewport_state_create_info.t
module Pipeline_rasterization_state_create_flags = Bitset.Make()
type pipeline_rasterization_state_create_flags = Pipeline_rasterization_state_create_flags.t
let pipeline_rasterization_state_create_flags, pipeline_rasterization_state_create_flags_opt = Pipeline_rasterization_state_create_flags.(view, view_opt)
let pipeline_rasterization_state_create_flag_bits = Pipeline_rasterization_state_create_flags.index_view
let pipeline_rasterization_state_create_flag_bits_opt = Pipeline_rasterization_state_create_flags.index_view_opt
module Polygon_mode = struct
type t = | Fill
| Line
| Point
let to_int = function
| Fill -> 0
| Line -> 1
| Point -> 2
let of_int = function
| 0 -> Fill
| 1 -> Line
| 2 -> Point
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Fill -> "Fill"
| Line -> "Line"
| Point -> "Point")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let polygon_mode, polygon_mode_opt = Polygon_mode.(view,view_opt)
type polygon_mode = Polygon_mode.t
module Pipeline_rasterization_state_create_info = struct type t
type pipeline_rasterization_state_create_info = t
let t: t structure typ = structure "pipeline_rasterization_state_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_rasterization_state_create_flags_opt
let depth_clamp_enable = field t "depth_clamp_enable" bool_32
let rasterizer_discard_enable = field t "rasterizer_discard_enable" bool_32
let polygon_mode = field t "polygon_mode" polygon_mode
let cull_mode = field t "cull_mode" cull_mode_flags_opt
let front_face = field t "front_face" front_face
let depth_bias_enable = field t "depth_bias_enable" bool_32
let depth_bias_constant_factor = field t "depth_bias_constant_factor" float
let depth_bias_clamp = field t "depth_bias_clamp" float
let depth_bias_slope_factor = field t "depth_bias_slope_factor" float
let line_width = field t "line_width" float
end
let flags record = Ctypes.getf record Fields.flags
let depth_clamp_enable record = Ctypes.getf record Fields.depth_clamp_enable
let rasterizer_discard_enable record = Ctypes.getf record Fields.rasterizer_discard_enable
let polygon_mode record = Ctypes.getf record Fields.polygon_mode
let cull_mode record = Ctypes.getf record Fields.cull_mode
let front_face record = Ctypes.getf record Fields.front_face
let depth_bias_enable record = Ctypes.getf record Fields.depth_bias_enable
let depth_bias_constant_factor record = Ctypes.getf record Fields.depth_bias_constant_factor
let depth_bias_clamp record = Ctypes.getf record Fields.depth_bias_clamp
let depth_bias_slope_factor record = Ctypes.getf record Fields.depth_bias_slope_factor
let line_width record = Ctypes.getf record Fields.line_width
let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_rasterization_state_create_info_extension = ..
type pipeline_rasterization_state_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~depth_clamp_enable:arg__depth_clamp_enable
~rasterizer_discard_enable:arg__rasterizer_discard_enable
~polygon_mode:arg__polygon_mode?cull_mode:arg__cull_mode
~front_face:arg__front_face~depth_bias_enable:arg__depth_bias_enable
~depth_bias_constant_factor:arg__depth_bias_constant_factor
~depth_bias_clamp:arg__depth_bias_clamp
~depth_bias_slope_factor:arg__depth_bias_slope_factor
~line_width:arg__line_width ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_rasterization_state_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.depth_clamp_enable arg__depth_clamp_enable;
Ctypes.setf generated__x__ Fields.rasterizer_discard_enable arg__rasterizer_discard_enable;
Ctypes.setf generated__x__ Fields.polygon_mode arg__polygon_mode;
Ctypes.setf generated__x__ Fields.cull_mode arg__cull_mode;
Ctypes.setf generated__x__ Fields.front_face arg__front_face;
Ctypes.setf generated__x__ Fields.depth_bias_enable arg__depth_bias_enable;
Ctypes.setf generated__x__ Fields.depth_bias_constant_factor arg__depth_bias_constant_factor;
Ctypes.setf generated__x__ Fields.depth_bias_clamp arg__depth_bias_clamp;
Ctypes.setf generated__x__ Fields.depth_bias_slope_factor arg__depth_bias_slope_factor;
Ctypes.setf generated__x__ Fields.line_width arg__line_width;
Ctypes.addr generated__x__
end
let pipeline_rasterization_state_create_info = Pipeline_rasterization_state_create_info.t
type pipeline_rasterization_state_create_info = Pipeline_rasterization_state_create_info.t
module Pipeline_multisample_state_create_flags = Bitset.Make()
type pipeline_multisample_state_create_flags = Pipeline_multisample_state_create_flags.t
let pipeline_multisample_state_create_flags, pipeline_multisample_state_create_flags_opt = Pipeline_multisample_state_create_flags.(view, view_opt)
let pipeline_multisample_state_create_flag_bits = Pipeline_multisample_state_create_flags.index_view
let pipeline_multisample_state_create_flag_bits_opt = Pipeline_multisample_state_create_flags.index_view_opt
module Sample_mask = Alias(struct type t = uint_32_t let ctype = uint_32_t
let of_int = Uint_32_t.of_int let to_int = Uint_32_t.to_int end)
let sample_mask = Sample_mask.ctype
module Pipeline_multisample_state_create_info = struct type t
type pipeline_multisample_state_create_info = t
let t: t structure typ = structure "pipeline_multisample_state_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_multisample_state_create_flags_opt
let rasterization_samples = field t "rasterization_samples" sample_count_flag_bits
let sample_shading_enable = field t "sample_shading_enable" bool_32
let min_sample_shading = field t "min_sample_shading" float
let sample_mask = field t "sample_mask" (ptr_opt (sample_mask))
let alpha_to_coverage_enable = field t "alpha_to_coverage_enable" bool_32
let alpha_to_one_enable = field t "alpha_to_one_enable" bool_32
end
let flags record = Ctypes.getf record Fields.flags
let rasterization_samples record = Ctypes.getf record Fields.rasterization_samples
let sample_shading_enable record = Ctypes.getf record Fields.sample_shading_enable
let min_sample_shading record = Ctypes.getf record Fields.min_sample_shading
let sample_mask record = Ctypes.getf record Fields.sample_mask
let alpha_to_coverage_enable record = Ctypes.getf record Fields.alpha_to_coverage_enable
let alpha_to_one_enable record = Ctypes.getf record Fields.alpha_to_one_enable
let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_multisample_state_create_info_extension = ..
type pipeline_multisample_state_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~rasterization_samples:arg__rasterization_samples
~sample_shading_enable:arg__sample_shading_enable
~min_sample_shading:arg__min_sample_shading?sample_mask:arg__sample_mask
~alpha_to_coverage_enable:arg__alpha_to_coverage_enable
~alpha_to_one_enable:arg__alpha_to_one_enable ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_multisample_state_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.rasterization_samples arg__rasterization_samples;
Ctypes.setf generated__x__ Fields.sample_shading_enable arg__sample_shading_enable;
Ctypes.setf generated__x__ Fields.min_sample_shading arg__min_sample_shading;
Ctypes.setf generated__x__ Fields.sample_mask arg__sample_mask;
Ctypes.setf generated__x__ Fields.alpha_to_coverage_enable arg__alpha_to_coverage_enable;
Ctypes.setf generated__x__ Fields.alpha_to_one_enable arg__alpha_to_one_enable;
Ctypes.addr generated__x__
end
let pipeline_multisample_state_create_info = Pipeline_multisample_state_create_info.t
type pipeline_multisample_state_create_info = Pipeline_multisample_state_create_info.t
module Pipeline_depth_stencil_state_create_flags = Bitset.Make()
type pipeline_depth_stencil_state_create_flags = Pipeline_depth_stencil_state_create_flags.t
let pipeline_depth_stencil_state_create_flags, pipeline_depth_stencil_state_create_flags_opt = Pipeline_depth_stencil_state_create_flags.(view, view_opt)
let pipeline_depth_stencil_state_create_flag_bits = Pipeline_depth_stencil_state_create_flags.index_view
let pipeline_depth_stencil_state_create_flag_bits_opt = Pipeline_depth_stencil_state_create_flags.index_view_opt
module Stencil_op = struct
type t = | Keep
| Zero
| Replace
| Increment_and_clamp
| Decrement_and_clamp
| Invert
| Increment_and_wrap
| Decrement_and_wrap
let to_int = function
| Keep -> 0
| Zero -> 1
| Replace -> 2
| Increment_and_clamp -> 3
| Decrement_and_clamp -> 4
| Invert -> 5
| Increment_and_wrap -> 6
| Decrement_and_wrap -> 7
let of_int = function
| 0 -> Keep
| 1 -> Zero
| 2 -> Replace
| 3 -> Increment_and_clamp
| 4 -> Decrement_and_clamp
| 5 -> Invert
| 6 -> Increment_and_wrap
| 7 -> Decrement_and_wrap
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Keep -> "Keep"
| Zero -> "Zero"
| Replace -> "Replace"
| Increment_and_clamp -> "Increment_and_clamp"
| Decrement_and_clamp -> "Decrement_and_clamp"
| Invert -> "Invert"
| Increment_and_wrap -> "Increment_and_wrap"
| Decrement_and_wrap -> "Decrement_and_wrap")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let stencil_op, stencil_op_opt = Stencil_op.(view,view_opt)
type stencil_op = Stencil_op.t
module Stencil_op_state = struct type t type stencil_op_state = t
let t: t structure typ = structure "stencil_op_state"
module Fields=struct
let fail_op = field t "fail_op" stencil_op
let pass_op = field t "pass_op" stencil_op
let depth_fail_op = field t "depth_fail_op" stencil_op
let compare_op = field t "compare_op" compare_op
let compare_mask = field t "compare_mask" uint_32_t
let write_mask = field t "write_mask" uint_32_t
let reference = field t "reference" uint_32_t
end
let fail_op record = Ctypes.getf record Fields.fail_op
let pass_op record = Ctypes.getf record Fields.pass_op
let depth_fail_op record = Ctypes.getf record Fields.depth_fail_op
let compare_op record = Ctypes.getf record Fields.compare_op
let compare_mask record = Ctypes.getf record Fields.compare_mask
let write_mask record = Ctypes.getf record Fields.write_mask
let reference record = Ctypes.getf record Fields.reference
let () = Ctypes.seal t
let make ~fail_op:arg__fail_op~pass_op:arg__pass_op
~depth_fail_op:arg__depth_fail_op~compare_op:arg__compare_op
~compare_mask:arg__compare_mask~write_mask:arg__write_mask
~reference:arg__reference = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.fail_op arg__fail_op;
Ctypes.setf generated__x__ Fields.pass_op arg__pass_op;
Ctypes.setf generated__x__ Fields.depth_fail_op arg__depth_fail_op;
Ctypes.setf generated__x__ Fields.compare_op arg__compare_op;
Ctypes.setf generated__x__ Fields.compare_mask arg__compare_mask;
Ctypes.setf generated__x__ Fields.write_mask arg__write_mask;
Ctypes.setf generated__x__ Fields.reference arg__reference;
Ctypes.addr generated__x__ end
let stencil_op_state = Stencil_op_state.t
type stencil_op_state = Stencil_op_state.t
module Pipeline_depth_stencil_state_create_info = struct type t
type pipeline_depth_stencil_state_create_info = t
let t: t structure typ = structure "pipeline_depth_stencil_state_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_depth_stencil_state_create_flags_opt
let depth_test_enable = field t "depth_test_enable" bool_32
let depth_write_enable = field t "depth_write_enable" bool_32
let depth_compare_op = field t "depth_compare_op" compare_op
let depth_bounds_test_enable = field t "depth_bounds_test_enable" bool_32
let stencil_test_enable = field t "stencil_test_enable" bool_32
let front = field t "front" stencil_op_state
let back = field t "back" stencil_op_state
let min_depth_bounds = field t "min_depth_bounds" float
let max_depth_bounds = field t "max_depth_bounds" float
end
let flags record = Ctypes.getf record Fields.flags
let depth_test_enable record = Ctypes.getf record Fields.depth_test_enable
let depth_write_enable record = Ctypes.getf record Fields.depth_write_enable
let depth_compare_op record = Ctypes.getf record Fields.depth_compare_op
let depth_bounds_test_enable record = Ctypes.getf record Fields.depth_bounds_test_enable
let stencil_test_enable record = Ctypes.getf record Fields.stencil_test_enable
let front record = Ctypes.getf record Fields.front
let back record = Ctypes.getf record Fields.back
let min_depth_bounds record = Ctypes.getf record Fields.min_depth_bounds
let max_depth_bounds record = Ctypes.getf record Fields.max_depth_bounds
let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_depth_stencil_state_create_info_extension = ..
type pipeline_depth_stencil_state_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~depth_test_enable:arg__depth_test_enable
~depth_write_enable:arg__depth_write_enable
~depth_compare_op:arg__depth_compare_op
~depth_bounds_test_enable:arg__depth_bounds_test_enable
~stencil_test_enable:arg__stencil_test_enable~front:arg__front~back:arg__back
~min_depth_bounds:arg__min_depth_bounds
~max_depth_bounds:arg__max_depth_bounds ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_depth_stencil_state_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.depth_test_enable arg__depth_test_enable;
Ctypes.setf generated__x__ Fields.depth_write_enable arg__depth_write_enable;
Ctypes.setf generated__x__ Fields.depth_compare_op arg__depth_compare_op;
Ctypes.setf generated__x__ Fields.depth_bounds_test_enable arg__depth_bounds_test_enable;
Ctypes.setf generated__x__ Fields.stencil_test_enable arg__stencil_test_enable;
Ctypes.setf generated__x__ Fields.front arg__front;
Ctypes.setf generated__x__ Fields.back arg__back;
Ctypes.setf generated__x__ Fields.min_depth_bounds arg__min_depth_bounds;
Ctypes.setf generated__x__ Fields.max_depth_bounds arg__max_depth_bounds;
Ctypes.addr generated__x__
end
let pipeline_depth_stencil_state_create_info = Pipeline_depth_stencil_state_create_info.t
type pipeline_depth_stencil_state_create_info = Pipeline_depth_stencil_state_create_info.t
module Pipeline_color_blend_state_create_flags = Bitset.Make()
type pipeline_color_blend_state_create_flags = Pipeline_color_blend_state_create_flags.t
let pipeline_color_blend_state_create_flags, pipeline_color_blend_state_create_flags_opt = Pipeline_color_blend_state_create_flags.(view, view_opt)
let pipeline_color_blend_state_create_flag_bits = Pipeline_color_blend_state_create_flags.index_view
let pipeline_color_blend_state_create_flag_bits_opt = Pipeline_color_blend_state_create_flags.index_view_opt
module Logic_op = struct
type t = | Clear
| And
| And_reverse
| Copy
| And_inverted
| No_op
| Xor
| Or
| Nor
| Equivalent
| Invert
| Or_reverse
| Copy_inverted
| Or_inverted
| Nand
| Set
let to_int = function
| Clear -> 0
| And -> 1
| And_reverse -> 2
| Copy -> 3
| And_inverted -> 4
| No_op -> 5
| Xor -> 6
| Or -> 7
| Nor -> 8
| Equivalent -> 9
| Invert -> 10
| Or_reverse -> 11
| Copy_inverted -> 12
| Or_inverted -> 13
| Nand -> 14
| Set -> 15
let of_int = function
| 0 -> Clear
| 1 -> And
| 2 -> And_reverse
| 3 -> Copy
| 4 -> And_inverted
| 5 -> No_op
| 6 -> Xor
| 7 -> Or
| 8 -> Nor
| 9 -> Equivalent
| 10 -> Invert
| 11 -> Or_reverse
| 12 -> Copy_inverted
| 13 -> Or_inverted
| 14 -> Nand
| 15 -> Set
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Clear -> "Clear"
| And -> "And"
| And_reverse -> "And_reverse"
| Copy -> "Copy"
| And_inverted -> "And_inverted"
| No_op -> "No_op"
| Xor -> "Xor"
| Or -> "Or"
| Nor -> "Nor"
| Equivalent -> "Equivalent"
| Invert -> "Invert"
| Or_reverse -> "Or_reverse"
| Copy_inverted -> "Copy_inverted"
| Or_inverted -> "Or_inverted"
| Nand -> "Nand"
| Set -> "Set")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let logic_op, logic_op_opt = Logic_op.(view,view_opt)
type logic_op = Logic_op.t
module Pipeline_color_blend_attachment_state = struct type t
type pipeline_color_blend_attachment_state = t
let t: t structure typ = structure "pipeline_color_blend_attachment_state"
module Fields=struct
let blend_enable = field t "blend_enable" bool_32
let src_color_blend_factor = field t "src_color_blend_factor" blend_factor
let dst_color_blend_factor = field t "dst_color_blend_factor" blend_factor
let color_blend_op = field t "color_blend_op" blend_op
let src_alpha_blend_factor = field t "src_alpha_blend_factor" blend_factor
let dst_alpha_blend_factor = field t "dst_alpha_blend_factor" blend_factor
let alpha_blend_op = field t "alpha_blend_op" blend_op
let color_write_mask = field t "color_write_mask" color_component_flags_opt
end
let blend_enable record = Ctypes.getf record Fields.blend_enable
let src_color_blend_factor record = Ctypes.getf record Fields.src_color_blend_factor
let dst_color_blend_factor record = Ctypes.getf record Fields.dst_color_blend_factor
let color_blend_op record = Ctypes.getf record Fields.color_blend_op
let src_alpha_blend_factor record = Ctypes.getf record Fields.src_alpha_blend_factor
let dst_alpha_blend_factor record = Ctypes.getf record Fields.dst_alpha_blend_factor
let alpha_blend_op record = Ctypes.getf record Fields.alpha_blend_op
let color_write_mask record = Ctypes.getf record Fields.color_write_mask
let () = Ctypes.seal t
let make ~blend_enable:arg__blend_enable
~src_color_blend_factor:arg__src_color_blend_factor
~dst_color_blend_factor:arg__dst_color_blend_factor
~color_blend_op:arg__color_blend_op
~src_alpha_blend_factor:arg__src_alpha_blend_factor
~dst_alpha_blend_factor:arg__dst_alpha_blend_factor
~alpha_blend_op:arg__alpha_blend_op?color_write_mask:arg__color_write_mask
()= let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.blend_enable arg__blend_enable;
Ctypes.setf generated__x__ Fields.src_color_blend_factor arg__src_color_blend_factor;
Ctypes.setf generated__x__ Fields.dst_color_blend_factor arg__dst_color_blend_factor;
Ctypes.setf generated__x__ Fields.color_blend_op arg__color_blend_op;
Ctypes.setf generated__x__ Fields.src_alpha_blend_factor arg__src_alpha_blend_factor;
Ctypes.setf generated__x__ Fields.dst_alpha_blend_factor arg__dst_alpha_blend_factor;
Ctypes.setf generated__x__ Fields.alpha_blend_op arg__alpha_blend_op;
Ctypes.setf generated__x__ Fields.color_write_mask arg__color_write_mask;
Ctypes.addr generated__x__ end
let pipeline_color_blend_attachment_state = Pipeline_color_blend_attachment_state.t
type pipeline_color_blend_attachment_state = Pipeline_color_blend_attachment_state.t
module Pipeline_color_blend_state_create_info = struct type t
type pipeline_color_blend_state_create_info = t
let t: t structure typ = structure "pipeline_color_blend_state_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_color_blend_state_create_flags_opt
let logic_op_enable = field t "logic_op_enable" bool_32
let logic_op = field t "logic_op" logic_op
let attachment_count = field t "attachment_count" uint_32_t_opt
let attachments = field t "attachments" (ptr pipeline_color_blend_attachment_state)
let blend_constants = field t "blend_constants" (array 4 @@ float)
end
let flags record = Ctypes.getf record Fields.flags
let logic_op_enable record = Ctypes.getf record Fields.logic_op_enable
let logic_op record = Ctypes.getf record Fields.logic_op
let attachments record = match Ctypes.getf record Fields.attachment_count, Ctypes.getf record Fields.attachments with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let blend_constants record = Ctypes.getf record Fields.blend_constants
let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_color_blend_state_create_info_extension = ..
type pipeline_color_blend_state_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~logic_op_enable:arg__logic_op_enable~logic_op:arg__logic_op
?attachments:arg__attachments~blend_constants:arg__blend_constants ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_color_blend_state_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.logic_op_enable arg__logic_op_enable;
Ctypes.setf generated__x__ Fields.logic_op arg__logic_op;
begin match arg__attachments with
| None ->
(Ctypes.setf generated__x__ Fields.attachment_count None;
Ctypes.setf generated__x__ Fields.attachments (Obj.magic @@ Ctypes.null))
|Some arg__attachments ->(Ctypes.setf generated__x__ Fields.attachment_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__attachments)));
Ctypes.setf generated__x__ Fields.attachments (Ctypes.CArray.start arg__attachments))
end;
Ctypes.setf generated__x__ Fields.blend_constants arg__blend_constants;
Ctypes.addr generated__x__
end
let pipeline_color_blend_state_create_info = Pipeline_color_blend_state_create_info.t
type pipeline_color_blend_state_create_info = Pipeline_color_blend_state_create_info.t
module Pipeline_dynamic_state_create_flags = Bitset.Make()
type pipeline_dynamic_state_create_flags = Pipeline_dynamic_state_create_flags.t
let pipeline_dynamic_state_create_flags, pipeline_dynamic_state_create_flags_opt = Pipeline_dynamic_state_create_flags.(view, view_opt)
let pipeline_dynamic_state_create_flag_bits = Pipeline_dynamic_state_create_flags.index_view
let pipeline_dynamic_state_create_flag_bits_opt = Pipeline_dynamic_state_create_flags.index_view_opt
module Pipeline_dynamic_state_create_info = struct type t
type pipeline_dynamic_state_create_info = t
let t: t structure typ = structure "pipeline_dynamic_state_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_dynamic_state_create_flags_opt
let dynamic_state_count = field t "dynamic_state_count" uint_32_t
let dynamic_states = field t "dynamic_states" (ptr dynamic_state)
end
let flags record = Ctypes.getf record Fields.flags
let dynamic_states record = let dynamic_state_count = Ctypes.getf record Fields.dynamic_state_count and dynamic_states = Ctypes.getf record Fields.dynamic_states in
Ctypes.CArray.from_ptr (dynamic_states) (Uint_32_t.to_int (dynamic_state_count))
let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_dynamic_state_create_info_extension = ..
type pipeline_dynamic_state_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~dynamic_states:arg__dynamic_states ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_dynamic_state_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.dynamic_state_count (Uint_32_t.of_int(Ctypes.CArray.length arg__dynamic_states));
Ctypes.setf generated__x__ Fields.dynamic_states (Ctypes.CArray.start arg__dynamic_states);
Ctypes.addr generated__x__
end
let pipeline_dynamic_state_create_info = Pipeline_dynamic_state_create_info.t
type pipeline_dynamic_state_create_info = Pipeline_dynamic_state_create_info.t
module Graphics_pipeline_create_info = struct type t
type graphics_pipeline_create_info = t
let t: t structure typ = structure "graphics_pipeline_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_create_flags_opt
let stage_count = field t "stage_count" uint_32_t
let stages = field t "stages" (ptr pipeline_shader_stage_create_info)
let vertex_input_state = field t "vertex_input_state" (ptr pipeline_vertex_input_state_create_info)
let input_assembly_state = field t "input_assembly_state" (ptr pipeline_input_assembly_state_create_info)
let tessellation_state = field t "tessellation_state" (ptr_opt (pipeline_tessellation_state_create_info))
let viewport_state = field t "viewport_state" (ptr_opt (pipeline_viewport_state_create_info))
let rasterization_state = field t "rasterization_state" (ptr pipeline_rasterization_state_create_info)
let multisample_state = field t "multisample_state" (ptr_opt (pipeline_multisample_state_create_info))
let depth_stencil_state = field t "depth_stencil_state" (ptr_opt (pipeline_depth_stencil_state_create_info))
let color_blend_state = field t "color_blend_state" (ptr_opt (pipeline_color_blend_state_create_info))
let dynamic_state = field t "dynamic_state" (ptr_opt (pipeline_dynamic_state_create_info))
let layout = field t "layout" pipeline_layout
let render_pass = field t "render_pass" render_pass
let subpass = field t "subpass" uint_32_t
let base_pipeline_handle = field t "base_pipeline_handle" pipeline_opt
let base_pipeline_index = field t "base_pipeline_index" int_32_t
end
let flags record = Ctypes.getf record Fields.flags
let stages record = let stage_count = Ctypes.getf record Fields.stage_count and stages = Ctypes.getf record Fields.stages in
Ctypes.CArray.from_ptr (stages) (Uint_32_t.to_int (stage_count))
let vertex_input_state record = Ctypes.getf record Fields.vertex_input_state
let input_assembly_state record = Ctypes.getf record Fields.input_assembly_state
let tessellation_state record = Ctypes.getf record Fields.tessellation_state
let viewport_state record = Ctypes.getf record Fields.viewport_state
let rasterization_state record = Ctypes.getf record Fields.rasterization_state
let multisample_state record = Ctypes.getf record Fields.multisample_state
let depth_stencil_state record = Ctypes.getf record Fields.depth_stencil_state
let color_blend_state record = Ctypes.getf record Fields.color_blend_state
let dynamic_state record = Ctypes.getf record Fields.dynamic_state
let layout record = Ctypes.getf record Fields.layout
let render_pass record = Ctypes.getf record Fields.render_pass
let subpass record = Ctypes.getf record Fields.subpass
let base_pipeline_handle record = Ctypes.getf record Fields.base_pipeline_handle
let base_pipeline_index record = Ctypes.getf record Fields.base_pipeline_index
let () = Ctypes.seal t
exception Unknown_record_extension
type graphics_pipeline_create_info_extension = ..
type graphics_pipeline_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~stages:arg__stages~vertex_input_state:arg__vertex_input_state
~input_assembly_state:arg__input_assembly_state
?tessellation_state:arg__tessellation_state
?viewport_state:arg__viewport_state
~rasterization_state:arg__rasterization_state
?multisample_state:arg__multisample_state
?depth_stencil_state:arg__depth_stencil_state
?color_blend_state:arg__color_blend_state?dynamic_state:arg__dynamic_state
~layout:arg__layout~render_pass:arg__render_pass~subpass:arg__subpass
?base_pipeline_handle:arg__base_pipeline_handle
~base_pipeline_index:arg__base_pipeline_index ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Graphics_pipeline_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.stage_count (Uint_32_t.of_int(Ctypes.CArray.length arg__stages));
Ctypes.setf generated__x__ Fields.stages (Ctypes.CArray.start arg__stages);
Ctypes.setf generated__x__ Fields.vertex_input_state arg__vertex_input_state;
Ctypes.setf generated__x__ Fields.input_assembly_state arg__input_assembly_state;
Ctypes.setf generated__x__ Fields.tessellation_state arg__tessellation_state;
Ctypes.setf generated__x__ Fields.viewport_state arg__viewport_state;
Ctypes.setf generated__x__ Fields.rasterization_state arg__rasterization_state;
Ctypes.setf generated__x__ Fields.multisample_state arg__multisample_state;
Ctypes.setf generated__x__ Fields.depth_stencil_state arg__depth_stencil_state;
Ctypes.setf generated__x__ Fields.color_blend_state arg__color_blend_state;
Ctypes.setf generated__x__ Fields.dynamic_state arg__dynamic_state;
Ctypes.setf generated__x__ Fields.layout arg__layout;
Ctypes.setf generated__x__ Fields.render_pass arg__render_pass;
Ctypes.setf generated__x__ Fields.subpass arg__subpass;
Ctypes.setf generated__x__ Fields.base_pipeline_handle arg__base_pipeline_handle;
Ctypes.setf generated__x__ Fields.base_pipeline_index arg__base_pipeline_index;
Ctypes.addr generated__x__
end
let graphics_pipeline_create_info = Graphics_pipeline_create_info.t
type graphics_pipeline_create_info = Graphics_pipeline_create_info.t
module X_y_color_ext = struct type t type x_y_color_ext = t
let t: t structure typ = structure "x_y_color_ext"
module Fields=struct
let x = field t "x" float
let y = field t "y" float
end
let x record = Ctypes.getf record Fields.x
let y record = Ctypes.getf record Fields.y let () = Ctypes.seal t
let make ~x:arg__x~y:arg__y = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.x arg__x;
Ctypes.setf generated__x__ Fields.y arg__y; Ctypes.addr generated__x__ end
let x_y_color_ext = X_y_color_ext.t
type x_y_color_ext = X_y_color_ext.t
module Hdr_metadata_ext = struct type t type hdr_metadata_ext = t
let t: t structure typ = structure "hdr_metadata_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let display_primary_red = field t "display_primary_red" x_y_color_ext
let display_primary_green = field t "display_primary_green" x_y_color_ext
let display_primary_blue = field t "display_primary_blue" x_y_color_ext
let white_point = field t "white_point" x_y_color_ext
let max_luminance = field t "max_luminance" float
let min_luminance = field t "min_luminance" float
let max_content_light_level = field t "max_content_light_level" float
let max_frame_average_light_level = field t "max_frame_average_light_level" float
end
let display_primary_red record = Ctypes.getf record Fields.display_primary_red
let display_primary_green record = Ctypes.getf record Fields.display_primary_green
let display_primary_blue record = Ctypes.getf record Fields.display_primary_blue
let white_point record = Ctypes.getf record Fields.white_point
let max_luminance record = Ctypes.getf record Fields.max_luminance
let min_luminance record = Ctypes.getf record Fields.min_luminance
let max_content_light_level record = Ctypes.getf record Fields.max_content_light_level
let max_frame_average_light_level record = Ctypes.getf record Fields.max_frame_average_light_level
let () = Ctypes.seal t
exception Unknown_record_extension
type hdr_metadata_ext_extension = ..
type hdr_metadata_ext_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~display_primary_red:arg__display_primary_red
~display_primary_green:arg__display_primary_green
~display_primary_blue:arg__display_primary_blue~white_point:arg__white_point
~max_luminance:arg__max_luminance~min_luminance:arg__min_luminance
~max_content_light_level:arg__max_content_light_level
~max_frame_average_light_level:arg__max_frame_average_light_level ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Hdr_metadata_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.display_primary_red arg__display_primary_red;
Ctypes.setf generated__x__ Fields.display_primary_green arg__display_primary_green;
Ctypes.setf generated__x__ Fields.display_primary_blue arg__display_primary_blue;
Ctypes.setf generated__x__ Fields.white_point arg__white_point;
Ctypes.setf generated__x__ Fields.max_luminance arg__max_luminance;
Ctypes.setf generated__x__ Fields.min_luminance arg__min_luminance;
Ctypes.setf generated__x__ Fields.max_content_light_level arg__max_content_light_level;
Ctypes.setf generated__x__ Fields.max_frame_average_light_level arg__max_frame_average_light_level;
Ctypes.addr generated__x__
end
let hdr_metadata_ext = Hdr_metadata_ext.t
type hdr_metadata_ext = Hdr_metadata_ext.t
module Ios_surface_create_flags_mvk = Bitset.Make()
type ios_surface_create_flags_mvk = Ios_surface_create_flags_mvk.t
let ios_surface_create_flags_mvk, ios_surface_create_flags_mvk_opt = Ios_surface_create_flags_mvk.(view, view_opt)
let ios_surface_create_flag_bits_mvk = Ios_surface_create_flags_mvk.index_view
let ios_surface_create_flag_bits_mvk_opt = Ios_surface_create_flags_mvk.index_view_opt
module Ios_surface_create_info_mvk = struct type t
type ios_surface_create_info_mvk = t
let t: t structure typ = structure "ios_surface_create_info_mvk"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" ios_surface_create_flags_mvk_opt
let view = field t "view" (ptr void)
end
let flags record = Ctypes.getf record Fields.flags
let view record = Ctypes.getf record Fields.view let () = Ctypes.seal t
exception Unknown_record_extension
type ios_surface_create_info_mvk_extension = ..
type ios_surface_create_info_mvk_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags~view:arg__view
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Ios_surface_create_info_mvk, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.view arg__view; Ctypes.addr generated__x__
end
let ios_surface_create_info_mvk = Ios_surface_create_info_mvk.t
type ios_surface_create_info_mvk = Ios_surface_create_info_mvk.t
module Image_blit = struct type t type image_blit = t
let t: t structure typ = structure "image_blit"
module Fields=struct
let src_subresource = field t "src_subresource" image_subresource_layers
let src_offsets = field t "src_offsets" (array 2 @@ offset_3d)
let dst_subresource = field t "dst_subresource" image_subresource_layers
let dst_offsets = field t "dst_offsets" (array 2 @@ offset_3d)
end
let src_subresource record = Ctypes.getf record Fields.src_subresource
let src_offsets record = Ctypes.getf record Fields.src_offsets
let dst_subresource record = Ctypes.getf record Fields.dst_subresource
let dst_offsets record = Ctypes.getf record Fields.dst_offsets
let () = Ctypes.seal t
let make ~src_subresource:arg__src_subresource~src_offsets:arg__src_offsets
~dst_subresource:arg__dst_subresource~dst_offsets:arg__dst_offsets =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.src_subresource arg__src_subresource;
Ctypes.setf generated__x__ Fields.src_offsets arg__src_offsets;
Ctypes.setf generated__x__ Fields.dst_subresource arg__dst_subresource;
Ctypes.setf generated__x__ Fields.dst_offsets arg__dst_offsets;
Ctypes.addr generated__x__ end
let image_blit = Image_blit.t
type image_blit = Image_blit.t
module Image_copy = struct type t type image_copy = t
let t: t structure typ = structure "image_copy"
module Fields=struct
let src_subresource = field t "src_subresource" image_subresource_layers
let src_offset = field t "src_offset" offset_3d
let dst_subresource = field t "dst_subresource" image_subresource_layers
let dst_offset = field t "dst_offset" offset_3d
let extent = field t "extent" extent_3d
end
let src_subresource record = Ctypes.getf record Fields.src_subresource
let src_offset record = Ctypes.getf record Fields.src_offset
let dst_subresource record = Ctypes.getf record Fields.dst_subresource
let dst_offset record = Ctypes.getf record Fields.dst_offset
let extent record = Ctypes.getf record Fields.extent
let () = Ctypes.seal t
let make ~src_subresource:arg__src_subresource~src_offset:arg__src_offset
~dst_subresource:arg__dst_subresource~dst_offset:arg__dst_offset
~extent:arg__extent = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.src_subresource arg__src_subresource;
Ctypes.setf generated__x__ Fields.src_offset arg__src_offset;
Ctypes.setf generated__x__ Fields.dst_subresource arg__dst_subresource;
Ctypes.setf generated__x__ Fields.dst_offset arg__dst_offset;
Ctypes.setf generated__x__ Fields.extent arg__extent;
Ctypes.addr generated__x__ end
let image_copy = Image_copy.t
type image_copy = Image_copy.t
module Image_create_flags = struct
include Bitset.Make()
let n2d_array_compatible_bit_khr = make_index 5
let bind_sfr_bit_khx = make_index 6
let cube_compatible = make_index 4
let mutable_format = make_index 3
let sparse_aliased = make_index 2
let sparse_residency = make_index 1
let sparse_binding = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem n2d_array_compatible_bit_khr set then
Printer.fprintf ppf "n2d_array_compatible_bit_khr;@ "
else ();
if mem bind_sfr_bit_khx set then
Printer.fprintf ppf "bind_sfr_bit_khx;@ "
else ();
if mem cube_compatible set then
Printer.fprintf ppf "cube_compatible;@ "
else ();
if mem mutable_format set then
Printer.fprintf ppf "mutable_format;@ "
else ();
if mem sparse_aliased set then
Printer.fprintf ppf "sparse_aliased;@ "
else ();
if mem sparse_residency set then
Printer.fprintf ppf "sparse_residency;@ "
else ();
if mem sparse_binding set then
Printer.fprintf ppf "sparse_binding;@ "
else ();
Printer.fprintf ppf "}@]"
end
type image_create_flags = Image_create_flags.t
let image_create_flags, image_create_flags_opt = Image_create_flags.(view, view_opt)
let image_create_flag_bits = Image_create_flags.index_view
let image_create_flag_bits_opt = Image_create_flags.index_view_opt
module Image_swapchain_create_info_khx = struct type t
type image_swapchain_create_info_khx = t
let t: t structure typ = structure "image_swapchain_create_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let swapchain = field t "swapchain" swapchain_khr_opt
end
let swapchain record = Ctypes.getf record Fields.swapchain
let () = Ctypes.seal t
exception Unknown_record_extension
type image_swapchain_create_info_khx_extension = ..
type image_swapchain_create_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?swapchain:arg__swapchain ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Image_swapchain_create_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.swapchain arg__swapchain;
Ctypes.addr generated__x__
end
let image_swapchain_create_info_khx = Image_swapchain_create_info_khx.t
type image_swapchain_create_info_khx = Image_swapchain_create_info_khx.t
module Image_type = struct
type t = | N1d
| N2d
| N3d
let to_int = function
| N1d -> 0
| N2d -> 1
| N3d -> 2
let of_int = function
| 0 -> N1d
| 1 -> N2d
| 2 -> N3d
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| N1d -> "N1d"
| N2d -> "N2d"
| N3d -> "N3d")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let image_type, image_type_opt = Image_type.(view,view_opt)
type image_type = Image_type.t
module Image_tiling = struct
type t = | Optimal
| Linear
let to_int = function
| Optimal -> 0
| Linear -> 1
let of_int = function
| 0 -> Optimal
| 1 -> Linear
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Optimal -> "Optimal"
| Linear -> "Linear")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let image_tiling, image_tiling_opt = Image_tiling.(view,view_opt)
type image_tiling = Image_tiling.t
module Image_usage_flags = struct
include Bitset.Make()
let input_attachment = make_index 7
let transient_attachment = make_index 6
let depth_stencil_attachment = make_index 5
let color_attachment = make_index 4
let storage = make_index 3
let sampled = make_index 2
let transfer_dst = make_index 1
let transfer_src = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem input_attachment set then
Printer.fprintf ppf "input_attachment;@ "
else ();
if mem transient_attachment set then
Printer.fprintf ppf "transient_attachment;@ "
else ();
if mem depth_stencil_attachment set then
Printer.fprintf ppf "depth_stencil_attachment;@ "
else ();
if mem color_attachment set then
Printer.fprintf ppf "color_attachment;@ "
else ();
if mem storage set then
Printer.fprintf ppf "storage;@ "
else ();
if mem sampled set then
Printer.fprintf ppf "sampled;@ "
else ();
if mem transfer_dst set then
Printer.fprintf ppf "transfer_dst;@ "
else ();
if mem transfer_src set then
Printer.fprintf ppf "transfer_src;@ "
else ();
Printer.fprintf ppf "}@]"
end
type image_usage_flags = Image_usage_flags.t
let image_usage_flags, image_usage_flags_opt = Image_usage_flags.(view, view_opt)
let image_usage_flag_bits = Image_usage_flags.index_view
let image_usage_flag_bits_opt = Image_usage_flags.index_view_opt
module Image_create_info = struct type t type image_create_info = t
let t: t structure typ = structure "image_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" image_create_flags_opt
let image_type = field t "image_type" image_type
let format = field t "format" format
let extent = field t "extent" extent_3d
let mip_levels = field t "mip_levels" uint_32_t
let array_layers = field t "array_layers" uint_32_t
let samples = field t "samples" sample_count_flag_bits
let tiling = field t "tiling" image_tiling
let usage = field t "usage" image_usage_flags
let sharing_mode = field t "sharing_mode" sharing_mode
let queue_family_index_count = field t "queue_family_index_count" uint_32_t_opt
let queue_family_indices = field t "queue_family_indices" (ptr uint_32_t)
let initial_layout = field t "initial_layout" image_layout
end
let flags record = Ctypes.getf record Fields.flags
let image_type record = Ctypes.getf record Fields.image_type
let format record = Ctypes.getf record Fields.format
let extent record = Ctypes.getf record Fields.extent
let mip_levels record = Ctypes.getf record Fields.mip_levels
let array_layers record = Ctypes.getf record Fields.array_layers
let samples record = Ctypes.getf record Fields.samples
let tiling record = Ctypes.getf record Fields.tiling
let usage record = Ctypes.getf record Fields.usage
let sharing_mode record = Ctypes.getf record Fields.sharing_mode
let queue_family_indices record = match Ctypes.getf record Fields.queue_family_index_count, Ctypes.getf record Fields.queue_family_indices with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let initial_layout record = Ctypes.getf record Fields.initial_layout
let () = Ctypes.seal t
exception Unknown_record_extension
type image_create_info_extension = ..
type image_create_info_extension += | No_extension
| Image_swapchain_create_info_khx of image_swapchain_create_info_khx Ctypes.structure Ctypes.ptr
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~image_type:arg__image_type~format:arg__format~extent:arg__extent
~mip_levels:arg__mip_levels~array_layers:arg__array_layers
~samples:arg__samples~tiling:arg__tiling~usage:arg__usage
~sharing_mode:arg__sharing_mode
?queue_family_indices:arg__queue_family_indices
~initial_layout:arg__initial_layout ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Image_create_info, Ctypes.null
| Image_swapchain_create_info_khx x ->
Structure_type.Image_swapchain_create_info_khx,
Ctypes.( coerce (ptr image_swapchain_create_info_khx) (ptr void) x )
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.image_type arg__image_type;
Ctypes.setf generated__x__ Fields.format arg__format;
Ctypes.setf generated__x__ Fields.extent arg__extent;
Ctypes.setf generated__x__ Fields.mip_levels arg__mip_levels;
Ctypes.setf generated__x__ Fields.array_layers arg__array_layers;
Ctypes.setf generated__x__ Fields.samples arg__samples;
Ctypes.setf generated__x__ Fields.tiling arg__tiling;
Ctypes.setf generated__x__ Fields.usage arg__usage;
Ctypes.setf generated__x__ Fields.sharing_mode arg__sharing_mode;
begin match arg__queue_family_indices with
| None ->
(Ctypes.setf generated__x__ Fields.queue_family_index_count None;
Ctypes.setf generated__x__ Fields.queue_family_indices (Obj.magic @@ Ctypes.null))
|Some arg__queue_family_indices ->(Ctypes.setf generated__x__ Fields.queue_family_index_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__queue_family_indices)));
Ctypes.setf generated__x__ Fields.queue_family_indices (Ctypes.CArray.start arg__queue_family_indices))
end;
Ctypes.setf generated__x__ Fields.initial_layout arg__initial_layout;
Ctypes.addr generated__x__
end
let image_create_info = Image_create_info.t
type image_create_info = Image_create_info.t
module Texture_lod_gather_format_properties_amd = struct type t
type texture_lod_gather_format_properties_amd = t
let t: t structure typ = structure "texture_lod_gather_format_properties_amd"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let supports_texture_gather_lod_bias_amd = field t "supports_texture_gather_lod_bias_amd" bool_32
end
let supports_texture_gather_lod_bias_amd record = Ctypes.getf record Fields.supports_texture_gather_lod_bias_amd
let () = Ctypes.seal t
exception Unknown_record_extension
type texture_lod_gather_format_properties_amd_extension = ..
type texture_lod_gather_format_properties_amd_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~supports_texture_gather_lod_bias_amd:arg__supports_texture_gather_lod_bias_amd
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Texture_lod_gather_format_properties_amd, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.supports_texture_gather_lod_bias_amd arg__supports_texture_gather_lod_bias_amd;
Ctypes.addr generated__x__
end
let texture_lod_gather_format_properties_amd = Texture_lod_gather_format_properties_amd.t
type texture_lod_gather_format_properties_amd = Texture_lod_gather_format_properties_amd.t
module Image_format_properties_2_khr = struct type t
type image_format_properties_2_khr = t
let t: t structure typ = structure "image_format_properties_2_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let image_format_properties = field t "image_format_properties" image_format_properties
end
let image_format_properties record = Ctypes.getf record Fields.image_format_properties
let () = Ctypes.seal t
exception Unknown_record_extension
type image_format_properties_2_khr_extension = ..
type image_format_properties_2_khr_extension += | No_extension
| Texture_lod_gather_format_properties_amd of texture_lod_gather_format_properties_amd Ctypes.structure Ctypes.ptr
let make ?extension:(arg__ext=No_extension)
~image_format_properties:arg__image_format_properties ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Image_format_properties_2_khr, Ctypes.null
| Texture_lod_gather_format_properties_amd x ->
Structure_type.Texture_lod_gather_format_properties_amd,
Ctypes.( coerce (ptr texture_lod_gather_format_properties_amd) (ptr void) x )
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.image_format_properties arg__image_format_properties;
Ctypes.addr generated__x__
end
let image_format_properties_2_khr = Image_format_properties_2_khr.t
type image_format_properties_2_khr = Image_format_properties_2_khr.t
module Image_subresource_range = struct type t
type image_subresource_range = t
let t: t structure typ = structure "image_subresource_range"
module Fields=struct
let aspect_mask = field t "aspect_mask" image_aspect_flags
let base_mip_level = field t "base_mip_level" uint_32_t
let level_count = field t "level_count" uint_32_t
let base_array_layer = field t "base_array_layer" uint_32_t
let layer_count = field t "layer_count" uint_32_t
end
let aspect_mask record = Ctypes.getf record Fields.aspect_mask
let base_mip_level record = Ctypes.getf record Fields.base_mip_level
let level_count record = Ctypes.getf record Fields.level_count
let base_array_layer record = Ctypes.getf record Fields.base_array_layer
let layer_count record = Ctypes.getf record Fields.layer_count
let () = Ctypes.seal t
let make ~aspect_mask:arg__aspect_mask~base_mip_level:arg__base_mip_level
~level_count:arg__level_count~base_array_layer:arg__base_array_layer
~layer_count:arg__layer_count = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.aspect_mask arg__aspect_mask;
Ctypes.setf generated__x__ Fields.base_mip_level arg__base_mip_level;
Ctypes.setf generated__x__ Fields.level_count arg__level_count;
Ctypes.setf generated__x__ Fields.base_array_layer arg__base_array_layer;
Ctypes.setf generated__x__ Fields.layer_count arg__layer_count;
Ctypes.addr generated__x__ end
let image_subresource_range = Image_subresource_range.t
type image_subresource_range = Image_subresource_range.t
module Image_memory_barrier = struct type t type image_memory_barrier = t
let t: t structure typ = structure "image_memory_barrier"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let src_access_mask = field t "src_access_mask" access_flags_opt
let dst_access_mask = field t "dst_access_mask" access_flags_opt
let old_layout = field t "old_layout" image_layout
let new_layout = field t "new_layout" image_layout
let src_queue_family_index = field t "src_queue_family_index" uint_32_t
let dst_queue_family_index = field t "dst_queue_family_index" uint_32_t
let image = field t "image" image
let subresource_range = field t "subresource_range" image_subresource_range
end
let src_access_mask record = Ctypes.getf record Fields.src_access_mask
let dst_access_mask record = Ctypes.getf record Fields.dst_access_mask
let old_layout record = Ctypes.getf record Fields.old_layout
let new_layout record = Ctypes.getf record Fields.new_layout
let src_queue_family_index record = Ctypes.getf record Fields.src_queue_family_index
let dst_queue_family_index record = Ctypes.getf record Fields.dst_queue_family_index
let image record = Ctypes.getf record Fields.image
let subresource_range record = Ctypes.getf record Fields.subresource_range
let () = Ctypes.seal t
exception Unknown_record_extension
type image_memory_barrier_extension = ..
type image_memory_barrier_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
?src_access_mask:arg__src_access_mask?dst_access_mask:arg__dst_access_mask
~old_layout:arg__old_layout~new_layout:arg__new_layout
~src_queue_family_index:arg__src_queue_family_index
~dst_queue_family_index:arg__dst_queue_family_index~image:arg__image
~subresource_range:arg__subresource_range ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Image_memory_barrier, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.src_access_mask arg__src_access_mask;
Ctypes.setf generated__x__ Fields.dst_access_mask arg__dst_access_mask;
Ctypes.setf generated__x__ Fields.old_layout arg__old_layout;
Ctypes.setf generated__x__ Fields.new_layout arg__new_layout;
Ctypes.setf generated__x__ Fields.src_queue_family_index arg__src_queue_family_index;
Ctypes.setf generated__x__ Fields.dst_queue_family_index arg__dst_queue_family_index;
Ctypes.setf generated__x__ Fields.image arg__image;
Ctypes.setf generated__x__ Fields.subresource_range arg__subresource_range;
Ctypes.addr generated__x__
end
let image_memory_barrier = Image_memory_barrier.t
type image_memory_barrier = Image_memory_barrier.t
module Image_resolve = struct type t type image_resolve = t
let t: t structure typ = structure "image_resolve"
module Fields=struct
let src_subresource = field t "src_subresource" image_subresource_layers
let src_offset = field t "src_offset" offset_3d
let dst_subresource = field t "dst_subresource" image_subresource_layers
let dst_offset = field t "dst_offset" offset_3d
let extent = field t "extent" extent_3d
end
let src_subresource record = Ctypes.getf record Fields.src_subresource
let src_offset record = Ctypes.getf record Fields.src_offset
let dst_subresource record = Ctypes.getf record Fields.dst_subresource
let dst_offset record = Ctypes.getf record Fields.dst_offset
let extent record = Ctypes.getf record Fields.extent
let () = Ctypes.seal t
let make ~src_subresource:arg__src_subresource~src_offset:arg__src_offset
~dst_subresource:arg__dst_subresource~dst_offset:arg__dst_offset
~extent:arg__extent = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.src_subresource arg__src_subresource;
Ctypes.setf generated__x__ Fields.src_offset arg__src_offset;
Ctypes.setf generated__x__ Fields.dst_subresource arg__dst_subresource;
Ctypes.setf generated__x__ Fields.dst_offset arg__dst_offset;
Ctypes.setf generated__x__ Fields.extent arg__extent;
Ctypes.addr generated__x__ end
let image_resolve = Image_resolve.t
type image_resolve = Image_resolve.t
module Image_view_create_flags = Bitset.Make()
type image_view_create_flags = Image_view_create_flags.t
let image_view_create_flags, image_view_create_flags_opt = Image_view_create_flags.(view, view_opt)
let image_view_create_flag_bits = Image_view_create_flags.index_view
let image_view_create_flag_bits_opt = Image_view_create_flags.index_view_opt
module Image_view_type = struct
type t = | N1d
| N2d
| N3d
| Cube
| N1d_array
| N2d_array
| Cube_array
let to_int = function
| N1d -> 0
| N2d -> 1
| N3d -> 2
| Cube -> 3
| N1d_array -> 4
| N2d_array -> 5
| Cube_array -> 6
let of_int = function
| 0 -> N1d
| 1 -> N2d
| 2 -> N3d
| 3 -> Cube
| 4 -> N1d_array
| 5 -> N2d_array
| 6 -> Cube_array
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| N1d -> "N1d"
| N2d -> "N2d"
| N3d -> "N3d"
| Cube -> "Cube"
| N1d_array -> "N1d_array"
| N2d_array -> "N2d_array"
| Cube_array -> "Cube_array")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let image_view_type, image_view_type_opt = Image_view_type.(view,view_opt)
type image_view_type = Image_view_type.t
module Image_view_create_info = struct type t
type image_view_create_info = t
let t: t structure typ = structure "image_view_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" image_view_create_flags_opt
let image = field t "image" image
let view_type = field t "view_type" image_view_type
let format = field t "format" format
let components = field t "components" component_mapping
let subresource_range = field t "subresource_range" image_subresource_range
end
let flags record = Ctypes.getf record Fields.flags
let image record = Ctypes.getf record Fields.image
let view_type record = Ctypes.getf record Fields.view_type
let format record = Ctypes.getf record Fields.format
let components record = Ctypes.getf record Fields.components
let subresource_range record = Ctypes.getf record Fields.subresource_range
let () = Ctypes.seal t
exception Unknown_record_extension
type image_view_create_info_extension = ..
type image_view_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags~image:arg__image
~view_type:arg__view_type~format:arg__format~components:arg__components
~subresource_range:arg__subresource_range ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Image_view_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.image arg__image;
Ctypes.setf generated__x__ Fields.view_type arg__view_type;
Ctypes.setf generated__x__ Fields.format arg__format;
Ctypes.setf generated__x__ Fields.components arg__components;
Ctypes.setf generated__x__ Fields.subresource_range arg__subresource_range;
Ctypes.addr generated__x__
end
let image_view_create_info = Image_view_create_info.t
type image_view_create_info = Image_view_create_info.t
module Import_memory_fd_info_khx = struct type t
type import_memory_fd_info_khx = t
let t: t structure typ = structure "import_memory_fd_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let handle_type = field t "handle_type" external_memory_handle_type_flag_bits_khx_opt
let fd = field t "fd" int
end
let handle_type record = Ctypes.getf record Fields.handle_type
let fd record = Ctypes.getf record Fields.fd let () = Ctypes.seal t
exception Unknown_record_extension
type import_memory_fd_info_khx_extension = ..
type import_memory_fd_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?handle_type:arg__handle_type
~fd:arg__fd ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Import_memory_fd_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.handle_type arg__handle_type;
Ctypes.setf generated__x__ Fields.fd arg__fd; Ctypes.addr generated__x__
end
let import_memory_fd_info_khx = Import_memory_fd_info_khx.t
type import_memory_fd_info_khx = Import_memory_fd_info_khx.t
module Import_semaphore_fd_info_khx = struct type t
type import_semaphore_fd_info_khx = t
let t: t structure typ = structure "import_semaphore_fd_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let semaphore = field t "semaphore" semaphore
let handle_type = field t "handle_type" external_semaphore_handle_type_flag_bits_khx
let fd = field t "fd" int
end
let semaphore record = Ctypes.getf record Fields.semaphore
let handle_type record = Ctypes.getf record Fields.handle_type
let fd record = Ctypes.getf record Fields.fd let () = Ctypes.seal t
exception Unknown_record_extension
type import_semaphore_fd_info_khx_extension = ..
type import_semaphore_fd_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~semaphore:arg__semaphore
~handle_type:arg__handle_type~fd:arg__fd ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Import_semaphore_fd_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.semaphore arg__semaphore;
Ctypes.setf generated__x__ Fields.handle_type arg__handle_type;
Ctypes.setf generated__x__ Fields.fd arg__fd; Ctypes.addr generated__x__
end
let import_semaphore_fd_info_khx = Import_semaphore_fd_info_khx.t
type import_semaphore_fd_info_khx = Import_semaphore_fd_info_khx.t
module Index_type = struct
type t = | Uint_16
| Uint_32
let to_int = function
| Uint_16 -> 0
| Uint_32 -> 1
let of_int = function
| 0 -> Uint_16
| 1 -> Uint_32
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Uint_16 -> "Uint_16"
| Uint_32 -> "Uint_32")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let index_type, index_type_opt = Index_type.(view,view_opt)
type index_type = Index_type.t
module Indirect_commands_layout_usage_flags_nvx = struct
include Bitset.Make()
let indexed_sequences = make_index 3
let empty_executions = make_index 2
let sparse_sequences = make_index 1
let unordered_sequences = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem indexed_sequences set then
Printer.fprintf ppf "indexed_sequences;@ "
else ();
if mem empty_executions set then
Printer.fprintf ppf "empty_executions;@ "
else ();
if mem sparse_sequences set then
Printer.fprintf ppf "sparse_sequences;@ "
else ();
if mem unordered_sequences set then
Printer.fprintf ppf "unordered_sequences;@ "
else ();
Printer.fprintf ppf "}@]"
end
type indirect_commands_layout_usage_flags_nvx = Indirect_commands_layout_usage_flags_nvx.t
let indirect_commands_layout_usage_flags_nvx, indirect_commands_layout_usage_flags_nvx_opt = Indirect_commands_layout_usage_flags_nvx.(view, view_opt)
let indirect_commands_layout_usage_flag_bits_nvx = Indirect_commands_layout_usage_flags_nvx.index_view
let indirect_commands_layout_usage_flag_bits_nvx_opt = Indirect_commands_layout_usage_flags_nvx.index_view_opt
module Indirect_commands_layout_token_nvx = struct type t
type indirect_commands_layout_token_nvx = t
let t: t structure typ = structure "indirect_commands_layout_token_nvx"
module Fields=struct
let token_type = field t "token_type" indirect_commands_token_type_nvx
let binding_unit = field t "binding_unit" uint_32_t
let dynamic_count = field t "dynamic_count" uint_32_t
let divisor = field t "divisor" uint_32_t
end
let token_type record = Ctypes.getf record Fields.token_type
let binding_unit record = Ctypes.getf record Fields.binding_unit
let dynamic_count record = Ctypes.getf record Fields.dynamic_count
let divisor record = Ctypes.getf record Fields.divisor
let () = Ctypes.seal t
let make ~token_type:arg__token_type~binding_unit:arg__binding_unit
~dynamic_count:arg__dynamic_count~divisor:arg__divisor =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.token_type arg__token_type;
Ctypes.setf generated__x__ Fields.binding_unit arg__binding_unit;
Ctypes.setf generated__x__ Fields.dynamic_count arg__dynamic_count;
Ctypes.setf generated__x__ Fields.divisor arg__divisor;
Ctypes.addr generated__x__ end
let indirect_commands_layout_token_nvx = Indirect_commands_layout_token_nvx.t
type indirect_commands_layout_token_nvx = Indirect_commands_layout_token_nvx.t
module Indirect_commands_layout_create_info_nvx = struct type t
type indirect_commands_layout_create_info_nvx = t
let t: t structure typ = structure "indirect_commands_layout_create_info_nvx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let pipeline_bind_point = field t "pipeline_bind_point" pipeline_bind_point
let flags = field t "flags" indirect_commands_layout_usage_flags_nvx
let token_count = field t "token_count" uint_32_t
let tokens = field t "tokens" (ptr indirect_commands_layout_token_nvx)
end
let pipeline_bind_point record = Ctypes.getf record Fields.pipeline_bind_point
let flags record = Ctypes.getf record Fields.flags
let tokens record = let token_count = Ctypes.getf record Fields.token_count and tokens = Ctypes.getf record Fields.tokens in
Ctypes.CArray.from_ptr (tokens) (Uint_32_t.to_int (token_count))
let () = Ctypes.seal t
exception Unknown_record_extension
type indirect_commands_layout_create_info_nvx_extension = ..
type indirect_commands_layout_create_info_nvx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~pipeline_bind_point:arg__pipeline_bind_point~flags:arg__flags
~tokens:arg__tokens ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Indirect_commands_layout_create_info_nvx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.pipeline_bind_point arg__pipeline_bind_point;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.token_count (Uint_32_t.of_int(Ctypes.CArray.length arg__tokens));
Ctypes.setf generated__x__ Fields.tokens (Ctypes.CArray.start arg__tokens);
Ctypes.addr generated__x__
end
let indirect_commands_layout_create_info_nvx = Indirect_commands_layout_create_info_nvx.t
type indirect_commands_layout_create_info_nvx = Indirect_commands_layout_create_info_nvx.t
module Instance = Handle.Make()
type instance = Instance.t
let instance, instance_opt = Instance.(view,view_opt)
module Instance_create_flags = Bitset.Make()
type instance_create_flags = Instance_create_flags.t
let instance_create_flags, instance_create_flags_opt = Instance_create_flags.(view, view_opt)
let instance_create_flag_bits = Instance_create_flags.index_view
let instance_create_flag_bits_opt = Instance_create_flags.index_view_opt
module Instance_create_info = struct type t type instance_create_info = t
let t: t structure typ = structure "instance_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" instance_create_flags_opt
let application_info = field t "application_info" (ptr_opt (application_info))
let enabled_layer_count = field t "enabled_layer_count" uint_32_t_opt
let enabled_layer_names = field t "enabled_layer_names" (ptr (string))
let enabled_extension_count = field t "enabled_extension_count" uint_32_t_opt
let enabled_extension_names = field t "enabled_extension_names" (ptr (string))
end
let flags record = Ctypes.getf record Fields.flags
let application_info record = Ctypes.getf record Fields.application_info
let enabled_layer_names record = match Ctypes.getf record Fields.enabled_layer_count, Ctypes.getf record Fields.enabled_layer_names with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let enabled_extension_names record = match Ctypes.getf record Fields.enabled_extension_count, Ctypes.getf record Fields.enabled_extension_names with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type instance_create_info_extension = ..
type instance_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
?application_info:arg__application_info
?enabled_layer_names:arg__enabled_layer_names
?enabled_extension_names:arg__enabled_extension_names ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Instance_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.application_info arg__application_info;
begin match arg__enabled_layer_names with
| None ->
(Ctypes.setf generated__x__ Fields.enabled_layer_count None;
Ctypes.setf generated__x__ Fields.enabled_layer_names (Obj.magic @@ Ctypes.null))
|Some arg__enabled_layer_names ->(Ctypes.setf generated__x__ Fields.enabled_layer_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__enabled_layer_names)));
Ctypes.setf generated__x__ Fields.enabled_layer_names (Ctypes.CArray.start arg__enabled_layer_names))
end;
begin match arg__enabled_extension_names with
| None ->
(Ctypes.setf generated__x__ Fields.enabled_extension_count None;
Ctypes.setf generated__x__ Fields.enabled_extension_names (Obj.magic @@ Ctypes.null))
|Some arg__enabled_extension_names ->(Ctypes.setf generated__x__ Fields.enabled_extension_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__enabled_extension_names)));
Ctypes.setf generated__x__ Fields.enabled_extension_names (Ctypes.CArray.start arg__enabled_extension_names))
end;
Ctypes.addr generated__x__
end
let instance_create_info = Instance_create_info.t
type instance_create_info = Instance_create_info.t
module Layer_properties = struct type t type layer_properties = t
let t: t structure typ = structure "layer_properties"
module Fields=struct
let layer_name = field t "layer_name" (array max_extension_name_size @@ char)
let spec_version = field t "spec_version" uint_32_t
let implementation_version = field t "implementation_version" uint_32_t
let description = field t "description" (array max_description_size @@ char)
end
let layer_name record = Ctypes.string_from_ptr
(Ctypes.CArray.start @@ Ctypes.getf record Fields.layer_name)
max_extension_name_size
let spec_version record = Ctypes.getf record Fields.spec_version
let implementation_version record = Ctypes.getf record Fields.implementation_version
let description record = Ctypes.string_from_ptr
(Ctypes.CArray.start @@ Ctypes.getf record Fields.description)
max_description_size let () = Ctypes.seal t
let make ~layer_name:arg__layer_name~spec_version:arg__spec_version
~implementation_version:arg__implementation_version
~description:arg__description = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.layer_name arg__layer_name;
Ctypes.setf generated__x__ Fields.spec_version arg__spec_version;
Ctypes.setf generated__x__ Fields.implementation_version arg__implementation_version;
Ctypes.setf generated__x__ Fields.description arg__description;
Ctypes.addr generated__x__ end
let layer_properties = Layer_properties.t
type layer_properties = Layer_properties.t
module Macos_surface_create_flags_mvk = Bitset.Make()
type macos_surface_create_flags_mvk = Macos_surface_create_flags_mvk.t
let macos_surface_create_flags_mvk, macos_surface_create_flags_mvk_opt = Macos_surface_create_flags_mvk.(view, view_opt)
let macos_surface_create_flag_bits_mvk = Macos_surface_create_flags_mvk.index_view
let macos_surface_create_flag_bits_mvk_opt = Macos_surface_create_flags_mvk.index_view_opt
module Macos_surface_create_info_mvk = struct type t
type macos_surface_create_info_mvk = t
let t: t structure typ = structure "macos_surface_create_info_mvk"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" macos_surface_create_flags_mvk_opt
let view = field t "view" (ptr void)
end
let flags record = Ctypes.getf record Fields.flags
let view record = Ctypes.getf record Fields.view let () = Ctypes.seal t
exception Unknown_record_extension
type macos_surface_create_info_mvk_extension = ..
type macos_surface_create_info_mvk_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags~view:arg__view
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Macos_surface_create_info_mvk, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.view arg__view; Ctypes.addr generated__x__
end
let macos_surface_create_info_mvk = Macos_surface_create_info_mvk.t
type macos_surface_create_info_mvk = Macos_surface_create_info_mvk.t
module Mapped_memory_range = struct type t type mapped_memory_range = t
let t: t structure typ = structure "mapped_memory_range"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let memory = field t "memory" device_memory
let offset = field t "offset" device_size
let size = field t "size" device_size
end
let memory record = Ctypes.getf record Fields.memory
let offset record = Ctypes.getf record Fields.offset
let size record = Ctypes.getf record Fields.size let () = Ctypes.seal t
exception Unknown_record_extension
type mapped_memory_range_extension = ..
type mapped_memory_range_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~memory:arg__memory
~offset:arg__offset~size:arg__size ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Mapped_memory_range, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.memory arg__memory;
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.setf generated__x__ Fields.size arg__size; Ctypes.addr generated__x__
end
let mapped_memory_range = Mapped_memory_range.t
type mapped_memory_range = Mapped_memory_range.t
module Memory_allocate_flags_khx = struct
include Bitset.Make()
let device_mask = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem device_mask set then
Printer.fprintf ppf "device_mask;@ "
else ();
Printer.fprintf ppf "}@]"
end
type memory_allocate_flags_khx = Memory_allocate_flags_khx.t
let memory_allocate_flags_khx, memory_allocate_flags_khx_opt = Memory_allocate_flags_khx.(view, view_opt)
let memory_allocate_flag_bits_khx = Memory_allocate_flags_khx.index_view
let memory_allocate_flag_bits_khx_opt = Memory_allocate_flags_khx.index_view_opt
module Memory_allocate_flags_info_khx = struct type t
type memory_allocate_flags_info_khx = t
let t: t structure typ = structure "memory_allocate_flags_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" memory_allocate_flags_khx_opt
let device_mask = field t "device_mask" uint_32_t
end
let flags record = Ctypes.getf record Fields.flags
let device_mask record = Ctypes.getf record Fields.device_mask
let () = Ctypes.seal t
exception Unknown_record_extension
type memory_allocate_flags_info_khx_extension = ..
type memory_allocate_flags_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~device_mask:arg__device_mask ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Memory_allocate_flags_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.device_mask arg__device_mask;
Ctypes.addr generated__x__
end
let memory_allocate_flags_info_khx = Memory_allocate_flags_info_khx.t
type memory_allocate_flags_info_khx = Memory_allocate_flags_info_khx.t
module Memory_allocate_info = struct type t type memory_allocate_info = t
let t: t structure typ = structure "memory_allocate_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let allocation_size = field t "allocation_size" device_size
let memory_type_index = field t "memory_type_index" uint_32_t
end
let allocation_size record = Ctypes.getf record Fields.allocation_size
let memory_type_index record = Ctypes.getf record Fields.memory_type_index
let () = Ctypes.seal t
exception Unknown_record_extension
type memory_allocate_info_extension = ..
type memory_allocate_info_extension += | No_extension
| Memory_allocate_flags_info_khx of memory_allocate_flags_info_khx Ctypes.structure Ctypes.ptr
let make ?extension:(arg__ext=No_extension)
~allocation_size:arg__allocation_size
~memory_type_index:arg__memory_type_index ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Memory_allocate_info, Ctypes.null
| Memory_allocate_flags_info_khx x ->
Structure_type.Memory_allocate_flags_info_khx,
Ctypes.( coerce (ptr memory_allocate_flags_info_khx) (ptr void) x )
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.allocation_size arg__allocation_size;
Ctypes.setf generated__x__ Fields.memory_type_index arg__memory_type_index;
Ctypes.addr generated__x__
end
let memory_allocate_info = Memory_allocate_info.t
type memory_allocate_info = Memory_allocate_info.t
module Memory_barrier = struct type t type memory_barrier = t
let t: t structure typ = structure "memory_barrier"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let src_access_mask = field t "src_access_mask" access_flags_opt
let dst_access_mask = field t "dst_access_mask" access_flags_opt
end
let src_access_mask record = Ctypes.getf record Fields.src_access_mask
let dst_access_mask record = Ctypes.getf record Fields.dst_access_mask
let () = Ctypes.seal t
exception Unknown_record_extension
type memory_barrier_extension = ..
type memory_barrier_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
?src_access_mask:arg__src_access_mask?dst_access_mask:arg__dst_access_mask
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Memory_barrier, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.src_access_mask arg__src_access_mask;
Ctypes.setf generated__x__ Fields.dst_access_mask arg__dst_access_mask;
Ctypes.addr generated__x__
end
let memory_barrier = Memory_barrier.t
type memory_barrier = Memory_barrier.t
module Memory_fd_properties_khx = struct type t
type memory_fd_properties_khx = t
let t: t structure typ = structure "memory_fd_properties_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let memory_type_bits = field t "memory_type_bits" uint_32_t
end
let memory_type_bits record = Ctypes.getf record Fields.memory_type_bits
let () = Ctypes.seal t
exception Unknown_record_extension
type memory_fd_properties_khx_extension = ..
type memory_fd_properties_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~memory_type_bits:arg__memory_type_bits ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Memory_fd_properties_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.memory_type_bits arg__memory_type_bits;
Ctypes.addr generated__x__
end
let memory_fd_properties_khx = Memory_fd_properties_khx.t
type memory_fd_properties_khx = Memory_fd_properties_khx.t
module Memory_heap_flags = struct
include Bitset.Make()
let multi_instance_bit_khx = make_index 1
let device_local = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem multi_instance_bit_khx set then
Printer.fprintf ppf "multi_instance_bit_khx;@ "
else ();
if mem device_local set then
Printer.fprintf ppf "device_local;@ "
else ();
Printer.fprintf ppf "}@]"
end
type memory_heap_flags = Memory_heap_flags.t
let memory_heap_flags, memory_heap_flags_opt = Memory_heap_flags.(view, view_opt)
let memory_heap_flag_bits = Memory_heap_flags.index_view
let memory_heap_flag_bits_opt = Memory_heap_flags.index_view_opt
module Memory_heap = struct type t type memory_heap = t
let t: t structure typ = structure "memory_heap"
module Fields=struct
let size = field t "size" device_size
let flags = field t "flags" memory_heap_flags_opt
end
let size record = Ctypes.getf record Fields.size
let flags record = Ctypes.getf record Fields.flags
let () = Ctypes.seal t
let make ~size:arg__size?flags:arg__flags ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.size arg__size;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.addr generated__x__ end
let memory_heap = Memory_heap.t
type memory_heap = Memory_heap.t
module Memory_map_flags = Bitset.Make()
type memory_map_flags = Memory_map_flags.t
let memory_map_flags, memory_map_flags_opt = Memory_map_flags.(view, view_opt)
let memory_map_flag_bits = Memory_map_flags.index_view
let memory_map_flag_bits_opt = Memory_map_flags.index_view_opt
module Memory_property_flags = struct
include Bitset.Make()
let lazily_allocated = make_index 4
let host_cached = make_index 3
let host_coherent = make_index 2
let host_visible = make_index 1
let device_local = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem lazily_allocated set then
Printer.fprintf ppf "lazily_allocated;@ "
else ();
if mem host_cached set then
Printer.fprintf ppf "host_cached;@ "
else ();
if mem host_coherent set then
Printer.fprintf ppf "host_coherent;@ "
else ();
if mem host_visible set then
Printer.fprintf ppf "host_visible;@ "
else ();
if mem device_local set then
Printer.fprintf ppf "device_local;@ "
else ();
Printer.fprintf ppf "}@]"
end
type memory_property_flags = Memory_property_flags.t
let memory_property_flags, memory_property_flags_opt = Memory_property_flags.(view, view_opt)
let memory_property_flag_bits = Memory_property_flags.index_view
let memory_property_flag_bits_opt = Memory_property_flags.index_view_opt
module Memory_requirements = struct type t type memory_requirements = t
let t: t structure typ = structure "memory_requirements"
module Fields=struct
let size = field t "size" device_size
let alignment = field t "alignment" device_size
let memory_type_bits = field t "memory_type_bits" uint_32_t
end
let size record = Ctypes.getf record Fields.size
let alignment record = Ctypes.getf record Fields.alignment
let memory_type_bits record = Ctypes.getf record Fields.memory_type_bits
let () = Ctypes.seal t
let make ~size:arg__size~alignment:arg__alignment
~memory_type_bits:arg__memory_type_bits =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.size arg__size;
Ctypes.setf generated__x__ Fields.alignment arg__alignment;
Ctypes.setf generated__x__ Fields.memory_type_bits arg__memory_type_bits;
Ctypes.addr generated__x__ end
let memory_requirements = Memory_requirements.t
type memory_requirements = Memory_requirements.t
module Memory_type = struct type t type memory_type = t
let t: t structure typ = structure "memory_type"
module Fields=struct
let property_flags = field t "property_flags" memory_property_flags_opt
let heap_index = field t "heap_index" uint_32_t
end
let property_flags record = Ctypes.getf record Fields.property_flags
let heap_index record = Ctypes.getf record Fields.heap_index
let () = Ctypes.seal t
let make ?property_flags:arg__property_flags~heap_index:arg__heap_index ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.property_flags arg__property_flags;
Ctypes.setf generated__x__ Fields.heap_index arg__heap_index;
Ctypes.addr generated__x__ end
let memory_type = Memory_type.t
type memory_type = Memory_type.t
module Object_entry_type_nvx = struct
type t = | Object_entry_descriptor_set
| Object_entry_pipeline
| Object_entry_index_buffer
| Object_entry_vertex_buffer
| Object_entry_push_constant
let to_int = function
| Object_entry_descriptor_set -> 0
| Object_entry_pipeline -> 1
| Object_entry_index_buffer -> 2
| Object_entry_vertex_buffer -> 3
| Object_entry_push_constant -> 4
let of_int = function
| 0 -> Object_entry_descriptor_set
| 1 -> Object_entry_pipeline
| 2 -> Object_entry_index_buffer
| 3 -> Object_entry_vertex_buffer
| 4 -> Object_entry_push_constant
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Object_entry_descriptor_set -> "Object_entry_descriptor_set"
| Object_entry_pipeline -> "Object_entry_pipeline"
| Object_entry_index_buffer -> "Object_entry_index_buffer"
| Object_entry_vertex_buffer -> "Object_entry_vertex_buffer"
| Object_entry_push_constant -> "Object_entry_push_constant")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let object_entry_type_nvx, object_entry_type_nvx_opt = Object_entry_type_nvx.(view,view_opt)
type object_entry_type_nvx = Object_entry_type_nvx.t
module Object_entry_usage_flags_nvx = struct
include Bitset.Make()
let compute = make_index 1
let graphics = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem compute set then
Printer.fprintf ppf "compute;@ "
else ();
if mem graphics set then
Printer.fprintf ppf "graphics;@ "
else ();
Printer.fprintf ppf "}@]"
end
type object_entry_usage_flags_nvx = Object_entry_usage_flags_nvx.t
let object_entry_usage_flags_nvx, object_entry_usage_flags_nvx_opt = Object_entry_usage_flags_nvx.(view, view_opt)
let object_entry_usage_flag_bits_nvx = Object_entry_usage_flags_nvx.index_view
let object_entry_usage_flag_bits_nvx_opt = Object_entry_usage_flags_nvx.index_view_opt
module Object_table_create_info_nvx = struct type t
type object_table_create_info_nvx = t
let t: t structure typ = structure "object_table_create_info_nvx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let object_count = field t "object_count" uint_32_t
let object_entry_types = field t "object_entry_types" (ptr object_entry_type_nvx)
let object_entry_counts = field t "object_entry_counts" (ptr uint_32_t)
let object_entry_usage_flags = field t "object_entry_usage_flags" (ptr object_entry_usage_flags_nvx)
let max_uniform_buffers_per_descriptor = field t "max_uniform_buffers_per_descriptor" uint_32_t
let max_storage_buffers_per_descriptor = field t "max_storage_buffers_per_descriptor" uint_32_t
let max_storage_images_per_descriptor = field t "max_storage_images_per_descriptor" uint_32_t
let max_sampled_images_per_descriptor = field t "max_sampled_images_per_descriptor" uint_32_t
let max_pipeline_layouts = field t "max_pipeline_layouts" uint_32_t
end
let object_entry_types record = let object_count = Ctypes.getf record Fields.object_count and object_entry_types = Ctypes.getf record Fields.object_entry_types in
Ctypes.CArray.from_ptr (object_entry_types) (Uint_32_t.to_int (object_count))
let object_entry_counts record = let a = Ctypes.getf record Fields.object_entry_counts in
let i = Ctypes.getf record Fields.object_count in
Ctypes.CArray.from_ptr (a) (i)
let object_entry_usage_flags record = let a = Ctypes.getf record Fields.object_entry_usage_flags in
let i = Ctypes.getf record Fields.object_count in
Ctypes.CArray.from_ptr (a) (i)
let max_uniform_buffers_per_descriptor record = Ctypes.getf record Fields.max_uniform_buffers_per_descriptor
let max_storage_buffers_per_descriptor record = Ctypes.getf record Fields.max_storage_buffers_per_descriptor
let max_storage_images_per_descriptor record = Ctypes.getf record Fields.max_storage_images_per_descriptor
let max_sampled_images_per_descriptor record = Ctypes.getf record Fields.max_sampled_images_per_descriptor
let max_pipeline_layouts record = Ctypes.getf record Fields.max_pipeline_layouts
let () = Ctypes.seal t
exception Unknown_record_extension
type object_table_create_info_nvx_extension = ..
type object_table_create_info_nvx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~object_entry_types:arg__object_entry_types
~object_entry_counts:arg__object_entry_counts
~object_entry_usage_flags:arg__object_entry_usage_flags
~max_uniform_buffers_per_descriptor:arg__max_uniform_buffers_per_descriptor
~max_storage_buffers_per_descriptor:arg__max_storage_buffers_per_descriptor
~max_storage_images_per_descriptor:arg__max_storage_images_per_descriptor
~max_sampled_images_per_descriptor:arg__max_sampled_images_per_descriptor
~max_pipeline_layouts:arg__max_pipeline_layouts ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Object_table_create_info_nvx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.object_count (Uint_32_t.of_int(Ctypes.CArray.length arg__object_entry_types));
Ctypes.setf generated__x__ Fields.object_entry_types (Ctypes.CArray.start arg__object_entry_types);
Ctypes.setf generated__x__ Fields.object_entry_counts arg__object_entry_counts;
Ctypes.setf generated__x__ Fields.object_entry_usage_flags arg__object_entry_usage_flags;
Ctypes.setf generated__x__ Fields.max_uniform_buffers_per_descriptor arg__max_uniform_buffers_per_descriptor;
Ctypes.setf generated__x__ Fields.max_storage_buffers_per_descriptor arg__max_storage_buffers_per_descriptor;
Ctypes.setf generated__x__ Fields.max_storage_images_per_descriptor arg__max_storage_images_per_descriptor;
Ctypes.setf generated__x__ Fields.max_sampled_images_per_descriptor arg__max_sampled_images_per_descriptor;
Ctypes.setf generated__x__ Fields.max_pipeline_layouts arg__max_pipeline_layouts;
Ctypes.addr generated__x__
end
let object_table_create_info_nvx = Object_table_create_info_nvx.t
type object_table_create_info_nvx = Object_table_create_info_nvx.t
module Object_table_descriptor_set_entry_nvx = struct type t
type object_table_descriptor_set_entry_nvx = t
let t: t structure typ = structure "object_table_descriptor_set_entry_nvx"
module Fields=struct
let typ = field t "typ" object_entry_type_nvx
let flags = field t "flags" object_entry_usage_flags_nvx
let pipeline_layout = field t "pipeline_layout" pipeline_layout
let descriptor_set = field t "descriptor_set" descriptor_set
end
let typ record = Ctypes.getf record Fields.typ
let flags record = Ctypes.getf record Fields.flags
let pipeline_layout record = Ctypes.getf record Fields.pipeline_layout
let descriptor_set record = Ctypes.getf record Fields.descriptor_set
let () = Ctypes.seal t
let make ~typ:arg__typ~flags:arg__flags
~pipeline_layout:arg__pipeline_layout~descriptor_set:arg__descriptor_set =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.typ arg__typ;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.pipeline_layout arg__pipeline_layout;
Ctypes.setf generated__x__ Fields.descriptor_set arg__descriptor_set;
Ctypes.addr generated__x__ end
let object_table_descriptor_set_entry_nvx = Object_table_descriptor_set_entry_nvx.t
type object_table_descriptor_set_entry_nvx = Object_table_descriptor_set_entry_nvx.t
module Object_table_entry_nvx = struct type t
type object_table_entry_nvx = t
let t: t structure typ = structure "object_table_entry_nvx"
module Fields=struct
let typ = field t "typ" object_entry_type_nvx
let flags = field t "flags" object_entry_usage_flags_nvx
end
let typ record = Ctypes.getf record Fields.typ
let flags record = Ctypes.getf record Fields.flags let () = Ctypes.seal t
let make ~typ:arg__typ~flags:arg__flags =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.typ arg__typ;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.addr generated__x__ end
let object_table_entry_nvx = Object_table_entry_nvx.t
type object_table_entry_nvx = Object_table_entry_nvx.t
module Object_table_index_buffer_entry_nvx = struct type t
type object_table_index_buffer_entry_nvx = t
let t: t structure typ = structure "object_table_index_buffer_entry_nvx"
module Fields=struct
let typ = field t "typ" object_entry_type_nvx
let flags = field t "flags" object_entry_usage_flags_nvx
let buffer = field t "buffer" buffer
let index_type = field t "index_type" index_type
end
let typ record = Ctypes.getf record Fields.typ
let flags record = Ctypes.getf record Fields.flags
let buffer record = Ctypes.getf record Fields.buffer
let index_type record = Ctypes.getf record Fields.index_type
let () = Ctypes.seal t
let make ~typ:arg__typ~flags:arg__flags~buffer:arg__buffer
~index_type:arg__index_type = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.typ arg__typ;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.buffer arg__buffer;
Ctypes.setf generated__x__ Fields.index_type arg__index_type;
Ctypes.addr generated__x__ end
let object_table_index_buffer_entry_nvx = Object_table_index_buffer_entry_nvx.t
type object_table_index_buffer_entry_nvx = Object_table_index_buffer_entry_nvx.t
module Object_table_pipeline_entry_nvx = struct type t
type object_table_pipeline_entry_nvx = t
let t: t structure typ = structure "object_table_pipeline_entry_nvx"
module Fields=struct
let typ = field t "typ" object_entry_type_nvx
let flags = field t "flags" object_entry_usage_flags_nvx
let pipeline = field t "pipeline" pipeline
end
let typ record = Ctypes.getf record Fields.typ
let flags record = Ctypes.getf record Fields.flags
let pipeline record = Ctypes.getf record Fields.pipeline
let () = Ctypes.seal t
let make ~typ:arg__typ~flags:arg__flags~pipeline:arg__pipeline =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.typ arg__typ;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.pipeline arg__pipeline;
Ctypes.addr generated__x__ end
let object_table_pipeline_entry_nvx = Object_table_pipeline_entry_nvx.t
type object_table_pipeline_entry_nvx = Object_table_pipeline_entry_nvx.t
module Object_table_push_constant_entry_nvx = struct type t
type object_table_push_constant_entry_nvx = t
let t: t structure typ = structure "object_table_push_constant_entry_nvx"
module Fields=struct
let typ = field t "typ" object_entry_type_nvx
let flags = field t "flags" object_entry_usage_flags_nvx
let pipeline_layout = field t "pipeline_layout" pipeline_layout
let stage_flags = field t "stage_flags" shader_stage_flags
end
let typ record = Ctypes.getf record Fields.typ
let flags record = Ctypes.getf record Fields.flags
let pipeline_layout record = Ctypes.getf record Fields.pipeline_layout
let stage_flags record = Ctypes.getf record Fields.stage_flags
let () = Ctypes.seal t
let make ~typ:arg__typ~flags:arg__flags
~pipeline_layout:arg__pipeline_layout~stage_flags:arg__stage_flags =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.typ arg__typ;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.pipeline_layout arg__pipeline_layout;
Ctypes.setf generated__x__ Fields.stage_flags arg__stage_flags;
Ctypes.addr generated__x__ end
let object_table_push_constant_entry_nvx = Object_table_push_constant_entry_nvx.t
type object_table_push_constant_entry_nvx = Object_table_push_constant_entry_nvx.t
module Object_table_vertex_buffer_entry_nvx = struct type t
type object_table_vertex_buffer_entry_nvx = t
let t: t structure typ = structure "object_table_vertex_buffer_entry_nvx"
module Fields=struct
let typ = field t "typ" object_entry_type_nvx
let flags = field t "flags" object_entry_usage_flags_nvx
let buffer = field t "buffer" buffer
end
let typ record = Ctypes.getf record Fields.typ
let flags record = Ctypes.getf record Fields.flags
let buffer record = Ctypes.getf record Fields.buffer
let () = Ctypes.seal t
let make ~typ:arg__typ~flags:arg__flags~buffer:arg__buffer =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.typ arg__typ;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.buffer arg__buffer;
Ctypes.addr generated__x__ end
let object_table_vertex_buffer_entry_nvx = Object_table_vertex_buffer_entry_nvx.t
type object_table_vertex_buffer_entry_nvx = Object_table_vertex_buffer_entry_nvx.t
module Object_type = struct
type t = | Unknown
| Instance
| Physical_device
| Device
| Queue
| Semaphore
| Command_buffer
| Fence
| Device_memory
| Buffer
| Image
| Event
| Query_pool
| Buffer_view
| Image_view
| Shader_module
| Pipeline_cache
| Pipeline_layout
| Render_pass
| Pipeline
| Descriptor_set_layout
| Sampler
| Descriptor_pool
| Descriptor_set
| Framebuffer
| Command_pool
| Surface_khr
| Swapchain_khr
| Display_khr
| Display_mode_khr
| Debug_report_callback_ext
| Descriptor_update_template_khr
| Object_table_nvx
| Indirect_commands_layout_nvx
let to_int = function
| Unknown -> 0
| Instance -> 1
| Physical_device -> 2
| Device -> 3
| Queue -> 4
| Semaphore -> 5
| Command_buffer -> 6
| Fence -> 7
| Device_memory -> 8
| Buffer -> 9
| Image -> 10
| Event -> 11
| Query_pool -> 12
| Buffer_view -> 13
| Image_view -> 14
| Shader_module -> 15
| Pipeline_cache -> 16
| Pipeline_layout -> 17
| Render_pass -> 18
| Pipeline -> 19
| Descriptor_set_layout -> 20
| Sampler -> 21
| Descriptor_pool -> 22
| Descriptor_set -> 23
| Framebuffer -> 24
| Command_pool -> 25
| Surface_khr -> 1000000000
| Swapchain_khr -> 1000001000
| Display_khr -> 1000002000
| Display_mode_khr -> 1000002001
| Debug_report_callback_ext -> 1000011000
| Descriptor_update_template_khr -> 1000085000
| Object_table_nvx -> 1000086000
| Indirect_commands_layout_nvx -> 1000086001
let of_int = function
| 0 -> Unknown
| 1 -> Instance
| 2 -> Physical_device
| 3 -> Device
| 4 -> Queue
| 5 -> Semaphore
| 6 -> Command_buffer
| 7 -> Fence
| 8 -> Device_memory
| 9 -> Buffer
| 10 -> Image
| 11 -> Event
| 12 -> Query_pool
| 13 -> Buffer_view
| 14 -> Image_view
| 15 -> Shader_module
| 16 -> Pipeline_cache
| 17 -> Pipeline_layout
| 18 -> Render_pass
| 19 -> Pipeline
| 20 -> Descriptor_set_layout
| 21 -> Sampler
| 22 -> Descriptor_pool
| 23 -> Descriptor_set
| 24 -> Framebuffer
| 25 -> Command_pool
| 1000000000 -> Surface_khr
| 1000001000 -> Swapchain_khr
| 1000002000 -> Display_khr
| 1000002001 -> Display_mode_khr
| 1000011000 -> Debug_report_callback_ext
| 1000085000 -> Descriptor_update_template_khr
| 1000086000 -> Object_table_nvx
| 1000086001 -> Indirect_commands_layout_nvx
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Unknown -> "Unknown"
| Instance -> "Instance"
| Physical_device -> "Physical_device"
| Device -> "Device"
| Queue -> "Queue"
| Semaphore -> "Semaphore"
| Command_buffer -> "Command_buffer"
| Fence -> "Fence"
| Device_memory -> "Device_memory"
| Buffer -> "Buffer"
| Image -> "Image"
| Event -> "Event"
| Query_pool -> "Query_pool"
| Buffer_view -> "Buffer_view"
| Image_view -> "Image_view"
| Shader_module -> "Shader_module"
| Pipeline_cache -> "Pipeline_cache"
| Pipeline_layout -> "Pipeline_layout"
| Render_pass -> "Render_pass"
| Pipeline -> "Pipeline"
| Descriptor_set_layout -> "Descriptor_set_layout"
| Sampler -> "Sampler"
| Descriptor_pool -> "Descriptor_pool"
| Descriptor_set -> "Descriptor_set"
| Framebuffer -> "Framebuffer"
| Command_pool -> "Command_pool"
| Surface_khr -> "Surface_khr"
| Swapchain_khr -> "Swapchain_khr"
| Display_khr -> "Display_khr"
| Display_mode_khr -> "Display_mode_khr"
| Debug_report_callback_ext -> "Debug_report_callback_ext"
| Descriptor_update_template_khr -> "Descriptor_update_template_khr"
| Object_table_nvx -> "Object_table_nvx"
| Indirect_commands_layout_nvx -> "Indirect_commands_layout_nvx")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let object_type, object_type_opt = Object_type.(view,view_opt)
type object_type = Object_type.t
module Past_presentation_timing_google = struct type t
type past_presentation_timing_google = t
let t: t structure typ = structure "past_presentation_timing_google"
module Fields=struct
let present_id = field t "present_id" uint_32_t
let desired_present_time = field t "desired_present_time" uint_64_t
let actual_present_time = field t "actual_present_time" uint_64_t
let earliest_present_time = field t "earliest_present_time" uint_64_t
let present_margin = field t "present_margin" uint_64_t
end
let present_id record = Ctypes.getf record Fields.present_id
let desired_present_time record = Ctypes.getf record Fields.desired_present_time
let actual_present_time record = Ctypes.getf record Fields.actual_present_time
let earliest_present_time record = Ctypes.getf record Fields.earliest_present_time
let present_margin record = Ctypes.getf record Fields.present_margin
let () = Ctypes.seal t
let make ~present_id:arg__present_id
~desired_present_time:arg__desired_present_time
~actual_present_time:arg__actual_present_time
~earliest_present_time:arg__earliest_present_time
~present_margin:arg__present_margin = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.present_id arg__present_id;
Ctypes.setf generated__x__ Fields.desired_present_time arg__desired_present_time;
Ctypes.setf generated__x__ Fields.actual_present_time arg__actual_present_time;
Ctypes.setf generated__x__ Fields.earliest_present_time arg__earliest_present_time;
Ctypes.setf generated__x__ Fields.present_margin arg__present_margin;
Ctypes.addr generated__x__ end
let past_presentation_timing_google = Past_presentation_timing_google.t
type past_presentation_timing_google = Past_presentation_timing_google.t
module Peer_memory_feature_flags_khx = struct
include Bitset.Make()
let generic_dst = make_index 3
let generic_src = make_index 2
let copy_dst = make_index 1
let copy_src = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem generic_dst set then
Printer.fprintf ppf "generic_dst;@ "
else ();
if mem generic_src set then
Printer.fprintf ppf "generic_src;@ "
else ();
if mem copy_dst set then
Printer.fprintf ppf "copy_dst;@ "
else ();
if mem copy_src set then
Printer.fprintf ppf "copy_src;@ "
else ();
Printer.fprintf ppf "}@]"
end
type peer_memory_feature_flags_khx = Peer_memory_feature_flags_khx.t
let peer_memory_feature_flags_khx, peer_memory_feature_flags_khx_opt = Peer_memory_feature_flags_khx.(view, view_opt)
let peer_memory_feature_flag_bits_khx = Peer_memory_feature_flags_khx.index_view
let peer_memory_feature_flag_bits_khx_opt = Peer_memory_feature_flags_khx.index_view_opt
module Physical_device_discard_rectangle_properties_ext = struct type t
type physical_device_discard_rectangle_properties_ext = t
let t: t structure typ = structure "physical_device_discard_rectangle_properties_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let max_discard_rectangles = field t "max_discard_rectangles" uint_32_t
end
let max_discard_rectangles record = Ctypes.getf record Fields.max_discard_rectangles
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_discard_rectangle_properties_ext_extension = ..
type physical_device_discard_rectangle_properties_ext_extension +=
| No_extension
let make ?extension:(arg__ext=No_extension)
~max_discard_rectangles:arg__max_discard_rectangles ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_discard_rectangle_properties_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.max_discard_rectangles arg__max_discard_rectangles;
Ctypes.addr generated__x__
end
let physical_device_discard_rectangle_properties_ext = Physical_device_discard_rectangle_properties_ext.t
type physical_device_discard_rectangle_properties_ext = Physical_device_discard_rectangle_properties_ext.t
module Physical_device_external_buffer_info_khx = struct type t
type physical_device_external_buffer_info_khx = t
let t: t structure typ = structure "physical_device_external_buffer_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" buffer_create_flags_opt
let usage = field t "usage" buffer_usage_flags
let handle_type = field t "handle_type" external_memory_handle_type_flag_bits_khx
end
let flags record = Ctypes.getf record Fields.flags
let usage record = Ctypes.getf record Fields.usage
let handle_type record = Ctypes.getf record Fields.handle_type
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_external_buffer_info_khx_extension = ..
type physical_device_external_buffer_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags~usage:arg__usage
~handle_type:arg__handle_type ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_external_buffer_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.usage arg__usage;
Ctypes.setf generated__x__ Fields.handle_type arg__handle_type;
Ctypes.addr generated__x__
end
let physical_device_external_buffer_info_khx = Physical_device_external_buffer_info_khx.t
type physical_device_external_buffer_info_khx = Physical_device_external_buffer_info_khx.t
module Physical_device_external_image_format_info_khx = struct type t
type physical_device_external_image_format_info_khx = t
let t: t structure typ = structure "physical_device_external_image_format_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let handle_type = field t "handle_type" external_memory_handle_type_flag_bits_khx_opt
end
let handle_type record = Ctypes.getf record Fields.handle_type
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_external_image_format_info_khx_extension = ..
type physical_device_external_image_format_info_khx_extension +=
| No_extension
let make ?extension:(arg__ext=No_extension)?handle_type:arg__handle_type ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_external_image_format_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.handle_type arg__handle_type;
Ctypes.addr generated__x__
end
let physical_device_external_image_format_info_khx = Physical_device_external_image_format_info_khx.t
type physical_device_external_image_format_info_khx = Physical_device_external_image_format_info_khx.t
module Physical_device_external_semaphore_info_khx = struct type t
type physical_device_external_semaphore_info_khx = t
let t: t structure typ = structure "physical_device_external_semaphore_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let handle_type = field t "handle_type" external_semaphore_handle_type_flag_bits_khx
end
let handle_type record = Ctypes.getf record Fields.handle_type
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_external_semaphore_info_khx_extension = ..
type physical_device_external_semaphore_info_khx_extension +=
| No_extension
let make ?extension:(arg__ext=No_extension)~handle_type:arg__handle_type ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_external_semaphore_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.handle_type arg__handle_type;
Ctypes.addr generated__x__
end
let physical_device_external_semaphore_info_khx = Physical_device_external_semaphore_info_khx.t
type physical_device_external_semaphore_info_khx = Physical_device_external_semaphore_info_khx.t
module Physical_device_features_2_khr = struct type t
type physical_device_features_2_khr = t
let t: t structure typ = structure "physical_device_features_2_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let features = field t "features" physical_device_features
end
let features record = Ctypes.getf record Fields.features
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_features_2_khr_extension = ..
type physical_device_features_2_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~features:arg__features ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_features_2_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.features arg__features;
Ctypes.addr generated__x__
end
let physical_device_features_2_khr = Physical_device_features_2_khr.t
type physical_device_features_2_khr = Physical_device_features_2_khr.t
module Physical_device_group_properties_khx = struct type t
type physical_device_group_properties_khx = t
let t: t structure typ = structure "physical_device_group_properties_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let physical_device_count = field t "physical_device_count" uint_32_t
let physical_devices = field t "physical_devices" (array max_device_group_size_khx @@ physical_device)
let subset_allocation = field t "subset_allocation" bool_32
end
let physical_device_count record = Ctypes.getf record Fields.physical_device_count
let physical_devices record = Ctypes.getf record Fields.physical_devices
let subset_allocation record = Ctypes.getf record Fields.subset_allocation
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_group_properties_khx_extension = ..
type physical_device_group_properties_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~physical_device_count:arg__physical_device_count
~physical_devices:arg__physical_devices
~subset_allocation:arg__subset_allocation ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_group_properties_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.physical_device_count arg__physical_device_count;
Ctypes.setf generated__x__ Fields.physical_devices arg__physical_devices;
Ctypes.setf generated__x__ Fields.subset_allocation arg__subset_allocation;
Ctypes.addr generated__x__
end
let physical_device_group_properties_khx = Physical_device_group_properties_khx.t
type physical_device_group_properties_khx = Physical_device_group_properties_khx.t
module Physical_device_id_properties_khx = struct type t
type physical_device_id_properties_khx = t
let t: t structure typ = structure "physical_device_id_properties_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let device_uuid = field t "device_uuid" (array uuid_size @@ uint_8_t)
let driver_uuid = field t "driver_uuid" (array uuid_size @@ uint_8_t)
let device_l_u_id = field t "device_l_u_id" (array luid_size_khx @@ uint_8_t)
let device_l_u_id_valid = field t "device_l_u_id_valid" bool_32
end
let device_uuid record = Ctypes.getf record Fields.device_uuid
let driver_uuid record = Ctypes.getf record Fields.driver_uuid
let device_l_u_id record = Ctypes.getf record Fields.device_l_u_id
let device_l_u_id_valid record = Ctypes.getf record Fields.device_l_u_id_valid
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_id_properties_khx_extension = ..
type physical_device_id_properties_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~device_uuid:arg__device_uuid
~driver_uuid:arg__driver_uuid~device_l_u_id:arg__device_l_u_id
~device_l_u_id_valid:arg__device_l_u_id_valid ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_id_properties_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.device_uuid arg__device_uuid;
Ctypes.setf generated__x__ Fields.driver_uuid arg__driver_uuid;
Ctypes.setf generated__x__ Fields.device_l_u_id arg__device_l_u_id;
Ctypes.setf generated__x__ Fields.device_l_u_id_valid arg__device_l_u_id_valid;
Ctypes.addr generated__x__
end
let physical_device_id_properties_khx = Physical_device_id_properties_khx.t
type physical_device_id_properties_khx = Physical_device_id_properties_khx.t
module Physical_device_image_format_info_2_khr = struct type t
type physical_device_image_format_info_2_khr = t
let t: t structure typ = structure "physical_device_image_format_info_2_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let format = field t "format" format
let typ = field t "typ" image_type
let tiling = field t "tiling" image_tiling
let usage = field t "usage" image_usage_flags
let flags = field t "flags" image_create_flags_opt
end
let format record = Ctypes.getf record Fields.format
let typ record = Ctypes.getf record Fields.typ
let tiling record = Ctypes.getf record Fields.tiling
let usage record = Ctypes.getf record Fields.usage
let flags record = Ctypes.getf record Fields.flags let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_image_format_info_2_khr_extension = ..
type physical_device_image_format_info_2_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~format:arg__format~typ:arg__typ
~tiling:arg__tiling~usage:arg__usage?flags:arg__flags ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_image_format_info_2_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.format arg__format;
Ctypes.setf generated__x__ Fields.typ arg__typ;
Ctypes.setf generated__x__ Fields.tiling arg__tiling;
Ctypes.setf generated__x__ Fields.usage arg__usage;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.addr generated__x__
end
let physical_device_image_format_info_2_khr = Physical_device_image_format_info_2_khr.t
type physical_device_image_format_info_2_khr = Physical_device_image_format_info_2_khr.t
module Physical_device_limits = struct type t
type physical_device_limits = t
let t: t structure typ = structure "physical_device_limits"
module Fields=struct
let max_image_dimension_1d = field t "max_image_dimension_1d" uint_32_t
let max_image_dimension_2d = field t "max_image_dimension_2d" uint_32_t
let max_image_dimension_3d = field t "max_image_dimension_3d" uint_32_t
let max_image_dimension_cube = field t "max_image_dimension_cube" uint_32_t
let max_image_array_layers = field t "max_image_array_layers" uint_32_t
let max_texel_buffer_elements = field t "max_texel_buffer_elements" uint_32_t
let max_uniform_buffer_range = field t "max_uniform_buffer_range" uint_32_t
let max_storage_buffer_range = field t "max_storage_buffer_range" uint_32_t
let max_push_constants_size = field t "max_push_constants_size" uint_32_t
let max_memory_allocation_count = field t "max_memory_allocation_count" uint_32_t
let max_sampler_allocation_count = field t "max_sampler_allocation_count" uint_32_t
let buffer_image_granularity = field t "buffer_image_granularity" device_size
let sparse_address_space_size = field t "sparse_address_space_size" device_size
let max_bound_descriptor_sets = field t "max_bound_descriptor_sets" uint_32_t
let max_per_stage_descriptor_samplers = field t "max_per_stage_descriptor_samplers" uint_32_t
let max_per_stage_descriptor_uniform_buffers = field t "max_per_stage_descriptor_uniform_buffers" uint_32_t
let max_per_stage_descriptor_storage_buffers = field t "max_per_stage_descriptor_storage_buffers" uint_32_t
let max_per_stage_descriptor_sampled_images = field t "max_per_stage_descriptor_sampled_images" uint_32_t
let max_per_stage_descriptor_storage_images = field t "max_per_stage_descriptor_storage_images" uint_32_t
let max_per_stage_descriptor_input_attachments = field t "max_per_stage_descriptor_input_attachments" uint_32_t
let max_per_stage_resources = field t "max_per_stage_resources" uint_32_t
let max_descriptor_set_samplers = field t "max_descriptor_set_samplers" uint_32_t
let max_descriptor_set_uniform_buffers = field t "max_descriptor_set_uniform_buffers" uint_32_t
let max_descriptor_set_uniform_buffers_dynamic = field t "max_descriptor_set_uniform_buffers_dynamic" uint_32_t
let max_descriptor_set_storage_buffers = field t "max_descriptor_set_storage_buffers" uint_32_t
let max_descriptor_set_storage_buffers_dynamic = field t "max_descriptor_set_storage_buffers_dynamic" uint_32_t
let max_descriptor_set_sampled_images = field t "max_descriptor_set_sampled_images" uint_32_t
let max_descriptor_set_storage_images = field t "max_descriptor_set_storage_images" uint_32_t
let max_descriptor_set_input_attachments = field t "max_descriptor_set_input_attachments" uint_32_t
let max_vertex_input_attributes = field t "max_vertex_input_attributes" uint_32_t
let max_vertex_input_bindings = field t "max_vertex_input_bindings" uint_32_t
let max_vertex_input_attribute_offset = field t "max_vertex_input_attribute_offset" uint_32_t
let max_vertex_input_binding_stride = field t "max_vertex_input_binding_stride" uint_32_t
let max_vertex_output_components = field t "max_vertex_output_components" uint_32_t
let max_tessellation_generation_level = field t "max_tessellation_generation_level" uint_32_t
let max_tessellation_patch_size = field t "max_tessellation_patch_size" uint_32_t
let max_tessellation_control_per_vertex_input_components = field t "max_tessellation_control_per_vertex_input_components" uint_32_t
let max_tessellation_control_per_vertex_output_components = field t "max_tessellation_control_per_vertex_output_components" uint_32_t
let max_tessellation_control_per_patch_output_components = field t "max_tessellation_control_per_patch_output_components" uint_32_t
let max_tessellation_control_total_output_components = field t "max_tessellation_control_total_output_components" uint_32_t
let max_tessellation_evaluation_input_components = field t "max_tessellation_evaluation_input_components" uint_32_t
let max_tessellation_evaluation_output_components = field t "max_tessellation_evaluation_output_components" uint_32_t
let max_geometry_shader_invocations = field t "max_geometry_shader_invocations" uint_32_t
let max_geometry_input_components = field t "max_geometry_input_components" uint_32_t
let max_geometry_output_components = field t "max_geometry_output_components" uint_32_t
let max_geometry_output_vertices = field t "max_geometry_output_vertices" uint_32_t
let max_geometry_total_output_components = field t "max_geometry_total_output_components" uint_32_t
let max_fragment_input_components = field t "max_fragment_input_components" uint_32_t
let max_fragment_output_attachments = field t "max_fragment_output_attachments" uint_32_t
let max_fragment_dual_src_attachments = field t "max_fragment_dual_src_attachments" uint_32_t
let max_fragment_combined_output_resources = field t "max_fragment_combined_output_resources" uint_32_t
let max_compute_shared_memory_size = field t "max_compute_shared_memory_size" uint_32_t
let max_compute_work_group_count = field t "max_compute_work_group_count" (array 3 @@ uint_32_t)
let max_compute_work_group_invocations = field t "max_compute_work_group_invocations" uint_32_t
let max_compute_work_group_size = field t "max_compute_work_group_size" (array 3 @@ uint_32_t)
let sub_pixel_precision_bits = field t "sub_pixel_precision_bits" uint_32_t
let sub_texel_precision_bits = field t "sub_texel_precision_bits" uint_32_t
let mipmap_precision_bits = field t "mipmap_precision_bits" uint_32_t
let max_draw_indexed_index_value = field t "max_draw_indexed_index_value" uint_32_t
let max_draw_indirect_count = field t "max_draw_indirect_count" uint_32_t
let max_sampler_lod_bias = field t "max_sampler_lod_bias" float
let max_sampler_anisotropy = field t "max_sampler_anisotropy" float
let max_viewports = field t "max_viewports" uint_32_t
let max_viewport_dimensions = field t "max_viewport_dimensions" (array 2 @@ uint_32_t)
let viewport_bounds_range = field t "viewport_bounds_range" (array 2 @@ float)
let viewport_sub_pixel_bits = field t "viewport_sub_pixel_bits" uint_32_t
let min_memory_map_alignment = field t "min_memory_map_alignment" size_t
let min_texel_buffer_offset_alignment = field t "min_texel_buffer_offset_alignment" device_size
let min_uniform_buffer_offset_alignment = field t "min_uniform_buffer_offset_alignment" device_size
let min_storage_buffer_offset_alignment = field t "min_storage_buffer_offset_alignment" device_size
let min_texel_offset = field t "min_texel_offset" int_32_t
let max_texel_offset = field t "max_texel_offset" uint_32_t
let min_texel_gather_offset = field t "min_texel_gather_offset" int_32_t
let max_texel_gather_offset = field t "max_texel_gather_offset" uint_32_t
let min_interpolation_offset = field t "min_interpolation_offset" float
let max_interpolation_offset = field t "max_interpolation_offset" float
let sub_pixel_interpolation_offset_bits = field t "sub_pixel_interpolation_offset_bits" uint_32_t
let max_framebuffer_width = field t "max_framebuffer_width" uint_32_t
let max_framebuffer_height = field t "max_framebuffer_height" uint_32_t
let max_framebuffer_layers = field t "max_framebuffer_layers" uint_32_t
let framebuffer_color_sample_counts = field t "framebuffer_color_sample_counts" sample_count_flags_opt
let framebuffer_depth_sample_counts = field t "framebuffer_depth_sample_counts" sample_count_flags_opt
let framebuffer_stencil_sample_counts = field t "framebuffer_stencil_sample_counts" sample_count_flags_opt
let framebuffer_no_attachments_sample_counts = field t "framebuffer_no_attachments_sample_counts" sample_count_flags_opt
let max_color_attachments = field t "max_color_attachments" uint_32_t
let sampled_image_color_sample_counts = field t "sampled_image_color_sample_counts" sample_count_flags_opt
let sampled_image_integer_sample_counts = field t "sampled_image_integer_sample_counts" sample_count_flags_opt
let sampled_image_depth_sample_counts = field t "sampled_image_depth_sample_counts" sample_count_flags_opt
let sampled_image_stencil_sample_counts = field t "sampled_image_stencil_sample_counts" sample_count_flags_opt
let storage_image_sample_counts = field t "storage_image_sample_counts" sample_count_flags_opt
let max_sample_mask_words = field t "max_sample_mask_words" uint_32_t
let timestamp_compute_and_graphics = field t "timestamp_compute_and_graphics" bool_32
let timestamp_period = field t "timestamp_period" float
let max_clip_distances = field t "max_clip_distances" uint_32_t
let max_cull_distances = field t "max_cull_distances" uint_32_t
let max_combined_clip_and_cull_distances = field t "max_combined_clip_and_cull_distances" uint_32_t
let discrete_queue_priorities = field t "discrete_queue_priorities" uint_32_t
let point_size_range = field t "point_size_range" (array 2 @@ float)
let line_width_range = field t "line_width_range" (array 2 @@ float)
let point_size_granularity = field t "point_size_granularity" float
let line_width_granularity = field t "line_width_granularity" float
let strict_lines = field t "strict_lines" bool_32
let standard_sample_locations = field t "standard_sample_locations" bool_32
let optimal_buffer_copy_offset_alignment = field t "optimal_buffer_copy_offset_alignment" device_size
let optimal_buffer_copy_row_pitch_alignment = field t "optimal_buffer_copy_row_pitch_alignment" device_size
let non_coherent_atom_size = field t "non_coherent_atom_size" device_size
end
let max_image_dimension_1d record = Ctypes.getf record Fields.max_image_dimension_1d
let max_image_dimension_2d record = Ctypes.getf record Fields.max_image_dimension_2d
let max_image_dimension_3d record = Ctypes.getf record Fields.max_image_dimension_3d
let max_image_dimension_cube record = Ctypes.getf record Fields.max_image_dimension_cube
let max_image_array_layers record = Ctypes.getf record Fields.max_image_array_layers
let max_texel_buffer_elements record = Ctypes.getf record Fields.max_texel_buffer_elements
let max_uniform_buffer_range record = Ctypes.getf record Fields.max_uniform_buffer_range
let max_storage_buffer_range record = Ctypes.getf record Fields.max_storage_buffer_range
let max_push_constants_size record = Ctypes.getf record Fields.max_push_constants_size
let max_memory_allocation_count record = Ctypes.getf record Fields.max_memory_allocation_count
let max_sampler_allocation_count record = Ctypes.getf record Fields.max_sampler_allocation_count
let buffer_image_granularity record = Ctypes.getf record Fields.buffer_image_granularity
let sparse_address_space_size record = Ctypes.getf record Fields.sparse_address_space_size
let max_bound_descriptor_sets record = Ctypes.getf record Fields.max_bound_descriptor_sets
let max_per_stage_descriptor_samplers record = Ctypes.getf record Fields.max_per_stage_descriptor_samplers
let max_per_stage_descriptor_uniform_buffers record = Ctypes.getf record Fields.max_per_stage_descriptor_uniform_buffers
let max_per_stage_descriptor_storage_buffers record = Ctypes.getf record Fields.max_per_stage_descriptor_storage_buffers
let max_per_stage_descriptor_sampled_images record = Ctypes.getf record Fields.max_per_stage_descriptor_sampled_images
let max_per_stage_descriptor_storage_images record = Ctypes.getf record Fields.max_per_stage_descriptor_storage_images
let max_per_stage_descriptor_input_attachments record = Ctypes.getf record Fields.max_per_stage_descriptor_input_attachments
let max_per_stage_resources record = Ctypes.getf record Fields.max_per_stage_resources
let max_descriptor_set_samplers record = Ctypes.getf record Fields.max_descriptor_set_samplers
let max_descriptor_set_uniform_buffers record = Ctypes.getf record Fields.max_descriptor_set_uniform_buffers
let max_descriptor_set_uniform_buffers_dynamic record = Ctypes.getf record Fields.max_descriptor_set_uniform_buffers_dynamic
let max_descriptor_set_storage_buffers record = Ctypes.getf record Fields.max_descriptor_set_storage_buffers
let max_descriptor_set_storage_buffers_dynamic record = Ctypes.getf record Fields.max_descriptor_set_storage_buffers_dynamic
let max_descriptor_set_sampled_images record = Ctypes.getf record Fields.max_descriptor_set_sampled_images
let max_descriptor_set_storage_images record = Ctypes.getf record Fields.max_descriptor_set_storage_images
let max_descriptor_set_input_attachments record = Ctypes.getf record Fields.max_descriptor_set_input_attachments
let max_vertex_input_attributes record = Ctypes.getf record Fields.max_vertex_input_attributes
let max_vertex_input_bindings record = Ctypes.getf record Fields.max_vertex_input_bindings
let max_vertex_input_attribute_offset record = Ctypes.getf record Fields.max_vertex_input_attribute_offset
let max_vertex_input_binding_stride record = Ctypes.getf record Fields.max_vertex_input_binding_stride
let max_vertex_output_components record = Ctypes.getf record Fields.max_vertex_output_components
let max_tessellation_generation_level record = Ctypes.getf record Fields.max_tessellation_generation_level
let max_tessellation_patch_size record = Ctypes.getf record Fields.max_tessellation_patch_size
let max_tessellation_control_per_vertex_input_components record = Ctypes.getf record Fields.max_tessellation_control_per_vertex_input_components
let max_tessellation_control_per_vertex_output_components record = Ctypes.getf record Fields.max_tessellation_control_per_vertex_output_components
let max_tessellation_control_per_patch_output_components record = Ctypes.getf record Fields.max_tessellation_control_per_patch_output_components
let max_tessellation_control_total_output_components record = Ctypes.getf record Fields.max_tessellation_control_total_output_components
let max_tessellation_evaluation_input_components record = Ctypes.getf record Fields.max_tessellation_evaluation_input_components
let max_tessellation_evaluation_output_components record = Ctypes.getf record Fields.max_tessellation_evaluation_output_components
let max_geometry_shader_invocations record = Ctypes.getf record Fields.max_geometry_shader_invocations
let max_geometry_input_components record = Ctypes.getf record Fields.max_geometry_input_components
let max_geometry_output_components record = Ctypes.getf record Fields.max_geometry_output_components
let max_geometry_output_vertices record = Ctypes.getf record Fields.max_geometry_output_vertices
let max_geometry_total_output_components record = Ctypes.getf record Fields.max_geometry_total_output_components
let max_fragment_input_components record = Ctypes.getf record Fields.max_fragment_input_components
let max_fragment_output_attachments record = Ctypes.getf record Fields.max_fragment_output_attachments
let max_fragment_dual_src_attachments record = Ctypes.getf record Fields.max_fragment_dual_src_attachments
let max_fragment_combined_output_resources record = Ctypes.getf record Fields.max_fragment_combined_output_resources
let max_compute_shared_memory_size record = Ctypes.getf record Fields.max_compute_shared_memory_size
let max_compute_work_group_count record = Ctypes.getf record Fields.max_compute_work_group_count
let max_compute_work_group_invocations record = Ctypes.getf record Fields.max_compute_work_group_invocations
let max_compute_work_group_size record = Ctypes.getf record Fields.max_compute_work_group_size
let sub_pixel_precision_bits record = Ctypes.getf record Fields.sub_pixel_precision_bits
let sub_texel_precision_bits record = Ctypes.getf record Fields.sub_texel_precision_bits
let mipmap_precision_bits record = Ctypes.getf record Fields.mipmap_precision_bits
let max_draw_indexed_index_value record = Ctypes.getf record Fields.max_draw_indexed_index_value
let max_draw_indirect_count record = Ctypes.getf record Fields.max_draw_indirect_count
let max_sampler_lod_bias record = Ctypes.getf record Fields.max_sampler_lod_bias
let max_sampler_anisotropy record = Ctypes.getf record Fields.max_sampler_anisotropy
let max_viewports record = Ctypes.getf record Fields.max_viewports
let max_viewport_dimensions record = Ctypes.getf record Fields.max_viewport_dimensions
let viewport_bounds_range record = Ctypes.getf record Fields.viewport_bounds_range
let viewport_sub_pixel_bits record = Ctypes.getf record Fields.viewport_sub_pixel_bits
let min_memory_map_alignment record = Ctypes.getf record Fields.min_memory_map_alignment
let min_texel_buffer_offset_alignment record = Ctypes.getf record Fields.min_texel_buffer_offset_alignment
let min_uniform_buffer_offset_alignment record = Ctypes.getf record Fields.min_uniform_buffer_offset_alignment
let min_storage_buffer_offset_alignment record = Ctypes.getf record Fields.min_storage_buffer_offset_alignment
let min_texel_offset record = Ctypes.getf record Fields.min_texel_offset
let max_texel_offset record = Ctypes.getf record Fields.max_texel_offset
let min_texel_gather_offset record = Ctypes.getf record Fields.min_texel_gather_offset
let max_texel_gather_offset record = Ctypes.getf record Fields.max_texel_gather_offset
let min_interpolation_offset record = Ctypes.getf record Fields.min_interpolation_offset
let max_interpolation_offset record = Ctypes.getf record Fields.max_interpolation_offset
let sub_pixel_interpolation_offset_bits record = Ctypes.getf record Fields.sub_pixel_interpolation_offset_bits
let max_framebuffer_width record = Ctypes.getf record Fields.max_framebuffer_width
let max_framebuffer_height record = Ctypes.getf record Fields.max_framebuffer_height
let max_framebuffer_layers record = Ctypes.getf record Fields.max_framebuffer_layers
let framebuffer_color_sample_counts record = Ctypes.getf record Fields.framebuffer_color_sample_counts
let framebuffer_depth_sample_counts record = Ctypes.getf record Fields.framebuffer_depth_sample_counts
let framebuffer_stencil_sample_counts record = Ctypes.getf record Fields.framebuffer_stencil_sample_counts
let framebuffer_no_attachments_sample_counts record = Ctypes.getf record Fields.framebuffer_no_attachments_sample_counts
let max_color_attachments record = Ctypes.getf record Fields.max_color_attachments
let sampled_image_color_sample_counts record = Ctypes.getf record Fields.sampled_image_color_sample_counts
let sampled_image_integer_sample_counts record = Ctypes.getf record Fields.sampled_image_integer_sample_counts
let sampled_image_depth_sample_counts record = Ctypes.getf record Fields.sampled_image_depth_sample_counts
let sampled_image_stencil_sample_counts record = Ctypes.getf record Fields.sampled_image_stencil_sample_counts
let storage_image_sample_counts record = Ctypes.getf record Fields.storage_image_sample_counts
let max_sample_mask_words record = Ctypes.getf record Fields.max_sample_mask_words
let timestamp_compute_and_graphics record = Ctypes.getf record Fields.timestamp_compute_and_graphics
let timestamp_period record = Ctypes.getf record Fields.timestamp_period
let max_clip_distances record = Ctypes.getf record Fields.max_clip_distances
let max_cull_distances record = Ctypes.getf record Fields.max_cull_distances
let max_combined_clip_and_cull_distances record = Ctypes.getf record Fields.max_combined_clip_and_cull_distances
let discrete_queue_priorities record = Ctypes.getf record Fields.discrete_queue_priorities
let point_size_range record = Ctypes.getf record Fields.point_size_range
let line_width_range record = Ctypes.getf record Fields.line_width_range
let point_size_granularity record = Ctypes.getf record Fields.point_size_granularity
let line_width_granularity record = Ctypes.getf record Fields.line_width_granularity
let strict_lines record = Ctypes.getf record Fields.strict_lines
let standard_sample_locations record = Ctypes.getf record Fields.standard_sample_locations
let optimal_buffer_copy_offset_alignment record = Ctypes.getf record Fields.optimal_buffer_copy_offset_alignment
let optimal_buffer_copy_row_pitch_alignment record = Ctypes.getf record Fields.optimal_buffer_copy_row_pitch_alignment
let non_coherent_atom_size record = Ctypes.getf record Fields.non_coherent_atom_size
let () = Ctypes.seal t
let make ~max_image_dimension_1d:arg__max_image_dimension_1d
~max_image_dimension_2d:arg__max_image_dimension_2d
~max_image_dimension_3d:arg__max_image_dimension_3d
~max_image_dimension_cube:arg__max_image_dimension_cube
~max_image_array_layers:arg__max_image_array_layers
~max_texel_buffer_elements:arg__max_texel_buffer_elements
~max_uniform_buffer_range:arg__max_uniform_buffer_range
~max_storage_buffer_range:arg__max_storage_buffer_range
~max_push_constants_size:arg__max_push_constants_size
~max_memory_allocation_count:arg__max_memory_allocation_count
~max_sampler_allocation_count:arg__max_sampler_allocation_count
~buffer_image_granularity:arg__buffer_image_granularity
~sparse_address_space_size:arg__sparse_address_space_size
~max_bound_descriptor_sets:arg__max_bound_descriptor_sets
~max_per_stage_descriptor_samplers:arg__max_per_stage_descriptor_samplers
~max_per_stage_descriptor_uniform_buffers:arg__max_per_stage_descriptor_uniform_buffers
~max_per_stage_descriptor_storage_buffers:arg__max_per_stage_descriptor_storage_buffers
~max_per_stage_descriptor_sampled_images:arg__max_per_stage_descriptor_sampled_images
~max_per_stage_descriptor_storage_images:arg__max_per_stage_descriptor_storage_images
~max_per_stage_descriptor_input_attachments:arg__max_per_stage_descriptor_input_attachments
~max_per_stage_resources:arg__max_per_stage_resources
~max_descriptor_set_samplers:arg__max_descriptor_set_samplers
~max_descriptor_set_uniform_buffers:arg__max_descriptor_set_uniform_buffers
~max_descriptor_set_uniform_buffers_dynamic:arg__max_descriptor_set_uniform_buffers_dynamic
~max_descriptor_set_storage_buffers:arg__max_descriptor_set_storage_buffers
~max_descriptor_set_storage_buffers_dynamic:arg__max_descriptor_set_storage_buffers_dynamic
~max_descriptor_set_sampled_images:arg__max_descriptor_set_sampled_images
~max_descriptor_set_storage_images:arg__max_descriptor_set_storage_images
~max_descriptor_set_input_attachments:arg__max_descriptor_set_input_attachments
~max_vertex_input_attributes:arg__max_vertex_input_attributes
~max_vertex_input_bindings:arg__max_vertex_input_bindings
~max_vertex_input_attribute_offset:arg__max_vertex_input_attribute_offset
~max_vertex_input_binding_stride:arg__max_vertex_input_binding_stride
~max_vertex_output_components:arg__max_vertex_output_components
~max_tessellation_generation_level:arg__max_tessellation_generation_level
~max_tessellation_patch_size:arg__max_tessellation_patch_size
~max_tessellation_control_per_vertex_input_components:arg__max_tessellation_control_per_vertex_input_components
~max_tessellation_control_per_vertex_output_components:arg__max_tessellation_control_per_vertex_output_components
~max_tessellation_control_per_patch_output_components:arg__max_tessellation_control_per_patch_output_components
~max_tessellation_control_total_output_components:arg__max_tessellation_control_total_output_components
~max_tessellation_evaluation_input_components:arg__max_tessellation_evaluation_input_components
~max_tessellation_evaluation_output_components:arg__max_tessellation_evaluation_output_components
~max_geometry_shader_invocations:arg__max_geometry_shader_invocations
~max_geometry_input_components:arg__max_geometry_input_components
~max_geometry_output_components:arg__max_geometry_output_components
~max_geometry_output_vertices:arg__max_geometry_output_vertices
~max_geometry_total_output_components:arg__max_geometry_total_output_components
~max_fragment_input_components:arg__max_fragment_input_components
~max_fragment_output_attachments:arg__max_fragment_output_attachments
~max_fragment_dual_src_attachments:arg__max_fragment_dual_src_attachments
~max_fragment_combined_output_resources:arg__max_fragment_combined_output_resources
~max_compute_shared_memory_size:arg__max_compute_shared_memory_size
~max_compute_work_group_count:arg__max_compute_work_group_count
~max_compute_work_group_invocations:arg__max_compute_work_group_invocations
~max_compute_work_group_size:arg__max_compute_work_group_size
~sub_pixel_precision_bits:arg__sub_pixel_precision_bits
~sub_texel_precision_bits:arg__sub_texel_precision_bits
~mipmap_precision_bits:arg__mipmap_precision_bits
~max_draw_indexed_index_value:arg__max_draw_indexed_index_value
~max_draw_indirect_count:arg__max_draw_indirect_count
~max_sampler_lod_bias:arg__max_sampler_lod_bias
~max_sampler_anisotropy:arg__max_sampler_anisotropy
~max_viewports:arg__max_viewports
~max_viewport_dimensions:arg__max_viewport_dimensions
~viewport_bounds_range:arg__viewport_bounds_range
~viewport_sub_pixel_bits:arg__viewport_sub_pixel_bits
~min_memory_map_alignment:arg__min_memory_map_alignment
~min_texel_buffer_offset_alignment:arg__min_texel_buffer_offset_alignment
~min_uniform_buffer_offset_alignment:arg__min_uniform_buffer_offset_alignment
~min_storage_buffer_offset_alignment:arg__min_storage_buffer_offset_alignment
~min_texel_offset:arg__min_texel_offset
~max_texel_offset:arg__max_texel_offset
~min_texel_gather_offset:arg__min_texel_gather_offset
~max_texel_gather_offset:arg__max_texel_gather_offset
~min_interpolation_offset:arg__min_interpolation_offset
~max_interpolation_offset:arg__max_interpolation_offset
~sub_pixel_interpolation_offset_bits:arg__sub_pixel_interpolation_offset_bits
~max_framebuffer_width:arg__max_framebuffer_width
~max_framebuffer_height:arg__max_framebuffer_height
~max_framebuffer_layers:arg__max_framebuffer_layers
?framebuffer_color_sample_counts:arg__framebuffer_color_sample_counts
?framebuffer_depth_sample_counts:arg__framebuffer_depth_sample_counts
?framebuffer_stencil_sample_counts:arg__framebuffer_stencil_sample_counts
?framebuffer_no_attachments_sample_counts:arg__framebuffer_no_attachments_sample_counts
~max_color_attachments:arg__max_color_attachments
?sampled_image_color_sample_counts:arg__sampled_image_color_sample_counts
?sampled_image_integer_sample_counts:arg__sampled_image_integer_sample_counts
?sampled_image_depth_sample_counts:arg__sampled_image_depth_sample_counts
?sampled_image_stencil_sample_counts:arg__sampled_image_stencil_sample_counts
?storage_image_sample_counts:arg__storage_image_sample_counts
~max_sample_mask_words:arg__max_sample_mask_words
~timestamp_compute_and_graphics:arg__timestamp_compute_and_graphics
~timestamp_period:arg__timestamp_period
~max_clip_distances:arg__max_clip_distances
~max_cull_distances:arg__max_cull_distances
~max_combined_clip_and_cull_distances:arg__max_combined_clip_and_cull_distances
~discrete_queue_priorities:arg__discrete_queue_priorities
~point_size_range:arg__point_size_range
~line_width_range:arg__line_width_range
~point_size_granularity:arg__point_size_granularity
~line_width_granularity:arg__line_width_granularity
~strict_lines:arg__strict_lines
~standard_sample_locations:arg__standard_sample_locations
~optimal_buffer_copy_offset_alignment:arg__optimal_buffer_copy_offset_alignment
~optimal_buffer_copy_row_pitch_alignment:arg__optimal_buffer_copy_row_pitch_alignment
~non_coherent_atom_size:arg__non_coherent_atom_size ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.max_image_dimension_1d arg__max_image_dimension_1d;
Ctypes.setf generated__x__ Fields.max_image_dimension_2d arg__max_image_dimension_2d;
Ctypes.setf generated__x__ Fields.max_image_dimension_3d arg__max_image_dimension_3d;
Ctypes.setf generated__x__ Fields.max_image_dimension_cube arg__max_image_dimension_cube;
Ctypes.setf generated__x__ Fields.max_image_array_layers arg__max_image_array_layers;
Ctypes.setf generated__x__ Fields.max_texel_buffer_elements arg__max_texel_buffer_elements;
Ctypes.setf generated__x__ Fields.max_uniform_buffer_range arg__max_uniform_buffer_range;
Ctypes.setf generated__x__ Fields.max_storage_buffer_range arg__max_storage_buffer_range;
Ctypes.setf generated__x__ Fields.max_push_constants_size arg__max_push_constants_size;
Ctypes.setf generated__x__ Fields.max_memory_allocation_count arg__max_memory_allocation_count;
Ctypes.setf generated__x__ Fields.max_sampler_allocation_count arg__max_sampler_allocation_count;
Ctypes.setf generated__x__ Fields.buffer_image_granularity arg__buffer_image_granularity;
Ctypes.setf generated__x__ Fields.sparse_address_space_size arg__sparse_address_space_size;
Ctypes.setf generated__x__ Fields.max_bound_descriptor_sets arg__max_bound_descriptor_sets;
Ctypes.setf generated__x__ Fields.max_per_stage_descriptor_samplers arg__max_per_stage_descriptor_samplers;
Ctypes.setf generated__x__ Fields.max_per_stage_descriptor_uniform_buffers arg__max_per_stage_descriptor_uniform_buffers;
Ctypes.setf generated__x__ Fields.max_per_stage_descriptor_storage_buffers arg__max_per_stage_descriptor_storage_buffers;
Ctypes.setf generated__x__ Fields.max_per_stage_descriptor_sampled_images arg__max_per_stage_descriptor_sampled_images;
Ctypes.setf generated__x__ Fields.max_per_stage_descriptor_storage_images arg__max_per_stage_descriptor_storage_images;
Ctypes.setf generated__x__ Fields.max_per_stage_descriptor_input_attachments arg__max_per_stage_descriptor_input_attachments;
Ctypes.setf generated__x__ Fields.max_per_stage_resources arg__max_per_stage_resources;
Ctypes.setf generated__x__ Fields.max_descriptor_set_samplers arg__max_descriptor_set_samplers;
Ctypes.setf generated__x__ Fields.max_descriptor_set_uniform_buffers arg__max_descriptor_set_uniform_buffers;
Ctypes.setf generated__x__ Fields.max_descriptor_set_uniform_buffers_dynamic arg__max_descriptor_set_uniform_buffers_dynamic;
Ctypes.setf generated__x__ Fields.max_descriptor_set_storage_buffers arg__max_descriptor_set_storage_buffers;
Ctypes.setf generated__x__ Fields.max_descriptor_set_storage_buffers_dynamic arg__max_descriptor_set_storage_buffers_dynamic;
Ctypes.setf generated__x__ Fields.max_descriptor_set_sampled_images arg__max_descriptor_set_sampled_images;
Ctypes.setf generated__x__ Fields.max_descriptor_set_storage_images arg__max_descriptor_set_storage_images;
Ctypes.setf generated__x__ Fields.max_descriptor_set_input_attachments arg__max_descriptor_set_input_attachments;
Ctypes.setf generated__x__ Fields.max_vertex_input_attributes arg__max_vertex_input_attributes;
Ctypes.setf generated__x__ Fields.max_vertex_input_bindings arg__max_vertex_input_bindings;
Ctypes.setf generated__x__ Fields.max_vertex_input_attribute_offset arg__max_vertex_input_attribute_offset;
Ctypes.setf generated__x__ Fields.max_vertex_input_binding_stride arg__max_vertex_input_binding_stride;
Ctypes.setf generated__x__ Fields.max_vertex_output_components arg__max_vertex_output_components;
Ctypes.setf generated__x__ Fields.max_tessellation_generation_level arg__max_tessellation_generation_level;
Ctypes.setf generated__x__ Fields.max_tessellation_patch_size arg__max_tessellation_patch_size;
Ctypes.setf generated__x__ Fields.max_tessellation_control_per_vertex_input_components arg__max_tessellation_control_per_vertex_input_components;
Ctypes.setf generated__x__ Fields.max_tessellation_control_per_vertex_output_components arg__max_tessellation_control_per_vertex_output_components;
Ctypes.setf generated__x__ Fields.max_tessellation_control_per_patch_output_components arg__max_tessellation_control_per_patch_output_components;
Ctypes.setf generated__x__ Fields.max_tessellation_control_total_output_components arg__max_tessellation_control_total_output_components;
Ctypes.setf generated__x__ Fields.max_tessellation_evaluation_input_components arg__max_tessellation_evaluation_input_components;
Ctypes.setf generated__x__ Fields.max_tessellation_evaluation_output_components arg__max_tessellation_evaluation_output_components;
Ctypes.setf generated__x__ Fields.max_geometry_shader_invocations arg__max_geometry_shader_invocations;
Ctypes.setf generated__x__ Fields.max_geometry_input_components arg__max_geometry_input_components;
Ctypes.setf generated__x__ Fields.max_geometry_output_components arg__max_geometry_output_components;
Ctypes.setf generated__x__ Fields.max_geometry_output_vertices arg__max_geometry_output_vertices;
Ctypes.setf generated__x__ Fields.max_geometry_total_output_components arg__max_geometry_total_output_components;
Ctypes.setf generated__x__ Fields.max_fragment_input_components arg__max_fragment_input_components;
Ctypes.setf generated__x__ Fields.max_fragment_output_attachments arg__max_fragment_output_attachments;
Ctypes.setf generated__x__ Fields.max_fragment_dual_src_attachments arg__max_fragment_dual_src_attachments;
Ctypes.setf generated__x__ Fields.max_fragment_combined_output_resources arg__max_fragment_combined_output_resources;
Ctypes.setf generated__x__ Fields.max_compute_shared_memory_size arg__max_compute_shared_memory_size;
Ctypes.setf generated__x__ Fields.max_compute_work_group_count arg__max_compute_work_group_count;
Ctypes.setf generated__x__ Fields.max_compute_work_group_invocations arg__max_compute_work_group_invocations;
Ctypes.setf generated__x__ Fields.max_compute_work_group_size arg__max_compute_work_group_size;
Ctypes.setf generated__x__ Fields.sub_pixel_precision_bits arg__sub_pixel_precision_bits;
Ctypes.setf generated__x__ Fields.sub_texel_precision_bits arg__sub_texel_precision_bits;
Ctypes.setf generated__x__ Fields.mipmap_precision_bits arg__mipmap_precision_bits;
Ctypes.setf generated__x__ Fields.max_draw_indexed_index_value arg__max_draw_indexed_index_value;
Ctypes.setf generated__x__ Fields.max_draw_indirect_count arg__max_draw_indirect_count;
Ctypes.setf generated__x__ Fields.max_sampler_lod_bias arg__max_sampler_lod_bias;
Ctypes.setf generated__x__ Fields.max_sampler_anisotropy arg__max_sampler_anisotropy;
Ctypes.setf generated__x__ Fields.max_viewports arg__max_viewports;
Ctypes.setf generated__x__ Fields.max_viewport_dimensions arg__max_viewport_dimensions;
Ctypes.setf generated__x__ Fields.viewport_bounds_range arg__viewport_bounds_range;
Ctypes.setf generated__x__ Fields.viewport_sub_pixel_bits arg__viewport_sub_pixel_bits;
Ctypes.setf generated__x__ Fields.min_memory_map_alignment arg__min_memory_map_alignment;
Ctypes.setf generated__x__ Fields.min_texel_buffer_offset_alignment arg__min_texel_buffer_offset_alignment;
Ctypes.setf generated__x__ Fields.min_uniform_buffer_offset_alignment arg__min_uniform_buffer_offset_alignment;
Ctypes.setf generated__x__ Fields.min_storage_buffer_offset_alignment arg__min_storage_buffer_offset_alignment;
Ctypes.setf generated__x__ Fields.min_texel_offset arg__min_texel_offset;
Ctypes.setf generated__x__ Fields.max_texel_offset arg__max_texel_offset;
Ctypes.setf generated__x__ Fields.min_texel_gather_offset arg__min_texel_gather_offset;
Ctypes.setf generated__x__ Fields.max_texel_gather_offset arg__max_texel_gather_offset;
Ctypes.setf generated__x__ Fields.min_interpolation_offset arg__min_interpolation_offset;
Ctypes.setf generated__x__ Fields.max_interpolation_offset arg__max_interpolation_offset;
Ctypes.setf generated__x__ Fields.sub_pixel_interpolation_offset_bits arg__sub_pixel_interpolation_offset_bits;
Ctypes.setf generated__x__ Fields.max_framebuffer_width arg__max_framebuffer_width;
Ctypes.setf generated__x__ Fields.max_framebuffer_height arg__max_framebuffer_height;
Ctypes.setf generated__x__ Fields.max_framebuffer_layers arg__max_framebuffer_layers;
Ctypes.setf generated__x__ Fields.framebuffer_color_sample_counts arg__framebuffer_color_sample_counts;
Ctypes.setf generated__x__ Fields.framebuffer_depth_sample_counts arg__framebuffer_depth_sample_counts;
Ctypes.setf generated__x__ Fields.framebuffer_stencil_sample_counts arg__framebuffer_stencil_sample_counts;
Ctypes.setf generated__x__ Fields.framebuffer_no_attachments_sample_counts arg__framebuffer_no_attachments_sample_counts;
Ctypes.setf generated__x__ Fields.max_color_attachments arg__max_color_attachments;
Ctypes.setf generated__x__ Fields.sampled_image_color_sample_counts arg__sampled_image_color_sample_counts;
Ctypes.setf generated__x__ Fields.sampled_image_integer_sample_counts arg__sampled_image_integer_sample_counts;
Ctypes.setf generated__x__ Fields.sampled_image_depth_sample_counts arg__sampled_image_depth_sample_counts;
Ctypes.setf generated__x__ Fields.sampled_image_stencil_sample_counts arg__sampled_image_stencil_sample_counts;
Ctypes.setf generated__x__ Fields.storage_image_sample_counts arg__storage_image_sample_counts;
Ctypes.setf generated__x__ Fields.max_sample_mask_words arg__max_sample_mask_words;
Ctypes.setf generated__x__ Fields.timestamp_compute_and_graphics arg__timestamp_compute_and_graphics;
Ctypes.setf generated__x__ Fields.timestamp_period arg__timestamp_period;
Ctypes.setf generated__x__ Fields.max_clip_distances arg__max_clip_distances;
Ctypes.setf generated__x__ Fields.max_cull_distances arg__max_cull_distances;
Ctypes.setf generated__x__ Fields.max_combined_clip_and_cull_distances arg__max_combined_clip_and_cull_distances;
Ctypes.setf generated__x__ Fields.discrete_queue_priorities arg__discrete_queue_priorities;
Ctypes.setf generated__x__ Fields.point_size_range arg__point_size_range;
Ctypes.setf generated__x__ Fields.line_width_range arg__line_width_range;
Ctypes.setf generated__x__ Fields.point_size_granularity arg__point_size_granularity;
Ctypes.setf generated__x__ Fields.line_width_granularity arg__line_width_granularity;
Ctypes.setf generated__x__ Fields.strict_lines arg__strict_lines;
Ctypes.setf generated__x__ Fields.standard_sample_locations arg__standard_sample_locations;
Ctypes.setf generated__x__ Fields.optimal_buffer_copy_offset_alignment arg__optimal_buffer_copy_offset_alignment;
Ctypes.setf generated__x__ Fields.optimal_buffer_copy_row_pitch_alignment arg__optimal_buffer_copy_row_pitch_alignment;
Ctypes.setf generated__x__ Fields.non_coherent_atom_size arg__non_coherent_atom_size;
Ctypes.addr generated__x__ end
let physical_device_limits = Physical_device_limits.t
type physical_device_limits = Physical_device_limits.t
module Physical_device_memory_properties = struct type t
type physical_device_memory_properties = t
let t: t structure typ = structure "physical_device_memory_properties"
module Fields=struct
let memory_type_count = field t "memory_type_count" uint_32_t
let memory_types = field t "memory_types" (array max_memory_types @@ memory_type)
let memory_heap_count = field t "memory_heap_count" uint_32_t
let memory_heaps = field t "memory_heaps" (array max_memory_heaps @@ memory_heap)
end
let memory_type_count record = Ctypes.getf record Fields.memory_type_count
let memory_types record = Ctypes.getf record Fields.memory_types
let memory_heap_count record = Ctypes.getf record Fields.memory_heap_count
let memory_heaps record = Ctypes.getf record Fields.memory_heaps
let () = Ctypes.seal t
let make ~memory_type_count:arg__memory_type_count
~memory_types:arg__memory_types~memory_heap_count:arg__memory_heap_count
~memory_heaps:arg__memory_heaps = let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.memory_type_count arg__memory_type_count;
Ctypes.setf generated__x__ Fields.memory_types arg__memory_types;
Ctypes.setf generated__x__ Fields.memory_heap_count arg__memory_heap_count;
Ctypes.setf generated__x__ Fields.memory_heaps arg__memory_heaps;
Ctypes.addr generated__x__ end
let physical_device_memory_properties = Physical_device_memory_properties.t
type physical_device_memory_properties = Physical_device_memory_properties.t
module Physical_device_memory_properties_2_khr = struct type t
type physical_device_memory_properties_2_khr = t
let t: t structure typ = structure "physical_device_memory_properties_2_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let memory_properties = field t "memory_properties" physical_device_memory_properties
end
let memory_properties record = Ctypes.getf record Fields.memory_properties
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_memory_properties_2_khr_extension = ..
type physical_device_memory_properties_2_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~memory_properties:arg__memory_properties ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_memory_properties_2_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.memory_properties arg__memory_properties;
Ctypes.addr generated__x__
end
let physical_device_memory_properties_2_khr = Physical_device_memory_properties_2_khr.t
type physical_device_memory_properties_2_khr = Physical_device_memory_properties_2_khr.t
module Physical_device_multiview_per_view_attributes_properties_nvx = struct
type t
type physical_device_multiview_per_view_attributes_properties_nvx = t
let t: t structure typ = structure "physical_device_multiview_per_view_attributes_properties_nvx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let per_view_position_all_components = field t "per_view_position_all_components" bool_32
end
let per_view_position_all_components record = Ctypes.getf record Fields.per_view_position_all_components
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_multiview_per_view_attributes_properties_nvx_extension = ..
type physical_device_multiview_per_view_attributes_properties_nvx_extension +=
| No_extension
let make ?extension:(arg__ext=No_extension)
~per_view_position_all_components:arg__per_view_position_all_components ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_multiview_per_view_attributes_properties_nvx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.per_view_position_all_components arg__per_view_position_all_components;
Ctypes.addr generated__x__
end
let physical_device_multiview_per_view_attributes_properties_nvx = Physical_device_multiview_per_view_attributes_properties_nvx.t
type physical_device_multiview_per_view_attributes_properties_nvx = Physical_device_multiview_per_view_attributes_properties_nvx.t
module Physical_device_multiview_properties_khx = struct type t
type physical_device_multiview_properties_khx = t
let t: t structure typ = structure "physical_device_multiview_properties_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let max_multiview_view_count = field t "max_multiview_view_count" uint_32_t
let max_multiview_instance_index = field t "max_multiview_instance_index" uint_32_t
end
let max_multiview_view_count record = Ctypes.getf record Fields.max_multiview_view_count
let max_multiview_instance_index record = Ctypes.getf record Fields.max_multiview_instance_index
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_multiview_properties_khx_extension = ..
type physical_device_multiview_properties_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~max_multiview_view_count:arg__max_multiview_view_count
~max_multiview_instance_index:arg__max_multiview_instance_index ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_multiview_properties_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.max_multiview_view_count arg__max_multiview_view_count;
Ctypes.setf generated__x__ Fields.max_multiview_instance_index arg__max_multiview_instance_index;
Ctypes.addr generated__x__
end
let physical_device_multiview_properties_khx = Physical_device_multiview_properties_khx.t
type physical_device_multiview_properties_khx = Physical_device_multiview_properties_khx.t
module Physical_device_type = struct
type t = | Other
| Integrated_gpu
| Discrete_gpu
| Virtual_gpu
| Cpu
let to_int = function
| Other -> 0
| Integrated_gpu -> 1
| Discrete_gpu -> 2
| Virtual_gpu -> 3
| Cpu -> 4
let of_int = function
| 0 -> Other
| 1 -> Integrated_gpu
| 2 -> Discrete_gpu
| 3 -> Virtual_gpu
| 4 -> Cpu
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Other -> "Other"
| Integrated_gpu -> "Integrated_gpu"
| Discrete_gpu -> "Discrete_gpu"
| Virtual_gpu -> "Virtual_gpu"
| Cpu -> "Cpu")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let physical_device_type, physical_device_type_opt = Physical_device_type.(view,view_opt)
type physical_device_type = Physical_device_type.t
module Physical_device_sparse_properties = struct type t
type physical_device_sparse_properties = t
let t: t structure typ = structure "physical_device_sparse_properties"
module Fields=struct
let residency_standard_2d_b_l_o_c_k_s_h_a_p_e = field t "residency_standard_2d_b_l_o_c_k_s_h_a_p_e" bool_32
let residency_standard_2d_m_u_l_t_i_s_a_m_p_l_e_b_l_o_c_k_s_h_a_p_e = field t "residency_standard_2d_m_u_l_t_i_s_a_m_p_l_e_b_l_o_c_k_s_h_a_p_e" bool_32
let residency_standard_3d_b_l_o_c_k_s_h_a_p_e = field t "residency_standard_3d_b_l_o_c_k_s_h_a_p_e" bool_32
let residency_aligned_mip_size = field t "residency_aligned_mip_size" bool_32
let residency_non_resident_strict = field t "residency_non_resident_strict" bool_32
end
let residency_standard_2d_b_l_o_c_k_s_h_a_p_e record = Ctypes.getf record Fields.residency_standard_2d_b_l_o_c_k_s_h_a_p_e
let residency_standard_2d_m_u_l_t_i_s_a_m_p_l_e_b_l_o_c_k_s_h_a_p_e record = Ctypes.getf record Fields.residency_standard_2d_m_u_l_t_i_s_a_m_p_l_e_b_l_o_c_k_s_h_a_p_e
let residency_standard_3d_b_l_o_c_k_s_h_a_p_e record = Ctypes.getf record Fields.residency_standard_3d_b_l_o_c_k_s_h_a_p_e
let residency_aligned_mip_size record = Ctypes.getf record Fields.residency_aligned_mip_size
let residency_non_resident_strict record = Ctypes.getf record Fields.residency_non_resident_strict
let () = Ctypes.seal t
let make ~residency_standard_2d_b_l_o_c_k_s_h_a_p_e:arg__residency_standard_2d_b_l_o_c_k_s_h_a_p_e
~residency_standard_2d_m_u_l_t_i_s_a_m_p_l_e_b_l_o_c_k_s_h_a_p_e:arg__residency_standard_2d_m_u_l_t_i_s_a_m_p_l_e_b_l_o_c_k_s_h_a_p_e
~residency_standard_3d_b_l_o_c_k_s_h_a_p_e:arg__residency_standard_3d_b_l_o_c_k_s_h_a_p_e
~residency_aligned_mip_size:arg__residency_aligned_mip_size
~residency_non_resident_strict:arg__residency_non_resident_strict =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.residency_standard_2d_b_l_o_c_k_s_h_a_p_e arg__residency_standard_2d_b_l_o_c_k_s_h_a_p_e;
Ctypes.setf generated__x__ Fields.residency_standard_2d_m_u_l_t_i_s_a_m_p_l_e_b_l_o_c_k_s_h_a_p_e arg__residency_standard_2d_m_u_l_t_i_s_a_m_p_l_e_b_l_o_c_k_s_h_a_p_e;
Ctypes.setf generated__x__ Fields.residency_standard_3d_b_l_o_c_k_s_h_a_p_e arg__residency_standard_3d_b_l_o_c_k_s_h_a_p_e;
Ctypes.setf generated__x__ Fields.residency_aligned_mip_size arg__residency_aligned_mip_size;
Ctypes.setf generated__x__ Fields.residency_non_resident_strict arg__residency_non_resident_strict;
Ctypes.addr generated__x__ end
let physical_device_sparse_properties = Physical_device_sparse_properties.t
type physical_device_sparse_properties = Physical_device_sparse_properties.t
module Physical_device_properties = struct type t
type physical_device_properties = t
let t: t structure typ = structure "physical_device_properties"
module Fields=struct
let api_version = field t "api_version" uint_32_t
let driver_version = field t "driver_version" uint_32_t
let vendor_id = field t "vendor_id" uint_32_t
let device_id = field t "device_id" uint_32_t
let device_type = field t "device_type" physical_device_type
let device_name = field t "device_name" (array max_physical_device_name_size @@ char)
let pipeline_cache_uuid = field t "pipeline_cache_uuid" (array uuid_size @@ uint_8_t)
let limits = field t "limits" physical_device_limits
let sparse_properties = field t "sparse_properties" physical_device_sparse_properties
end
let api_version record = Ctypes.getf record Fields.api_version
let driver_version record = Ctypes.getf record Fields.driver_version
let vendor_id record = Ctypes.getf record Fields.vendor_id
let device_id record = Ctypes.getf record Fields.device_id
let device_type record = Ctypes.getf record Fields.device_type
let device_name record = Ctypes.string_from_ptr
(Ctypes.CArray.start @@ Ctypes.getf record Fields.device_name)
max_physical_device_name_size
let pipeline_cache_uuid record = Ctypes.getf record Fields.pipeline_cache_uuid
let limits record = Ctypes.getf record Fields.limits
let sparse_properties record = Ctypes.getf record Fields.sparse_properties
let () = Ctypes.seal t
let make ~api_version:arg__api_version~driver_version:arg__driver_version
~vendor_id:arg__vendor_id~device_id:arg__device_id
~device_type:arg__device_type~device_name:arg__device_name
~pipeline_cache_uuid:arg__pipeline_cache_uuid~limits:arg__limits
~sparse_properties:arg__sparse_properties =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.api_version arg__api_version;
Ctypes.setf generated__x__ Fields.driver_version arg__driver_version;
Ctypes.setf generated__x__ Fields.vendor_id arg__vendor_id;
Ctypes.setf generated__x__ Fields.device_id arg__device_id;
Ctypes.setf generated__x__ Fields.device_type arg__device_type;
Ctypes.setf generated__x__ Fields.device_name arg__device_name;
Ctypes.setf generated__x__ Fields.pipeline_cache_uuid arg__pipeline_cache_uuid;
Ctypes.setf generated__x__ Fields.limits arg__limits;
Ctypes.setf generated__x__ Fields.sparse_properties arg__sparse_properties;
Ctypes.addr generated__x__ end
let physical_device_properties = Physical_device_properties.t
type physical_device_properties = Physical_device_properties.t
module Physical_device_properties_2_khr = struct type t
type physical_device_properties_2_khr = t
let t: t structure typ = structure "physical_device_properties_2_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let properties = field t "properties" physical_device_properties
end
let properties record = Ctypes.getf record Fields.properties
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_properties_2_khr_extension = ..
type physical_device_properties_2_khr_extension += | No_extension
| Physical_device_id_properties_khx of physical_device_id_properties_khx Ctypes.structure Ctypes.ptr
| Physical_device_multiview_properties_khx of physical_device_multiview_properties_khx Ctypes.structure Ctypes.ptr
| Physical_device_discard_rectangle_properties_ext of physical_device_discard_rectangle_properties_ext Ctypes.structure Ctypes.ptr
| Physical_device_multiview_per_view_attributes_properties_nvx of physical_device_multiview_per_view_attributes_properties_nvx Ctypes.structure Ctypes.ptr
let make ?extension:(arg__ext=No_extension)~properties:arg__properties ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_properties_2_khr, Ctypes.null
| Physical_device_id_properties_khx x ->
Structure_type.Physical_device_id_properties_khx,
Ctypes.( coerce (ptr physical_device_id_properties_khx) (ptr void) x )
| Physical_device_multiview_properties_khx x ->
Structure_type.Physical_device_multiview_properties_khx,
Ctypes.( coerce (ptr physical_device_multiview_properties_khx) (ptr void) x )
| Physical_device_discard_rectangle_properties_ext x ->
Structure_type.Physical_device_discard_rectangle_properties_ext,
Ctypes.( coerce (ptr physical_device_discard_rectangle_properties_ext) (ptr void) x )
| Physical_device_multiview_per_view_attributes_properties_nvx x ->
Structure_type.Physical_device_multiview_per_view_attributes_properties_nvx,
Ctypes.( coerce (ptr physical_device_multiview_per_view_attributes_properties_nvx) (ptr void) x )
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.properties arg__properties;
Ctypes.addr generated__x__
end
let physical_device_properties_2_khr = Physical_device_properties_2_khr.t
type physical_device_properties_2_khr = Physical_device_properties_2_khr.t
module Physical_device_push_descriptor_properties_khr = struct type t
type physical_device_push_descriptor_properties_khr = t
let t: t structure typ = structure "physical_device_push_descriptor_properties_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let max_push_descriptors = field t "max_push_descriptors" uint_32_t
end
let max_push_descriptors record = Ctypes.getf record Fields.max_push_descriptors
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_push_descriptor_properties_khr_extension = ..
type physical_device_push_descriptor_properties_khr_extension +=
| No_extension
let make ?extension:(arg__ext=No_extension)
~max_push_descriptors:arg__max_push_descriptors ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_push_descriptor_properties_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.max_push_descriptors arg__max_push_descriptors;
Ctypes.addr generated__x__
end
let physical_device_push_descriptor_properties_khr = Physical_device_push_descriptor_properties_khr.t
type physical_device_push_descriptor_properties_khr = Physical_device_push_descriptor_properties_khr.t
module Physical_device_sparse_image_format_info_2_khr = struct type t
type physical_device_sparse_image_format_info_2_khr = t
let t: t structure typ = structure "physical_device_sparse_image_format_info_2_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let format = field t "format" format
let typ = field t "typ" image_type
let samples = field t "samples" sample_count_flag_bits
let usage = field t "usage" image_usage_flags
let tiling = field t "tiling" image_tiling
end
let format record = Ctypes.getf record Fields.format
let typ record = Ctypes.getf record Fields.typ
let samples record = Ctypes.getf record Fields.samples
let usage record = Ctypes.getf record Fields.usage
let tiling record = Ctypes.getf record Fields.tiling
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_sparse_image_format_info_2_khr_extension = ..
type physical_device_sparse_image_format_info_2_khr_extension +=
| No_extension
let make ?extension:(arg__ext=No_extension)~format:arg__format~typ:arg__typ
~samples:arg__samples~usage:arg__usage~tiling:arg__tiling ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_sparse_image_format_info_2_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.format arg__format;
Ctypes.setf generated__x__ Fields.typ arg__typ;
Ctypes.setf generated__x__ Fields.samples arg__samples;
Ctypes.setf generated__x__ Fields.usage arg__usage;
Ctypes.setf generated__x__ Fields.tiling arg__tiling;
Ctypes.addr generated__x__
end
let physical_device_sparse_image_format_info_2_khr = Physical_device_sparse_image_format_info_2_khr.t
type physical_device_sparse_image_format_info_2_khr = Physical_device_sparse_image_format_info_2_khr.t
module Surface_khr = Handle.Make()
type surface_khr = Surface_khr.t
let surface_khr, surface_khr_opt = Surface_khr.(view,view_opt)
module Physical_device_surface_info_2_khr = struct type t
type physical_device_surface_info_2_khr = t
let t: t structure typ = structure "physical_device_surface_info_2_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let surface = field t "surface" surface_khr
end
let surface record = Ctypes.getf record Fields.surface
let () = Ctypes.seal t
exception Unknown_record_extension
type physical_device_surface_info_2_khr_extension = ..
type physical_device_surface_info_2_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~surface:arg__surface ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Physical_device_surface_info_2_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.surface arg__surface;
Ctypes.addr generated__x__
end
let physical_device_surface_info_2_khr = Physical_device_surface_info_2_khr.t
type physical_device_surface_info_2_khr = Physical_device_surface_info_2_khr.t
module Pipeline_cache = Handle.Make()
type pipeline_cache = Pipeline_cache.t
let pipeline_cache, pipeline_cache_opt = Pipeline_cache.(view,view_opt)
module Pipeline_cache_create_flags = Bitset.Make()
type pipeline_cache_create_flags = Pipeline_cache_create_flags.t
let pipeline_cache_create_flags, pipeline_cache_create_flags_opt = Pipeline_cache_create_flags.(view, view_opt)
let pipeline_cache_create_flag_bits = Pipeline_cache_create_flags.index_view
let pipeline_cache_create_flag_bits_opt = Pipeline_cache_create_flags.index_view_opt
module Pipeline_cache_create_info = struct type t
type pipeline_cache_create_info = t
let t: t structure typ = structure "pipeline_cache_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_cache_create_flags_opt
let initial_data_size = field t "initial_data_size" size_t_opt
let initial_data = field t "initial_data" (ptr void)
end
let flags record = Ctypes.getf record Fields.flags
let initial_data record = match Ctypes.getf record Fields.initial_data_size, Ctypes.getf record Fields.initial_data with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Size_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_cache_create_info_extension = ..
type pipeline_cache_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
?initial_data:arg__initial_data ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_cache_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
begin match arg__initial_data with
| None ->
(Ctypes.setf generated__x__ Fields.initial_data_size None;
Ctypes.setf generated__x__ Fields.initial_data (Obj.magic @@ Ctypes.null))
|Some arg__initial_data ->(Ctypes.setf generated__x__ Fields.initial_data_size (Some(Size_t.of_int(Ctypes.CArray.length arg__initial_data)));
Ctypes.setf generated__x__ Fields.initial_data (Ctypes.CArray.start arg__initial_data))
end;
Ctypes.addr generated__x__
end
let pipeline_cache_create_info = Pipeline_cache_create_info.t
type pipeline_cache_create_info = Pipeline_cache_create_info.t
module Pipeline_cache_header_version = struct
type t = | One
let to_int = function
| One -> 1
let of_int = function
| 1 -> One
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| One -> "One")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let pipeline_cache_header_version, pipeline_cache_header_version_opt = Pipeline_cache_header_version.(view,view_opt)
type pipeline_cache_header_version = Pipeline_cache_header_version.t
module Pipeline_discard_rectangle_state_create_flags_ext = Bitset.Make()
type pipeline_discard_rectangle_state_create_flags_ext = Pipeline_discard_rectangle_state_create_flags_ext.t
let pipeline_discard_rectangle_state_create_flags_ext, pipeline_discard_rectangle_state_create_flags_ext_opt = Pipeline_discard_rectangle_state_create_flags_ext.(view, view_opt)
let pipeline_discard_rectangle_state_create_flag_bits_ext = Pipeline_discard_rectangle_state_create_flags_ext.index_view
let pipeline_discard_rectangle_state_create_flag_bits_ext_opt = Pipeline_discard_rectangle_state_create_flags_ext.index_view_opt
module Pipeline_discard_rectangle_state_create_info_ext = struct type t
type pipeline_discard_rectangle_state_create_info_ext = t
let t: t structure typ = structure "pipeline_discard_rectangle_state_create_info_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_discard_rectangle_state_create_flags_ext_opt
let discard_rectangle_mode = field t "discard_rectangle_mode" discard_rectangle_mode_ext
let discard_rectangle_count = field t "discard_rectangle_count" uint_32_t_opt
let discard_rectangles = field t "discard_rectangles" (ptr_opt (rect_2d))
end
let flags record = Ctypes.getf record Fields.flags
let discard_rectangle_mode record = Ctypes.getf record Fields.discard_rectangle_mode
let discard_rectangles record = match Ctypes.getf record Fields.discard_rectangle_count, Ctypes.getf record Fields.discard_rectangles with
| Some n, Some(a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_discard_rectangle_state_create_info_ext_extension = ..
type pipeline_discard_rectangle_state_create_info_ext_extension +=
| No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~discard_rectangle_mode:arg__discard_rectangle_mode
?discard_rectangles:arg__discard_rectangles ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_discard_rectangle_state_create_info_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.discard_rectangle_mode arg__discard_rectangle_mode;
begin match arg__discard_rectangles with
| None ->
(Ctypes.setf generated__x__ Fields.discard_rectangle_count None;
Ctypes.setf generated__x__ Fields.discard_rectangles (Obj.magic @@ Ctypes.null))
|Some arg__discard_rectangles ->(Ctypes.setf generated__x__ Fields.discard_rectangle_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__discard_rectangles)));
Ctypes.setf generated__x__ Fields.discard_rectangles (Some(Ctypes.CArray.start arg__discard_rectangles)))
end;
Ctypes.addr generated__x__
end
let pipeline_discard_rectangle_state_create_info_ext = Pipeline_discard_rectangle_state_create_info_ext.t
type pipeline_discard_rectangle_state_create_info_ext = Pipeline_discard_rectangle_state_create_info_ext.t
module Pipeline_layout_create_flags = Bitset.Make()
type pipeline_layout_create_flags = Pipeline_layout_create_flags.t
let pipeline_layout_create_flags, pipeline_layout_create_flags_opt = Pipeline_layout_create_flags.(view, view_opt)
let pipeline_layout_create_flag_bits = Pipeline_layout_create_flags.index_view
let pipeline_layout_create_flag_bits_opt = Pipeline_layout_create_flags.index_view_opt
module Push_constant_range = struct type t type push_constant_range = t
let t: t structure typ = structure "push_constant_range"
module Fields=struct
let stage_flags = field t "stage_flags" shader_stage_flags
let offset = field t "offset" uint_32_t
let size = field t "size" uint_32_t
end
let stage_flags record = Ctypes.getf record Fields.stage_flags
let offset record = Ctypes.getf record Fields.offset
let size record = Ctypes.getf record Fields.size let () = Ctypes.seal t
let make ~stage_flags:arg__stage_flags~offset:arg__offset~size:arg__size =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.stage_flags arg__stage_flags;
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.setf generated__x__ Fields.size arg__size;
Ctypes.addr generated__x__ end
let push_constant_range = Push_constant_range.t
type push_constant_range = Push_constant_range.t
module Pipeline_layout_create_info = struct type t
type pipeline_layout_create_info = t
let t: t structure typ = structure "pipeline_layout_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_layout_create_flags_opt
let set_layout_count = field t "set_layout_count" uint_32_t_opt
let set_layouts = field t "set_layouts" (ptr descriptor_set_layout)
let push_constant_range_count = field t "push_constant_range_count" uint_32_t_opt
let push_constant_ranges = field t "push_constant_ranges" (ptr push_constant_range)
end
let flags record = Ctypes.getf record Fields.flags
let set_layouts record = match Ctypes.getf record Fields.set_layout_count, Ctypes.getf record Fields.set_layouts with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let push_constant_ranges record = match Ctypes.getf record Fields.push_constant_range_count, Ctypes.getf record Fields.push_constant_ranges with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_layout_create_info_extension = ..
type pipeline_layout_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
?set_layouts:arg__set_layouts?push_constant_ranges:arg__push_constant_ranges
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_layout_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
begin match arg__set_layouts with
| None ->
(Ctypes.setf generated__x__ Fields.set_layout_count None;
Ctypes.setf generated__x__ Fields.set_layouts (Obj.magic @@ Ctypes.null))
|Some arg__set_layouts ->(Ctypes.setf generated__x__ Fields.set_layout_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__set_layouts)));
Ctypes.setf generated__x__ Fields.set_layouts (Ctypes.CArray.start arg__set_layouts))
end;
begin match arg__push_constant_ranges with
| None ->
(Ctypes.setf generated__x__ Fields.push_constant_range_count None;
Ctypes.setf generated__x__ Fields.push_constant_ranges (Obj.magic @@ Ctypes.null))
|Some arg__push_constant_ranges ->(Ctypes.setf generated__x__ Fields.push_constant_range_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__push_constant_ranges)));
Ctypes.setf generated__x__ Fields.push_constant_ranges (Ctypes.CArray.start arg__push_constant_ranges))
end;
Ctypes.addr generated__x__
end
let pipeline_layout_create_info = Pipeline_layout_create_info.t
type pipeline_layout_create_info = Pipeline_layout_create_info.t
module Rasterization_order_amd = struct
type t = | Strict
| Relaxed
let to_int = function
| Strict -> 0
| Relaxed -> 1
let of_int = function
| 0 -> Strict
| 1 -> Relaxed
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Strict -> "Strict"
| Relaxed -> "Relaxed")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let rasterization_order_amd, rasterization_order_amd_opt = Rasterization_order_amd.(view,view_opt)
type rasterization_order_amd = Rasterization_order_amd.t
module Pipeline_rasterization_state_rasterization_order_amd = struct type t
type pipeline_rasterization_state_rasterization_order_amd = t
let t: t structure typ = structure "pipeline_rasterization_state_rasterization_order_amd"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let rasterization_order = field t "rasterization_order" rasterization_order_amd
end
let rasterization_order record = Ctypes.getf record Fields.rasterization_order
let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_rasterization_state_rasterization_order_amd_extension = ..
type pipeline_rasterization_state_rasterization_order_amd_extension +=
| No_extension
let make ?extension:(arg__ext=No_extension)
~rasterization_order:arg__rasterization_order ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_rasterization_state_rasterization_order_amd, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.rasterization_order arg__rasterization_order;
Ctypes.addr generated__x__
end
let pipeline_rasterization_state_rasterization_order_amd = Pipeline_rasterization_state_rasterization_order_amd.t
type pipeline_rasterization_state_rasterization_order_amd = Pipeline_rasterization_state_rasterization_order_amd.t
module Pipeline_stage_flags = struct
include Bitset.Make()
let command_process_bit_nvx = make_index 17
let all_commands = make_index 16
let all_graphics = make_index 15
let host = make_index 14
let bottom_of_pipe = make_index 13
let transfer = make_index 12
let compute_shader = make_index 11
let color_attachment_output = make_index 10
let late_fragment_tests = make_index 9
let early_fragment_tests = make_index 8
let fragment_shader = make_index 7
let geometry_shader = make_index 6
let tessellation_evaluation_shader = make_index 5
let tessellation_control_shader = make_index 4
let vertex_shader = make_index 3
let vertex_input = make_index 2
let draw_indirect = make_index 1
let top_of_pipe = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem command_process_bit_nvx set then
Printer.fprintf ppf "command_process_bit_nvx;@ "
else ();
if mem all_commands set then
Printer.fprintf ppf "all_commands;@ "
else ();
if mem all_graphics set then
Printer.fprintf ppf "all_graphics;@ "
else ();
if mem host set then
Printer.fprintf ppf "host;@ "
else ();
if mem bottom_of_pipe set then
Printer.fprintf ppf "bottom_of_pipe;@ "
else ();
if mem transfer set then
Printer.fprintf ppf "transfer;@ "
else ();
if mem compute_shader set then
Printer.fprintf ppf "compute_shader;@ "
else ();
if mem color_attachment_output set then
Printer.fprintf ppf "color_attachment_output;@ "
else ();
if mem late_fragment_tests set then
Printer.fprintf ppf "late_fragment_tests;@ "
else ();
if mem early_fragment_tests set then
Printer.fprintf ppf "early_fragment_tests;@ "
else ();
if mem fragment_shader set then
Printer.fprintf ppf "fragment_shader;@ "
else ();
if mem geometry_shader set then
Printer.fprintf ppf "geometry_shader;@ "
else ();
if mem tessellation_evaluation_shader set then
Printer.fprintf ppf "tessellation_evaluation_shader;@ "
else ();
if mem tessellation_control_shader set then
Printer.fprintf ppf "tessellation_control_shader;@ "
else ();
if mem vertex_shader set then
Printer.fprintf ppf "vertex_shader;@ "
else ();
if mem vertex_input set then
Printer.fprintf ppf "vertex_input;@ "
else ();
if mem draw_indirect set then
Printer.fprintf ppf "draw_indirect;@ "
else ();
if mem top_of_pipe set then
Printer.fprintf ppf "top_of_pipe;@ "
else ();
Printer.fprintf ppf "}@]"
end
type pipeline_stage_flags = Pipeline_stage_flags.t
let pipeline_stage_flags, pipeline_stage_flags_opt = Pipeline_stage_flags.(view, view_opt)
let pipeline_stage_flag_bits = Pipeline_stage_flags.index_view
let pipeline_stage_flag_bits_opt = Pipeline_stage_flags.index_view_opt
module Pipeline_viewport_swizzle_state_create_flags_nv = Bitset.Make()
type pipeline_viewport_swizzle_state_create_flags_nv = Pipeline_viewport_swizzle_state_create_flags_nv.t
let pipeline_viewport_swizzle_state_create_flags_nv, pipeline_viewport_swizzle_state_create_flags_nv_opt = Pipeline_viewport_swizzle_state_create_flags_nv.(view, view_opt)
let pipeline_viewport_swizzle_state_create_flag_bits_nv = Pipeline_viewport_swizzle_state_create_flags_nv.index_view
let pipeline_viewport_swizzle_state_create_flag_bits_nv_opt = Pipeline_viewport_swizzle_state_create_flags_nv.index_view_opt
module Viewport_coordinate_swizzle_nv = struct
type t = | Positive_x
| Negative_x
| Positive_y
| Negative_y
| Positive_z
| Negative_z
| Positive_w
| Negative_w
let to_int = function
| Positive_x -> 0
| Negative_x -> 1
| Positive_y -> 2
| Negative_y -> 3
| Positive_z -> 4
| Negative_z -> 5
| Positive_w -> 6
| Negative_w -> 7
let of_int = function
| 0 -> Positive_x
| 1 -> Negative_x
| 2 -> Positive_y
| 3 -> Negative_y
| 4 -> Positive_z
| 5 -> Negative_z
| 6 -> Positive_w
| 7 -> Negative_w
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Positive_x -> "Positive_x"
| Negative_x -> "Negative_x"
| Positive_y -> "Positive_y"
| Negative_y -> "Negative_y"
| Positive_z -> "Positive_z"
| Negative_z -> "Negative_z"
| Positive_w -> "Positive_w"
| Negative_w -> "Negative_w")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let viewport_coordinate_swizzle_nv, viewport_coordinate_swizzle_nv_opt = Viewport_coordinate_swizzle_nv.(view,view_opt)
type viewport_coordinate_swizzle_nv = Viewport_coordinate_swizzle_nv.t
module Viewport_swizzle_nv = struct type t type viewport_swizzle_nv = t
let t: t structure typ = structure "viewport_swizzle_nv"
module Fields=struct
let x = field t "x" viewport_coordinate_swizzle_nv
let y = field t "y" viewport_coordinate_swizzle_nv
let z = field t "z" viewport_coordinate_swizzle_nv
let w = field t "w" viewport_coordinate_swizzle_nv
end
let x record = Ctypes.getf record Fields.x
let y record = Ctypes.getf record Fields.y
let z record = Ctypes.getf record Fields.z
let w record = Ctypes.getf record Fields.w let () = Ctypes.seal t
let make ~x:arg__x~y:arg__y~z:arg__z~w:arg__w =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.x arg__x;
Ctypes.setf generated__x__ Fields.y arg__y;
Ctypes.setf generated__x__ Fields.z arg__z;
Ctypes.setf generated__x__ Fields.w arg__w; Ctypes.addr generated__x__ end
let viewport_swizzle_nv = Viewport_swizzle_nv.t
type viewport_swizzle_nv = Viewport_swizzle_nv.t
module Pipeline_viewport_swizzle_state_create_info_nv = struct type t
type pipeline_viewport_swizzle_state_create_info_nv = t
let t: t structure typ = structure "pipeline_viewport_swizzle_state_create_info_nv"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" pipeline_viewport_swizzle_state_create_flags_nv_opt
let viewport_count = field t "viewport_count" uint_32_t
let viewport_swizzles = field t "viewport_swizzles" (ptr_opt (viewport_swizzle_nv))
end
let flags record = Ctypes.getf record Fields.flags
let viewport_swizzles record = let viewport_count = Ctypes.getf record Fields.viewport_count and viewport_swizzles = Ctypes.getf record Fields.viewport_swizzles in
may (fun x -> Ctypes.CArray.from_ptr (x) (Uint_32_t.to_int (viewport_count))) viewport_swizzles
let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_viewport_swizzle_state_create_info_nv_extension = ..
type pipeline_viewport_swizzle_state_create_info_nv_extension +=
| No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~viewport_swizzles:arg__viewport_swizzles ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_viewport_swizzle_state_create_info_nv, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.viewport_count (Uint_32_t.of_int(Ctypes.CArray.length arg__viewport_swizzles));
Ctypes.setf generated__x__ Fields.viewport_swizzles (Some(Ctypes.CArray.start arg__viewport_swizzles));
Ctypes.addr generated__x__
end
let pipeline_viewport_swizzle_state_create_info_nv = Pipeline_viewport_swizzle_state_create_info_nv.t
type pipeline_viewport_swizzle_state_create_info_nv = Pipeline_viewport_swizzle_state_create_info_nv.t
module Viewport_w_scaling_nv = struct type t type viewport_w_scaling_nv = t
let t: t structure typ = structure "viewport_w_scaling_nv"
module Fields=struct
let xcoeff = field t "xcoeff" float
let ycoeff = field t "ycoeff" float
end
let xcoeff record = Ctypes.getf record Fields.xcoeff
let ycoeff record = Ctypes.getf record Fields.ycoeff
let () = Ctypes.seal t
let make ~xcoeff:arg__xcoeff~ycoeff:arg__ycoeff =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.xcoeff arg__xcoeff;
Ctypes.setf generated__x__ Fields.ycoeff arg__ycoeff;
Ctypes.addr generated__x__ end
let viewport_w_scaling_nv = Viewport_w_scaling_nv.t
type viewport_w_scaling_nv = Viewport_w_scaling_nv.t
module Pipeline_viewport_w_scaling_state_create_info_nv = struct type t
type pipeline_viewport_w_scaling_state_create_info_nv = t
let t: t structure typ = structure "pipeline_viewport_w_scaling_state_create_info_nv"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let viewport_w_scaling_enable = field t "viewport_w_scaling_enable" bool_32
let viewport_count = field t "viewport_count" uint_32_t
let viewport_w_scalings = field t "viewport_w_scalings" (ptr viewport_w_scaling_nv)
end
let viewport_w_scaling_enable record = Ctypes.getf record Fields.viewport_w_scaling_enable
let viewport_w_scalings record = let viewport_count = Ctypes.getf record Fields.viewport_count and viewport_w_scalings = Ctypes.getf record Fields.viewport_w_scalings in
Ctypes.CArray.from_ptr (viewport_w_scalings) (Uint_32_t.to_int (viewport_count))
let () = Ctypes.seal t
exception Unknown_record_extension
type pipeline_viewport_w_scaling_state_create_info_nv_extension = ..
type pipeline_viewport_w_scaling_state_create_info_nv_extension +=
| No_extension
let make ?extension:(arg__ext=No_extension)
~viewport_w_scaling_enable:arg__viewport_w_scaling_enable
~viewport_w_scalings:arg__viewport_w_scalings ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Pipeline_viewport_w_scaling_state_create_info_nv, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.viewport_w_scaling_enable arg__viewport_w_scaling_enable;
Ctypes.setf generated__x__ Fields.viewport_count (Uint_32_t.of_int(Ctypes.CArray.length arg__viewport_w_scalings));
Ctypes.setf generated__x__ Fields.viewport_w_scalings (Ctypes.CArray.start arg__viewport_w_scalings);
Ctypes.addr generated__x__
end
let pipeline_viewport_w_scaling_state_create_info_nv = Pipeline_viewport_w_scaling_state_create_info_nv.t
type pipeline_viewport_w_scaling_state_create_info_nv = Pipeline_viewport_w_scaling_state_create_info_nv.t
module Rect_layer_khr = struct type t type rect_layer_khr = t
let t: t structure typ = structure "rect_layer_khr"
module Fields=struct
let offset = field t "offset" offset_2d
let extent = field t "extent" extent_2d
let layer = field t "layer" uint_32_t
end
let offset record = Ctypes.getf record Fields.offset
let extent record = Ctypes.getf record Fields.extent
let layer record = Ctypes.getf record Fields.layer let () = Ctypes.seal t
let make ~offset:arg__offset~extent:arg__extent~layer:arg__layer =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.setf generated__x__ Fields.extent arg__extent;
Ctypes.setf generated__x__ Fields.layer arg__layer;
Ctypes.addr generated__x__ end
let rect_layer_khr = Rect_layer_khr.t
type rect_layer_khr = Rect_layer_khr.t
module Present_region_khr = struct type t type present_region_khr = t
let t: t structure typ = structure "present_region_khr"
module Fields=struct
let rectangle_count = field t "rectangle_count" uint_32_t_opt
let rectangles = field t "rectangles" (ptr_opt (rect_layer_khr))
end
let rectangles record = match Ctypes.getf record Fields.rectangle_count, Ctypes.getf record Fields.rectangles with
| Some n, Some(a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
let make ?rectangles:arg__rectangles ()=
let generated__x__ = Ctypes.make t in
begin match arg__rectangles with
| None ->
(Ctypes.setf generated__x__ Fields.rectangle_count None;
Ctypes.setf generated__x__ Fields.rectangles (Obj.magic @@ Ctypes.null))
|Some arg__rectangles ->(Ctypes.setf generated__x__ Fields.rectangle_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__rectangles)));
Ctypes.setf generated__x__ Fields.rectangles (Some(Ctypes.CArray.start arg__rectangles)))
end;
Ctypes.addr generated__x__ end
let present_region_khr = Present_region_khr.t
type present_region_khr = Present_region_khr.t
module Present_regions_khr = struct type t type present_regions_khr = t
let t: t structure typ = structure "present_regions_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let swapchain_count = field t "swapchain_count" uint_32_t
let regions = field t "regions" (ptr_opt (present_region_khr))
end
let regions record = let swapchain_count = Ctypes.getf record Fields.swapchain_count and regions = Ctypes.getf record Fields.regions in
may (fun x -> Ctypes.CArray.from_ptr (x) (Uint_32_t.to_int (swapchain_count))) regions
let () = Ctypes.seal t
exception Unknown_record_extension
type present_regions_khr_extension = ..
type present_regions_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~regions:arg__regions ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Present_regions_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.swapchain_count (Uint_32_t.of_int(Ctypes.CArray.length arg__regions));
Ctypes.setf generated__x__ Fields.regions (Some(Ctypes.CArray.start arg__regions));
Ctypes.addr generated__x__
end
let present_regions_khr = Present_regions_khr.t
type present_regions_khr = Present_regions_khr.t
module Present_time_google = struct type t type present_time_google = t
let t: t structure typ = structure "present_time_google"
module Fields=struct
let present_id = field t "present_id" uint_32_t
let desired_present_time = field t "desired_present_time" uint_64_t
end
let present_id record = Ctypes.getf record Fields.present_id
let desired_present_time record = Ctypes.getf record Fields.desired_present_time
let () = Ctypes.seal t
let make ~present_id:arg__present_id
~desired_present_time:arg__desired_present_time =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.present_id arg__present_id;
Ctypes.setf generated__x__ Fields.desired_present_time arg__desired_present_time;
Ctypes.addr generated__x__ end
let present_time_google = Present_time_google.t
type present_time_google = Present_time_google.t
module Present_times_info_google = struct type t
type present_times_info_google = t
let t: t structure typ = structure "present_times_info_google"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let swapchain_count = field t "swapchain_count" uint_32_t
let times = field t "times" (ptr_opt (present_time_google))
end
let times record = let swapchain_count = Ctypes.getf record Fields.swapchain_count and times = Ctypes.getf record Fields.times in
may (fun x -> Ctypes.CArray.from_ptr (x) (Uint_32_t.to_int (swapchain_count))) times
let () = Ctypes.seal t
exception Unknown_record_extension
type present_times_info_google_extension = ..
type present_times_info_google_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~times:arg__times ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Present_times_info_google, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.swapchain_count (Uint_32_t.of_int(Ctypes.CArray.length arg__times));
Ctypes.setf generated__x__ Fields.times (Some(Ctypes.CArray.start arg__times));
Ctypes.addr generated__x__
end
let present_times_info_google = Present_times_info_google.t
type present_times_info_google = Present_times_info_google.t
module Result = struct
type t =[ | `Error_invalid_external_handle_khx
| `Error_out_of_pool_memory_khr
| `Nv_extension_1_error
| `Error_invalid_shader_nv
| `Error_validation_failed_ext
| `Error_incompatible_display_khr
| `Error_out_of_date_khr
| `Error_native_window_in_use_khr
| `Error_surface_lost_khr
| `Error_fragmented_pool
| `Error_format_not_supported
| `Error_too_many_objects
| `Error_incompatible_driver
| `Error_feature_not_present
| `Error_extension_not_present
| `Error_layer_not_present
| `Error_memory_map_failed
| `Error_device_lost
| `Error_initialization_failed
| `Error_out_of_device_memory
| `Error_out_of_host_memory
| `Success
| `Not_ready
| `Timeout
| `Event_set
| `Event_reset
| `Incomplete
| `Suboptimal_khr]
let to_int = function
| `Error_invalid_external_handle_khx -> -1000072003
| `Error_out_of_pool_memory_khr -> -1000069000
| `Nv_extension_1_error -> -1000013000
| `Error_invalid_shader_nv -> -1000012000
| `Error_validation_failed_ext -> -1000011001
| `Error_incompatible_display_khr -> -1000003001
| `Error_out_of_date_khr -> -1000001004
| `Error_native_window_in_use_khr -> -1000000001
| `Error_surface_lost_khr -> -1000000000
| `Error_fragmented_pool -> -12
| `Error_format_not_supported -> -11
| `Error_too_many_objects -> -10
| `Error_incompatible_driver -> -9
| `Error_feature_not_present -> -8
| `Error_extension_not_present -> -7
| `Error_layer_not_present -> -6
| `Error_memory_map_failed -> -5
| `Error_device_lost -> -4
| `Error_initialization_failed -> -3
| `Error_out_of_device_memory -> -2
| `Error_out_of_host_memory -> -1
| `Success -> 0
| `Not_ready -> 1
| `Timeout -> 2
| `Event_set -> 3
| `Event_reset -> 4
| `Incomplete -> 5
| `Suboptimal_khr -> 1000001003
let of_int = function
| -1000072003 -> `Error_invalid_external_handle_khx
| -1000069000 -> `Error_out_of_pool_memory_khr
| -1000013000 -> `Nv_extension_1_error
| -1000012000 -> `Error_invalid_shader_nv
| -1000011001 -> `Error_validation_failed_ext
| -1000003001 -> `Error_incompatible_display_khr
| -1000001004 -> `Error_out_of_date_khr
| -1000000001 -> `Error_native_window_in_use_khr
| -1000000000 -> `Error_surface_lost_khr
| -12 -> `Error_fragmented_pool
| -11 -> `Error_format_not_supported
| -10 -> `Error_too_many_objects
| -9 -> `Error_incompatible_driver
| -8 -> `Error_feature_not_present
| -7 -> `Error_extension_not_present
| -6 -> `Error_layer_not_present
| -5 -> `Error_memory_map_failed
| -4 -> `Error_device_lost
| -3 -> `Error_initialization_failed
| -2 -> `Error_out_of_device_memory
| -1 -> `Error_out_of_host_memory
| 0 -> `Success
| 1 -> `Not_ready
| 2 -> `Timeout
| 3 -> `Event_set
| 4 -> `Event_reset
| 5 -> `Incomplete
| 1000001003 -> `Suboptimal_khr
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| `Error_invalid_external_handle_khx -> "`Error_invalid_external_handle_khx"
| `Error_out_of_pool_memory_khr -> "`Error_out_of_pool_memory_khr"
| `Nv_extension_1_error -> "`Nv_extension_1_error"
| `Error_invalid_shader_nv -> "`Error_invalid_shader_nv"
| `Error_validation_failed_ext -> "`Error_validation_failed_ext"
| `Error_incompatible_display_khr -> "`Error_incompatible_display_khr"
| `Error_out_of_date_khr -> "`Error_out_of_date_khr"
| `Error_native_window_in_use_khr -> "`Error_native_window_in_use_khr"
| `Error_surface_lost_khr -> "`Error_surface_lost_khr"
| `Error_fragmented_pool -> "`Error_fragmented_pool"
| `Error_format_not_supported -> "`Error_format_not_supported"
| `Error_too_many_objects -> "`Error_too_many_objects"
| `Error_incompatible_driver -> "`Error_incompatible_driver"
| `Error_feature_not_present -> "`Error_feature_not_present"
| `Error_extension_not_present -> "`Error_extension_not_present"
| `Error_layer_not_present -> "`Error_layer_not_present"
| `Error_memory_map_failed -> "`Error_memory_map_failed"
| `Error_device_lost -> "`Error_device_lost"
| `Error_initialization_failed -> "`Error_initialization_failed"
| `Error_out_of_device_memory -> "`Error_out_of_device_memory"
| `Error_out_of_host_memory -> "`Error_out_of_host_memory"
| `Success -> "`Success"
| `Not_ready -> "`Not_ready"
| `Timeout -> "`Timeout"
| `Event_set -> "`Event_set"
| `Event_reset -> "`Event_reset"
| `Incomplete -> "`Incomplete"
| `Suboptimal_khr -> "`Suboptimal_khr")
let view = Vk__result.view ~ok:(of_int,to_int) ~error:(of_int,to_int)
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let result, result_opt = Result.(view,view_opt)
type result = Result.t
module Present_info_khr = struct type t type present_info_khr = t
let t: t structure typ = structure "present_info_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let wait_semaphore_count = field t "wait_semaphore_count" uint_32_t_opt
let wait_semaphores = field t "wait_semaphores" (ptr_opt (semaphore))
let swapchain_count = field t "swapchain_count" uint_32_t
let swapchains = field t "swapchains" (ptr swapchain_khr)
let image_indices = field t "image_indices" (ptr uint_32_t)
let results = field t "results" (ptr_opt (result))
end
let wait_semaphores record = match Ctypes.getf record Fields.wait_semaphore_count, Ctypes.getf record Fields.wait_semaphores with
| Some n, Some(a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let swapchains record = let swapchain_count = Ctypes.getf record Fields.swapchain_count and swapchains = Ctypes.getf record Fields.swapchains in
Ctypes.CArray.from_ptr (swapchains) (Uint_32_t.to_int (swapchain_count))
let image_indices record = let a = Ctypes.getf record Fields.image_indices in
let i = Ctypes.getf record Fields.swapchain_count in
Ctypes.CArray.from_ptr (a) (i)
let results record = Ctypes.getf record Fields.results
let () = Ctypes.seal t
exception Unknown_record_extension
type present_info_khr_extension = ..
type present_info_khr_extension += | No_extension
| Present_regions_khr of present_regions_khr Ctypes.structure Ctypes.ptr
| Device_group_present_info_khx of device_group_present_info_khx Ctypes.structure Ctypes.ptr
| Present_times_info_google of present_times_info_google Ctypes.structure Ctypes.ptr
let make ?extension:(arg__ext=No_extension)
?wait_semaphores:arg__wait_semaphores~swapchains:arg__swapchains
~image_indices:arg__image_indices?results:arg__results ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Present_info_khr, Ctypes.null
| Present_regions_khr x ->
Structure_type.Present_regions_khr,
Ctypes.( coerce (ptr present_regions_khr) (ptr void) x )
| Device_group_present_info_khx x ->
Structure_type.Device_group_present_info_khx,
Ctypes.( coerce (ptr device_group_present_info_khx) (ptr void) x )
| Present_times_info_google x ->
Structure_type.Present_times_info_google,
Ctypes.( coerce (ptr present_times_info_google) (ptr void) x )
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
begin match arg__wait_semaphores with
| None ->
(Ctypes.setf generated__x__ Fields.wait_semaphore_count None;
Ctypes.setf generated__x__ Fields.wait_semaphores (Obj.magic @@ Ctypes.null))
|Some arg__wait_semaphores ->(Ctypes.setf generated__x__ Fields.wait_semaphore_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__wait_semaphores)));
Ctypes.setf generated__x__ Fields.wait_semaphores (Some(Ctypes.CArray.start arg__wait_semaphores)))
end;
Ctypes.setf generated__x__ Fields.swapchain_count (Uint_32_t.of_int(Ctypes.CArray.length arg__swapchains));
Ctypes.setf generated__x__ Fields.swapchains (Ctypes.CArray.start arg__swapchains);
Ctypes.setf generated__x__ Fields.image_indices arg__image_indices;
Ctypes.setf generated__x__ Fields.results arg__results;
Ctypes.addr generated__x__
end
let present_info_khr = Present_info_khr.t
type present_info_khr = Present_info_khr.t
module Present_mode_khr = struct
type t = | Immediate
| Mailbox
| Fifo
| Fifo_relaxed
| Shared_demand_refresh
| Shared_continuous_refresh
let to_int = function
| Immediate -> 0
| Mailbox -> 1
| Fifo -> 2
| Fifo_relaxed -> 3
| Shared_demand_refresh -> 1000111000
| Shared_continuous_refresh -> 1000111001
let of_int = function
| 0 -> Immediate
| 1 -> Mailbox
| 2 -> Fifo
| 3 -> Fifo_relaxed
| 1000111000 -> Shared_demand_refresh
| 1000111001 -> Shared_continuous_refresh
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Immediate -> "Immediate"
| Mailbox -> "Mailbox"
| Fifo -> "Fifo"
| Fifo_relaxed -> "Fifo_relaxed"
| Shared_demand_refresh -> "Shared_demand_refresh"
| Shared_continuous_refresh -> "Shared_continuous_refresh")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let present_mode_khr, present_mode_khr_opt = Present_mode_khr.(view,view_opt)
type present_mode_khr = Present_mode_khr.t
module Query_pool = Handle.Make()
type query_pool = Query_pool.t
let query_pool, query_pool_opt = Query_pool.(view,view_opt)
module Query_pool_create_flags = Bitset.Make()
type query_pool_create_flags = Query_pool_create_flags.t
let query_pool_create_flags, query_pool_create_flags_opt = Query_pool_create_flags.(view, view_opt)
let query_pool_create_flag_bits = Query_pool_create_flags.index_view
let query_pool_create_flag_bits_opt = Query_pool_create_flags.index_view_opt
module Query_type = struct
type t = | Occlusion
| Pipeline_statistics
| Timestamp
let to_int = function
| Occlusion -> 0
| Pipeline_statistics -> 1
| Timestamp -> 2
let of_int = function
| 0 -> Occlusion
| 1 -> Pipeline_statistics
| 2 -> Timestamp
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Occlusion -> "Occlusion"
| Pipeline_statistics -> "Pipeline_statistics"
| Timestamp -> "Timestamp")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let query_type, query_type_opt = Query_type.(view,view_opt)
type query_type = Query_type.t
module Query_pool_create_info = struct type t
type query_pool_create_info = t
let t: t structure typ = structure "query_pool_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" query_pool_create_flags_opt
let query_type = field t "query_type" query_type
let query_count = field t "query_count" uint_32_t
let pipeline_statistics = field t "pipeline_statistics" query_pipeline_statistic_flags_opt
end
let flags record = Ctypes.getf record Fields.flags
let query_type record = Ctypes.getf record Fields.query_type
let query_count record = Ctypes.getf record Fields.query_count
let pipeline_statistics record = Ctypes.getf record Fields.pipeline_statistics
let () = Ctypes.seal t
exception Unknown_record_extension
type query_pool_create_info_extension = ..
type query_pool_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~query_type:arg__query_type~query_count:arg__query_count
?pipeline_statistics:arg__pipeline_statistics ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Query_pool_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.query_type arg__query_type;
Ctypes.setf generated__x__ Fields.query_count arg__query_count;
Ctypes.setf generated__x__ Fields.pipeline_statistics arg__pipeline_statistics;
Ctypes.addr generated__x__
end
let query_pool_create_info = Query_pool_create_info.t
type query_pool_create_info = Query_pool_create_info.t
module Query_result_flags = struct
include Bitset.Make()
let partial = make_index 3
let with_availability = make_index 2
let wait = make_index 1
let n64 = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem partial set then
Printer.fprintf ppf "partial;@ "
else ();
if mem with_availability set then
Printer.fprintf ppf "with_availability;@ "
else ();
if mem wait set then
Printer.fprintf ppf "wait;@ "
else ();
if mem n64 set then
Printer.fprintf ppf "n64;@ "
else ();
Printer.fprintf ppf "}@]"
end
type query_result_flags = Query_result_flags.t
let query_result_flags, query_result_flags_opt = Query_result_flags.(view, view_opt)
let query_result_flag_bits = Query_result_flags.index_view
let query_result_flag_bits_opt = Query_result_flags.index_view_opt
module Queue = Handle.Make()
type queue = Queue.t
let queue, queue_opt = Queue.(view,view_opt)
module Queue_flags = struct
include Bitset.Make()
let sparse_binding = make_index 3
let transfer = make_index 2
let compute = make_index 1
let graphics = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem sparse_binding set then
Printer.fprintf ppf "sparse_binding;@ "
else ();
if mem transfer set then
Printer.fprintf ppf "transfer;@ "
else ();
if mem compute set then
Printer.fprintf ppf "compute;@ "
else ();
if mem graphics set then
Printer.fprintf ppf "graphics;@ "
else ();
Printer.fprintf ppf "}@]"
end
type queue_flags = Queue_flags.t
let queue_flags, queue_flags_opt = Queue_flags.(view, view_opt)
let queue_flag_bits = Queue_flags.index_view
let queue_flag_bits_opt = Queue_flags.index_view_opt
module Queue_family_properties = struct type t
type queue_family_properties = t
let t: t structure typ = structure "queue_family_properties"
module Fields=struct
let queue_flags = field t "queue_flags" queue_flags_opt
let queue_count = field t "queue_count" uint_32_t
let timestamp_valid_bits = field t "timestamp_valid_bits" uint_32_t
let min_image_transfer_granularity = field t "min_image_transfer_granularity" extent_3d
end
let queue_flags record = Ctypes.getf record Fields.queue_flags
let queue_count record = Ctypes.getf record Fields.queue_count
let timestamp_valid_bits record = Ctypes.getf record Fields.timestamp_valid_bits
let min_image_transfer_granularity record = Ctypes.getf record Fields.min_image_transfer_granularity
let () = Ctypes.seal t
let make ?queue_flags:arg__queue_flags~queue_count:arg__queue_count
~timestamp_valid_bits:arg__timestamp_valid_bits
~min_image_transfer_granularity:arg__min_image_transfer_granularity ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.queue_flags arg__queue_flags;
Ctypes.setf generated__x__ Fields.queue_count arg__queue_count;
Ctypes.setf generated__x__ Fields.timestamp_valid_bits arg__timestamp_valid_bits;
Ctypes.setf generated__x__ Fields.min_image_transfer_granularity arg__min_image_transfer_granularity;
Ctypes.addr generated__x__ end
let queue_family_properties = Queue_family_properties.t
type queue_family_properties = Queue_family_properties.t
module Queue_family_properties_2_khr = struct type t
type queue_family_properties_2_khr = t
let t: t structure typ = structure "queue_family_properties_2_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let queue_family_properties = field t "queue_family_properties" queue_family_properties
end
let queue_family_properties record = Ctypes.getf record Fields.queue_family_properties
let () = Ctypes.seal t
exception Unknown_record_extension
type queue_family_properties_2_khr_extension = ..
type queue_family_properties_2_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~queue_family_properties:arg__queue_family_properties ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Queue_family_properties_2_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.queue_family_properties arg__queue_family_properties;
Ctypes.addr generated__x__
end
let queue_family_properties_2_khr = Queue_family_properties_2_khr.t
type queue_family_properties_2_khr = Queue_family_properties_2_khr.t
module Rect_3d = struct type t type rect_3d = t
let t: t structure typ = structure "rect_3d"
module Fields=struct
let offset = field t "offset" offset_3d
let extent = field t "extent" extent_3d
end
let offset record = Ctypes.getf record Fields.offset
let extent record = Ctypes.getf record Fields.extent
let () = Ctypes.seal t
let make ~offset:arg__offset~extent:arg__extent =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.setf generated__x__ Fields.extent arg__extent;
Ctypes.addr generated__x__ end
let rect_3d = Rect_3d.t
type rect_3d = Rect_3d.t
module Refresh_cycle_duration_google = struct type t
type refresh_cycle_duration_google = t
let t: t structure typ = structure "refresh_cycle_duration_google"
module Fields=struct
let refresh_duration = field t "refresh_duration" uint_64_t
end
let refresh_duration record = Ctypes.getf record Fields.refresh_duration
let () = Ctypes.seal t
let make ~refresh_duration:arg__refresh_duration =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.refresh_duration arg__refresh_duration;
Ctypes.addr generated__x__ end
let refresh_cycle_duration_google = Refresh_cycle_duration_google.t
type refresh_cycle_duration_google = Refresh_cycle_duration_google.t
module Render_pass_begin_info = struct type t
type render_pass_begin_info = t
let t: t structure typ = structure "render_pass_begin_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let render_pass = field t "render_pass" render_pass
let framebuffer = field t "framebuffer" framebuffer
let render_area = field t "render_area" rect_2d
let clear_value_count = field t "clear_value_count" uint_32_t_opt
let clear_values = field t "clear_values" (ptr clear_value)
end
let render_pass record = Ctypes.getf record Fields.render_pass
let framebuffer record = Ctypes.getf record Fields.framebuffer
let render_area record = Ctypes.getf record Fields.render_area
let clear_values record = match Ctypes.getf record Fields.clear_value_count, Ctypes.getf record Fields.clear_values with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type render_pass_begin_info_extension = ..
type render_pass_begin_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~render_pass:arg__render_pass
~framebuffer:arg__framebuffer~render_area:arg__render_area
?clear_values:arg__clear_values ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Render_pass_begin_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.render_pass arg__render_pass;
Ctypes.setf generated__x__ Fields.framebuffer arg__framebuffer;
Ctypes.setf generated__x__ Fields.render_area arg__render_area;
begin match arg__clear_values with
| None ->
(Ctypes.setf generated__x__ Fields.clear_value_count None;
Ctypes.setf generated__x__ Fields.clear_values (Obj.magic @@ Ctypes.null))
|Some arg__clear_values ->(Ctypes.setf generated__x__ Fields.clear_value_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__clear_values)));
Ctypes.setf generated__x__ Fields.clear_values (Ctypes.CArray.start arg__clear_values))
end;
Ctypes.addr generated__x__
end
let render_pass_begin_info = Render_pass_begin_info.t
type render_pass_begin_info = Render_pass_begin_info.t
module Render_pass_create_flags = Bitset.Make()
type render_pass_create_flags = Render_pass_create_flags.t
let render_pass_create_flags, render_pass_create_flags_opt = Render_pass_create_flags.(view, view_opt)
let render_pass_create_flag_bits = Render_pass_create_flags.index_view
let render_pass_create_flag_bits_opt = Render_pass_create_flags.index_view_opt
module Subpass_description_flags = struct
include Bitset.Make()
let per_view_position_x_only_bit_nvx = make_index 1
let per_view_attributes_bit_nvx = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem per_view_position_x_only_bit_nvx set then
Printer.fprintf ppf "per_view_position_x_only_bit_nvx;@ "
else ();
if mem per_view_attributes_bit_nvx set then
Printer.fprintf ppf "per_view_attributes_bit_nvx;@ "
else ();
Printer.fprintf ppf "}@]"
end
type subpass_description_flags = Subpass_description_flags.t
let subpass_description_flags, subpass_description_flags_opt = Subpass_description_flags.(view, view_opt)
let subpass_description_flag_bits = Subpass_description_flags.index_view
let subpass_description_flag_bits_opt = Subpass_description_flags.index_view_opt
module Subpass_description = struct type t type subpass_description = t
let t: t structure typ = structure "subpass_description"
module Fields=struct
let flags = field t "flags" subpass_description_flags_opt
let pipeline_bind_point = field t "pipeline_bind_point" pipeline_bind_point
let input_attachment_count = field t "input_attachment_count" uint_32_t_opt
let input_attachments = field t "input_attachments" (ptr attachment_reference)
let color_attachment_count = field t "color_attachment_count" uint_32_t_opt
let color_attachments = field t "color_attachments" (ptr attachment_reference)
let resolve_attachments = field t "resolve_attachments" (ptr_opt (attachment_reference))
let depth_stencil_attachment = field t "depth_stencil_attachment" (ptr_opt (attachment_reference))
let preserve_attachment_count = field t "preserve_attachment_count" uint_32_t_opt
let preserve_attachments = field t "preserve_attachments" (ptr uint_32_t)
end
let flags record = Ctypes.getf record Fields.flags
let pipeline_bind_point record = Ctypes.getf record Fields.pipeline_bind_point
let input_attachments record = match Ctypes.getf record Fields.input_attachment_count, Ctypes.getf record Fields.input_attachments with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let color_attachments record = match Ctypes.getf record Fields.color_attachment_count, Ctypes.getf record Fields.color_attachments with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let resolve_attachments record = Ctypes.getf record Fields.resolve_attachments
let depth_stencil_attachment record = Ctypes.getf record Fields.depth_stencil_attachment
let preserve_attachments record = match Ctypes.getf record Fields.preserve_attachment_count, Ctypes.getf record Fields.preserve_attachments with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
let make ?flags:arg__flags~pipeline_bind_point:arg__pipeline_bind_point
?input_attachments:arg__input_attachments
?color_attachments:arg__color_attachments
?resolve_attachments:arg__resolve_attachments
?depth_stencil_attachment:arg__depth_stencil_attachment
?preserve_attachments:arg__preserve_attachments ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.pipeline_bind_point arg__pipeline_bind_point;
begin match arg__input_attachments with
| None ->
(Ctypes.setf generated__x__ Fields.input_attachment_count None;
Ctypes.setf generated__x__ Fields.input_attachments (Obj.magic @@ Ctypes.null))
|Some arg__input_attachments ->(Ctypes.setf generated__x__ Fields.input_attachment_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__input_attachments)));
Ctypes.setf generated__x__ Fields.input_attachments (Ctypes.CArray.start arg__input_attachments))
end;
begin match arg__color_attachments with
| None ->
(Ctypes.setf generated__x__ Fields.color_attachment_count None;
Ctypes.setf generated__x__ Fields.color_attachments (Obj.magic @@ Ctypes.null))
|Some arg__color_attachments ->(Ctypes.setf generated__x__ Fields.color_attachment_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__color_attachments)));
Ctypes.setf generated__x__ Fields.color_attachments (Ctypes.CArray.start arg__color_attachments))
end;
Ctypes.setf generated__x__ Fields.resolve_attachments arg__resolve_attachments;
Ctypes.setf generated__x__ Fields.depth_stencil_attachment arg__depth_stencil_attachment;
begin match arg__preserve_attachments with
| None ->
(Ctypes.setf generated__x__ Fields.preserve_attachment_count None;
Ctypes.setf generated__x__ Fields.preserve_attachments (Obj.magic @@ Ctypes.null))
|Some arg__preserve_attachments ->(Ctypes.setf generated__x__ Fields.preserve_attachment_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__preserve_attachments)));
Ctypes.setf generated__x__ Fields.preserve_attachments (Ctypes.CArray.start arg__preserve_attachments))
end;
Ctypes.addr generated__x__ end
let subpass_description = Subpass_description.t
type subpass_description = Subpass_description.t
module Subpass_dependency = struct type t type subpass_dependency = t
let t: t structure typ = structure "subpass_dependency"
module Fields=struct
let src_subpass = field t "src_subpass" uint_32_t
let dst_subpass = field t "dst_subpass" uint_32_t
let src_stage_mask = field t "src_stage_mask" pipeline_stage_flags
let dst_stage_mask = field t "dst_stage_mask" pipeline_stage_flags
let src_access_mask = field t "src_access_mask" access_flags_opt
let dst_access_mask = field t "dst_access_mask" access_flags_opt
let dependency_flags = field t "dependency_flags" dependency_flags_opt
end
let src_subpass record = Ctypes.getf record Fields.src_subpass
let dst_subpass record = Ctypes.getf record Fields.dst_subpass
let src_stage_mask record = Ctypes.getf record Fields.src_stage_mask
let dst_stage_mask record = Ctypes.getf record Fields.dst_stage_mask
let src_access_mask record = Ctypes.getf record Fields.src_access_mask
let dst_access_mask record = Ctypes.getf record Fields.dst_access_mask
let dependency_flags record = Ctypes.getf record Fields.dependency_flags
let () = Ctypes.seal t
let make ~src_subpass:arg__src_subpass~dst_subpass:arg__dst_subpass
~src_stage_mask:arg__src_stage_mask~dst_stage_mask:arg__dst_stage_mask
?src_access_mask:arg__src_access_mask?dst_access_mask:arg__dst_access_mask
?dependency_flags:arg__dependency_flags ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.src_subpass arg__src_subpass;
Ctypes.setf generated__x__ Fields.dst_subpass arg__dst_subpass;
Ctypes.setf generated__x__ Fields.src_stage_mask arg__src_stage_mask;
Ctypes.setf generated__x__ Fields.dst_stage_mask arg__dst_stage_mask;
Ctypes.setf generated__x__ Fields.src_access_mask arg__src_access_mask;
Ctypes.setf generated__x__ Fields.dst_access_mask arg__dst_access_mask;
Ctypes.setf generated__x__ Fields.dependency_flags arg__dependency_flags;
Ctypes.addr generated__x__ end
let subpass_dependency = Subpass_dependency.t
type subpass_dependency = Subpass_dependency.t
module Render_pass_create_info = struct type t
type render_pass_create_info = t
let t: t structure typ = structure "render_pass_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" render_pass_create_flags_opt
let attachment_count = field t "attachment_count" uint_32_t_opt
let attachments = field t "attachments" (ptr attachment_description)
let subpass_count = field t "subpass_count" uint_32_t
let subpasses = field t "subpasses" (ptr subpass_description)
let dependency_count = field t "dependency_count" uint_32_t_opt
let dependencies = field t "dependencies" (ptr subpass_dependency)
end
let flags record = Ctypes.getf record Fields.flags
let attachments record = match Ctypes.getf record Fields.attachment_count, Ctypes.getf record Fields.attachments with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let subpasses record = let subpass_count = Ctypes.getf record Fields.subpass_count and subpasses = Ctypes.getf record Fields.subpasses in
Ctypes.CArray.from_ptr (subpasses) (Uint_32_t.to_int (subpass_count))
let dependencies record = match Ctypes.getf record Fields.dependency_count, Ctypes.getf record Fields.dependencies with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type render_pass_create_info_extension = ..
type render_pass_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
?attachments:arg__attachments~subpasses:arg__subpasses
?dependencies:arg__dependencies ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Render_pass_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
begin match arg__attachments with
| None ->
(Ctypes.setf generated__x__ Fields.attachment_count None;
Ctypes.setf generated__x__ Fields.attachments (Obj.magic @@ Ctypes.null))
|Some arg__attachments ->(Ctypes.setf generated__x__ Fields.attachment_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__attachments)));
Ctypes.setf generated__x__ Fields.attachments (Ctypes.CArray.start arg__attachments))
end;
Ctypes.setf generated__x__ Fields.subpass_count (Uint_32_t.of_int(Ctypes.CArray.length arg__subpasses));
Ctypes.setf generated__x__ Fields.subpasses (Ctypes.CArray.start arg__subpasses);
begin match arg__dependencies with
| None ->
(Ctypes.setf generated__x__ Fields.dependency_count None;
Ctypes.setf generated__x__ Fields.dependencies (Obj.magic @@ Ctypes.null))
|Some arg__dependencies ->(Ctypes.setf generated__x__ Fields.dependency_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__dependencies)));
Ctypes.setf generated__x__ Fields.dependencies (Ctypes.CArray.start arg__dependencies))
end;
Ctypes.addr generated__x__
end
let render_pass_create_info = Render_pass_create_info.t
type render_pass_create_info = Render_pass_create_info.t
module Render_pass_multiview_create_info_khx = struct type t
type render_pass_multiview_create_info_khx = t
let t: t structure typ = structure "render_pass_multiview_create_info_khx"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let subpass_count = field t "subpass_count" uint_32_t_opt
let view_masks = field t "view_masks" (ptr uint_32_t)
let dependency_count = field t "dependency_count" uint_32_t_opt
let view_offsets = field t "view_offsets" (ptr int_32_t)
let correlation_mask_count = field t "correlation_mask_count" uint_32_t_opt
let correlation_masks = field t "correlation_masks" (ptr uint_32_t)
end
let view_masks record = match Ctypes.getf record Fields.subpass_count, Ctypes.getf record Fields.view_masks with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let view_offsets record = match Ctypes.getf record Fields.dependency_count, Ctypes.getf record Fields.view_offsets with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let correlation_masks record = match Ctypes.getf record Fields.correlation_mask_count, Ctypes.getf record Fields.correlation_masks with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type render_pass_multiview_create_info_khx_extension = ..
type render_pass_multiview_create_info_khx_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?view_masks:arg__view_masks
?view_offsets:arg__view_offsets?correlation_masks:arg__correlation_masks ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Render_pass_multiview_create_info_khx, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
begin match arg__view_masks with
| None ->
(Ctypes.setf generated__x__ Fields.subpass_count None;
Ctypes.setf generated__x__ Fields.view_masks (Obj.magic @@ Ctypes.null))
|Some arg__view_masks ->(Ctypes.setf generated__x__ Fields.subpass_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__view_masks)));
Ctypes.setf generated__x__ Fields.view_masks (Ctypes.CArray.start arg__view_masks))
end;
begin match arg__view_offsets with
| None ->
(Ctypes.setf generated__x__ Fields.dependency_count None;
Ctypes.setf generated__x__ Fields.view_offsets (Obj.magic @@ Ctypes.null))
|Some arg__view_offsets ->(Ctypes.setf generated__x__ Fields.dependency_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__view_offsets)));
Ctypes.setf generated__x__ Fields.view_offsets (Ctypes.CArray.start arg__view_offsets))
end;
begin match arg__correlation_masks with
| None ->
(Ctypes.setf generated__x__ Fields.correlation_mask_count None;
Ctypes.setf generated__x__ Fields.correlation_masks (Obj.magic @@ Ctypes.null))
|Some arg__correlation_masks ->(Ctypes.setf generated__x__ Fields.correlation_mask_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__correlation_masks)));
Ctypes.setf generated__x__ Fields.correlation_masks (Ctypes.CArray.start arg__correlation_masks))
end;
Ctypes.addr generated__x__
end
let render_pass_multiview_create_info_khx = Render_pass_multiview_create_info_khx.t
type render_pass_multiview_create_info_khx = Render_pass_multiview_create_info_khx.t
module Sampler_address_mode = struct
type t = | Repeat
| Mirrored_repeat
| Clamp_to_edge
| Clamp_to_border
let to_int = function
| Repeat -> 0
| Mirrored_repeat -> 1
| Clamp_to_edge -> 2
| Clamp_to_border -> 3
let of_int = function
| 0 -> Repeat
| 1 -> Mirrored_repeat
| 2 -> Clamp_to_edge
| 3 -> Clamp_to_border
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Repeat -> "Repeat"
| Mirrored_repeat -> "Mirrored_repeat"
| Clamp_to_edge -> "Clamp_to_edge"
| Clamp_to_border -> "Clamp_to_border")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let sampler_address_mode, sampler_address_mode_opt = Sampler_address_mode.(view,view_opt)
type sampler_address_mode = Sampler_address_mode.t
module Sampler_create_flags = Bitset.Make()
type sampler_create_flags = Sampler_create_flags.t
let sampler_create_flags, sampler_create_flags_opt = Sampler_create_flags.(view, view_opt)
let sampler_create_flag_bits = Sampler_create_flags.index_view
let sampler_create_flag_bits_opt = Sampler_create_flags.index_view_opt
module Sampler_mipmap_mode = struct
type t = | Nearest
| Linear
let to_int = function
| Nearest -> 0
| Linear -> 1
let of_int = function
| 0 -> Nearest
| 1 -> Linear
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Nearest -> "Nearest"
| Linear -> "Linear")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let sampler_mipmap_mode, sampler_mipmap_mode_opt = Sampler_mipmap_mode.(view,view_opt)
type sampler_mipmap_mode = Sampler_mipmap_mode.t
module Sampler_create_info = struct type t type sampler_create_info = t
let t: t structure typ = structure "sampler_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" sampler_create_flags_opt
let mag_filter = field t "mag_filter" filter
let min_filter = field t "min_filter" filter
let mipmap_mode = field t "mipmap_mode" sampler_mipmap_mode
let address_mode_u = field t "address_mode_u" sampler_address_mode
let address_mode_v = field t "address_mode_v" sampler_address_mode
let address_mode_w = field t "address_mode_w" sampler_address_mode
let mip_lod_bias = field t "mip_lod_bias" float
let anisotropy_enable = field t "anisotropy_enable" bool_32
let max_anisotropy = field t "max_anisotropy" float
let compare_enable = field t "compare_enable" bool_32
let compare_op = field t "compare_op" compare_op
let min_lod = field t "min_lod" float
let max_lod = field t "max_lod" float
let border_color = field t "border_color" border_color
let unnormalized_coordinates = field t "unnormalized_coordinates" bool_32
end
let flags record = Ctypes.getf record Fields.flags
let mag_filter record = Ctypes.getf record Fields.mag_filter
let min_filter record = Ctypes.getf record Fields.min_filter
let mipmap_mode record = Ctypes.getf record Fields.mipmap_mode
let address_mode_u record = Ctypes.getf record Fields.address_mode_u
let address_mode_v record = Ctypes.getf record Fields.address_mode_v
let address_mode_w record = Ctypes.getf record Fields.address_mode_w
let mip_lod_bias record = Ctypes.getf record Fields.mip_lod_bias
let anisotropy_enable record = Ctypes.getf record Fields.anisotropy_enable
let max_anisotropy record = Ctypes.getf record Fields.max_anisotropy
let compare_enable record = Ctypes.getf record Fields.compare_enable
let compare_op record = Ctypes.getf record Fields.compare_op
let min_lod record = Ctypes.getf record Fields.min_lod
let max_lod record = Ctypes.getf record Fields.max_lod
let border_color record = Ctypes.getf record Fields.border_color
let unnormalized_coordinates record = Ctypes.getf record Fields.unnormalized_coordinates
let () = Ctypes.seal t
exception Unknown_record_extension
type sampler_create_info_extension = ..
type sampler_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~mag_filter:arg__mag_filter~min_filter:arg__min_filter
~mipmap_mode:arg__mipmap_mode~address_mode_u:arg__address_mode_u
~address_mode_v:arg__address_mode_v~address_mode_w:arg__address_mode_w
~mip_lod_bias:arg__mip_lod_bias~anisotropy_enable:arg__anisotropy_enable
~max_anisotropy:arg__max_anisotropy~compare_enable:arg__compare_enable
~compare_op:arg__compare_op~min_lod:arg__min_lod~max_lod:arg__max_lod
~border_color:arg__border_color
~unnormalized_coordinates:arg__unnormalized_coordinates ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Sampler_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.mag_filter arg__mag_filter;
Ctypes.setf generated__x__ Fields.min_filter arg__min_filter;
Ctypes.setf generated__x__ Fields.mipmap_mode arg__mipmap_mode;
Ctypes.setf generated__x__ Fields.address_mode_u arg__address_mode_u;
Ctypes.setf generated__x__ Fields.address_mode_v arg__address_mode_v;
Ctypes.setf generated__x__ Fields.address_mode_w arg__address_mode_w;
Ctypes.setf generated__x__ Fields.mip_lod_bias arg__mip_lod_bias;
Ctypes.setf generated__x__ Fields.anisotropy_enable arg__anisotropy_enable;
Ctypes.setf generated__x__ Fields.max_anisotropy arg__max_anisotropy;
Ctypes.setf generated__x__ Fields.compare_enable arg__compare_enable;
Ctypes.setf generated__x__ Fields.compare_op arg__compare_op;
Ctypes.setf generated__x__ Fields.min_lod arg__min_lod;
Ctypes.setf generated__x__ Fields.max_lod arg__max_lod;
Ctypes.setf generated__x__ Fields.border_color arg__border_color;
Ctypes.setf generated__x__ Fields.unnormalized_coordinates arg__unnormalized_coordinates;
Ctypes.addr generated__x__
end
let sampler_create_info = Sampler_create_info.t
type sampler_create_info = Sampler_create_info.t
module Semaphore_create_flags = Bitset.Make()
type semaphore_create_flags = Semaphore_create_flags.t
let semaphore_create_flags, semaphore_create_flags_opt = Semaphore_create_flags.(view, view_opt)
let semaphore_create_flag_bits = Semaphore_create_flags.index_view
let semaphore_create_flag_bits_opt = Semaphore_create_flags.index_view_opt
module Semaphore_create_info = struct type t type semaphore_create_info = t
let t: t structure typ = structure "semaphore_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" semaphore_create_flags_opt
end
let flags record = Ctypes.getf record Fields.flags
let () = Ctypes.seal t
exception Unknown_record_extension
type semaphore_create_info_extension = ..
type semaphore_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Semaphore_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.addr generated__x__
end
let semaphore_create_info = Semaphore_create_info.t
type semaphore_create_info = Semaphore_create_info.t
module Shader_module_create_flags = Bitset.Make()
type shader_module_create_flags = Shader_module_create_flags.t
let shader_module_create_flags, shader_module_create_flags_opt = Shader_module_create_flags.(view, view_opt)
let shader_module_create_flag_bits = Shader_module_create_flags.index_view
let shader_module_create_flag_bits_opt = Shader_module_create_flags.index_view_opt
module Shader_module_create_info = struct type t
type shader_module_create_info = t
let t: t structure typ = structure "shader_module_create_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" shader_module_create_flags_opt
let code_size = field t "code_size" size_t
let code = field t "code" (ptr uint_32_t)
end
let flags record = Ctypes.getf record Fields.flags
let code_size record = Ctypes.getf record Fields.code_size
let code record = Ctypes.getf record Fields.code let () = Ctypes.seal t
exception Unknown_record_extension
type shader_module_create_info_extension = ..
type shader_module_create_info_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~code_size:arg__code_size~code:arg__code ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Shader_module_create_info, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.code_size arg__code_size;
Ctypes.setf generated__x__ Fields.code arg__code; Ctypes.addr generated__x__
end
let shader_module_create_info = Shader_module_create_info.t
type shader_module_create_info = Shader_module_create_info.t
module Shared_present_surface_capabilities_khr = struct type t
type shared_present_surface_capabilities_khr = t
let t: t structure typ = structure "shared_present_surface_capabilities_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let shared_present_supported_usage_flags = field t "shared_present_supported_usage_flags" image_usage_flags_opt
end
let shared_present_supported_usage_flags record = Ctypes.getf record Fields.shared_present_supported_usage_flags
let () = Ctypes.seal t
exception Unknown_record_extension
type shared_present_surface_capabilities_khr_extension = ..
type shared_present_surface_capabilities_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
?shared_present_supported_usage_flags:arg__shared_present_supported_usage_flags
()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Shared_present_surface_capabilities_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.shared_present_supported_usage_flags arg__shared_present_supported_usage_flags;
Ctypes.addr generated__x__
end
let shared_present_surface_capabilities_khr = Shared_present_surface_capabilities_khr.t
type shared_present_surface_capabilities_khr = Shared_present_surface_capabilities_khr.t
module Sparse_image_format_flags = struct
include Bitset.Make()
let nonstandard_block_size = make_index 2
let aligned_mip_size = make_index 1
let single_miptail = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem nonstandard_block_size set then
Printer.fprintf ppf "nonstandard_block_size;@ "
else ();
if mem aligned_mip_size set then
Printer.fprintf ppf "aligned_mip_size;@ "
else ();
if mem single_miptail set then
Printer.fprintf ppf "single_miptail;@ "
else ();
Printer.fprintf ppf "}@]"
end
type sparse_image_format_flags = Sparse_image_format_flags.t
let sparse_image_format_flags, sparse_image_format_flags_opt = Sparse_image_format_flags.(view, view_opt)
let sparse_image_format_flag_bits = Sparse_image_format_flags.index_view
let sparse_image_format_flag_bits_opt = Sparse_image_format_flags.index_view_opt
module Sparse_image_format_properties = struct type t
type sparse_image_format_properties = t
let t: t structure typ = structure "sparse_image_format_properties"
module Fields=struct
let aspect_mask = field t "aspect_mask" image_aspect_flags_opt
let image_granularity = field t "image_granularity" extent_3d
let flags = field t "flags" sparse_image_format_flags_opt
end
let aspect_mask record = Ctypes.getf record Fields.aspect_mask
let image_granularity record = Ctypes.getf record Fields.image_granularity
let flags record = Ctypes.getf record Fields.flags
let () = Ctypes.seal t
let make ?aspect_mask:arg__aspect_mask
~image_granularity:arg__image_granularity?flags:arg__flags ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.aspect_mask arg__aspect_mask;
Ctypes.setf generated__x__ Fields.image_granularity arg__image_granularity;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.addr generated__x__ end
let sparse_image_format_properties = Sparse_image_format_properties.t
type sparse_image_format_properties = Sparse_image_format_properties.t
module Sparse_image_format_properties_2_khr = struct type t
type sparse_image_format_properties_2_khr = t
let t: t structure typ = structure "sparse_image_format_properties_2_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let properties = field t "properties" sparse_image_format_properties
end
let properties record = Ctypes.getf record Fields.properties
let () = Ctypes.seal t
exception Unknown_record_extension
type sparse_image_format_properties_2_khr_extension = ..
type sparse_image_format_properties_2_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~properties:arg__properties ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Sparse_image_format_properties_2_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.properties arg__properties;
Ctypes.addr generated__x__
end
let sparse_image_format_properties_2_khr = Sparse_image_format_properties_2_khr.t
type sparse_image_format_properties_2_khr = Sparse_image_format_properties_2_khr.t
module Sparse_image_memory_requirements = struct type t
type sparse_image_memory_requirements = t
let t: t structure typ = structure "sparse_image_memory_requirements"
module Fields=struct
let format_properties = field t "format_properties" sparse_image_format_properties
let image_mip_tail_first_lod = field t "image_mip_tail_first_lod" uint_32_t
let image_mip_tail_size = field t "image_mip_tail_size" device_size
let image_mip_tail_offset = field t "image_mip_tail_offset" device_size
let image_mip_tail_stride = field t "image_mip_tail_stride" device_size
end
let format_properties record = Ctypes.getf record Fields.format_properties
let image_mip_tail_first_lod record = Ctypes.getf record Fields.image_mip_tail_first_lod
let image_mip_tail_size record = Ctypes.getf record Fields.image_mip_tail_size
let image_mip_tail_offset record = Ctypes.getf record Fields.image_mip_tail_offset
let image_mip_tail_stride record = Ctypes.getf record Fields.image_mip_tail_stride
let () = Ctypes.seal t
let make ~format_properties:arg__format_properties
~image_mip_tail_first_lod:arg__image_mip_tail_first_lod
~image_mip_tail_size:arg__image_mip_tail_size
~image_mip_tail_offset:arg__image_mip_tail_offset
~image_mip_tail_stride:arg__image_mip_tail_stride =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.format_properties arg__format_properties;
Ctypes.setf generated__x__ Fields.image_mip_tail_first_lod arg__image_mip_tail_first_lod;
Ctypes.setf generated__x__ Fields.image_mip_tail_size arg__image_mip_tail_size;
Ctypes.setf generated__x__ Fields.image_mip_tail_offset arg__image_mip_tail_offset;
Ctypes.setf generated__x__ Fields.image_mip_tail_stride arg__image_mip_tail_stride;
Ctypes.addr generated__x__ end
let sparse_image_memory_requirements = Sparse_image_memory_requirements.t
type sparse_image_memory_requirements = Sparse_image_memory_requirements.t
module Stencil_face_flags = struct
include Bitset.Make()
let back = make_index 1
let front = make_index 0
let stencil_front_and_back = of_int 3
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem back set then
Printer.fprintf ppf "back;@ "
else ();
if mem front set then
Printer.fprintf ppf "front;@ "
else ();
Printer.fprintf ppf "}@]"
end
type stencil_face_flags = Stencil_face_flags.t
let stencil_face_flags, stencil_face_flags_opt = Stencil_face_flags.(view, view_opt)
let stencil_face_flag_bits = Stencil_face_flags.index_view
let stencil_face_flag_bits_opt = Stencil_face_flags.index_view_opt
module Submit_info = struct type t type submit_info = t
let t: t structure typ = structure "submit_info"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let wait_semaphore_count = field t "wait_semaphore_count" uint_32_t_opt
let wait_semaphores = field t "wait_semaphores" (ptr semaphore)
let wait_dst_stage_mask = field t "wait_dst_stage_mask" (ptr pipeline_stage_flags)
let command_buffer_count = field t "command_buffer_count" uint_32_t_opt
let command_buffers = field t "command_buffers" (ptr command_buffer)
let signal_semaphore_count = field t "signal_semaphore_count" uint_32_t_opt
let signal_semaphores = field t "signal_semaphores" (ptr semaphore)
end
let wait_semaphores record = match Ctypes.getf record Fields.wait_semaphore_count, Ctypes.getf record Fields.wait_semaphores with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let wait_dst_stage_mask record = let a = Ctypes.getf record Fields.wait_dst_stage_mask in
let i = Ctypes.getf record Fields.wait_semaphore_count in
may (fun i -> Ctypes.CArray.from_ptr (a) (i)) i
let command_buffers record = match Ctypes.getf record Fields.command_buffer_count, Ctypes.getf record Fields.command_buffers with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let signal_semaphores record = match Ctypes.getf record Fields.signal_semaphore_count, Ctypes.getf record Fields.signal_semaphores with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None let () = Ctypes.seal t
exception Unknown_record_extension
type submit_info_extension = ..
type submit_info_extension += | No_extension
| D3d_12_fence_submit_info_khx of d3d_12_fence_submit_info_khx Ctypes.structure Ctypes.ptr
| Device_group_submit_info_khx of device_group_submit_info_khx Ctypes.structure Ctypes.ptr
let make ?extension:(arg__ext=No_extension)
?wait_semaphores:arg__wait_semaphores
~wait_dst_stage_mask:arg__wait_dst_stage_mask
?command_buffers:arg__command_buffers
?signal_semaphores:arg__signal_semaphores ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Submit_info, Ctypes.null
| D3d_12_fence_submit_info_khx x ->
Structure_type.D3d_12_fence_submit_info_khx,
Ctypes.( coerce (ptr d3d_12_fence_submit_info_khx) (ptr void) x )
| Device_group_submit_info_khx x ->
Structure_type.Device_group_submit_info_khx,
Ctypes.( coerce (ptr device_group_submit_info_khx) (ptr void) x )
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
begin match arg__wait_semaphores with
| None ->
(Ctypes.setf generated__x__ Fields.wait_semaphore_count None;
Ctypes.setf generated__x__ Fields.wait_semaphores (Obj.magic @@ Ctypes.null))
|Some arg__wait_semaphores ->(Ctypes.setf generated__x__ Fields.wait_semaphore_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__wait_semaphores)));
Ctypes.setf generated__x__ Fields.wait_semaphores (Ctypes.CArray.start arg__wait_semaphores))
end;
Ctypes.setf generated__x__ Fields.wait_dst_stage_mask arg__wait_dst_stage_mask;
begin match arg__command_buffers with
| None ->
(Ctypes.setf generated__x__ Fields.command_buffer_count None;
Ctypes.setf generated__x__ Fields.command_buffers (Obj.magic @@ Ctypes.null))
|Some arg__command_buffers ->(Ctypes.setf generated__x__ Fields.command_buffer_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__command_buffers)));
Ctypes.setf generated__x__ Fields.command_buffers (Ctypes.CArray.start arg__command_buffers))
end;
begin match arg__signal_semaphores with
| None ->
(Ctypes.setf generated__x__ Fields.signal_semaphore_count None;
Ctypes.setf generated__x__ Fields.signal_semaphores (Obj.magic @@ Ctypes.null))
|Some arg__signal_semaphores ->(Ctypes.setf generated__x__ Fields.signal_semaphore_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__signal_semaphores)));
Ctypes.setf generated__x__ Fields.signal_semaphores (Ctypes.CArray.start arg__signal_semaphores))
end;
Ctypes.addr generated__x__
end
let submit_info = Submit_info.t
type submit_info = Submit_info.t
module Subpass_contents = struct
type t = | Inline
| Secondary_command_buffers
let to_int = function
| Inline -> 0
| Secondary_command_buffers -> 1
let of_int = function
| 0 -> Inline
| 1 -> Secondary_command_buffers
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| Inline -> "Inline"
| Secondary_command_buffers -> "Secondary_command_buffers")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let subpass_contents, subpass_contents_opt = Subpass_contents.(view,view_opt)
type subpass_contents = Subpass_contents.t
module Subresource_layout = struct type t type subresource_layout = t
let t: t structure typ = structure "subresource_layout"
module Fields=struct
let offset = field t "offset" device_size
let size = field t "size" device_size
let row_pitch = field t "row_pitch" device_size
let array_pitch = field t "array_pitch" device_size
let depth_pitch = field t "depth_pitch" device_size
end
let offset record = Ctypes.getf record Fields.offset
let size record = Ctypes.getf record Fields.size
let row_pitch record = Ctypes.getf record Fields.row_pitch
let array_pitch record = Ctypes.getf record Fields.array_pitch
let depth_pitch record = Ctypes.getf record Fields.depth_pitch
let () = Ctypes.seal t
let make ~offset:arg__offset~size:arg__size~row_pitch:arg__row_pitch
~array_pitch:arg__array_pitch~depth_pitch:arg__depth_pitch =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.offset arg__offset;
Ctypes.setf generated__x__ Fields.size arg__size;
Ctypes.setf generated__x__ Fields.row_pitch arg__row_pitch;
Ctypes.setf generated__x__ Fields.array_pitch arg__array_pitch;
Ctypes.setf generated__x__ Fields.depth_pitch arg__depth_pitch;
Ctypes.addr generated__x__ end
let subresource_layout = Subresource_layout.t
type subresource_layout = Subresource_layout.t
module Surface_counter_flags_ext = struct
include Bitset.Make()
let vblank_ext = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem vblank_ext set then
Printer.fprintf ppf "vblank_ext;@ "
else ();
Printer.fprintf ppf "}@]"
end
type surface_counter_flags_ext = Surface_counter_flags_ext.t
let surface_counter_flags_ext, surface_counter_flags_ext_opt = Surface_counter_flags_ext.(view, view_opt)
let surface_counter_flag_bits_ext = Surface_counter_flags_ext.index_view
let surface_counter_flag_bits_ext_opt = Surface_counter_flags_ext.index_view_opt
module Surface_capabilities_2_ext = struct type t
type surface_capabilities_2_ext = t
let t: t structure typ = structure "surface_capabilities_2_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let min_image_count = field t "min_image_count" uint_32_t
let max_image_count = field t "max_image_count" uint_32_t
let current_extent = field t "current_extent" extent_2d
let min_image_extent = field t "min_image_extent" extent_2d
let max_image_extent = field t "max_image_extent" extent_2d
let max_image_array_layers = field t "max_image_array_layers" uint_32_t
let supported_transforms = field t "supported_transforms" surface_transform_flags_khr_opt
let current_transform = field t "current_transform" surface_transform_flag_bits_khr
let supported_composite_alpha = field t "supported_composite_alpha" composite_alpha_flags_khr_opt
let supported_usage_flags = field t "supported_usage_flags" image_usage_flags_opt
let supported_surface_counters = field t "supported_surface_counters" surface_counter_flags_ext_opt
end
let min_image_count record = Ctypes.getf record Fields.min_image_count
let max_image_count record = Ctypes.getf record Fields.max_image_count
let current_extent record = Ctypes.getf record Fields.current_extent
let min_image_extent record = Ctypes.getf record Fields.min_image_extent
let max_image_extent record = Ctypes.getf record Fields.max_image_extent
let max_image_array_layers record = Ctypes.getf record Fields.max_image_array_layers
let supported_transforms record = Ctypes.getf record Fields.supported_transforms
let current_transform record = Ctypes.getf record Fields.current_transform
let supported_composite_alpha record = Ctypes.getf record Fields.supported_composite_alpha
let supported_usage_flags record = Ctypes.getf record Fields.supported_usage_flags
let supported_surface_counters record = Ctypes.getf record Fields.supported_surface_counters
let () = Ctypes.seal t
exception Unknown_record_extension
type surface_capabilities_2_ext_extension = ..
type surface_capabilities_2_ext_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~min_image_count:arg__min_image_count~max_image_count:arg__max_image_count
~current_extent:arg__current_extent~min_image_extent:arg__min_image_extent
~max_image_extent:arg__max_image_extent
~max_image_array_layers:arg__max_image_array_layers
?supported_transforms:arg__supported_transforms
~current_transform:arg__current_transform
?supported_composite_alpha:arg__supported_composite_alpha
?supported_usage_flags:arg__supported_usage_flags
?supported_surface_counters:arg__supported_surface_counters ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Surface_capabilities_2_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.min_image_count arg__min_image_count;
Ctypes.setf generated__x__ Fields.max_image_count arg__max_image_count;
Ctypes.setf generated__x__ Fields.current_extent arg__current_extent;
Ctypes.setf generated__x__ Fields.min_image_extent arg__min_image_extent;
Ctypes.setf generated__x__ Fields.max_image_extent arg__max_image_extent;
Ctypes.setf generated__x__ Fields.max_image_array_layers arg__max_image_array_layers;
Ctypes.setf generated__x__ Fields.supported_transforms arg__supported_transforms;
Ctypes.setf generated__x__ Fields.current_transform arg__current_transform;
Ctypes.setf generated__x__ Fields.supported_composite_alpha arg__supported_composite_alpha;
Ctypes.setf generated__x__ Fields.supported_usage_flags arg__supported_usage_flags;
Ctypes.setf generated__x__ Fields.supported_surface_counters arg__supported_surface_counters;
Ctypes.addr generated__x__
end
let surface_capabilities_2_ext = Surface_capabilities_2_ext.t
type surface_capabilities_2_ext = Surface_capabilities_2_ext.t
module Surface_capabilities_khr = struct type t
type surface_capabilities_khr = t
let t: t structure typ = structure "surface_capabilities_khr"
module Fields=struct
let min_image_count = field t "min_image_count" uint_32_t
let max_image_count = field t "max_image_count" uint_32_t
let current_extent = field t "current_extent" extent_2d
let min_image_extent = field t "min_image_extent" extent_2d
let max_image_extent = field t "max_image_extent" extent_2d
let max_image_array_layers = field t "max_image_array_layers" uint_32_t
let supported_transforms = field t "supported_transforms" surface_transform_flags_khr_opt
let current_transform = field t "current_transform" surface_transform_flag_bits_khr
let supported_composite_alpha = field t "supported_composite_alpha" composite_alpha_flags_khr_opt
let supported_usage_flags = field t "supported_usage_flags" image_usage_flags_opt
end
let min_image_count record = Ctypes.getf record Fields.min_image_count
let max_image_count record = Ctypes.getf record Fields.max_image_count
let current_extent record = Ctypes.getf record Fields.current_extent
let min_image_extent record = Ctypes.getf record Fields.min_image_extent
let max_image_extent record = Ctypes.getf record Fields.max_image_extent
let max_image_array_layers record = Ctypes.getf record Fields.max_image_array_layers
let supported_transforms record = Ctypes.getf record Fields.supported_transforms
let current_transform record = Ctypes.getf record Fields.current_transform
let supported_composite_alpha record = Ctypes.getf record Fields.supported_composite_alpha
let supported_usage_flags record = Ctypes.getf record Fields.supported_usage_flags
let () = Ctypes.seal t
let make ~min_image_count:arg__min_image_count
~max_image_count:arg__max_image_count~current_extent:arg__current_extent
~min_image_extent:arg__min_image_extent
~max_image_extent:arg__max_image_extent
~max_image_array_layers:arg__max_image_array_layers
?supported_transforms:arg__supported_transforms
~current_transform:arg__current_transform
?supported_composite_alpha:arg__supported_composite_alpha
?supported_usage_flags:arg__supported_usage_flags ()=
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.min_image_count arg__min_image_count;
Ctypes.setf generated__x__ Fields.max_image_count arg__max_image_count;
Ctypes.setf generated__x__ Fields.current_extent arg__current_extent;
Ctypes.setf generated__x__ Fields.min_image_extent arg__min_image_extent;
Ctypes.setf generated__x__ Fields.max_image_extent arg__max_image_extent;
Ctypes.setf generated__x__ Fields.max_image_array_layers arg__max_image_array_layers;
Ctypes.setf generated__x__ Fields.supported_transforms arg__supported_transforms;
Ctypes.setf generated__x__ Fields.current_transform arg__current_transform;
Ctypes.setf generated__x__ Fields.supported_composite_alpha arg__supported_composite_alpha;
Ctypes.setf generated__x__ Fields.supported_usage_flags arg__supported_usage_flags;
Ctypes.addr generated__x__ end
let surface_capabilities_khr = Surface_capabilities_khr.t
type surface_capabilities_khr = Surface_capabilities_khr.t
module Surface_capabilities_2_khr = struct type t
type surface_capabilities_2_khr = t
let t: t structure typ = structure "surface_capabilities_2_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let surface_capabilities = field t "surface_capabilities" surface_capabilities_khr
end
let surface_capabilities record = Ctypes.getf record Fields.surface_capabilities
let () = Ctypes.seal t
exception Unknown_record_extension
type surface_capabilities_2_khr_extension = ..
type surface_capabilities_2_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~surface_capabilities:arg__surface_capabilities ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Surface_capabilities_2_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.surface_capabilities arg__surface_capabilities;
Ctypes.addr generated__x__
end
let surface_capabilities_2_khr = Surface_capabilities_2_khr.t
type surface_capabilities_2_khr = Surface_capabilities_2_khr.t
module Surface_format_khr = struct type t type surface_format_khr = t
let t: t structure typ = structure "surface_format_khr"
module Fields=struct
let format = field t "format" format
let color_space = field t "color_space" color_space_khr
end
let format record = Ctypes.getf record Fields.format
let color_space record = Ctypes.getf record Fields.color_space
let () = Ctypes.seal t
let make ~format:arg__format~color_space:arg__color_space =
let generated__x__ = Ctypes.make t in
Ctypes.setf generated__x__ Fields.format arg__format;
Ctypes.setf generated__x__ Fields.color_space arg__color_space;
Ctypes.addr generated__x__ end
let surface_format_khr = Surface_format_khr.t
type surface_format_khr = Surface_format_khr.t
module Surface_format_2_khr = struct type t type surface_format_2_khr = t
let t: t structure typ = structure "surface_format_2_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let surface_format = field t "surface_format" surface_format_khr
end
let surface_format record = Ctypes.getf record Fields.surface_format
let () = Ctypes.seal t
exception Unknown_record_extension
type surface_format_2_khr_extension = ..
type surface_format_2_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~surface_format:arg__surface_format ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Surface_format_2_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.surface_format arg__surface_format;
Ctypes.addr generated__x__
end
let surface_format_2_khr = Surface_format_2_khr.t
type surface_format_2_khr = Surface_format_2_khr.t
module Swapchain_counter_create_info_ext = struct type t
type swapchain_counter_create_info_ext = t
let t: t structure typ = structure "swapchain_counter_create_info_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let surface_counters = field t "surface_counters" surface_counter_flags_ext_opt
end
let surface_counters record = Ctypes.getf record Fields.surface_counters
let () = Ctypes.seal t
exception Unknown_record_extension
type swapchain_counter_create_info_ext_extension = ..
type swapchain_counter_create_info_ext_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
?surface_counters:arg__surface_counters ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Swapchain_counter_create_info_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.surface_counters arg__surface_counters;
Ctypes.addr generated__x__
end
let swapchain_counter_create_info_ext = Swapchain_counter_create_info_ext.t
type swapchain_counter_create_info_ext = Swapchain_counter_create_info_ext.t
module Swapchain_create_flags_khr = struct
include Bitset.Make()
let bind_sfr_bit_khx = make_index 0
let pp ppf set=
Printer.fprintf ppf "@[{";
if mem bind_sfr_bit_khx set then
Printer.fprintf ppf "bind_sfr_bit_khx;@ "
else ();
Printer.fprintf ppf "}@]"
end
type swapchain_create_flags_khr = Swapchain_create_flags_khr.t
let swapchain_create_flags_khr, swapchain_create_flags_khr_opt = Swapchain_create_flags_khr.(view, view_opt)
let swapchain_create_flag_bits_khr = Swapchain_create_flags_khr.index_view
let swapchain_create_flag_bits_khr_opt = Swapchain_create_flags_khr.index_view_opt
module Swapchain_create_info_khr = struct type t
type swapchain_create_info_khr = t
let t: t structure typ = structure "swapchain_create_info_khr"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" swapchain_create_flags_khr_opt
let surface = field t "surface" surface_khr
let min_image_count = field t "min_image_count" uint_32_t
let image_format = field t "image_format" format
let image_color_space = field t "image_color_space" color_space_khr
let image_extent = field t "image_extent" extent_2d
let image_array_layers = field t "image_array_layers" uint_32_t
let image_usage = field t "image_usage" image_usage_flags
let image_sharing_mode = field t "image_sharing_mode" sharing_mode
let queue_family_index_count = field t "queue_family_index_count" uint_32_t_opt
let queue_family_indices = field t "queue_family_indices" (ptr uint_32_t)
let pre_transform = field t "pre_transform" surface_transform_flag_bits_khr
let composite_alpha = field t "composite_alpha" composite_alpha_flag_bits_khr
let present_mode = field t "present_mode" present_mode_khr
let clipped = field t "clipped" bool_32
let old_swapchain = field t "old_swapchain" swapchain_khr_opt
end
let flags record = Ctypes.getf record Fields.flags
let surface record = Ctypes.getf record Fields.surface
let min_image_count record = Ctypes.getf record Fields.min_image_count
let image_format record = Ctypes.getf record Fields.image_format
let image_color_space record = Ctypes.getf record Fields.image_color_space
let image_extent record = Ctypes.getf record Fields.image_extent
let image_array_layers record = Ctypes.getf record Fields.image_array_layers
let image_usage record = Ctypes.getf record Fields.image_usage
let image_sharing_mode record = Ctypes.getf record Fields.image_sharing_mode
let queue_family_indices record = match Ctypes.getf record Fields.queue_family_index_count, Ctypes.getf record Fields.queue_family_indices with
| Some n, (a) -> Some(Ctypes.CArray.from_ptr (a) (Uint_32_t.to_int (n)))
| _ -> None
let pre_transform record = Ctypes.getf record Fields.pre_transform
let composite_alpha record = Ctypes.getf record Fields.composite_alpha
let present_mode record = Ctypes.getf record Fields.present_mode
let clipped record = Ctypes.getf record Fields.clipped
let old_swapchain record = Ctypes.getf record Fields.old_swapchain
let () = Ctypes.seal t
exception Unknown_record_extension
type swapchain_create_info_khr_extension = ..
type swapchain_create_info_khr_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~surface:arg__surface~min_image_count:arg__min_image_count
~image_format:arg__image_format~image_color_space:arg__image_color_space
~image_extent:arg__image_extent~image_array_layers:arg__image_array_layers
~image_usage:arg__image_usage~image_sharing_mode:arg__image_sharing_mode
?queue_family_indices:arg__queue_family_indices
~pre_transform:arg__pre_transform~composite_alpha:arg__composite_alpha
~present_mode:arg__present_mode~clipped:arg__clipped
?old_swapchain:arg__old_swapchain ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Swapchain_create_info_khr, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.surface arg__surface;
Ctypes.setf generated__x__ Fields.min_image_count arg__min_image_count;
Ctypes.setf generated__x__ Fields.image_format arg__image_format;
Ctypes.setf generated__x__ Fields.image_color_space arg__image_color_space;
Ctypes.setf generated__x__ Fields.image_extent arg__image_extent;
Ctypes.setf generated__x__ Fields.image_array_layers arg__image_array_layers;
Ctypes.setf generated__x__ Fields.image_usage arg__image_usage;
Ctypes.setf generated__x__ Fields.image_sharing_mode arg__image_sharing_mode;
begin match arg__queue_family_indices with
| None ->
(Ctypes.setf generated__x__ Fields.queue_family_index_count None;
Ctypes.setf generated__x__ Fields.queue_family_indices (Obj.magic @@ Ctypes.null))
|Some arg__queue_family_indices ->(Ctypes.setf generated__x__ Fields.queue_family_index_count (Some(Uint_32_t.of_int(Ctypes.CArray.length arg__queue_family_indices)));
Ctypes.setf generated__x__ Fields.queue_family_indices (Ctypes.CArray.start arg__queue_family_indices))
end;
Ctypes.setf generated__x__ Fields.pre_transform arg__pre_transform;
Ctypes.setf generated__x__ Fields.composite_alpha arg__composite_alpha;
Ctypes.setf generated__x__ Fields.present_mode arg__present_mode;
Ctypes.setf generated__x__ Fields.clipped arg__clipped;
Ctypes.setf generated__x__ Fields.old_swapchain arg__old_swapchain;
Ctypes.addr generated__x__
end
let swapchain_create_info_khr = Swapchain_create_info_khr.t
type swapchain_create_info_khr = Swapchain_create_info_khr.t
module Validation_check_ext = struct
type t = | All
| Shaders
let to_int = function
| All -> 0
| Shaders -> 1
let of_int = function
| 0 -> All
| 1 -> Shaders
| _ -> assert false
let pp ppf x = Printer.fprintf ppf (match x with
| All -> "All"
| Shaders -> "Shaders")
let view = Ctypes.view ~write:to_int ~read:of_int int
let view_opt =let read x: _ option = if x = max_int then None else Some x in
let write: _ option -> _ =
function None -> max_int | Some x -> x in
Ctypes.view ~write ~read int
end
let validation_check_ext, validation_check_ext_opt = Validation_check_ext.(view,view_opt)
type validation_check_ext = Validation_check_ext.t
module Validation_flags_ext = struct type t type validation_flags_ext = t
let t: t structure typ = structure "validation_flags_ext"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let disabled_validation_check_count = field t "disabled_validation_check_count" uint_32_t
let disabled_validation_checks = field t "disabled_validation_checks" (ptr validation_check_ext)
end
let disabled_validation_checks record = let disabled_validation_check_count = Ctypes.getf record Fields.disabled_validation_check_count and disabled_validation_checks = Ctypes.getf record Fields.disabled_validation_checks in
Ctypes.CArray.from_ptr (disabled_validation_checks) (Uint_32_t.to_int (disabled_validation_check_count))
let () = Ctypes.seal t
exception Unknown_record_extension
type validation_flags_ext_extension = ..
type validation_flags_ext_extension += | No_extension
let make ?extension:(arg__ext=No_extension)
~disabled_validation_checks:arg__disabled_validation_checks ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Validation_flags_ext, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.disabled_validation_check_count (Uint_32_t.of_int(Ctypes.CArray.length arg__disabled_validation_checks));
Ctypes.setf generated__x__ Fields.disabled_validation_checks (Ctypes.CArray.start arg__disabled_validation_checks);
Ctypes.addr generated__x__
end
let validation_flags_ext = Validation_flags_ext.t
type validation_flags_ext = Validation_flags_ext.t
module Vi_surface_create_flags_nn = Bitset.Make()
type vi_surface_create_flags_nn = Vi_surface_create_flags_nn.t
let vi_surface_create_flags_nn, vi_surface_create_flags_nn_opt = Vi_surface_create_flags_nn.(view, view_opt)
let vi_surface_create_flag_bits_nn = Vi_surface_create_flags_nn.index_view
let vi_surface_create_flag_bits_nn_opt = Vi_surface_create_flags_nn.index_view_opt
module Vi_surface_create_info_nn = struct type t
type vi_surface_create_info_nn = t
let t: t structure typ = structure "vi_surface_create_info_nn"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let flags = field t "flags" vi_surface_create_flags_nn_opt
let window = field t "window" (ptr void)
end
let flags record = Ctypes.getf record Fields.flags
let window record = Ctypes.getf record Fields.window
let () = Ctypes.seal t
exception Unknown_record_extension
type vi_surface_create_info_nn_extension = ..
type vi_surface_create_info_nn_extension += | No_extension
let make ?extension:(arg__ext=No_extension)?flags:arg__flags
~window:arg__window ()= let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Vi_surface_create_info_nn, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.flags arg__flags;
Ctypes.setf generated__x__ Fields.window arg__window;
Ctypes.addr generated__x__
end
let vi_surface_create_info_nn = Vi_surface_create_info_nn.t
type vi_surface_create_info_nn = Vi_surface_create_info_nn.t
module Write_descriptor_set = struct type t type write_descriptor_set = t
let t: t structure typ = structure "write_descriptor_set"
module Fields=struct
let s_type = field t "s_type" structure_type
let next = field t "next" (ptr void)
let dst_set = field t "dst_set" descriptor_set
let dst_binding = field t "dst_binding" uint_32_t
let dst_array_element = field t "dst_array_element" uint_32_t
let descriptor_count = field t "descriptor_count" uint_32_t
let descriptor_type = field t "descriptor_type" descriptor_type
let image_info = field t "image_info" (ptr descriptor_image_info)
let buffer_info = field t "buffer_info" (ptr descriptor_buffer_info)
let texel_buffer_view = field t "texel_buffer_view" (ptr buffer_view)
end
let dst_set record = Ctypes.getf record Fields.dst_set
let dst_binding record = Ctypes.getf record Fields.dst_binding
let dst_array_element record = Ctypes.getf record Fields.dst_array_element
let descriptor_count record = Ctypes.getf record Fields.descriptor_count
let descriptor_type record = Ctypes.getf record Fields.descriptor_type
let image_info record = let a = Ctypes.getf record Fields.image_info in
let i = Ctypes.getf record Fields.descriptor_count in
Ctypes.CArray.from_ptr (a) (i)
let buffer_info record = let a = Ctypes.getf record Fields.buffer_info in
let i = Ctypes.getf record Fields.descriptor_count in
Ctypes.CArray.from_ptr (a) (i)
let texel_buffer_view record = let a = Ctypes.getf record Fields.texel_buffer_view in
let i = Ctypes.getf record Fields.descriptor_count in
Ctypes.CArray.from_ptr (a) (i) let () = Ctypes.seal t
exception Unknown_record_extension
type write_descriptor_set_extension = ..
type write_descriptor_set_extension += | No_extension
let make ?extension:(arg__ext=No_extension)~dst_set:arg__dst_set
~dst_binding:arg__dst_binding~dst_array_element:arg__dst_array_element
~descriptor_count:arg__descriptor_count~descriptor_type:arg__descriptor_type
~image_info:arg__image_info~buffer_info:arg__buffer_info
~texel_buffer_view:arg__texel_buffer_view ()=
let generated__x__ = Ctypes.make t in
let generated__stype__, generated__pnext__ = match arg__ext with
| No_extension -> Structure_type.Write_descriptor_set, Ctypes.null
| _ -> raise Unknown_record_extension in
Ctypes.setf generated__x__ Fields.next generated__pnext__;
Ctypes.setf generated__x__ Fields.s_type generated__stype__;
Ctypes.setf generated__x__ Fields.dst_set arg__dst_set;
Ctypes.setf generated__x__ Fields.dst_binding arg__dst_binding;
Ctypes.setf generated__x__ Fields.dst_array_element arg__dst_array_element;
Ctypes.setf generated__x__ Fields.descriptor_count arg__descriptor_count;
Ctypes.setf generated__x__ Fields.descriptor_type arg__descriptor_type;
Ctypes.setf generated__x__ Fields.image_info arg__image_info;
Ctypes.setf generated__x__ Fields.buffer_info arg__buffer_info;
Ctypes.setf generated__x__ Fields.texel_buffer_view arg__texel_buffer_view;
Ctypes.addr generated__x__
end
let write_descriptor_set = Write_descriptor_set.t
type write_descriptor_set = Write_descriptor_set.t
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment