added arduboyfx_read_data_array arduboyfx_set_frame arduboyfx_draw_frame arduboyfx_draw_string arduboyfx_draw_string_buffer arduboyfx_set_cursor

This commit is contained in:
ZennDev1337 2023-10-03 09:47:55 +02:00
parent ddf419f702
commit 3f847e86a6
3 changed files with 49 additions and 3 deletions

View file

@ -12,11 +12,12 @@ const arduboy: Arduboy2 = Arduboy2::new();
// Progmem data
// dynamic ram variables
const FX_DATA_PAGE: u16 = 0xffff;
const FX_DATA_BYTES: u32 = 234;
const FX_DATA_PAGE: u16 = 0xfffe;
const FX_DATA_BYTES: u32 = 329;
const FXlogo: u32 = 0x000000;
const FXlogoWith: i16 = 115;
const FXlogoHeight: i16 = 16;
const helloWorld: u32 = 0x0000EA;
static mut x: i16 = (WIDTH - FXlogoWith) / 2;
static mut y: i16 = 25;
@ -47,5 +48,7 @@ pub unsafe extern "C" fn loop_() {
if y == 0 || y == HEIGHT - FXlogoHeight {
yDir = -yDir;
}
arduboyfx_set_cursor(10, 10);
arduboyfx_draw_string(helloWorld);
arduboyfx_display_clear();
}

View file

@ -26,4 +26,28 @@ extern "C"
{
FX::drawBitmap(x,y,address,frame,mode);
}
void arduboyfx_read_data_array(uint24_t address,uint8_t index,uint8_t offset,uint8_t elementSize,uint8_t * buffer,size_t length )
{
FX::readDataArray(address,index,offset,elementSize,buffer,length);
}
void arduboyfx_set_frame(uint24_t frame,uint8_t repeat )
{
FX::setFrame(frame,repeat);
}
uint24_t arduboyfx_draw_frame(uint24_t address)
{
return FX::drawFrame(address);
}
void arduboyfx_draw_string(uint24_t address)
{
FX::drawString(address);
}
void arduboyfx_draw_string_buffer(const uint8_t * buffer )
{
FX::drawString(buffer);
}
void arduboyfx_set_cursor(int16_t x,int16_t y)
{
return FX::setCursor(x,y);
}
}

View file

@ -1,5 +1,5 @@
#![allow(non_upper_case_globals)]
use core::ffi::{c_int, c_long, c_uchar, c_uint, c_ulong};
use core::ffi::{c_char, c_int, c_size_t, c_uchar, c_uint, c_ulong};
pub const dbmNormal: u8 = 0;
pub const dbmOverwrite: u8 = 0;
@ -15,6 +15,15 @@ extern "C" {
pub fn arduboyfx_display();
#[link_name = "arduboyfx_display_clear"]
pub fn arduboyfx_display_clear();
#[link_name = "arduboyfx_read_data_array"]
pub fn arduboyfx_read_data_array(
address: c_ulong,
index: c_uchar,
offset: c_uchar,
element_size: c_uchar,
buffer: *const c_uchar,
length: c_size_t,
);
#[link_name = "arduboyfx_draw_bitmap"]
pub fn arduboyfx_draw_bitmap(
x: c_int,
@ -23,4 +32,14 @@ extern "C" {
frame: c_uchar,
mode: c_uchar,
);
#[link_name = "arduboyfx_set_frame"]
pub fn arduboyfx_set_frame(frame: c_ulong, repeat: c_uchar);
#[link_name = "arduboyfx_draw_frame"]
pub fn arduboyfx_draw_frame(address: c_ulong) -> c_ulong;
#[link_name = "arduboyfx_draw_string"]
pub fn arduboyfx_draw_string(address: c_ulong);
#[link_name = "arduboyfx_draw_string_buffer"]
pub fn arduboyfx_draw_string_buffer(buffer: *const c_uchar);
#[link_name = "arduboyfx_set_cursor"]
pub fn arduboyfx_set_cursor(x: c_int, y: c_int);
}