#piston #graphics #image #render-target #game

graphics_buffer

一个可以作为Piston图形库渲染目标的缓冲区。此缓冲区可以从磁盘上的文件加载或保存。这允许在游戏中进行截图等操作。

32个版本

0.7.7 2021年9月22日
0.7.6 2021年3月27日
0.7.5 2020年9月30日
0.7.3 2020年2月24日
0.4.3 2018年11月19日

#134渲染


2 crate 中使用

MIT 许可证

135KB
395

描述

此库提供了一种缓冲区类型 RenderBuffer,可将其用作Piston图形库的渲染目标。此缓冲区可以从磁盘上的文件加载或保存。这允许在游戏中进行截图等操作。

还有一个可选功能,允许将 RenderBuffer 转换为 G2dTexture,以便可以使用 piston_window 进行渲染。要启用此功能,请在 cargo.toml 中的 graphics_buffer 依赖项中添加 features = ["piston_window_texture"]

API文档

用法

将其添加到您的 cargo.toml

graphics_buffer = "0.6.0"
piston2d-graphics = "0.30.0"

或者,如果您想使用 piston_window 在窗口中绘制纹理

graphics_buffer = { version = "0.6.0", features = ["piston_window_texture"] }
piston2d-graphics = "0.30.0"
piston_window = "0.89.0"

以下是一个简单的示例,它绘制了三个圆并保存到文件中

use graphics::ellipse;
use graphics_buffer::*;

fn main() {
    // Create a new RenderBuffer
    let mut buffer = RenderBuffer::new(100, 100);
    buffer.clear([0.0, 0.0, 0.0, 0.0]);

    // Big red circle
    ellipse(
        [1.0, 0.0, 0.0, 0.7],
        [0.0, 0.0, 100.0, 100.0],
        IDENTITY,
        &mut buffer,
    );
    // Small blue circle
    ellipse(
        [0.0, 0.0, 1.0, 0.7],
        [0.0, 0.0, 50.0, 50.0],
        IDENTITY,
        &mut buffer,
    );
    // Small green circle
    ellipse(
        [0.0, 1.0, 0.0, 0.7],
        [50.0, 50.0, 50.0, 50.0],
        IDENTITY,
        &mut buffer,
    );

    // Save the buffer
    buffer.save("circles.png").unwrap();
}

贡献

如果您想贡献,请随时打开一个问题或PR。肯定有改进的地方,特别是在渲染代码方面。

依赖项

~7–15MB
~155K SLoC