cotis-raylib 0.1.0-alpha

Raylib-backed renderer for Cotis
Documentation
use crate::test_render::RayTestRender;
use cotis_utils::interactivity::keyboard::{
    KeyboardKey, SimpleKeyboardProvider, SimpleTextProvider,
};
use cotis_utils::interactivity::mouse::{MouseButton, MouseProvider};
use cotis_utils::math::Vector2;
use indexmap::IndexSet;

impl MouseProvider for RayTestRender {
    fn get_mouse_position(&self) -> Vector2 {
        let res = self.render.lock_handle().get_mouse_position();
        Vector2::new(res.x * self.scale, res.y * self.scale)
    }

    fn mouse_button_down(&self, button: MouseButton) -> bool {
        self.render.lock_handle().mouse_button_down(button)
    }

    fn get_mouse_wheel_move_v(&self) -> Vector2 {
        self.render.lock_handle().get_mouse_wheel_move_v()
    }
}

impl SimpleKeyboardProvider for RayTestRender {
    fn get_pressed_keys(&self) -> IndexSet<KeyboardKey> {
        self.render.lock_handle().get_pressed_keys()
    }
}

impl SimpleTextProvider for RayTestRender {
    fn get_pressed_chars(&self) -> Vec<char> {
        SimpleTextProvider::get_pressed_chars(&self.render)
    }
}