3 个不稳定版本

0.2.0 2023年10月28日
0.1.1 2022年11月25日
0.1.0 2022年11月22日

#1907嵌入式开发

MIT/Apache

31KB
881

gfx-xtra

CI crates.io

嵌入式图形的扩展。目前,所有扩展都是 DrawTarget (显示) 转换。

TL;DR: 使用这些扩展,将以下之一或两个添加到您的 Rust 模块中

use gfx_xtra::draw_target::DrawTargetExt2;
use gfx_xtra::draw_target::OwnedDrawTarget;

MSRV

1.65,因为 Owned 转换使用了 GATs,这刚刚得到了稳定。

PackedFrameBuffer

一个离屏 DrawTarget 帧缓冲实现,颜色分辨率为 1 到 8 位。用于实现无闪烁的绘制和向实际屏幕发送更新差异。

如果您有 16 或 32bpp 屏幕,请使用 ColorConverted DrawTarget 转换来将您自定义的 1 到 8 位颜色转换为屏幕支持的 RGB 颜色。由于离屏缓冲区需要太多的 RAM,因此不太可能取消 8 位颜色的限制。

Owned 转换

embedded-graphics 中的 DrawTargetExt trait 允许您裁剪、裁剪、平移和颜色转换您的显示,但这些转换需要您原始显示的 &mut 引用,这有时可能不方便——例如,当您想转换屏幕并向通用绘图代码发送所有权的(Box-ed 或未)实例时。

特质 OwnedDrawTargetExt 提供了这些转换的所有“所有权”版本,以及在此软件包中定义的所有转换(旋转、缩放、缓冲和刷新)。

有关详细信息,请参阅 此嵌入式图形 PR

Buffered 转换

使用两个 PackedFrameBuffer 实例来实现无闪烁的增量更新到实际屏幕。

其他转换

  • Rotated - 将绘制目标旋转 90、180 或 270 度
  • (有争议) Scaled - 按预定义的比率缩放绘制目标;向下缩放是有意义的,而不是向上
  • 刷新 - 实现 Flushable - DrawTarget 的扩展特质,具有 flush 方法。当您的显示需要在绘图结束时刷新,或使用缓冲转换时很有用。

文档、测试

目前没有 :p

依赖关系

~3MB
~35K SLoC