14 releases (7 breaking)

new 0.8.2 Nov 18, 2024
0.8.0 Jul 16, 2024
0.7.0 Feb 27, 2024
0.6.0 Nov 8, 2023
0.2.0 Aug 18, 2022

#32 in Rendering

Download history 7/week @ 2024-07-23 14/week @ 2024-07-30 13/week @ 2024-08-06 6/week @ 2024-08-13 1/week @ 2024-08-20 9/week @ 2024-08-27 2/week @ 2024-09-03 6/week @ 2024-09-10 158/week @ 2024-09-17 64/week @ 2024-09-24 31/week @ 2024-10-01 14/week @ 2024-10-08 10/week @ 2024-10-15 11/week @ 2024-10-29 28/week @ 2024-11-05

56 downloads per month

MIT license

83KB
1.5K SLoC

bevy_pixel_buffer

Crates.io docs.rs Crates.io

A library to draw pixels in bevy.

  • Easy to set up and use.
  • Can be integrated into an existing project.
  • Allows dynamic resize of the pixel buffer to fill an area such as the window.
  • Support for multiple pixel buffers.
  • Allows to easily attach a compute shader to update the pixels.
  • egui integration (through bevy_egui) to show the pixels inside the UI.

Examples

A basic example,

use bevy::prelude::*;
use bevy_pixel_buffer::prelude::*;

fn main() {
    let size = PixelBufferSize {
        size: UVec2::new(32, 32),
        pixel_size: UVec2::new(16, 16),
    };

    App::new()
        .add_plugins((DefaultPlugins, PixelBufferPlugin))
        .add_systems(Startup, pixel_buffer_setup(size))
        .add_systems(Update, update)
        .run();
}

fn update(mut pb: QueryPixelBuffer) {
    pb.frame().per_pixel(|_, _| Pixel::random());
}

Basic example output

More examples

Features

  • egui*. Egui integration.
  • rayon. Enables extra alternative functions that use rayon.
  • rand. Enables extra functionality related to random values.

* Disabled by default.

Bevy versions

Version compatibility table.

bevy bevy_pixel_buffer
0.14 0.8
0.13 0.7
0.12 0.6
0.11 0.5
0.10 0.4
0.9 0.3
0.8 0.2

Dependencies

~39–76MB
~1.5M SLoC