3个版本 (破坏性)
使用旧的Rust 2015
0.3.0 | 2019年4月29日 |
---|---|
0.2.0 | 2018年11月17日 |
0.1.0 | 2018年11月15日 |
#888 在 音频
在 kit 中使用
220KB
2K SLoC
sokol-rs
Rust对sokol头文件仅限、跨平台的库的绑定。
该crate提供了对sokol_gfx
(3D-API包装器)、sokol_app
(应用程序框架包装器)、sokol_time
(时间测量)和sokol_audio
(缓冲流式音频播放)的访问。它可以作为一个易于使用、精简、几乎无依赖的入门点来创建图形或游戏应用程序。
lib.rs
:
对sokol头文件仅限、跨平台的C库的本地绑定。
示例
这是一个使用sokol::app和sokol::gfx创建窗口,然后使用纯色在每个帧中清除其内容的简单示例。
use sokol::{
app::*,
gfx::*,
};
struct ExampleApp {
pass_action: SgPassAction,
}
impl SApp for ExampleApp {
fn sapp_init(&mut self) {
sg_setup(&SgDesc {
..Default::default()
});
}
fn sapp_frame(&mut self) {
sg_begin_default_pass(&self.pass_action, sapp_width(), sapp_height());
sg_end_pass();
sg_commit();
}
fn sapp_cleanup(&mut self) {
sg_shutdown();
}
fn sapp_event(&mut self, _event: SAppEvent) {
// Ignore events
}
}
fn main() {
let app = ExampleApp {
pass_action: SgPassAction {
colors: vec!(
SgColorAttachmentAction {
action: SgAction::Clear,
val: [0.5, 0.0, 0.25, 1.0],
}
),
..Default::default()
}
};
sapp_run(app, SAppDesc {
window_title: "Example".to_string(),
..Default::default()
});
}