#platform #windowing #xcb #winapi #game-engine

bin+lib rovella

一个游戏库,目前仅包含窗口和事件包装器

5 个版本

0.1.6 2022 年 8 月 11 日
0.1.5 2022 年 7 月 29 日

891游戏开发 中排名

每月 下载 30

GPL-2.0-or-later

40KB
1K SLoC

罗维拉

一个多用途的游戏引擎/库,但主要用于 2D 游戏

注意:此版本是不稳定的

特性

  • 包装平台窗口代码
  • 包装平台事件
  • 包装器很薄,开销最小(或至少计划最小开销)
  • 支持 xcb 和 win32(或 Linux 和 Windows)的原始窗口句柄

计划

  • 新功能将具有可选使用
  • 支持 SIMD、OMP、GPGPU 和标准线程的多线程 API
  • 一些渲染辅助方法/函数(类似于 glfw)
  • 一个渲染器(这是一个长期目标)
  • 一个输入管理器

平台

  • Windows(完全支持 - 测试不佳)
  • Linux(X11 和 XCB)(部分支持 - 窗口关闭事件不工作 - 测试不佳)
  • MacOS(计划中)

示例程序

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

依赖关系

~0.7–1.4MB
~23K SLoC