From 780ba4a216aa9ef68d7f10db4a2b67b866699f43 Mon Sep 17 00:00:00 2001 From: johnny-smitherson <127537716+johnny-smitherson@users.noreply.github.com> Date: Mon, 23 Oct 2023 16:21:07 +0000 Subject: update bevy 0.11 - fix compile errors --- src_testbed/testbed.rs | 73 +++++++++++++++++++++++++++++--------------------- 1 file changed, 42 insertions(+), 31 deletions(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 6a3ab7a..9ddec5f 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -27,9 +27,15 @@ use crate::box2d_backend::Box2dWorld; use crate::harness::Harness; #[cfg(all(feature = "dim3", feature = "other-backends"))] use crate::physx_backend::PhysxWorld; -use bevy::pbr::wireframe::WireframePlugin; use bevy::render::camera::Camera; -use bevy_egui::EguiContext; +use bevy_core_pipeline::prelude::Camera2dBundle; +use bevy_core_pipeline::prelude::Camera3dBundle; +use bevy_core_pipeline::prelude::ClearColor; +use bevy_egui::EguiContexts; +use bevy_pbr::wireframe::WireframePlugin; +use bevy_pbr::AmbientLight; +use bevy_pbr::DirectionalLight; +use bevy_pbr::DirectionalLightBundle; #[cfg(feature = "dim2")] use crate::camera2d::{OrbitCamera, OrbitCameraPlugin}; @@ -372,25 +378,25 @@ impl TestbedApp { }; let window_plugin = WindowPlugin { - window: WindowDescriptor { + primary_window: Some(Window { title, ..Default::default() - }, + }), ..Default::default() }; let mut app = App::new(); app.insert_resource(ClearColor(Color::rgb(0.15, 0.15, 0.15))) - .insert_resource(Msaa { samples: 4 }) + .insert_resource(Msaa::Sample4) .insert_resource(AmbientLight { brightness: 0.3, ..Default::default() }) .add_plugins(DefaultPlugins.set(window_plugin)) - .add_plugin(OrbitCameraPlugin) - .add_plugin(WireframePlugin) - .add_plugin(bevy_egui::EguiPlugin) - .add_plugin(debug_render::RapierDebugRenderPlugin::default()); + .add_plugins(OrbitCameraPlugin) + .add_plugins(WireframePlugin) + .add_plugins(bevy_egui::EguiPlugin); + // .add_plugins(debug_render::RapierDebugRenderPlugin::default()); #[cfg(target_arch = "wasm32")] app.add_plugin(bevy_webgl2::WebGL2Plugin); @@ -398,15 +404,16 @@ impl TestbedApp { #[cfg(feature = "other-backends")] app.insert_non_send_resource(self.other_backends); - app.add_startup_system(setup_graphics_environment) + app.add_systems(Startup, setup_graphics_environment) .insert_non_send_resource(self.graphics) .insert_resource(self.state) .insert_non_send_resource(self.harness) .insert_resource(self.builders) .insert_non_send_resource(self.plugins) - .add_stage_before(CoreStage::Update, "physics", SystemStage::single_threaded()) - .add_system_to_stage("physics", update_testbed) - .add_system(egui_focus); + // .add_stage_before(CoreStage::Update, "physics", SystemStage::single_threaded()) + // .add_system_to_stage("physics", update_testbed) + .add_systems(PreUpdate, update_testbed) + .add_systems(Update, egui_focus); init(&mut app); app.run(); } @@ -709,10 +716,10 @@ impl<'a, 'b, 'c, 'd, 'e, 'f> Testbed<'a, 'b, 'c, 'd, 'e, 'f> { KeyCode::Space => { desired_movement += Vector::y() * 2.0; } - KeyCode::RControl => { + KeyCode::ControlRight => { desired_movement -= Vector::y(); } - KeyCode::RShift => { + KeyCode::ShiftRight => { speed /= 10.0; } _ => {} @@ -750,10 +757,10 @@ impl<'a, 'b, 'c, 'd, 'e, 'f> Testbed<'a, 'b, 'c, 'd, 'e, 'f> { KeyCode::Space => { desired_movement += Vector::y() * 2.0; } - KeyCode::RControl => { + KeyCode::ControlRight => { desired_movement -= Vector::y(); } - KeyCode::RShift => { + KeyCode::ShiftLeft => { speed /= 10.0; } _ => {} @@ -1004,15 +1011,17 @@ fn setup_graphics_environment(mut commands: Commands) { directional_light: DirectionalLight { illuminance: 10000.0, // Configure the projection to better fit the scene - shadow_projection: OrthographicProjection { - left: -HALF_SIZE, - right: HALF_SIZE, - bottom: -HALF_SIZE, - top: HALF_SIZE, - near: -10.0 * HALF_SIZE, - far: 100.0 * HALF_SIZE, - ..Default::default() - }, + // shadow_projection: OrthographicProjection { + // area: Rect::new( + // -HALF_SIZE, + // HALF_SIZE, + // -HALF_SIZE, + // HALF_SIZE, + // ), + // near: -10.0 * HALF_SIZE, + // far: 100.0 * HALF_SIZE, + // ..Default::default() + // }, shadows_enabled: true, ..Default::default() }, @@ -1073,7 +1082,7 @@ fn setup_graphics_environment(mut commands: Commands) { }); } -fn egui_focus(mut ui_context: ResMut, mut cameras: Query<&mut OrbitCamera>) { +fn egui_focus(mut ui_context: EguiContexts, mut cameras: Query<&mut OrbitCamera>) { let mut camera_enabled = true; if ui_context.ctx_mut().wants_pointer_input() { camera_enabled = false; @@ -1083,9 +1092,11 @@ fn egui_focus(mut ui_context: ResMut, mut cameras: Query<&mut Orbit } } +use bevy::window::PrimaryWindow; + fn update_testbed( mut commands: Commands, - windows: Res, + windows: Query<&Window, With>, // mut pipelines: ResMut>, mut meshes: ResMut>, mut materials: ResMut>, @@ -1095,7 +1106,7 @@ fn update_testbed( mut harness: NonSendMut, #[cfg(feature = "other-backends")] mut other_backends: NonSendMut, mut plugins: NonSendMut, - mut ui_context: ResMut, + mut ui_context: EguiContexts, mut gfx_components: Query<(&mut Transform,)>, mut cameras: Query<(&Camera, &GlobalTransform, &mut OrbitCamera)>, keys: Res>, @@ -1407,7 +1418,7 @@ fn update_testbed( } } - if let Some(window) = windows.get_primary() { + if let Ok(window) = windows.get_single() { for (camera, camera_pos, _) in cameras.iter_mut() { highlight_hovered_body( &mut *materials, @@ -1419,7 +1430,7 @@ fn update_testbed( camera_pos, ); } - } + }; graphics.draw( &harness.physics.bodies, -- cgit From 23a7ed5beba12161d67184cdf7e63caa86be45eb Mon Sep 17 00:00:00 2001 From: Sébastien Crozet Date: Sun, 29 Oct 2023 18:59:47 +0100 Subject: Fix crashes on MacOS --- src_testbed/testbed.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 9ddec5f..60ea915 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -395,8 +395,8 @@ impl TestbedApp { .add_plugins(DefaultPlugins.set(window_plugin)) .add_plugins(OrbitCameraPlugin) .add_plugins(WireframePlugin) + // .add_plugins(debug_render::RapierDebugRenderPlugin::default()) .add_plugins(bevy_egui::EguiPlugin); - // .add_plugins(debug_render::RapierDebugRenderPlugin::default()); #[cfg(target_arch = "wasm32")] app.add_plugin(bevy_webgl2::WebGL2Plugin); @@ -412,7 +412,7 @@ impl TestbedApp { .insert_non_send_resource(self.plugins) // .add_stage_before(CoreStage::Update, "physics", SystemStage::single_threaded()) // .add_system_to_stage("physics", update_testbed) - .add_systems(PreUpdate, update_testbed) + .add_systems(Update, update_testbed) .add_systems(Update, egui_focus); init(&mut app); app.run(); @@ -1100,7 +1100,7 @@ fn update_testbed( // mut pipelines: ResMut>, mut meshes: ResMut>, mut materials: ResMut>, - builders: NonSendMut, + builders: ResMut, mut graphics: NonSendMut, mut state: ResMut, mut harness: NonSendMut, -- cgit From 31518e3dce8f34266471407b1d0a0a96b52f7f96 Mon Sep 17 00:00:00 2001 From: johnny-smitherson <127537716+johnny-smitherson@users.noreply.github.com> Date: Fri, 3 Nov 2023 21:01:39 +0000 Subject: fix compiler warnings & mention breaking in changelog --- src_testbed/testbed.rs | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 60ea915..2c83d1f 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -5,7 +5,7 @@ use bevy::prelude::*; use crate::physics::{PhysicsEvents, PhysicsSnapshot, PhysicsState}; use crate::plugin::TestbedPlugin; -use crate::{debug_render, ui}; +use crate::ui; use crate::{graphics::GraphicsManager, harness::RunState}; use na::{self, Point2, Point3, Vector3}; @@ -28,14 +28,10 @@ use crate::harness::Harness; #[cfg(all(feature = "dim3", feature = "other-backends"))] use crate::physx_backend::PhysxWorld; use bevy::render::camera::Camera; -use bevy_core_pipeline::prelude::Camera2dBundle; -use bevy_core_pipeline::prelude::Camera3dBundle; use bevy_core_pipeline::prelude::ClearColor; use bevy_egui::EguiContexts; use bevy_pbr::wireframe::WireframePlugin; use bevy_pbr::AmbientLight; -use bevy_pbr::DirectionalLight; -use bevy_pbr::DirectionalLightBundle; #[cfg(feature = "dim2")] use crate::camera2d::{OrbitCamera, OrbitCameraPlugin}; @@ -1005,7 +1001,7 @@ fn draw_contacts(_nf: &NarrowPhase, _colliders: &ColliderSet) { #[cfg(feature = "dim3")] fn setup_graphics_environment(mut commands: Commands) { - const HALF_SIZE: f32 = 100.0; + // const HALF_SIZE: f32 = 100.0; commands.spawn(DirectionalLightBundle { directional_light: DirectionalLight { -- cgit From 70922ba0a70111d34ed01dc9b324c5ebb57df515 Mon Sep 17 00:00:00 2001 From: johnny-smitherson <127537716+johnny-smitherson@users.noreply.github.com> Date: Fri, 3 Nov 2023 21:30:03 +0000 Subject: flip y coord in 3d highlight_hovered_body --- src_testbed/testbed.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 2c83d1f..7bd40bb 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -1501,7 +1501,7 @@ fn highlight_hovered_body( } if let Some(cursor) = window.cursor_position() { - let ndc_cursor = (cursor / Vec2::new(window.width(), window.height()) * 2.0) - Vec2::ONE; + let ndc_cursor = Vec2::new(cursor.x / window.width() * 2.0 - 1.0, 1.0 - cursor.y / window.height() * 2.0); let ndc_to_world = camera_transform.compute_matrix() * camera.projection_matrix().inverse(); let ray_pt1 = ndc_to_world.project_point3(Vec3::new(ndc_cursor.x, ndc_cursor.y, -1.0)); let ray_pt2 = ndc_to_world.project_point3(Vec3::new(ndc_cursor.x, ndc_cursor.y, 1.0)); -- cgit From aa546225a4a513764746e48fcd1f50357a014009 Mon Sep 17 00:00:00 2001 From: johnny-smitherson <127537716+johnny-smitherson@users.noreply.github.com> Date: Fri, 3 Nov 2023 21:43:31 +0000 Subject: delete comments left over in diff --- src_testbed/testbed.rs | 16 ---------------- 1 file changed, 16 deletions(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 7bd40bb..4c8a4a6 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -406,8 +406,6 @@ impl TestbedApp { .insert_non_send_resource(self.harness) .insert_resource(self.builders) .insert_non_send_resource(self.plugins) - // .add_stage_before(CoreStage::Update, "physics", SystemStage::single_threaded()) - // .add_system_to_stage("physics", update_testbed) .add_systems(Update, update_testbed) .add_systems(Update, egui_focus); init(&mut app); @@ -1001,23 +999,9 @@ fn draw_contacts(_nf: &NarrowPhase, _colliders: &ColliderSet) { #[cfg(feature = "dim3")] fn setup_graphics_environment(mut commands: Commands) { - // const HALF_SIZE: f32 = 100.0; - commands.spawn(DirectionalLightBundle { directional_light: DirectionalLight { illuminance: 10000.0, - // Configure the projection to better fit the scene - // shadow_projection: OrthographicProjection { - // area: Rect::new( - // -HALF_SIZE, - // HALF_SIZE, - // -HALF_SIZE, - // HALF_SIZE, - // ), - // near: -10.0 * HALF_SIZE, - // far: 100.0 * HALF_SIZE, - // ..Default::default() - // }, shadows_enabled: true, ..Default::default() }, -- cgit From fb3eee502c76ab25b5777b0b2a9d1c8e6a466f6b Mon Sep 17 00:00:00 2001 From: Sébastien Crozet Date: Sat, 4 Nov 2023 17:56:13 +0100 Subject: cargo fmt --- src_testbed/testbed.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 4c8a4a6..a3c9e6f 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -1485,7 +1485,10 @@ fn highlight_hovered_body( } if let Some(cursor) = window.cursor_position() { - let ndc_cursor = Vec2::new(cursor.x / window.width() * 2.0 - 1.0, 1.0 - cursor.y / window.height() * 2.0); + let ndc_cursor = Vec2::new( + cursor.x / window.width() * 2.0 - 1.0, + 1.0 - cursor.y / window.height() * 2.0, + ); let ndc_to_world = camera_transform.compute_matrix() * camera.projection_matrix().inverse(); let ray_pt1 = ndc_to_world.project_point3(Vec3::new(ndc_cursor.x, ndc_cursor.y, -1.0)); let ray_pt2 = ndc_to_world.project_point3(Vec3::new(ndc_cursor.x, ndc_cursor.y, 1.0)); -- cgit From ab68a8386a28bd190281cd952ada2f1e7a5084fc Mon Sep 17 00:00:00 2001 From: Sébastien Crozet Date: Sat, 4 Nov 2023 18:12:38 +0100 Subject: feat: add a checkbox to enable/disable the debug renderer in the testbed --- src_testbed/testbed.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index a3c9e6f..9b08e90 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -3,6 +3,7 @@ use std::mem; use bevy::prelude::*; +use crate::debug_render::{DebugRenderPipelineResource, RapierDebugRenderPlugin}; use crate::physics::{PhysicsEvents, PhysicsSnapshot, PhysicsState}; use crate::plugin::TestbedPlugin; use crate::ui; @@ -391,7 +392,7 @@ impl TestbedApp { .add_plugins(DefaultPlugins.set(window_plugin)) .add_plugins(OrbitCameraPlugin) .add_plugins(WireframePlugin) - // .add_plugins(debug_render::RapierDebugRenderPlugin::default()) + .add_plugins(RapierDebugRenderPlugin::default()) .add_plugins(bevy_egui::EguiPlugin); #[cfg(target_arch = "wasm32")] @@ -1083,6 +1084,7 @@ fn update_testbed( builders: ResMut, mut graphics: NonSendMut, mut state: ResMut, + mut debug_render: ResMut, mut harness: NonSendMut, #[cfg(feature = "other-backends")] mut other_backends: NonSendMut, mut plugins: NonSendMut, @@ -1127,7 +1129,7 @@ fn update_testbed( // Update UI { let harness = &mut *harness; - ui::update_ui(&mut ui_context, &mut state, harness); + ui::update_ui(&mut ui_context, &mut state, harness, &mut debug_render); for plugin in &mut plugins.0 { plugin.update_ui( -- cgit