12个不稳定版本 (3个重大更新)
0.4.0 | 2024年1月21日 |
---|---|
0.4.0-rc.0 | 2024年1月20日 |
0.3.0 | 2023年12月28日 |
0.2.0 | 2023年10月22日 |
0.1.0-alpha.2 | 2023年9月30日 |
#268 in 可视化
用于 3 crates
6MB
6.5K SLoC
vsvg-viewer crate
该crate是vsvg项目的一部分。
状态:测试版。它已工作,但API可能会更改。
这是什么?
此crate实现了基于egui和wgpu的vsvg可扩展查看器。它与vpype-viewer非常相似,但建立在更坚实的基础之上
这种组合也支持WebAssembly。
使用方法
vsvg-viewer提供两个主要功能
- 基本的
vsvg::Document
查看器 - 基于
vsvg::Document
查看器的可定制应用程序
基本查看器
基本的vsvg::Document
查看器只需要一行代码
fn main() -> anyhow::Result<()> {
let doc = vsvg::Document::from_svg("path/to/input.svg");
vsvg_viewer::show(&doc)
}
以下是一个示例截图
对于熟悉vpype的用户,这基本上对应于vpype [...] show
发生的情况。
可定制应用程序
或者,可以使用vsvg-viewer构建围绕核心vsvg::Document
渲染器功能构建的复杂、交互式应用程序
struct MyApp {}
impl vsvg_viewer::ViewerApp for MyApp {
/* ... */
}
fn main() -> anyhow::Result<()> {
vsvg_viewer::show_with_viewer_app(MyApp::new())
}
您的应用程序必须实现vsvg_viewer::ViewerApp
特质,该特质提供钩子
- 显示自定义UI,例如在侧面板中;
- 自定义选项,例如窗口标题等;
- 从持久存储中加载/保存状态。
在examples/
目录中提供了一个自定义应用程序的基本示例。
whiskers) 使用此API实现其草图运行器
依赖项
~32–75MB
~1.5M SLoC