abletk/abletk-common/src/lib.rs

63 lines
1.3 KiB
Rust
Executable File

/*
* Copyright (C) 2022 Umut İnan Erdoğan <umutinanerdogan@pm.me>
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
pub mod color;
pub mod rect;
use raw_window_handle::RawWindowHandle;
use color::Color;
use rect::Rect;
#[cfg(windows)]
use abletk_direct2d as backend;
pub struct Renderer {
renderer: backend::Renderer,
}
impl Renderer {
pub fn new(handle: RawWindowHandle) -> Self {
let handle = match handle {
RawWindowHandle::Win32(handle) => handle,
_ => todo!()
};
Self {
renderer: backend::Renderer::new(handle)
}
}
pub fn begin_draw(&mut self) {
self.renderer.begin_draw()
}
pub fn clear(&self, color: Color) {
self.renderer.clear(color)
}
pub fn draw_text<S: AsRef<str>>(&self, text: S) {
self.renderer.draw_text(text.as_ref())
}
pub fn end_draw(&self) {
self.renderer.end_draw()
}
pub fn fill_rect(&self, rect: Rect) {
self.renderer.fill_rect(rect)
}
pub fn resized(&mut self, width: u32, height: u32) {
self.renderer.resized(width, height)
}
pub fn size(&self) -> (f32, f32) {
self.renderer.size()
}
}