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
29
30
31
32
33
34
35
use core::ffi::c_void;
use super::canvas::Canvas;
use super::InputEvent;
use crate::opaque;
opaque!(ViewPort);
pub type DrawCallback = extern "C" fn(*mut Canvas, *mut c_void);
pub type InputCallback = extern "C" 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: DrawCallback,
context: *mut c_void,
);
#[link_name = "view_port_input_callback_set"]
pub fn input_callback_set(
view_port: *mut ViewPort,
callback: InputCallback,
context: *mut c_void,
);
#[link_name = "view_port_update"]
pub fn update(view_port: *mut ViewPort);
}