2 个版本
新增 0.1.1 | 2024 年 8 月 17 日 |
---|---|
0.1.0 | 2024 年 8 月 17 日 |
#229 in 图形 API
每月 281 次下载
1MB
2K SLoC
ratatui-wgpu
ratatui 的基于 wgpu 的渲染后端。
这最初是我开发的一款游戏的自定义渲染后端,我想将其提供给更广泛的社区,作为 TUI 应用程序的替代渲染目标。其主要目标之一是支持在网络上提供 TUI 应用程序。
替代方案
- egui_ratatui 使用 egui 小部件作为其后端,允许它在 egui 可以运行的所有地方运行(包括网络)。
- 优点:Egui 比这个库成熟得多,并带来了一大批小部件和内置的辅助功能支持。
- 缺点:不能对其输出运行自定义着色器代码。
目标
该包有以下目标,按优先级降序排列。
- 允许运行自定义着色器代码对渲染文本。
- 请参阅
PostProcessor
以获取详细信息。您还可以查看shaders::DefaultPostProcessor
或hello_pipeline
示例,以了解它是如何工作的。
- 请参阅
- 针对 WASM。
- 如果您打算支持 Firefox,则可能需要启用
web
功能。
- 如果您打算支持 Firefox,则可能需要启用
- 正确的文本渲染(包括形状)。
- 该库依赖于 swash 进行形状和布局。Swash 允许该库处理大多数我已经测试过的事情,尽管在呈现复杂的组合字符序列(例如 zalgo 文本)时会出现问题。
- 合理的性能。
非目标
- 内置辅助功能支持。
- 我愿意做出妥协以启用辅助功能(我的游戏的原生版本使用 accesskit),但直接与辅助功能库集成超出了本库的范围。
已知限制
- 不支持从右到左的文本。
- 支持这属于目标 #3(正确性),并已计划。
- 不支持文本闪烁。
- 我愿意添加这个功能,但我没有用到它。这稍微增加了网页故事的开发复杂性,因为浏览器不支持
std::time
。
- 我愿意添加这个功能,但我没有用到它。这稍微增加了网页故事的开发复杂性,因为浏览器不支持
- 不支持光标渲染。
- 光标的位置会被跟踪,并且使用它的操作应该表现得符合预期,但光标不会在屏幕上渲染。
依赖项
约15-47MB
约763K SLoC