#2d-graphics #graphics #2d #piet #direct2d #back-end

piet-direct2d

为 piet 2D 图形抽象提供的 Direct2D 后端

29 个版本

0.6.2 2023 年 1 月 30 日
0.6.0 2022 年 11 月 25 日
0.5.0 2021 年 11 月 12 日
0.4.1 2021 年 3 月 29 日
0.0.2 2019 年 2 月 22 日

#225 in 图形 API

Download history 922/week @ 2024-03-13 1238/week @ 2024-03-20 1216/week @ 2024-03-27 1247/week @ 2024-04-03 1024/week @ 2024-04-10 1213/week @ 2024-04-17 1254/week @ 2024-04-24 1055/week @ 2024-05-01 1066/week @ 2024-05-08 1124/week @ 2024-05-15 1197/week @ 2024-05-22 1167/week @ 2024-05-29 969/week @ 2024-06-05 796/week @ 2024-06-12 1004/week @ 2024-06-19 935/week @ 2024-06-26

3,865 每月下载量
59 个库中使用 (通过 piet-common)

MIT/Apache 协议

465KB
6K SLoC

image of piet logo

Piet:一个 2D 图形抽象

Crates.io Documentation Build Status

跨平台的 2D 图形。

Piet 项目由一个核心库 (piet) 组成,该库描述了一个 2D 图形 API,以及多个“后端”,这些后端在特定平台内置的 2D 图形系统之上实现该 API。这使得可以在不同的平台上使用相同的绘图代码,而无需捆绑完整的 2D 渲染器。

该库的动机在这篇博客文章中阐述。它被用作跨平台 GUI 工具包 Druid 的基础。

Bézier 路径表示和几何的配套库是 kurbo

入门

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

git submodule update --init

贡献

Piet 处于维护模式。

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

如果您想添加一个重要的功能,可以进行讨论。为了考虑添加新功能,必须至少有一个计划,说明如何在 coregraphics、direct2d 和 cairo 后端中实现该功能,并且实际实现应包括至少这些后端中的两个。

有关问题和讨论,我们在 xi.zulipchat.com 上的 #piet 流下的 zulip 聊天室。

后端

为了跨平台使用,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

piet-web

灵感来源

Piet 的接口主要受 Skia 图形库 以及 C++ 2D 图形 api 建议书 的启发,尽管 piet 力求更轻量化和模块化。

名称

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

依赖项

~1MB
~21K SLoC