diff --git a/Project/game/src/lib.rs b/Project/game/src/lib.rs index 67223b4..5941107 100644 --- a/Project/game/src/lib.rs +++ b/Project/game/src/lib.rs @@ -6,7 +6,6 @@ use arduboy_rust::prelude::*; // Progmem data -//#[link_section = ".progmem.data"] // dynamic ram variables @@ -14,10 +13,6 @@ use arduboy_rust::prelude::*; #[no_mangle] pub unsafe extern "C" fn setup() { // put your setup code here, to run once: - arduboy.begin(); - arduboy.clear(); - arduboy.print(f!(b"hello boys\0")); - arduboy.display(); } // The loop() function repeats forever after setup() is done diff --git a/Wrapper-Project/src/library/arduboy/sprites.cpp b/Wrapper-Project/src/library/arduboy/sprites.cpp index 170a575..79cf43f 100644 --- a/Wrapper-Project/src/library/arduboy/sprites.cpp +++ b/Wrapper-Project/src/library/arduboy/sprites.cpp @@ -3,4 +3,21 @@ void arduino_draw_override(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t frame) { Sprites::drawOverwrite(x, y, bitmap, frame); +} +void arduino_draw_external_mask(int16_t x, int16_t y, const uint8_t *bitmap, + const uint8_t *mask, uint8_t frame, uint8_t mask_frame) +{ + Sprites::drawExternalMask(x, y, bitmap, mask, frame, mask_frame); +} +void arduino_draw_plus_mask(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t frame) +{ + Sprites::drawPlusMask(x, y, bitmap, frame); +} +void arduino_draw_erase(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t frame) +{ + Sprites::drawErase(x, y, bitmap, frame); +} +void arduino_draw_self_masked(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t frame) +{ + Sprites::drawSelfMasked(x, y, bitmap, frame); } \ No newline at end of file diff --git a/Wrapper-Project/src/library/arduboy/sprites.h b/Wrapper-Project/src/library/arduboy/sprites.h index bd6ad50..07c7136 100644 --- a/Wrapper-Project/src/library/arduboy/sprites.h +++ b/Wrapper-Project/src/library/arduboy/sprites.h @@ -4,4 +4,9 @@ extern "C" { void arduino_draw_override(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t frame); + void arduino_draw_external_mask(int16_t x, int16_t y, const uint8_t *bitmap, + const uint8_t *mask, uint8_t frame, uint8_t mask_frame); + void arduino_draw_plus_mask(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t frame); + void arduino_draw_erase(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t frame); + void arduino_draw_self_masked(int16_t x, int16_t y, const uint8_t *bitmap, uint8_t frame); } \ No newline at end of file diff --git a/arduboy-rust/src/library/sprites.rs b/arduboy-rust/src/library/sprites.rs index bf43923..ffcb65c 100644 --- a/arduboy-rust/src/library/sprites.rs +++ b/arduboy-rust/src/library/sprites.rs @@ -4,6 +4,22 @@ use core::ffi::{c_int, c_uchar}; extern "C" { #[link_name = "arduino_draw_override"] fn arduino_draw_override_raw(x: c_int, y: c_int, bitmap: *const c_uchar, frame: c_uchar); + #[link_name = "arduino_draw_external_mask"] + fn arduino_draw_external_mask_raw( + x: c_int, + y: c_int, + bitmap: *const c_uchar, + mask: *const c_uchar, + frame: c_uchar, + mask_frame: c_uchar, + ); + #[link_name = "arduino_draw_plus_mask"] + fn arduino_draw_plus_mask_raw(x: c_int, y: c_int, bitmap: *const c_uchar, frame: c_uchar); + #[link_name = "arduino_draw_erase"] + fn arduino_draw_erase_raw(x: c_int, y: c_int, bitmap: *const c_uchar, frame: c_uchar); + #[link_name = "arduino_draw_self_masked"] + fn arduino_draw_self_masked_raw(x: c_int, y: c_int, bitmap: *const c_uchar, frame: c_uchar); + } /// Draw a sprite by replacing the existing content completely. /// @@ -36,3 +52,22 @@ extern "C" { pub fn draw_override(x: i16, y: i16, bitmap: *const u8, frame: u8) { unsafe { arduino_draw_override_raw(x, y, bitmap, frame) } } +pub fn draw_external_mask( + x: i16, + y: i16, + bitmap: *const u8, + mask: *const u8, + frame: u8, + mask_frame: u8, +) { + unsafe { arduino_draw_external_mask_raw(x, y, bitmap, mask, frame, mask_frame) } +} +pub fn draw_plus_mask(x: i16, y: i16, bitmap: *const u8, frame: u8) { + unsafe { arduino_draw_plus_mask_raw(x, y, bitmap, frame) } +} +pub fn draw_erase(x: i16, y: i16, bitmap: *const u8, frame: u8) { + unsafe { arduino_draw_erase_raw(x, y, bitmap, frame) } +} +pub fn draw_self_masked(x: i16, y: i16, bitmap: *const u8, frame: u8) { + unsafe { arduino_draw_self_masked_raw(x, y, bitmap, frame) } +}