librsmsx 0.4.1

a MSX emulator written in rust, a port from gomsx
Documentation
use sdl3::{
    pixels::Color,
    render::{Canvas, FPoint, FRect},
    video::Window,
};

use super::base_system::SCALE;

// TODO: use better GUI when they adopt SDL3 properly
pub fn simple_ui_button(
    rect: &FRect,
    color: Color,
    canvas: &mut Canvas<Window>,
    point: &FPoint,
    pressed: bool,
) -> bool {
    let color_ = canvas.draw_color();
    canvas.set_draw_color(color);
    // canvas.fill_rect(Rect::new(0, 0, 512, 192)).unwrap(); // fill_rect does not work for now
    canvas.draw_rect(*rect).unwrap();
    canvas.set_draw_color(color_);

    let x0 = rect.x * SCALE;
    let y0 = rect.y * SCALE;
    let x1 = (rect.x + rect.w) * SCALE;
    let y1 = (rect.y + rect.h) * SCALE;
    pressed && x0 <= point.x && point.x <= x1 && y0 <= point.y && point.y <= y1
}