#bindings #cross-platform #lean #applications #point #entry

sokol

对sokol头文件仅限、跨平台的C库的本地绑定

3个版本 (破坏性)

使用旧的Rust 2015

0.3.0 2019年4月29日
0.2.0 2018年11月17日
0.1.0 2018年11月15日

#888音频


kit 中使用

Zlib许可证

220KB
2K SLoC

sokol-rs

Crates.io Docs.rs zlib

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

依赖项