12个版本
0.3.0 | 2019年1月20日 |
---|---|
0.2.1 | 2019年1月12日 |
0.1.8 | 2018年3月22日 |
#29 in 渲染引擎
30 每月下载次数
235KB
4.5K SLoC
GLerminal,一个OpenGL终端
阅读我们的 行为准则 并加入我们的 Discord服务器 如果你想聊天!
一个从头开始用OpenGL制作的轻量级终端。
使用这个终端,你可以制作你一直想要的终端应用程序或游戏,但这个终端的外观对每个人来说都是一样的,因为它是用OpenGL制作的,不使用电脑的原生终端!
当前支持的功能包括
- 在终端内移动光标
- 更改前景和背景颜色为你想要的任何颜色!
- 抖动文本
- 一个文本解析器,它将使你轻松地编写你想要的内容,并使其看起来很酷!
- 可解析的文本示例:
"Hello, [fg=red]this is red[/fg] and [shake=1.0]this is shaking[/shake]."
- 可解析的文本示例:
- 在彼此之上绘制多个文本缓冲区(文本网格)
- 一个菜单系统,允许轻松创建和使用菜单来选择和按下东西!(见文档了解更多)
- 需要启用
menu_systems
可选功能
- 需要启用
- 写入你字体支持的16位以内的任何字符
注意:需要OpenGL 3.3+支持
目录
如何使用
详细的文档可以在: docs.rs 找到。
只需将以下行添加到您的 Cargo.toml
[dependencies]
glerminal = "0.3"
然后使用这个crate非常简单
extern crate glerminal; // Not required if running 2018 edition
use glerminal::terminal::TerminalBuilder;
use glerminal::text_buffer::TextBuffer;
fn main() {
let terminal = TerminalBuilder::new()
.with_title("Hello GLerminal!")
.with_dimensions((1280, 720))
.build();
let mut text_buffer;
match TextBuffer::create(&terminal, (80, 24)) {
Ok(buffer) => text_buffer = buffer,
Err(error) => panic!(format!("Failed to initialize text buffer: {}", error)),
}
text_buffer.write("Hello, GLerminal!");
terminal.flush(&mut text_buffer);
while terminal.refresh() {
terminal.draw(&text_buffer);
}
}
自定义字体?
GLerminal附带的自定义字体是 Source Code Pro 的渲染,并包含一些更流行的Unicode块,以节省最终产品(默认字体编译到库中)的空间。
以下块包含在默认字体中
要创建自定义字体,您必须使用 BMFont 标准 / .fnt
或 .sfl
,并且可以生成此类文件的软件是 BMFont(只能生成 .fnt
),或 Fontbuilder(可以生成两者)。
字体图像需要是 RGBA PNG。
建议使用 Fontbuilder,因为(至少经过一些测试)由 BMFont(及其抗锯齿)生成的 png 字体图像与 Fontbuilder 相比质量较差,尽管 Fontbuilder 在 Windows 设备上可能难以构建(但可以使用 MinGW)。
注意 如果使用 Fontbuilder,强烈建议使用 此分支,因为它包含对 .sfl 字体导出的关键修复。
之后,建议查看 glerminal 字体文档,了解如何加载自定义字体以供使用。
贡献 & 行为准则
欢迎您为此项目做出贡献,但在做之前请查看 贡献指南。
仓库中还可以找到行为准则,见 CODE_OF_CONDUCT.md,在与社区互动之前请查看。
许可证
此软件包根据 MIT 许可证 的条款分发。
此软件包还使用名为 Source Code Pro 的字体作为默认字体,该字体根据 SIL OFL 版本 1.1 的条款分发。
依赖关系
~3–13MB
~167K SLoC