8个版本
0.2.0 | 2024年8月11日 |
---|---|
0.1.6 | 2023年12月14日 |
#433 in 游戏开发
每月 116次下载
85KB
2K SLoC
TRS_24
一个基于Rust的OpenGL游戏引擎(OpenGL 2.0+)
特点
- 多维:支持3D和2D渲染。
- 性能:为最佳性能而设计。
- 跨平台:支持Windows、MacOS、Linux和Android构建。
- OpenGL 2.0 API:开启多种GPU/iGPU兼容性。
- 捆绑器(WIP):内置捆绑系统,支持Windows、MacOS、Linux和Android。
入门指南
基本来说,使用两个文件是使用此引擎的理想方法。主文件lib.rs
仅用于在Android上运行窗口和构建共享对象 (*.so)。次要文件main.rs
仅用于在主机机器上进行测试,并构建**非Android平台。这两个文件都需要放在src
目录中。
为了使这两个文件共存,以下内容需要在Cargo.toml
中
[lib]
# Causes the production of a dynamic system library
crate-type = ["cdylib"]
[[bin]]
name = "test"
path = "src/main.rs"
这两个文件将具有它们自己的结构
lib.rs
的结构
[!注意] 注意第一行中
#![cfg(target_os = "android")]
的必要性,以及在android_main
函数之前#[no_mangle]
属性。它们必须存在,否则编译和构建时会出现错误和崩溃。
#![cfg(target_os = "android")]
use trs_24::overture::*;
#[no_mangle]
pub fn android_main(app: AndroidApp) {
// Creates an event loop for android platforms only.
let event_loop = EventLoopBuilder::new().with_android_app(app).build();
// The rest of your code here...
// 99% of the time, this is the place for the content of the
// main function in main.rs, excluding the event_loop definition
}
main.rs
的结构
use trs_24::overture::*;
pub fn main() {
// Creates an event loop for non-android platforms only.
let event_loop = EventLoopBuilder::new().build();
// The rest of your code here...
}
ℹ️ 要查看一个完整的示例,请克隆仓库并转到example
目录。
构建和捆绑
有关Android和非Android目标平台的完整说明,请参阅wiki页面构建和捆绑。
依赖关系
~24–39MB
~693K SLoC