3个版本 (破坏性)
新功能 0.3.0 | 2024年8月12日 |
---|---|
0.2.0 | 2024年7月25日 |
0.1.0 | 2024年7月10日 |
#1009 in 游戏开发
每月264次下载
39KB
808 代码行
狼引擎窗口
提供基于Winit构建的简单、高级窗口系统。
状态
该软件包目前处于早期开发阶段。您应该期待缺少功能、错误、更改API和其他令人不安的东西,直到1.0版本发布。
许可证
狼引擎许可采用以下之一:
任选其一。
贡献
除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交以包含在作品中并由您提交的任何贡献,均应双许可,无额外条款或条件。
lib.rs
:
提供简单、高级的窗口系统。
初始化窗口系统
通过调用[init()
]函数来初始化窗口系统。
let window_context = wolf_engine_window::init().build().unwrap();
一旦创建了EventLoop
,您就可以调用其run()
方法,使用提供的事件处理函数启动窗口系统。
处理事件和创建窗口
#
#
let mut window = None;
window_context.run(|event, context| match event {
// The main-loop has started.
// Do intial setup, like creating windows, render surfaces, ext. here.
Event::Started => {
println!("Hello, world!");
window = Some(
context.create_window(
WindowSettings::default()
.with_title("Example Window")
.with_size((800, 600)),
).unwrap()
);
}
// All events have been processed.
Event::EventsCleared => {
// Start the next frame.
window.as_ref().unwrap().redraw();
}
// Window-specific events.
Event::WindowEvent(window_id, event) => match event {
// A window should be redrawn.
WindowEvent::RedrawRequested => {
// Render code goes here!
},
// A window has / should close.
WindowEvent::Closed => {
context.exit(); // Stop the event loop.
}
_ => (),
}
// The main-loop will stop.
Event::Exited => println!("Goodbye, World!"),
_ => (),
});
在窗口上绘图
此软件包不提供自己的渲染函数。相反,它实现了raw_window_handle
特质,以便与外部渲染库兼容。
依赖关系
~3–17MB
~247K SLoC