Skip to main content

apple_mps/ffi/
core.rs

1use core::ffi::c_void;
2
3extern "C" {
4    pub fn mps_object_retain(handle: *mut c_void) -> *mut c_void;
5    pub fn mps_object_release(handle: *mut c_void);
6
7    pub fn mps_supports_mtl_device(device_handle: *mut c_void) -> bool;
8    pub fn mps_get_preferred_device(options: usize) -> *mut c_void;
9    pub fn mps_hint_temporary_memory_high_water_mark(
10        command_buffer_handle: *mut c_void,
11        bytes: usize,
12    );
13    pub fn mps_set_heap_cache_duration(command_buffer_handle: *mut c_void, seconds: f64);
14    pub fn mps_rect_no_clip(
15        x: *mut usize,
16        y: *mut usize,
17        z: *mut usize,
18        width: *mut usize,
19        height: *mut usize,
20        depth: *mut usize,
21    );
22
23    pub fn mps_predicate_new_with_buffer(buffer_handle: *mut c_void, offset: usize) -> *mut c_void;
24    pub fn mps_predicate_new_with_device(device_handle: *mut c_void) -> *mut c_void;
25    pub fn mps_predicate_offset(handle: *mut c_void) -> usize;
26
27    pub fn mps_command_buffer_new_with_command_buffer(
28        command_buffer_handle: *mut c_void,
29    ) -> *mut c_void;
30    pub fn mps_command_buffer_from_command_queue(command_queue_handle: *mut c_void) -> *mut c_void;
31    pub fn mps_command_buffer_set_predicate(
32        command_buffer_handle: *mut c_void,
33        predicate_handle: *mut c_void,
34    );
35    pub fn mps_command_buffer_clear_predicate(command_buffer_handle: *mut c_void);
36    pub fn mps_command_buffer_prefetch_heap(command_buffer_handle: *mut c_void, size: usize);
37    pub fn mps_command_buffer_commit_and_continue(command_buffer_handle: *mut c_void);
38}