7 个版本
0.1.7 | 2024 年 6 月 14 日 |
---|---|
0.1.6 | 2024 年 6 月 5 日 |
0.1.5 | 2024 年 5 月 29 日 |
0.1.3 | 2023 年 8 月 8 日 |
#74 in 渲染引擎
每月 47 次下载
用于 inlottie
475KB
3K SLoC
另一个 Rust 的 TinyVG 图像解析器 & 渲染器
一个库/工具,用于加载/保存二进制 .tvg 文件,使用 tiny-skia 渲染到 .png 文件,使用 usvg 从 .svg 文件解析,具有最少的依赖项,简单的 Rust 代码。
TinyVG 文本表示形式 (.tvgt) 仅用于调试/开发目的,可以通过 Rust 中的 #[derive(Debug)]
和 println!("{:?}, commands)
或 dbg!(commands)
实现此目的。
绑定 Blend2D 渲染引擎
通过功能 "b2d"
控制构建。
(cd 3rdparty && ./layout.sh) # just run once
cargo r -F b2d -- <path-to-svg/tvg> [<path-to-tvg/png>]
一个内置的 Rust 对 Blend2D 的绑定,比过时的 blend2d-rs 更简单。
绑定 GPAC/EVG 2D 渲染引擎
通过功能 "evg"
控制构建。
(cd 3rdparty && ./layout.sh) # just run once
cargo r -F evg -- <path-to-svg/tvg> [<path-to-tvg/png>]
内置的是公开的唯一一个 Rust 对 GPAC/EVG 的绑定。
基于 Femtovg 的 SVG 渲染器/查看器。
构建受功能 "nvg"
控制。
cargo r -F nvg --bin nanovg -- <path-to-svg>
参考 Femotovg 中的 SVG 示例,更新、重写和优化了代码,增加了拖放支持。
另一个基于 HTML5/Web 2D Canvas API 的 SVG/TinyVG 查看器。
在 wcnvs 子crate/project 中运行以下命令以启动 Dioxus 开发服务器
dx serve --hot-reload
- 打开浏览器到 https://127.0.0.1:8080
渲染性能比较
2D 引擎 | 计时 | 性能 | 注意 |
---|---|---|---|
Femtovg | 1.65 ms | 606.8 fps | 最高性能 |
Blend2D | 1.94 ms | 515.5 fps | float/double |
CanvasAPI | 2.00 ms | 500.0 fps | 坏 T 精度? |
tiny_skia | 5.10 ms | 195.9 fps | |
GPAC/EVG | 7.96 ms | 125.6 fps | 浮点数 |
GPAC/EVG | 18.07 ms | 55.3 fps | 定点数学 |
在 MacBook Pro 上用 Apple M1 Pro 测试渲染 Ghostscript_Tiger.svg。
依赖关系
~4–25MB
~348K SLoC