use bevy::prelude::*;
use bevy_egui::{egui, EguiContexts, EguiPlugin};
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, EguiPlugin, PixelBufferPlugins))
.add_systems(
Startup,
PixelBufferBuilder::new()
.with_size(size)
.with_render(false) .setup(),
)
.add_systems(Update, update)
.run();
}
fn update(mut egui_context: EguiContexts, mut pb: QueryPixelBuffer) {
pb.frame().per_pixel(|_, _| Pixel::random());
let ctx = egui_context.ctx_mut();
egui::SidePanel::left("left_panel").show(ctx, |ui| {
ui.heading("My controls");
ui.label("Look! Pixels!!")
});
egui::CentralPanel::default().show(ctx, |ui| {
let texture = pb.egui_texture();
ui.image(egui::load::SizedTexture::new(texture.id, texture.size));
});
}