1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use core::ffi::c_void;
use crate::opaque;
use super::canvas::Canvas;
opaque!(ViewPort);
opaque!(InputEvent);
pub type ViewPortDrawCallback = extern fn(*mut Canvas, *mut c_void);
pub type ViewPortInputCallback = extern fn(*mut InputEvent, *mut c_void);
extern "C" {
#[link_name = "view_port_alloc"]
pub fn alloc() -> *mut ViewPort;
#[link_name = "view_port_free"]
pub fn free(view_port: *mut ViewPort);
#[link_name = "view_port_enabled_set"]
pub fn enabled_set(view_port: *mut ViewPort, enabled: bool);
#[link_name = "view_port_draw_callback_set"]
pub fn draw_callback_set(view_port: *mut ViewPort, callback: ViewPortDrawCallback, context: *mut c_void);
#[link_name = "view_port_input_callback_set"]
pub fn input_callback_set(view_port: *mut ViewPort, callback: ViewPortInputCallback, context: *mut c_void);
#[link_name = "view_port_update"]
pub fn update(view_port: *mut ViewPort);
}