Crates.io | graphics_buffer |
lib.rs | graphics_buffer |
version | 0.7.7 |
source | src |
created_at | 2018-08-14 19:14:40.639959 |
updated_at | 2021-09-22 18:59:49.296044 |
description | A buffer which can be used as a render target for Piston's graphics library. This buffer can be loaded from and/or saved to a file on disk. This allows for things like screenshots in games. |
homepage | |
repository | https://github.com/kaikalii/graphics_buffer |
max_upload_size | |
id | 79448 |
size | 267,006 |
This library provides a buffer type, RenderBuffer
, which can be used as a render target for Piston's graphics library. This buffer can be loaded from and/or saved to a file on disk. This allows for things like screenshots in games.
There is also an optional feature for RenderBuffer
that allows it to be converted into a G2dTexture
so that it can be rendered with piston_window
. To enable this, add features = ["piston_window_texture"]
to the graphics_buffer
dependency in your cargo.toml
.
Add this to your cargo.toml
:
graphics_buffer = "0.6.0"
piston2d-graphics = "0.30.0"
or, if you want to be able to draw the texture to a window using piston_window
:
graphics_buffer = { version = "0.6.0", features = ["piston_window_texture"] }
piston2d-graphics = "0.30.0"
piston_window = "0.89.0"
Here is a simple example that draws three circles and saves the image to a file:
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();
}
Feel free to open an issue or PR if you want to contribute. There are definitely places for improvement, especially in the rendering code.