4 个版本 (2 个重大更改)
0.3.0 | 2022年2月19日 |
---|---|
0.2.0 | 2022年2月17日 |
0.1.1 | 2022年2月17日 |
0.1.0 | 2022年2月16日 |
#22 in #glfw
1MB
13K SLoC
min_gl
这是一个小型库,它将 glfw 和 glad 结合起来处理样板代码。用户只需要创建一个 Display
,它作为一个智能指针初始化和终止必要的组件。因此,在 Display
的生命周期内,可以自由地调用 OpenGL 调用,而不需要任何其他设置。
示例
use glfw::WindowEvent;
use min_gl::{gl, Display, Options};
fn main() {
// Assume this is some application state.
let mut event_count = 0u32;
// Just create and done!
// All library initialization and window creation is handled.
// They panic if an error occurs.
let mut disp = Display::new(
// No defaults; you cannot miss anything!
Options {
width: 1280,
height: 720,
title: "Display Test".into(),
fullscreen: false,
decorated: true,
msaa: Some(16),
vsync: true,
},
// WindowEvent handling...
|event| {
event_count += 1; // Closure can modify state (FnMut).
match event {
WindowEvent::Key(k, _, a, _) => println!("Key `{:?}` is {:?}ed!", k, a),
e => println!("Some {:?} happened!", e),
}
},
);
// Of course, you can go with more complicated main loops.
while !disp.window().should_close() {
// All window events...
disp.update();
/* ~~~~ drawing start ~~~~ */
gl::ClearColor(0.7, 0.5, 0.6, 1.0);
/* ~~~~ drawing end ~~~~ */
disp.render();
}
// No clean up; thanks to idomatic glfw-rs!
// OpenGL calls are not valid after `disp` is dropped!
println!("In total {} window events happened!", event_count);
}
Glad 2 在 2022年2月16日 使用以下选项
- 生成器:Rust
- APIs:gl; 版本 4.6 Core
- 扩展:所有
- 选项:无
版权 (C) 2022 Cem Geçgel [email protected]
依赖项
~2MB
~44K SLoC