29 个版本

0.6.2 2023 年 1 月 30 日
0.6.0 2022 年 11 月 24 日
0.5.0 2021 年 11 月 12 日
0.4.0 2021 年 3 月 28 日
0.0.2 2019 年 2 月 22 日

45图形 API 中排名

Download history 1430/week @ 2024-03-13 1918/week @ 2024-03-20 1879/week @ 2024-03-27 1812/week @ 2024-04-03 1666/week @ 2024-04-10 1885/week @ 2024-04-17 1733/week @ 2024-04-24 1502/week @ 2024-05-01 1653/week @ 2024-05-08 1684/week @ 2024-05-15 1730/week @ 2024-05-22 1746/week @ 2024-05-29 1486/week @ 2024-06-05 1338/week @ 2024-06-12 1612/week @ 2024-06-19 1475/week @ 2024-06-26

6,145 每月下载量
75 个软件包中 使用(直接使用 28 个)

MIT/Apache

320KB
3K SLoC

image of piet logo

Piet:2D 图形抽象

Crates.io Documentation Build Status

跨平台 2D 图形。

Piet 项目包括一个核心软件包(piet),它描述了一个 2D 图形 API,以及一系列“后端”,这些后端在特定平台的内置 2D 图形系统上实现该 API。这允许在各个平台上使用相同的绘图代码,而无需捆绑完整的 2D 渲染器。

该软件包的动机在这篇博客文章中阐述。它是Druid(一个跨平台 GUI 工具包)的基础。

用于贝塞尔路径表示和几何的配套软件是kurbo

入门指南

运行示例需要检出子模块。从根目录运行

git submodule update --init

贡献

Piet 处于维护模式。

Piet 已基本稳定,原始开发者没有计划添加新的主要 API。欢迎修复错误和性能改进。

如果您想添加一个重要的功能并且可以进行讨论,则必须至少在 coregraphics、direct2d 和 cairo 后端中有一个实现计划,并且实际实现应包括至少两种后端的支持。

有关问题和讨论,我们使用xi.zulipchat.com上的zulip聊天实例,在#piet 流中。

后端

为了跨平台使用,piet-common 软件包重新导出当前目标最合适的实现。

piet-cairo crates.io

piet-cairo 包依赖于 cairo 库。测试 cairo 后端的一个简单方法是运行 cargo run --example test-picture 0,这应该会生成一个名为 cairo-test-0.png 的图像文件。

piet-coregraphics crates.io

piet-coregraphics 包仅在 macOS 上运行。测试 coregraphics 后端的一个简单方法是运行 cargo run --example test-picture 0,这应该会生成一个名为 coregraphics-test-0.png 的图像文件。

piet-direct2d crates.io

piet-direct2d 包仅在 Windows 上运行。测试 direct2d 后端的一个简单方法是运行 cargo run --example test-picture 0,这应该会生成一个名为 d2d-test-0.png 的图像。

piet-svg crates.io

piet-web crates.io

灵感来源

Piet 的接口主要受到 Skia 图形库 以及 C++ 2D 图形 API 建议书 的启发,尽管 piet 的目标是更加轻量级和模块化。

名称

这个库是以 Piet Mondrian 命名的。它是抽象的,旨在用于绘制许多矩形。

依赖关系

~0.7–11MB
~73K SLoC