#graphics #gamedev #simple #text-image

buffer-graphics-lib

缓冲区简单图形库

59个版本 (17个破坏性更新)

0.18.0 2024年4月17日
0.16.2 2024年3月30日
0.13.0 2023年12月27日
0.11.4 2023年6月23日
0.7.1 2022年11月6日

#59 in 游戏开发

Download history 2/week @ 2024-04-27 3/week @ 2024-05-18 1/week @ 2024-05-25 9/week @ 2024-06-01 2/week @ 2024-06-08 1/week @ 2024-06-15

每月3,581次下载
pixels-graphics-lib 中使用

自定义许可

375KB
8K SLoC

Crates.io Documentation

Buffer Graphics Lib

这是一个简单的图形库,用于在缓冲区上绘图,主要设计用于与Pixels GraphicsPixels一起使用

它具有基本的形状绘制、位图文本和图像渲染。

Graphics结构体需要一个可变切片来工作,因此你很可能需要每帧创建结构体并将渲染库中的缓冲区传递给它,但这应该对性能没有太大影响,因为结构体几乎是空的。

使用方法

Cargo

在你的Cargo.toml文件中添加

buffer-graphics-lib = "0.18.0"

代码

设置图形实例

let mut buffer: [u8; 1920000] = [0; 800 * 600 * 4]; //800 x 600 RGBA 
let mut graphics = Graphics::new(&mut buffer, 800, 600)?;

然后绘图就相当简单了

let text = Text::new("Some text", (1,1), (WHITE, Large));
graphics.draw(&text);
graphics.draw_image(20, 20, &image);
let shape = Rect::new((10,10),(50,50));
let drawable = Drawable::from_obj(shape, stroke(BLUE));
graphics.draw(&drawable);

功能

默认功能:"serde"

image_loading

  • 将png、bmp等图像文件加载为Image

代码

let image = load_image("resources/example.png")?;
graphics.draw_image(40, 20, &image);

serde

  • 为大多数结构体和枚举添加 derive SerializeDeserialize
  • 启用 graphics-shapes/serde

mint

启用 graphics-shapes/mint

依赖关系

~0.7–2.1MB
~46K SLoC