#2d-graphics #2d #graphics #piet #back-end #abstraction #image

已删除 肯定不是piet-direct2d-请忽略

piet 2D图形抽象的直接2D后端

0.6.0 2023年1月15日

#19 in #piet

MIT/Apache

470KB
6K SLoC

image of piet logo

Piet:2D图形抽象

Crates.io Documentation Build Status

跨平台2D图形。

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

该crate的动机在以下博客文章中阐述。它被用作Druid(一个跨平台GUI工具包)的基础。

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

入门

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

git submodule update --init

贡献

Piet处于维护模式。

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

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

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

后端

为了跨平台使用,piet-common crate导出了对当前目标的最佳实现。

piet-cairo crates.io

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

piet-coregraphics crates.io

《piet-coregraphics》crate仅适用于macOS。对coregraphics后端进行简单测试的方法是运行cargo run --example test-picture 0,这将生成一个名为coregraphics-test-0.png的图像文件。

piet-direct2d crates.io

《piet-direct2d》crate仅适用于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旨在更加轻量化和模块化。

名称

该库以皮特·蒙德里安命名。它具有抽象性,旨在用于绘制大量矩形。

依赖关系

~1MB
~21K SLoC