38个版本
0.9.3 | 2022年11月2日 |
---|---|
0.9.2 | 2020年5月23日 |
0.9.1 | 2020年4月25日 |
0.8.2 | 2019年11月23日 |
0.2.0 | 2016年3月19日 |
#630 in 图形API
132,100 每月下载量
用于 699 个crate(178直接)
92KB
1.5K SLoC
RustType
RustType是FreeType等库的纯Rust替代品。
当前RustType的功能
- 读取OpenType格式的字体和字体集合。这包括
*.ttf
以及*.otf
字体文件。 - 检索字体及其字形的形状和常用属性。
- 使用水平和垂直度量以及字形对特定间距进行水平布局。
- 使用精确的解析算法(不基于采样)进行具有亚像素定位的字形光栅化。
- 使用
gpu_cache
模块在GPU上管理字体缓存。这将在GPU内存中的动态缓存中保留最近使用的字形渲染,以最小化每帧的纹理上传。它还允许您将文本的绘制调用次数保持在非常低,因为所有字形都保留在一个GPU纹理中。
RustType目前不支持以下功能
- 字体提示。
- 任何类型的连字符。
- 一些不太常见的TrueType子格式。
- 从右到左和垂直文本布局。
测试和示例
更重的示例、测试和基准测试在./dev
目录中。这避免了dev-dependency功能泄露。
使用cargo test --all --all-features
运行所有测试。
使用 cargo run --example <名称> -p dev
运行示例。
入门指南
要快速开始使用 RustType,请查看随 crate 一起提供的 dev/examples/ascii.rs
。它演示了加载字体文件、将任意字符串进行光栅化,并将结果显示为 ASCII 艺术品。如果您只想查看文档,加载字体的入口点是 Font
,从这里您可以访问单个字体,然后是它们的字形。
未来计划
项目的初始动机是为游戏提供易于使用的字体渲染。RustType 有许多改进的途径。想法
- 支持一些常见的连字符形式。
- 并且,最终,支持嵌入的从右到左的 Unicode 文本。
如果您认为您可以帮助实现这些目标中的任何一个,请随时为讨论它们打开一个跟踪问题。
最低支持的 rust 编译器
此 crate 使用 最新稳定的 rust。
许可证
根据您的选择,许可为以下之一
- Apache License,版本 2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则您根据 Apache-2.0 许可证定义的任何旨在包含在作品中的有意贡献,应按上述方式双重许可,不附加任何额外条款或条件。
另请参阅
- glyph_brush - 可以缓存顶点生成并提供更复杂的布局。
依赖关系
~1MB
~22K SLoC