Rovella
A game engine/library which will be multipurpose but will be primarily aimed at 2D games and visual novels.
Note: This version is unstable
Features
- Wraps Platform windowing code
- Wraps Platform events
- Wrappers are thin with minimal overhead (or at least planned minimal overhead)
- Supports the raw-window-handle for xcb and win32 (or linux and windows)
Planned
- New features will have optional usage
- Multithreading API with SIMD, OMP, GPGPU and standard threading support
- Some rendering helper methods/functions (similar to glfw)
- A renderer (this is long term)
- An input manager
Platforms:
- Windows (Full Support - Not well tested)
- Linux (X11 and XCB) (Partial Support - Window Close Event not working - Not well tested)
- MacOS (Planned)
Example Program
fn main() {
let mut app: rovella::App = rovella::App::create(
"hello world",
15,
15,
1920,
1080
).unwrap(); // Only if your lazy :)
while app.is_running() {
let event_op = app.poll_events();
if event_op.is_none() {
continue;
}
let event = event_op.unwrap();
match event {
rovella::Event::WinClose => {
app.quit();
}
rovella::Event::KeyDown(key) => {
if key == rovella::Key::Escape {
app.quit();
}
}
_ => {}
}
}
app.shutdown();
}