21 个版本
0.6.2 | 2023年1月30日 |
---|---|
0.6.0 | 2022年11月25日 |
0.5.0 | 2021年11月12日 |
0.4.0 | 2021年3月28日 |
0.0.11 | 2020年3月23日 |
#772 in 图形API
用于 ezel
360KB
4K SLoC
Piet:一个 2D 图形抽象
跨平台 2D 图形。
Piet 项目由一个核心包 (piet
) 组成,它描述了一个 2D 图形 API,以及一系列 "后端",这些后端在特定平台的原生 2D 图形系统上实现该 API。这使得相同的绘图代码可以在不同的平台上使用,而无需捆绑完整的 2D 渲染器。
这个包的动机在这篇博客文章中阐述。它被用作跨平台 GUI 工具包 Druid 的基础。
Bezier 路径表示和几何形状的配套工具是 kurbo。
入门
运行示例需要检出子模块。从根目录运行
git submodule update --init
贡献
Piet 处于维护模式。
Piet 已基本稳定,原始开发者没有计划添加新的主要 API。欢迎修复错误和性能改进。
如果您想添加一个重要的功能并且可以讨论,那么必须有一个至少在 coregraphics、direct2d 和 cairo 后端中实现该功能的计划,并且实际实现应包括至少这些后端中的两个。
对于问题和讨论,我们使用位于 xi.zulipchat.com 的 zulip 聊天实例,在 #piet 流中。
后端
为了跨平台使用,piet-common
包重新导出当前目标最合适的实现。
piet-cairo
piet-cairo
包依赖于 cairo 库。测试 cairo 后端的一个简单方法是运行 cargo run --example test-picture 0
,这将生成一个名为 cairo-test-0.png
的图像文件。
piet-coregraphics
piet-coregraphics
包仅适用于 macOS。测试 coregraphics 后端的一个简单方法是运行 cargo run --example test-picture 0
,这将生成一个名为 coregraphics-test-0.png
的图像文件。
piet-direct2d
piet-direct2d
包仅适用于 Windows。测试 direct2d 后端的一个简单方法是运行 cargo run --example test-picture 0
,这将生成一个名为 d2d-test-0.png
的图像。
piet-svg
piet-web
灵感
Piet 的接口在很大程度上受到了 Skia 图形库 以及 C++ 2D 图形 api 建议 的启发,尽管 piet 旨在更加轻量化和模块化。
名称
这个库是以 Piet Mondrian 命名的。它是抽象的,旨在用于绘制许多矩形。
lib.rs
:
piet 的 SVG 输出支持
依赖关系
~14–24MB
~220K SLoC