use core::ffi::c_void;
extern "C" {
pub fn am_command_queue_new_command_buffer_with_unretained_references(
handle: *mut c_void,
) -> *mut c_void;
pub fn am_command_buffer_enqueue(handle: *mut c_void);
pub fn am_command_buffer_wait_until_scheduled(handle: *mut c_void);
pub fn am_command_buffer_status(handle: *mut c_void) -> usize;
pub fn am_command_buffer_error_message(handle: *mut c_void) -> *mut core::ffi::c_char;
pub fn am_command_buffer_new_blit_command_encoder(handle: *mut c_void) -> *mut c_void;
pub fn am_command_buffer_new_compute_command_encoder(handle: *mut c_void) -> *mut c_void;
pub fn am_command_buffer_new_render_command_encoder(
handle: *mut c_void,
texture_handle: *mut c_void,
load_action: usize,
store_action: usize,
clear_r: f64,
clear_g: f64,
clear_b: f64,
clear_a: f64,
) -> *mut c_void;
pub fn am_command_buffer_encode_wait_for_event(
handle: *mut c_void,
event_handle: *mut c_void,
value: u64,
);
pub fn am_command_buffer_encode_signal_event(
handle: *mut c_void,
event_handle: *mut c_void,
value: u64,
);
pub fn am_command_encoder_end_encoding(handle: *mut c_void);
pub fn am_blit_command_encoder_copy_buffer(
handle: *mut c_void,
src_handle: *mut c_void,
src_offset: usize,
dst_handle: *mut c_void,
dst_offset: usize,
size: usize,
) -> bool;
pub fn am_blit_command_encoder_fill_buffer(
handle: *mut c_void,
buffer_handle: *mut c_void,
location: usize,
length: usize,
value: u8,
) -> bool;
pub fn am_blit_command_encoder_sample_counters(
handle: *mut c_void,
sample_buffer_handle: *mut c_void,
sample_index: usize,
barrier: bool,
) -> bool;
pub fn am_blit_command_encoder_update_fence(handle: *mut c_void, fence_handle: *mut c_void);
pub fn am_blit_command_encoder_wait_for_fence(handle: *mut c_void, fence_handle: *mut c_void);
pub fn am_compute_command_encoder_set_pipeline_state(
handle: *mut c_void,
pipeline_handle: *mut c_void,
);
pub fn am_compute_command_encoder_set_buffer(
handle: *mut c_void,
buffer_handle: *mut c_void,
offset: usize,
index: usize,
);
pub fn am_compute_command_encoder_set_texture(
handle: *mut c_void,
texture_handle: *mut c_void,
index: usize,
);
pub fn am_compute_command_encoder_set_visible_function_table(
handle: *mut c_void,
table_handle: *mut c_void,
index: usize,
);
pub fn am_compute_command_encoder_set_intersection_function_table(
handle: *mut c_void,
table_handle: *mut c_void,
index: usize,
);
pub fn am_compute_command_encoder_set_acceleration_structure(
handle: *mut c_void,
acceleration_structure_handle: *mut c_void,
index: usize,
);
pub fn am_compute_command_encoder_dispatch_threadgroups(
handle: *mut c_void,
tg_w: usize,
tg_h: usize,
tg_d: usize,
threads_w: usize,
threads_h: usize,
threads_d: usize,
);
pub fn am_compute_command_encoder_dispatch_threads(
handle: *mut c_void,
grid_w: usize,
grid_h: usize,
grid_d: usize,
threads_w: usize,
threads_h: usize,
threads_d: usize,
);
pub fn am_compute_command_encoder_update_fence(handle: *mut c_void, fence_handle: *mut c_void);
pub fn am_compute_command_encoder_wait_for_fence(
handle: *mut c_void,
fence_handle: *mut c_void,
);
pub fn am_render_command_encoder_set_render_pipeline_state(
handle: *mut c_void,
pipeline_handle: *mut c_void,
);
pub fn am_render_command_encoder_set_vertex_buffer(
handle: *mut c_void,
buffer_handle: *mut c_void,
offset: usize,
index: usize,
);
pub fn am_render_command_encoder_draw_primitives(
handle: *mut c_void,
primitive_type: usize,
vertex_start: usize,
vertex_count: usize,
);
pub fn am_render_command_encoder_update_fence(handle: *mut c_void, fence_handle: *mut c_void);
pub fn am_render_command_encoder_wait_for_fence(handle: *mut c_void, fence_handle: *mut c_void);
}