rovella

Crates.iorovella
lib.rsrovella
version0.1.6
sourcesrc
created_at2022-07-20 15:37:25.672599
updated_at2022-08-11 13:58:48.386819
descriptionA game library that, at present, only consists of a windowing and events wrapper
homepage
repository
max_upload_size
id628921
size49,297
(Spleeshmicannon)

documentation

README

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();
}

Commit count: 0

cargo fmt