参考单列终端渲染器
refterm 是一个用于单列终端显示的参考渲染器。 它的设计目的是为了证明,即使在最坏的情况下(使用 Uniscribe 进行极其缓慢的 Unicode 解析,以及使用 DirectWrite 进行极其缓慢的字形生成),通过采取合理的措施,仍然可以轻松实现合理的帧速率和合理的吞吐量。 请注意,refterm 使用 UTF-8. 如果您正在使用它进行测试,则必须使用 UTF-8 编码的文件或命令输出。
实际上,refterm并不快。尽管比 Windows Terminal 快了好几个数量级,refterm 仍然大部分未优化,速度远低于其本应的水平。它不过是一个简单的瓦片渲染器实现,配有一个非常简单的缓存,以确保只有在看到新的字形时才调用字形生成。这一切都非常、非常简单。一个更复杂的代码基,可以解析 Unicode 并自己渲染字形,对于许多重要指标而言,可能比 refterm 要快得多。
在 v2 中,refterm 的 VT 代码和行分解功能进行了一个优化。现在,在实际运行解析器之前,它会检查每个 16 字节的区块是否包含控制码。这项优化是为了帮助测试高带宽吞吐量。然而,实际的控制码解析器仍然没有进行任何优化。
refterm 旨在支持多种功能,以确保渲染器的设计中没有采取任何捷径。 因此,refterm 支持: * 多色字体 * Unicode 的所有内容,包括组合字符和从右向左显示的文字,如阿拉伯文 * 占用多个单元格的字形 * 行折叠 * 在终端大小调整时重新排列行折叠 * 大容量滚动缓冲区 * 用于设置颜色和 Cursor 位置的 VT 代码,以及删除线、下划线、闪烁、反向视频等
暂无开放 Issues,或尚未同步最近议题。