unsafe extern "C" {
fn screen_clear();
fn screen_update();
fn screen_set_keepout(x: u32, y: u32, width: u32, height: u32);
fn bagl_hal_draw_bitmap_within_rect(
x: i32,
y: i32,
width: u32,
height: u32,
color_count: u32,
colors: *const u32,
bit_per_pixel: u32,
bitmap: *const u8,
bitmap_length_bits: u32,
);
fn bagl_hal_draw_rect(color: u32, x: i32, y: i32, width: u32, height: u32);
}
pub fn sdk_screen_clear() {
unsafe {
screen_clear();
}
}
pub fn sdk_set_keepout(x: u32, y: u32, width: u32, height: u32) {
unsafe {
screen_set_keepout(x, y, width, height);
}
}
pub fn sdk_screen_update() {
unsafe {
screen_update();
}
}
pub fn sdk_bagl_hal_draw_bitmap_within_rect(
x: i32,
y: i32,
width: u32,
height: u32,
inverted: bool,
bitmap: &[u8],
) {
let inverted = [inverted as u32, !inverted as u32];
unsafe {
bagl_hal_draw_bitmap_within_rect(
x,
y,
width,
height,
2,
inverted.as_ptr(),
1,
bitmap.as_ptr(),
width * height,
)
}
}
pub fn sdk_bagl_hal_draw_rect(color: u32, x: i32, y: i32, width: u32, height: u32) {
unsafe {
bagl_hal_draw_rect(color, x, y, width, height);
}
}