2 个版本

新增 0.1.1 2024 年 8 月 17 日
0.1.0 2024 年 8 月 17 日

#229 in 图形 API

Download history 281/week @ 2024-08-15

每月 281 次下载

MIT/Apache

1MB
2K SLoC

ratatui-wgpu

Crate Badge Deps.rs Badge Docs Badge License Badge

ratatui 的基于 wgpu 的渲染后端。

这最初是我开发的一款游戏的自定义渲染后端,我想将其提供给更广泛的社区,作为 TUI 应用程序的替代渲染目标。其主要目标之一是支持在网络上提供 TUI 应用程序。

替代方案

  • egui_ratatui 使用 egui 小部件作为其后端,允许它在 egui 可以运行的所有地方运行(包括网络)。
    • 优点:Egui 比这个库成熟得多,并带来了一大批小部件和内置的辅助功能支持。
    • 缺点:不能对其输出运行自定义着色器代码。

目标

该包有以下目标,按优先级降序排列。

  1. 允许运行自定义着色器代码对渲染文本。
  2. 针对 WASM。
    • 如果您打算支持 Firefox,则可能需要启用 web 功能。
  3. 正确的文本渲染(包括形状)。
    • 该库依赖于 swash 进行形状和布局。Swash 允许该库处理大多数我已经测试过的事情,尽管在呈现复杂的组合字符序列(例如 zalgo 文本)时会出现问题。
  4. 合理的性能。

非目标

  1. 内置辅助功能支持。
    • 我愿意做出妥协以启用辅助功能(我的游戏的原生版本使用 accesskit),但直接与辅助功能库集成超出了本库的范围。

已知限制

  1. 不支持从右到左的文本。
    • 支持这属于目标 #3(正确性),并已计划。
  2. 不支持文本闪烁。
    • 我愿意添加这个功能,但我没有用到它。这稍微增加了网页故事的开发复杂性,因为浏览器不支持 std::time
  3. 不支持光标渲染。
    • 光标的位置会被跟踪,并且使用它的操作应该表现得符合预期,但光标不会在屏幕上渲染。

依赖项

约15-47MB
约763K SLoC