From 8a37fd749ffd6f509b3b2954265b3068d27e2e7f Mon Sep 17 00:00:00 2001 From: riqsha Date: Wed, 15 Jan 2025 15:00:25 +0000 Subject: [PATCH 1/4] Made minimal changes necessary to update to Bevy 0.15 and get examples to compile and run --- bracket-bevy/Cargo.toml | 4 +- bracket-bevy/examples/bevy_a_star_mouse.rs | 8 +- bracket-bevy/examples/bevy_alpha.rs | 4 +- bracket-bevy/examples/bevy_batch_z_order.rs | 4 +- bracket-bevy/examples/bevy_benchmark.rs | 4 +- .../examples/bevy_benchmark_scalable.rs | 4 +- bracket-bevy/examples/bevy_colorfont.rs | 4 +- bracket-bevy/examples/bevy_dwarfmap.rs | 6 +- bracket-bevy/examples/bevy_hello_minimal.rs | 4 +- bracket-bevy/examples/bevy_hello_terminal.rs | 9 +- bracket-bevy/examples/bevy_resize_terminal.rs | 4 +- .../bevy_roguelike_tutorial_4/main.rs | 8 +- .../bevy_roguelike_tutorial_4/player.rs | 18 ++-- bracket-bevy/examples/bevy_test.rs | 4 +- bracket-bevy/examples/bevy_textblock.rs | 4 +- bracket-bevy/examples/bevy_tiles.rs | 16 ++-- .../examples/bevy_two_layers_two_fonts.rs | 4 +- bracket-bevy/examples/bevy_walking.rs | 16 ++-- bracket-bevy/src/builder/bterm_builder.rs | 43 +++++----- bracket-bevy/src/builder/image_fixer.rs | 22 ++--- bracket-bevy/src/builder/loader_system.rs | 13 ++- .../back_end/simple_no_background.rs | 20 +++-- .../back_end/simple_with_background.rs | 20 +++-- .../consoles/simple_console/terminal_glyph.rs | 6 +- .../back_end/sparse_no_background.rs | 20 +++-- .../back_end/sparse_with_background.rs | 20 +++-- bracket-bevy/src/consoles/update_system.rs | 85 +++++++++---------- bracket-bevy/src/context.rs | 7 +- bracket-terminal/Cargo.toml | 4 +- 29 files changed, 197 insertions(+), 188 deletions(-) diff --git a/bracket-bevy/Cargo.toml b/bracket-bevy/Cargo.toml index 06b57de3..dbb16943 100644 --- a/bracket-bevy/Cargo.toml +++ b/bracket-bevy/Cargo.toml @@ -13,7 +13,7 @@ categories = ["game-engines", "graphics"] license = "MIT" [dependencies] -bevy = "0.9" +bevy = { version = "0.15", features = [ "wayland" ] } parking_lot = "0.12" lazy_static = "1.4" bracket-random = { path = "../bracket-random" } @@ -22,4 +22,4 @@ bracket-geometry = { path = "../bracket-geometry", version = "~0.8", features = [dev-dependencies] bracket-pathfinding = { path = "../bracket-pathfinding", version = "~0.8" } -bracket-noise = { path = "../bracket-noise", version = "~0.8" } \ No newline at end of file +bracket-noise = { path = "../bracket-noise", version = "~0.8" } diff --git a/bracket-bevy/examples/bevy_a_star_mouse.rs b/bracket-bevy/examples/bevy_a_star_mouse.rs index 865f3dfc..f64c4958 100644 --- a/bracket-bevy/examples/bevy_a_star_mouse.rs +++ b/bracket-bevy/examples/bevy_a_star_mouse.rs @@ -5,9 +5,9 @@ use bracket_pathfinding::prelude::*; fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(BTermBuilder::simple_80x50().with_random_number_generator(true)) - .add_startup_system(setup) - .add_system(tick) + .add_plugins(BTermBuilder::simple_80x50().with_random_number_generator(true)) + .add_systems(Startup, setup) + .add_systems(Update, tick) .run(); } @@ -134,7 +134,7 @@ impl Algorithm2D for State { } } -fn tick(ctx: Res, mut state: ResMut, mouse: Res>) { +fn tick(ctx: Res, mut state: ResMut, mouse: Res>) { // Let's use batched drawing let mut draw_batch = ctx.new_draw_batch(); diff --git a/bracket-bevy/examples/bevy_alpha.rs b/bracket-bevy/examples/bevy_alpha.rs index f2cfb15a..52ca3c7b 100644 --- a/bracket-bevy/examples/bevy_alpha.rs +++ b/bracket-bevy/examples/bevy_alpha.rs @@ -9,8 +9,8 @@ fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(bterm) - .add_system(tick) + .add_plugins(bterm) + .add_systems(Update, tick) .run(); } diff --git a/bracket-bevy/examples/bevy_batch_z_order.rs b/bracket-bevy/examples/bevy_batch_z_order.rs index b693208f..092f8b0f 100644 --- a/bracket-bevy/examples/bevy_batch_z_order.rs +++ b/bracket-bevy/examples/bevy_batch_z_order.rs @@ -4,8 +4,8 @@ use bracket_bevy::prelude::*; fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(BTermBuilder::simple_80x50()) - .add_system(tick) + .add_plugins(BTermBuilder::simple_80x50()) + .add_systems(Update, tick) .run(); } diff --git a/bracket-bevy/examples/bevy_benchmark.rs b/bracket-bevy/examples/bevy_benchmark.rs index fa4e1388..15f9deeb 100644 --- a/bracket-bevy/examples/bevy_benchmark.rs +++ b/bracket-bevy/examples/bevy_benchmark.rs @@ -6,8 +6,8 @@ fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(bterm) - .add_system(tick) + .add_plugins(bterm) + .add_systems(Update, tick) .run(); } diff --git a/bracket-bevy/examples/bevy_benchmark_scalable.rs b/bracket-bevy/examples/bevy_benchmark_scalable.rs index 2881e8cd..a3c0cf87 100644 --- a/bracket-bevy/examples/bevy_benchmark_scalable.rs +++ b/bracket-bevy/examples/bevy_benchmark_scalable.rs @@ -8,8 +8,8 @@ fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(bterm) - .add_system(tick) + .add_plugins(bterm) + .add_systems(Update, tick) .run(); } diff --git a/bracket-bevy/examples/bevy_colorfont.rs b/bracket-bevy/examples/bevy_colorfont.rs index 67a64e3f..a0022333 100644 --- a/bracket-bevy/examples/bevy_colorfont.rs +++ b/bracket-bevy/examples/bevy_colorfont.rs @@ -8,8 +8,8 @@ fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(bracket) - .add_system(tick) + .add_plugins(bracket) + .add_systems(Update, tick) .run(); } diff --git a/bracket-bevy/examples/bevy_dwarfmap.rs b/bracket-bevy/examples/bevy_dwarfmap.rs index b0a16126..5736a052 100644 --- a/bracket-bevy/examples/bevy_dwarfmap.rs +++ b/bracket-bevy/examples/bevy_dwarfmap.rs @@ -6,8 +6,8 @@ use bracket_pathfinding::prelude::*; fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(BTermBuilder::simple_80x50()) - .add_system(tick) + .add_plugins(BTermBuilder::simple_80x50()) + .add_systems(Update, tick) .run(); } @@ -196,7 +196,7 @@ impl Algorithm3D for State { } } -fn tick(ctx: Res, mut state: Local, mouse: Res>) { +fn tick(ctx: Res, mut state: Local, mouse: Res>) { // Clear the screen ctx.cls(); diff --git a/bracket-bevy/examples/bevy_hello_minimal.rs b/bracket-bevy/examples/bevy_hello_minimal.rs index b6d4195f..76c97f32 100644 --- a/bracket-bevy/examples/bevy_hello_minimal.rs +++ b/bracket-bevy/examples/bevy_hello_minimal.rs @@ -4,8 +4,8 @@ use bracket_bevy::prelude::*; fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(BTermBuilder::simple_80x50()) - .add_system(tick) + .add_plugins(BTermBuilder::simple_80x50()) + .add_systems(Update, tick) .run(); } diff --git a/bracket-bevy/examples/bevy_hello_terminal.rs b/bracket-bevy/examples/bevy_hello_terminal.rs index e3b999aa..609671f3 100644 --- a/bracket-bevy/examples/bevy_hello_terminal.rs +++ b/bracket-bevy/examples/bevy_hello_terminal.rs @@ -4,16 +4,19 @@ use bracket_bevy::prelude::*; fn main() { let bterm = BTermBuilder::simple_80x50() .with_named_color("blue", BLUE) - .with_named_color("pink", Color::PINK); + .with_named_color( + "pink", + bracket_color::rgba::RGBA::from_f32(255.0, 182.0, 193.0, 1.0), + ); App::new() .add_plugins(DefaultPlugins) - .add_plugin(bterm) + .add_plugins(bterm) .insert_resource(State { y: 0, going_down: true, }) - .add_system(tick) + .add_systems(Update, tick) .run(); } diff --git a/bracket-bevy/examples/bevy_resize_terminal.rs b/bracket-bevy/examples/bevy_resize_terminal.rs index 9b2ffa38..95a47062 100644 --- a/bracket-bevy/examples/bevy_resize_terminal.rs +++ b/bracket-bevy/examples/bevy_resize_terminal.rs @@ -4,10 +4,10 @@ use bracket_bevy::prelude::*; fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin( + .add_plugins( BTermBuilder::simple_80x50().with_scaling_mode(TerminalScalingMode::ResizeTerminals), ) - .add_system(tick) + .add_systems(Update, tick) .run(); } diff --git a/bracket-bevy/examples/bevy_roguelike_tutorial_4/main.rs b/bracket-bevy/examples/bevy_roguelike_tutorial_4/main.rs index 39af8f1a..546dd45e 100644 --- a/bracket-bevy/examples/bevy_roguelike_tutorial_4/main.rs +++ b/bracket-bevy/examples/bevy_roguelike_tutorial_4/main.rs @@ -14,9 +14,9 @@ pub use rect::*; fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(BTermBuilder::simple_80x50().with_random_number_generator(true)) - .add_startup_system(setup) - .add_system(tick) + .add_plugins(BTermBuilder::simple_80x50().with_random_number_generator(true)) + .add_systems(Startup, setup) + .add_systems(Update, tick) .run(); } @@ -41,7 +41,7 @@ fn setup(mut commands: Commands, rng: Res) { fn tick( ctx: Res, map: Res, - keyboard: Res>, + keyboard: Res>, mut queries: ParamSet<( Query<&mut Position, With>, Query<(&Position, &Renderable)>, diff --git a/bracket-bevy/examples/bevy_roguelike_tutorial_4/player.rs b/bracket-bevy/examples/bevy_roguelike_tutorial_4/player.rs index d61d572c..bb6b09f1 100644 --- a/bracket-bevy/examples/bevy_roguelike_tutorial_4/player.rs +++ b/bracket-bevy/examples/bevy_roguelike_tutorial_4/player.rs @@ -1,24 +1,24 @@ use bevy::prelude::*; -pub fn player_input(keyboard: &Input) -> (i32, i32) { - if keyboard.just_pressed(KeyCode::Left) +pub fn player_input(keyboard: &ButtonInput) -> (i32, i32) { + if keyboard.just_pressed(KeyCode::ArrowLeft) || keyboard.just_pressed(KeyCode::Numpad4) - || keyboard.just_pressed(KeyCode::H) + || keyboard.just_pressed(KeyCode::KeyH) { (-1, 0) - } else if keyboard.just_pressed(KeyCode::Right) + } else if keyboard.just_pressed(KeyCode::ArrowRight) || keyboard.just_pressed(KeyCode::Numpad6) - || keyboard.just_pressed(KeyCode::L) + || keyboard.just_pressed(KeyCode::KeyL) { (1, 0) - } else if keyboard.just_pressed(KeyCode::Up) + } else if keyboard.just_pressed(KeyCode::ArrowUp) || keyboard.just_pressed(KeyCode::Numpad8) - || keyboard.just_pressed(KeyCode::K) + || keyboard.just_pressed(KeyCode::KeyK) { (0, -1) - } else if keyboard.just_pressed(KeyCode::Down) + } else if keyboard.just_pressed(KeyCode::ArrowDown) || keyboard.just_pressed(KeyCode::Numpad2) - || keyboard.just_pressed(KeyCode::J) + || keyboard.just_pressed(KeyCode::KeyJ) { (0, 1) } else { diff --git a/bracket-bevy/examples/bevy_test.rs b/bracket-bevy/examples/bevy_test.rs index 216491b8..d30c1723 100644 --- a/bracket-bevy/examples/bevy_test.rs +++ b/bracket-bevy/examples/bevy_test.rs @@ -4,8 +4,8 @@ use bracket_bevy::prelude::*; fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(BTermBuilder::simple_80x50()) - .add_system(tick) + .add_plugins(BTermBuilder::simple_80x50()) + .add_systems(Update, tick) .run(); } diff --git a/bracket-bevy/examples/bevy_textblock.rs b/bracket-bevy/examples/bevy_textblock.rs index c7fae612..cd293d9b 100644 --- a/bracket-bevy/examples/bevy_textblock.rs +++ b/bracket-bevy/examples/bevy_textblock.rs @@ -4,8 +4,8 @@ use bracket_bevy::prelude::*; fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(BTermBuilder::simple_80x50()) - .add_system(tick) + .add_plugins(BTermBuilder::simple_80x50()) + .add_systems(Update, tick) .run(); } diff --git a/bracket-bevy/examples/bevy_tiles.rs b/bracket-bevy/examples/bevy_tiles.rs index bb787b4d..b60199fd 100644 --- a/bracket-bevy/examples/bevy_tiles.rs +++ b/bracket-bevy/examples/bevy_tiles.rs @@ -87,24 +87,24 @@ fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(bterm) - .add_startup_system(setup) - .add_system(tick) + .add_plugins(bterm) + .add_systems(Startup, setup) + .add_systems(Update, tick) .run(); } -fn tick(ctx: Res, mut state: ResMut, keyboard: Res>) { +fn tick(ctx: Res, mut state: ResMut, keyboard: Res>) { let mut draw_batch = ctx.new_draw_batch(); - if keyboard.just_pressed(KeyCode::Left) { + if keyboard.just_pressed(KeyCode::ArrowLeft) { state.move_player(-1, 0) } - if keyboard.just_pressed(KeyCode::Right) { + if keyboard.just_pressed(KeyCode::ArrowRight) { state.move_player(1, 0) } - if keyboard.just_pressed(KeyCode::Up) { + if keyboard.just_pressed(KeyCode::ArrowUp) { state.move_player(0, -1) } - if keyboard.just_pressed(KeyCode::Down) { + if keyboard.just_pressed(KeyCode::ArrowDown) { state.move_player(0, 1) } diff --git a/bracket-bevy/examples/bevy_two_layers_two_fonts.rs b/bracket-bevy/examples/bevy_two_layers_two_fonts.rs index baeeb9bd..f2b62703 100644 --- a/bracket-bevy/examples/bevy_two_layers_two_fonts.rs +++ b/bracket-bevy/examples/bevy_two_layers_two_fonts.rs @@ -12,9 +12,9 @@ fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(bterm) + .add_plugins(bterm) .insert_resource(Bouncer(0)) - .add_system(tick) + .add_systems(Update, tick) .run(); } diff --git a/bracket-bevy/examples/bevy_walking.rs b/bracket-bevy/examples/bevy_walking.rs index 1204cafe..589bc038 100644 --- a/bracket-bevy/examples/bevy_walking.rs +++ b/bracket-bevy/examples/bevy_walking.rs @@ -4,9 +4,9 @@ use bracket_bevy::prelude::*; fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(BTermBuilder::simple_80x50().with_random_number_generator(true)) - .add_startup_system(build_state) - .add_system(tick) + .add_plugins(BTermBuilder::simple_80x50().with_random_number_generator(true)) + .add_systems(Startup, build_state) + .add_systems(Update, tick) .run(); } @@ -83,21 +83,21 @@ impl State { } } -fn tick(ctx: Res, mut state: ResMut, keyboard: Res>) { +fn tick(ctx: Res, mut state: ResMut, keyboard: Res>) { // Clear the screen ctx.cls(); // Handle keyboard - if keyboard.just_pressed(KeyCode::Left) { + if keyboard.just_pressed(KeyCode::ArrowLeft) { state.move_player(-1, 0) } - if keyboard.just_pressed(KeyCode::Right) { + if keyboard.just_pressed(KeyCode::ArrowRight) { state.move_player(1, 0) } - if keyboard.just_pressed(KeyCode::Up) { + if keyboard.just_pressed(KeyCode::ArrowUp) { state.move_player(0, -1) } - if keyboard.just_pressed(KeyCode::Down) { + if keyboard.just_pressed(KeyCode::ArrowDown) { state.move_player(0, 1) } diff --git a/bracket-bevy/src/builder/bterm_builder.rs b/bracket-bevy/src/builder/bterm_builder.rs index aaf0edec..642344ac 100644 --- a/bracket-bevy/src/builder/bterm_builder.rs +++ b/bracket-bevy/src/builder/bterm_builder.rs @@ -7,7 +7,7 @@ use crate::{ }; use bevy::{ diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin}, - prelude::{CoreStage, Plugin, SystemStage, Resource}, + prelude::{Plugin, PostUpdate, PreUpdate, Resource, Startup}, utils::HashMap, }; use bracket_color::prelude::RGBA; @@ -176,37 +176,36 @@ impl BTermBuilder { impl Plugin for BTermBuilder { fn build(&self, app: &mut bevy::prelude::App) { - app.insert_resource(bevy::prelude::Msaa { samples: 1 }); + // app.insert_resource(bevy::prelude::Msaa { samples: 1 }); if self.with_diagnostics { - app.add_plugin(FrameTimeDiagnosticsPlugin); + app.add_plugins(FrameTimeDiagnosticsPlugin); } if self.log_diagnostics { - app.add_plugin(LogDiagnosticsPlugin::default()); + app.add_plugins(LogDiagnosticsPlugin::default()); } app.insert_resource(self.clone()); app.insert_resource(ScreenScaler::new(self.gutter)); - app.add_startup_system(load_terminals); + app.add_systems(Startup, load_terminals); if self.with_diagnostics { - app.add_stage_before( - CoreStage::Update, - "bracket_term_diagnostics", - SystemStage::single_threaded(), - ); - app.add_system(update_timing); - app.add_system(update_mouse_position); + // app.add_stage_before( + // CoreStage::Update, + // "bracket_term_diagnostics", + // SystemStage::single_threaded(), + // ); + app.add_systems(PreUpdate, (update_timing, update_mouse_position)); } - app.add_stage_after( - CoreStage::Update, - "bracket_term_update", - SystemStage::single_threaded(), - ); + // app.add_stage_after( + // CoreStage::Update, + // "bracket_term_update", + // SystemStage::single_threaded(), + // ); if self.auto_apply_batches { - app.add_system(apply_all_batches); + app.add_systems(PostUpdate, apply_all_batches); } - app.add_system(update_consoles); - app.add_system(replace_meshes); - app.add_system(window_resize); - app.add_system(fix_images); + app.add_systems( + PostUpdate, + (update_consoles, replace_meshes, window_resize, fix_images), + ); if self.with_random_number_generator { app.insert_resource(RandomNumbers::new()); } diff --git a/bracket-bevy/src/builder/image_fixer.rs b/bracket-bevy/src/builder/image_fixer.rs index 22353dda..e07feabc 100644 --- a/bracket-bevy/src/builder/image_fixer.rs +++ b/bracket-bevy/src/builder/image_fixer.rs @@ -1,10 +1,10 @@ use bevy::{ + image::{ImageAddressMode, ImageFilterMode, ImageSampler, ImageSamplerDescriptor}, prelude::*, - render::{render_resource::SamplerDescriptor, texture::ImageSampler}, }; #[derive(Resource)] -pub(crate) struct ImagesToLoad(pub(crate) Vec); +pub(crate) struct ImagesToLoad(pub(crate) Vec); pub(crate) fn fix_images(mut fonts: ResMut, mut images: ResMut>) { if fonts.0.is_empty() { @@ -13,15 +13,15 @@ pub(crate) fn fix_images(mut fonts: ResMut, mut images: ResMut>, ) { if context.with_ortho_camera { - commands - .spawn(Camera2dBundle::default()) - .insert(BracketCamera); + commands.spawn(Camera2d::default()).insert(BracketCamera); } // Setup the new context @@ -32,11 +29,11 @@ pub(crate) fn load_terminals( new_context.scaling_mode = context.scaling_mode; // Load the fonts - let mut texture_handles = Vec::::new(); + let mut texture_handles = Vec::::new(); for font in context.fonts.iter() { let texture_handle = asset_server.load(&font.filename); let material_handle = materials.add(ColorMaterial::from(texture_handle.clone())); - texture_handles.push(texture_handle.clone_untyped()); + texture_handles.push(texture_handle.clone().untyped()); new_context.fonts.push(FontStore::new( texture_handle, material_handle, diff --git a/bracket-bevy/src/consoles/simple_console/back_end/simple_no_background.rs b/bracket-bevy/src/consoles/simple_console/back_end/simple_no_background.rs index 5432bedb..1d2041d8 100644 --- a/bracket-bevy/src/consoles/simple_console/back_end/simple_no_background.rs +++ b/bracket-bevy/src/consoles/simple_console/back_end/simple_no_background.rs @@ -1,9 +1,9 @@ use super::SimpleConsoleBackend; use crate::consoles::{scaler::FontScaler, BracketMesh, ScreenScaler, SimpleConsole}; use bevy::{ + asset::RenderAssetUsages, prelude::*, render::mesh::{Indices, PrimitiveTopology}, - sprite::MaterialMesh2dBundle, }; pub(crate) struct SimpleBackendNoBackground { @@ -84,12 +84,15 @@ impl SimpleBackendNoBackground { idx += 1; } } - let mut mesh = Mesh::new(PrimitiveTopology::TriangleList); + let mut mesh = Mesh::new( + PrimitiveTopology::TriangleList, + RenderAssetUsages::RENDER_WORLD, + ); mesh.insert_attribute(Mesh::ATTRIBUTE_POSITION, vertices); mesh.insert_attribute(Mesh::ATTRIBUTE_NORMAL, normals); mesh.insert_attribute(Mesh::ATTRIBUTE_UV_0, uv); mesh.insert_attribute(Mesh::ATTRIBUTE_COLOR, colors); - mesh.set_indices(Some(Indices::U32(indices))); + mesh.insert_indices(Indices::U32(indices)); mesh } } @@ -107,12 +110,11 @@ impl SimpleConsoleBackend for SimpleBackendNoBackground { fn spawn(&self, commands: &mut Commands, material: Handle, idx: usize) { if let Some(mesh_handle) = &self.mesh_handle { commands - .spawn(MaterialMesh2dBundle { - mesh: mesh_handle.clone().into(), - transform: Transform::default(), - material, - ..default() - }) + .spawn(( + Mesh2d(mesh_handle.clone().into()), + MeshMaterial2d(material), + Transform::default(), + )) .insert(BracketMesh(idx)); } } diff --git a/bracket-bevy/src/consoles/simple_console/back_end/simple_with_background.rs b/bracket-bevy/src/consoles/simple_console/back_end/simple_with_background.rs index 2065820a..f42bf8c4 100644 --- a/bracket-bevy/src/consoles/simple_console/back_end/simple_with_background.rs +++ b/bracket-bevy/src/consoles/simple_console/back_end/simple_with_background.rs @@ -1,8 +1,8 @@ use crate::consoles::{scaler::FontScaler, BracketMesh, ScreenScaler, SimpleConsole}; use bevy::{ + asset::RenderAssetUsages, prelude::*, render::mesh::{Indices, PrimitiveTopology}, - sprite::MaterialMesh2dBundle, }; use super::SimpleConsoleBackend; @@ -122,12 +122,15 @@ impl SimpleBackendWithBackground { idx += 1; } } - let mut mesh = Mesh::new(PrimitiveTopology::TriangleList); + let mut mesh = Mesh::new( + PrimitiveTopology::TriangleList, + RenderAssetUsages::RENDER_WORLD, + ); mesh.insert_attribute(Mesh::ATTRIBUTE_POSITION, vertices); mesh.insert_attribute(Mesh::ATTRIBUTE_NORMAL, normals); mesh.insert_attribute(Mesh::ATTRIBUTE_UV_0, uv); mesh.insert_attribute(Mesh::ATTRIBUTE_COLOR, colors); - mesh.set_indices(Some(Indices::U32(indices))); + mesh.insert_indices(Indices::U32(indices)); mesh } } @@ -145,12 +148,11 @@ impl SimpleConsoleBackend for SimpleBackendWithBackground { fn spawn(&self, commands: &mut Commands, material: Handle, idx: usize) { if let Some(mesh_handle) = &self.mesh_handle { commands - .spawn(MaterialMesh2dBundle { - mesh: mesh_handle.clone().into(), - transform: Transform::default(), - material, - ..default() - }) + .spawn(( + Mesh2d(mesh_handle.clone().into()), + MeshMaterial2d(material), + Transform::default(), + )) .insert(BracketMesh(idx)); } } diff --git a/bracket-bevy/src/consoles/simple_console/terminal_glyph.rs b/bracket-bevy/src/consoles/simple_console/terminal_glyph.rs index ce92b107..11fc7f4c 100644 --- a/bracket-bevy/src/consoles/simple_console/terminal_glyph.rs +++ b/bracket-bevy/src/consoles/simple_console/terminal_glyph.rs @@ -1,4 +1,4 @@ -use bevy::prelude::Color; +use bevy::{color::ColorToComponents, prelude::Color}; #[derive(Clone, Copy)] pub struct TerminalGlyph { @@ -11,8 +11,8 @@ impl Default for TerminalGlyph { fn default() -> Self { Self { glyph: 32, - foreground: Color::WHITE.as_rgba_f32(), - background: Color::BLACK.as_rgba_f32(), + foreground: Color::WHITE.to_srgba().to_f32_array(), + background: Color::BLACK.to_srgba().to_f32_array(), } } } diff --git a/bracket-bevy/src/consoles/sparse_console/back_end/sparse_no_background.rs b/bracket-bevy/src/consoles/sparse_console/back_end/sparse_no_background.rs index 881f1d60..4c9397fa 100644 --- a/bracket-bevy/src/consoles/sparse_console/back_end/sparse_no_background.rs +++ b/bracket-bevy/src/consoles/sparse_console/back_end/sparse_no_background.rs @@ -1,9 +1,9 @@ use super::SparseConsoleBackend; use crate::consoles::{scaler::FontScaler, BracketMesh, ScreenScaler, SparseConsole}; use bevy::{ + asset::RenderAssetUsages, prelude::*, render::mesh::{Indices, PrimitiveTopology}, - sprite::MaterialMesh2dBundle, }; pub(crate) struct SparseBackendNoBackground { @@ -83,12 +83,15 @@ impl SparseBackendNoBackground { index_count += 4; } - let mut mesh = Mesh::new(PrimitiveTopology::TriangleList); + let mut mesh = Mesh::new( + PrimitiveTopology::TriangleList, + RenderAssetUsages::RENDER_WORLD, + ); mesh.insert_attribute(Mesh::ATTRIBUTE_POSITION, vertices); mesh.insert_attribute(Mesh::ATTRIBUTE_NORMAL, normals); mesh.insert_attribute(Mesh::ATTRIBUTE_UV_0, uv); mesh.insert_attribute(Mesh::ATTRIBUTE_COLOR, colors); - mesh.set_indices(Some(Indices::U32(indices))); + mesh.insert_indices(Indices::U32(indices)); mesh } } @@ -106,12 +109,11 @@ impl SparseConsoleBackend for SparseBackendNoBackground { fn spawn(&self, commands: &mut Commands, material: Handle, idx: usize) { if let Some(mesh_handle) = &self.mesh_handle { commands - .spawn(MaterialMesh2dBundle { - mesh: mesh_handle.clone().into(), - transform: Transform::default(), - material, - ..default() - }) + .spawn(( + Mesh2d(mesh_handle.clone().into()), + MeshMaterial2d(material), + Transform::default(), + )) .insert(BracketMesh(idx)); } } diff --git a/bracket-bevy/src/consoles/sparse_console/back_end/sparse_with_background.rs b/bracket-bevy/src/consoles/sparse_console/back_end/sparse_with_background.rs index 1958187f..52de0b6f 100644 --- a/bracket-bevy/src/consoles/sparse_console/back_end/sparse_with_background.rs +++ b/bracket-bevy/src/consoles/sparse_console/back_end/sparse_with_background.rs @@ -1,9 +1,9 @@ use super::SparseConsoleBackend; use crate::consoles::{scaler::FontScaler, BracketMesh, ScreenScaler, SparseConsole}; use bevy::{ + asset::RenderAssetUsages, prelude::*, render::mesh::{Indices, PrimitiveTopology}, - sprite::MaterialMesh2dBundle, }; pub(crate) struct SparseBackendWithBackground { @@ -114,12 +114,15 @@ impl SparseBackendWithBackground { index_count += 4; } - let mut mesh = Mesh::new(PrimitiveTopology::TriangleList); + let mut mesh = Mesh::new( + PrimitiveTopology::TriangleList, + RenderAssetUsages::RENDER_WORLD, + ); mesh.insert_attribute(Mesh::ATTRIBUTE_POSITION, vertices); mesh.insert_attribute(Mesh::ATTRIBUTE_NORMAL, normals); mesh.insert_attribute(Mesh::ATTRIBUTE_UV_0, uv); mesh.insert_attribute(Mesh::ATTRIBUTE_COLOR, colors); - mesh.set_indices(Some(Indices::U32(indices))); + mesh.insert_indices(Indices::U32(indices)); mesh } } @@ -137,12 +140,11 @@ impl SparseConsoleBackend for SparseBackendWithBackground { fn spawn(&self, commands: &mut Commands, material: Handle, idx: usize) { if let Some(mesh_handle) = &self.mesh_handle { commands - .spawn(MaterialMesh2dBundle { - mesh: mesh_handle.clone().into(), - transform: Transform::default(), - material, - ..default() - }) + .spawn(( + Mesh2d(mesh_handle.clone().into()), + MeshMaterial2d(material), + Transform::default(), + )) .insert(BracketMesh(idx)); } } diff --git a/bracket-bevy/src/consoles/update_system.rs b/bracket-bevy/src/consoles/update_system.rs index e02936a0..4096bde4 100644 --- a/bracket-bevy/src/consoles/update_system.rs +++ b/bracket-bevy/src/consoles/update_system.rs @@ -1,11 +1,9 @@ use crate::{BracketCamera, BracketContext, TerminalScalingMode}; use bevy::{ - diagnostic::{Diagnostics, FrameTimeDiagnosticsPlugin}, - ecs::event::Events, + diagnostic::{DiagnosticsStore, FrameTimeDiagnosticsPlugin}, prelude::*, render::camera::RenderTarget, - sprite::Mesh2dHandle, - window::WindowResized, + window::{PrimaryWindow, WindowRef, WindowResized}, }; use super::{BracketMesh, ScreenScaler}; @@ -13,10 +11,10 @@ use super::{BracketMesh, ScreenScaler}; pub(crate) fn update_consoles( mut ctx: ResMut, mut meshes: ResMut>, - find_mesh: Query<(&BracketMesh, &Mesh2dHandle)>, + find_mesh: Query<(&BracketMesh, &Mesh2d)>, scaler: Res, ) { - let mut new_meshes: Vec<(Mesh2dHandle, Mesh2dHandle, bool)> = Vec::new(); + let mut new_meshes: Vec<(Mesh2d, Mesh2d, bool)> = Vec::new(); { let mut terms = ctx.terminals.lock(); for (id, handle) in find_mesh.iter() { @@ -38,17 +36,17 @@ pub(crate) fn replace_meshes( mut ctx: ResMut, mut ev_asset: EventReader>, mut meshes: ResMut>, - mut update_mesh: Query<&mut Mesh2dHandle, With>, + mut update_mesh: Query<&mut Mesh2d, With>, ) { - for ev in ev_asset.iter() { - if let AssetEvent::Created { handle } = ev { + for ev in ev_asset.read() { + if let AssetEvent::Added { id } = ev { for (old, new, done) in ctx.mesh_replacement.iter_mut() { - if handle.id() == new.0.id() { - update_mesh.for_each_mut(|mut m| { + if *id == new.0.id() { + for mut m in update_mesh.iter_mut() { if old.0.id() == m.0.id() { *m = new.clone(); } - }); + } *done = true; } } @@ -56,19 +54,19 @@ pub(crate) fn replace_meshes( } for (old, _, _) in ctx.mesh_replacement.iter().filter(|(_, _, done)| *done) { - meshes.remove(old.0.clone()); + meshes.remove(old.0.id().clone()); } ctx.mesh_replacement.retain(|(_, _, done)| !done); } -pub(crate) fn update_timing(mut ctx: ResMut, diagnostics: Res) { - if let Some(fps_diagnostic) = diagnostics.get(FrameTimeDiagnosticsPlugin::FPS) { +pub(crate) fn update_timing(mut ctx: ResMut, diagnostics: Res) { + if let Some(fps_diagnostic) = diagnostics.get(&FrameTimeDiagnosticsPlugin::FPS) { if let Some(fps_avg) = fps_diagnostic.measurement() { ctx.fps = fps_avg.value.round(); } } - if let Some(frame_time) = diagnostics.get(FrameTimeDiagnosticsPlugin::FRAME_TIME) { + if let Some(frame_time) = diagnostics.get(&FrameTimeDiagnosticsPlugin::FRAME_TIME) { if let Some(frame_time_avg) = frame_time.measurement() { ctx.frame_time_ms = (frame_time_avg.value * 1000.0).round(); } @@ -77,11 +75,10 @@ pub(crate) fn update_timing(mut ctx: ResMut, diagnostics: Res, - resize_event: Res>, + mut reader: EventReader, mut scaler: ResMut, ) { - let mut reader = resize_event.get_reader(); - for e in reader.iter(&resize_event) { + for e in reader.read() { scaler.set_screen_size(e.width, e.height); if let TerminalScalingMode::ResizeTerminals = context.scaling_mode { context.resize_terminals(&scaler); @@ -95,35 +92,37 @@ pub(crate) fn apply_all_batches(mut context: ResMut) { } pub(crate) fn update_mouse_position( - wnds: Res, + // wnds: Res, + wnd_primary: Query<&Window, With>, + wnd: Query<&Window>, q_camera: Query<(&Camera, &GlobalTransform), With>, mut context: ResMut, scaler: Res, ) { // Modified from: https://bevy-cheatbook.github.io/cookbook/cursor2world.html - // Bevy really needs a nicer way to do this - let (camera, camera_transform) = q_camera.single(); - let wnd = if let RenderTarget::Window(id) = camera.target { - wnds.get(id) - } else { - wnds.get_primary() - }; - - let wnd = if let Some(wnd) = wnd { - wnd - } else { - return; - }; - - if let Some(screen_pos) = wnd.cursor_position() { - let window_size = Vec2::new(wnd.width() as f32, wnd.height() as f32); - let ndc = (screen_pos / window_size) * 2.0 - Vec2::ONE; - let ndc_to_world = camera_transform.compute_matrix() * camera.projection_matrix().inverse(); - let world_pos = ndc_to_world.project_point3(ndc.extend(-1.0)); - let world_pos: Vec2 = world_pos.truncate(); - - let result = (world_pos.x, world_pos.y); + for (camera, camera_transform) in &q_camera { + // get the window the camera is rendering to + let window = match camera.target { + // the camera is rendering to the primary window + RenderTarget::Window(WindowRef::Primary) => wnd_primary.single(), + // the camera is rendering to some other window + RenderTarget::Window(WindowRef::Entity(e_window)) => wnd.get(e_window).unwrap(), + // the camera is rendering to something else (like a texture), not a window + _ => { + // skip this camera + continue; + } + }; - context.set_mouse_pixel_position(result, &scaler); + // check if the cursor is inside the window and get its position + // then, ask bevy to convert into world coordinates, and truncate to discard Z + if let Some(world_position) = window + .cursor_position() + .and_then(|cursor| camera.viewport_to_world(camera_transform, cursor).ok()) + .map(|ray| ray.origin.truncate()) + { + // worldcursor.0 = world_position; + context.set_mouse_pixel_position((world_position.x, world_position.y), &scaler); + } } } diff --git a/bracket-bevy/src/context.rs b/bracket-bevy/src/context.rs index 2722d4ab..90bd784d 100644 --- a/bracket-bevy/src/context.rs +++ b/bracket-bevy/src/context.rs @@ -3,7 +3,10 @@ use crate::{ fonts::FontStore, FontCharType, TerminalScalingMode, }; -use bevy::{sprite::Mesh2dHandle, utils::HashMap, prelude::Resource}; +use bevy::{ + prelude::{Mesh2d, Resource}, + utils::HashMap, +}; use bracket_color::prelude::RGBA; use bracket_geometry::prelude::{Point, Rect}; use parking_lot::Mutex; @@ -16,7 +19,7 @@ pub struct BracketContext { pub(crate) color_palette: HashMap, pub fps: f64, pub frame_time_ms: f64, - pub(crate) mesh_replacement: Vec<(Mesh2dHandle, Mesh2dHandle, bool)>, + pub(crate) mesh_replacement: Vec<(Mesh2d, Mesh2d, bool)>, pub(crate) scaling_mode: TerminalScalingMode, command_buffers: Mutex>, mouse_pixels: (f32, f32), diff --git a/bracket-terminal/Cargo.toml b/bracket-terminal/Cargo.toml index 064fc37d..007f8702 100755 --- a/bracket-terminal/Cargo.toml +++ b/bracket-terminal/Cargo.toml @@ -29,7 +29,7 @@ crossterm = { version = "~0.25", optional = true } pancurses = { version = "0.17", optional = true } ultraviolet = "~0.9" parking_lot = { version = "~0.12" } -ctrlc = { version = "~3.2", optional=true } +ctrlc = { version = "~3.4", optional=true } anyhow = "~1.0" wgpu = { version = "0.13", optional=true } pollster = { version = "0.2", optional=true } @@ -37,7 +37,7 @@ bytemuck = {version = "1.4.0", optional=true } [target.'cfg(not(any(target_arch = "wasm32")))'.dependencies] glutin = {version = "~0.29", optional = true } -winit = { version = "~0.27" } +winit = { version = "~0.27"} spin_sleep = { version = "1.0.0", optional = true } [features] From 4d386893d205f71b835625bb39fb0fafe3d28e2f Mon Sep 17 00:00:00 2001 From: riqsha Date: Wed, 15 Jan 2025 21:28:11 +0000 Subject: [PATCH 2/4] Updated bevy color and geometry to bevy 0.15 too and used consistent versioning across all crates --- bracket-bevy/Cargo.toml | 2 +- bracket-color/Cargo.toml | 2 +- bracket-color/src/rgb.rs | 39 +++++++++++++++++----------------- bracket-color/src/rgba.rs | 39 +++++++++++++++++----------------- bracket-geometry/Cargo.toml | 2 +- bracket-geometry/src/point.rs | 7 +++--- bracket-geometry/src/point3.rs | 3 ++- 7 files changed, 49 insertions(+), 45 deletions(-) diff --git a/bracket-bevy/Cargo.toml b/bracket-bevy/Cargo.toml index dbb16943..5655b67f 100644 --- a/bracket-bevy/Cargo.toml +++ b/bracket-bevy/Cargo.toml @@ -13,7 +13,7 @@ categories = ["game-engines", "graphics"] license = "MIT" [dependencies] -bevy = { version = "0.15", features = [ "wayland" ] } +bevy = { version = "~0.15", features = [ "wayland" ] } parking_lot = "0.12" lazy_static = "1.4" bracket-random = { path = "../bracket-random" } diff --git a/bracket-color/Cargo.toml b/bracket-color/Cargo.toml index 20c92d9a..4a1006bd 100755 --- a/bracket-color/Cargo.toml +++ b/bracket-color/Cargo.toml @@ -20,7 +20,7 @@ serde = { version = "~1.0.110", features = ["derive"], optional = true } crossterm = { version = "~0.25", optional = true } lazy_static = { version = "1.4.0", optional = true } parking_lot = { version = "~0.12", optional = true } -bevy = { version = "~0.9", optional = true } +bevy = { version = "~0.15", optional = true } [dev-dependencies] crossterm = "~0.25" diff --git a/bracket-color/src/rgb.rs b/bracket-color/src/rgb.rs index 229a5c11..6be2931b 100755 --- a/bracket-color/src/rgb.rs +++ b/bracket-color/src/rgb.rs @@ -124,14 +124,15 @@ impl From for RGB { #[cfg(feature = "bevy")] impl From for RGB { fn from(item: bevy::prelude::Color) -> Self { - Self::from_f32(item.r(), item.g(), item.b()) + let item = item.to_srgba(); + Self::from_f32(item.red, item.green, item.blue) } } #[cfg(feature = "bevy")] impl From for bevy::prelude::Color { fn from(item: RGB) -> Self { - Self::from([item.r, item.g, item.b]) + bevy::prelude::Color::srgb(item.r, item.g, item.b) } } @@ -147,15 +148,15 @@ impl RGB { } /// Constructs a new RGB color, from 3 32-bit floats in the range 0..1 - /// + /// /// # Arguments - /// + /// /// * `r` - the red component (0..1) /// * `g` - the green component (0..1) /// * `b` - the blue component (0..1) - /// + /// /// # Example - /// + /// /// ```rust /// use bracket_color::prelude::*; /// let red = RGB::from_f32(1.0, 0.0, 0.0); @@ -175,15 +176,15 @@ impl RGB { } /// Constructs a new RGB color, from 3 bytes in the range 0..255 - /// + /// /// # Arguments - /// + /// /// * `r` - the red component, ranged from 0 to 255 /// * `g` - the green component, ranged from 0 to 255 /// * `b` - the blue component, ranged from 0 to 255 - /// + /// /// # Example - /// + /// /// ```rust /// use bracket_color::prelude::*; /// let red = RGB::from_u8(255, 0, 0); @@ -200,13 +201,13 @@ impl RGB { } /// Construct an RGB color from a tuple of u8, or a named constant - /// + /// /// # Arguments - /// + /// /// * `col` a tuple of three `u8` values. See `from_u8`. These are usually provided from the `named` colors list. - /// + /// /// # Example - /// + /// /// ```rust /// use bracket_color::prelude::*; /// let red = RGB::named(RED); @@ -219,13 +220,13 @@ impl RGB { } /// Constructs from an HTML color code (e.g. "#eeffee") - /// + /// /// # Arguments - /// + /// /// * `code` - an HTML color notation (e.g. "#ffeeff") - /// + /// /// # Example - /// + /// /// ```rust /// use bracket_color::prelude::*; /// let red = RGB::from_hex("#FF0000"); @@ -233,7 +234,7 @@ impl RGB { /// ``` /// /// # Errors - /// + /// /// See `HtmlColorConversionError` #[allow(clippy::cast_precision_loss)] pub fn from_hex>(code: S) -> Result { diff --git a/bracket-color/src/rgba.rs b/bracket-color/src/rgba.rs index 1247c71e..e7e8bd79 100755 --- a/bracket-color/src/rgba.rs +++ b/bracket-color/src/rgba.rs @@ -109,16 +109,16 @@ impl RGBA { } /// Constructs a new RGB color, from 3 32-bit floats in the range 0..1 - /// + /// /// # Arguments - /// + /// /// * `r` - the red component (0..1) /// * `g` - the green component (0..1) /// * `b` - the blue component (0..1) /// * `a` - the alpha component (0..1). 0 is transparent, 1 is solid. - /// + /// /// # Example - /// + /// /// ```rust /// use bracket_color::prelude::*; /// let red = RGBA::from_f32(1.0, 0.0, 0.0, 1.0); @@ -141,15 +141,15 @@ impl RGBA { } /// Constructs a new RGB color, from 3 bytes in the range 0..255 - /// + /// /// # Arguments - /// + /// /// * `r` - the red component, ranged from 0 to 255 /// * `g` - the green component, ranged from 0 to 255 /// * `b` - the blue component, ranged from 0 to 255 - /// + /// /// # Example - /// + /// /// ```rust /// use bracket_color::prelude::*; /// let red = RGBA::from_u8(255, 0, 0, 255); @@ -168,13 +168,13 @@ impl RGBA { } /// Construct an RGB color from a tuple of u8, or a named constant - /// + /// /// # Arguments - /// + /// /// * `col` a tuple of three `u8` values. See `from_u8`. These are usually provided from the `named` colors list. - /// + /// /// # Example - /// + /// /// ```rust /// use bracket_color::prelude::*; /// let red = RGBA::named(RED); @@ -189,11 +189,11 @@ impl RGBA { /// Constructs from an HTML color code (e.g. "#eeffeeff") /// /// # Arguments - /// + /// /// * `code` - an HTML color notation (e.g. "#ffeeffff") - /// + /// /// # Example - /// + /// /// ```rust /// use bracket_color::prelude::*; /// let red = RGBA::from_hex("#FF0000FF"); @@ -201,7 +201,7 @@ impl RGBA { /// ``` /// /// # Errors - /// + /// /// See `HtmlColorConversionError` #[allow(clippy::cast_precision_loss)] pub fn from_hex>(code: S) -> Result { @@ -298,7 +298,7 @@ impl RGBA { #[cfg(feature = "bevy")] #[must_use] pub fn as_rgba_f32(&self) -> [f32; 4] { - bevy::prelude::Color::as_linear_rgba_f32([self.r, self.g, self.b, self.a].into()) + [self.r, self.g, self.b, self.a] } /// Applies a quick grayscale conversion to the color @@ -388,14 +388,15 @@ impl From<[f32; 4]> for RGBA { #[cfg(feature = "bevy")] impl From for RGBA { fn from(item: bevy::prelude::Color) -> Self { - Self::from_f32(item.r(), item.g(), item.b(), item.a()) + let item = item.to_srgba(); + Self::from_f32(item.red, item.green, item.blue, item.alpha) } } #[cfg(feature = "bevy")] impl From for bevy::prelude::Color { fn from(item: RGBA) -> Self { - Self::from([item.r, item.g, item.b, item.a]) + bevy::prelude::Color::srgba(item.r, item.g, item.b, item.a) } } diff --git a/bracket-geometry/Cargo.toml b/bracket-geometry/Cargo.toml index 24d7588e..6393419f 100755 --- a/bracket-geometry/Cargo.toml +++ b/bracket-geometry/Cargo.toml @@ -15,7 +15,7 @@ license = "MIT" [dependencies] serde = { version = "~1.0.139", features = ["derive"], optional = true } specs = { version = "~0.18.0", optional = true } -bevy = { version = "~0.9", optional = true } +bevy = { version = "~0.15", optional = true } ultraviolet = "~0.9.0" [dev-dependencies] diff --git a/bracket-geometry/src/point.rs b/bracket-geometry/src/point.rs index e758cd26..19563f94 100755 --- a/bracket-geometry/src/point.rs +++ b/bracket-geometry/src/point.rs @@ -22,7 +22,8 @@ impl specs::prelude::Component for Point { #[cfg(feature = "bevy")] impl bevy::ecs::component::Component for Point { - type Storage = bevy::ecs::component::TableStorage; + const STORAGE_TYPE: bevy::ecs::component::StorageType = + bevy::ecs::component::StorageType::Table; } impl Point { @@ -80,9 +81,9 @@ impl Point { } /// Converts the point to a usize tuple - /// + /// /// # Panics - /// + /// /// This can panic if X or Y are not convertible to a `usize`. #[must_use] pub fn to_unsigned_tuple(self) -> (usize, usize) { diff --git a/bracket-geometry/src/point3.rs b/bracket-geometry/src/point3.rs index 985cebc4..464b4644 100755 --- a/bracket-geometry/src/point3.rs +++ b/bracket-geometry/src/point3.rs @@ -21,7 +21,8 @@ impl specs::prelude::Component for Point3 { #[cfg(feature = "bevy")] impl bevy::ecs::component::Component for Point3 { - type Storage = bevy::ecs::component::TableStorage; + const STORAGE_TYPE: bevy::ecs::component::StorageType = + bevy::ecs::component::StorageType::Table; } impl Point3 { From 2f9c87f4dc4f3a1eb3be556ae8b4aa30637aab4d Mon Sep 17 00:00:00 2001 From: riqsha Date: Wed, 15 Jan 2025 21:43:01 +0000 Subject: [PATCH 3/4] Removed feature flag from cargo file for local wayland dependency --- bracket-bevy/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bracket-bevy/Cargo.toml b/bracket-bevy/Cargo.toml index 5655b67f..891dd891 100644 --- a/bracket-bevy/Cargo.toml +++ b/bracket-bevy/Cargo.toml @@ -13,7 +13,7 @@ categories = ["game-engines", "graphics"] license = "MIT" [dependencies] -bevy = { version = "~0.15", features = [ "wayland" ] } +bevy = { version = "~0.15" } parking_lot = "0.12" lazy_static = "1.4" bracket-random = { path = "../bracket-random" } From 24cb96057783517895bd6ec381824ecc44684936 Mon Sep 17 00:00:00 2001 From: riqsha Date: Sun, 19 Jan 2025 13:41:14 +0000 Subject: [PATCH 4/4] Added back Msaa --- bracket-bevy/src/builder/bterm_builder.rs | 11 ----------- bracket-bevy/src/builder/loader_system.rs | 7 +++++-- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/bracket-bevy/src/builder/bterm_builder.rs b/bracket-bevy/src/builder/bterm_builder.rs index 642344ac..3250bd72 100644 --- a/bracket-bevy/src/builder/bterm_builder.rs +++ b/bracket-bevy/src/builder/bterm_builder.rs @@ -176,7 +176,6 @@ impl BTermBuilder { impl Plugin for BTermBuilder { fn build(&self, app: &mut bevy::prelude::App) { - // app.insert_resource(bevy::prelude::Msaa { samples: 1 }); if self.with_diagnostics { app.add_plugins(FrameTimeDiagnosticsPlugin); } @@ -187,18 +186,8 @@ impl Plugin for BTermBuilder { app.insert_resource(ScreenScaler::new(self.gutter)); app.add_systems(Startup, load_terminals); if self.with_diagnostics { - // app.add_stage_before( - // CoreStage::Update, - // "bracket_term_diagnostics", - // SystemStage::single_threaded(), - // ); app.add_systems(PreUpdate, (update_timing, update_mouse_position)); } - // app.add_stage_after( - // CoreStage::Update, - // "bracket_term_update", - // SystemStage::single_threaded(), - // ); if self.auto_apply_batches { app.add_systems(PostUpdate, apply_all_batches); } diff --git a/bracket-bevy/src/builder/loader_system.rs b/bracket-bevy/src/builder/loader_system.rs index 648559d1..7d352ac9 100644 --- a/bracket-bevy/src/builder/loader_system.rs +++ b/bracket-bevy/src/builder/loader_system.rs @@ -4,7 +4,7 @@ use crate::{ }; use bevy::{ core_pipeline::core_2d::Camera2d, - prelude::{AssetServer, Assets, Commands, Component, Mesh, Res, ResMut, UntypedHandle}, + prelude::{AssetServer, Assets, Commands, Component, Mesh, Msaa, Res, ResMut, UntypedHandle}, sprite::ColorMaterial, }; @@ -21,7 +21,10 @@ pub(crate) fn load_terminals( mut meshes: ResMut>, ) { if context.with_ortho_camera { - commands.spawn(Camera2d::default()).insert(BracketCamera); + commands + .spawn(Camera2d::default()) + .insert(BracketCamera) + .insert(Msaa::Off); } // Setup the new context