From bc2ae4b512b8bc7a2b61dd24d9685289453681c5 Mon Sep 17 00:00:00 2001 From: Sébastien Crozet Date: Fri, 22 Apr 2022 15:45:53 +0200 Subject: Add a basic lines-based debug-renderer --- src_testbed/testbed.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 1bb30eb..2c40cf2 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::ui; +use crate::{debug_render, ui}; use crate::{graphics::GraphicsManager, harness::RunState}; use na::{self, Point2, Point3, Vector3}; @@ -17,7 +17,7 @@ use rapier::geometry::{ColliderHandle, ColliderSet, NarrowPhase}; #[cfg(feature = "dim3")] use rapier::geometry::{InteractionGroups, Ray}; use rapier::math::{Real, Vector}; -use rapier::pipeline::PhysicsHooks; +use rapier::pipeline::{DebugRenderMode, PhysicsHooks}; #[cfg(all(feature = "dim2", feature = "other-backends"))] use crate::box2d_backend::Box2dWorld; @@ -380,7 +380,8 @@ impl TestbedApp { .add_plugins(DefaultPlugins) .add_plugin(OrbitCameraPlugin) .add_plugin(WireframePlugin) - .add_plugin(bevy_egui::EguiPlugin); + .add_plugin(bevy_egui::EguiPlugin) + .add_plugin(debug_render::RapierDebugRenderPlugin::default()); #[cfg(target_arch = "wasm32")] app.add_plugin(bevy_webgl2::WebGL2Plugin); -- cgit From 5063fa420392455f7926f1ba3e65612f79a0b066 Mon Sep 17 00:00:00 2001 From: Sébastien Crozet Date: Thu, 28 Apr 2022 13:19:58 +0200 Subject: Testbed: switch to bevy 0.7 --- src_testbed/testbed.rs | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 2c40cf2..6996cd4 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -26,7 +26,7 @@ use crate::harness::Harness; use crate::physx_backend::PhysxWorld; use bevy::pbr::wireframe::WireframePlugin; use bevy::render::camera::Camera; -use bevy::render::options::{WgpuFeatures, WgpuOptions}; +use bevy::render::render_resource::WgpuFeatures; use bevy_egui::EguiContext; #[cfg(feature = "dim2")] @@ -363,16 +363,10 @@ impl TestbedApp { app.insert_resource(WindowDescriptor { title, - vsync: true, ..Default::default() }) .insert_resource(ClearColor(Color::rgb(0.15, 0.15, 0.15))) .insert_resource(Msaa { samples: 4 }) - .insert_resource(WgpuOptions { - // Required for wireframes. - features: WgpuFeatures::POLYGON_MODE_LINE, - ..Default::default() - }) .insert_resource(AmbientLight { brightness: 0.3, ..Default::default() @@ -389,15 +383,15 @@ impl TestbedApp { #[cfg(feature = "other-backends")] app.insert_non_send_resource(self.other_backends); - app.add_startup_system(setup_graphics_environment.system()) + app.add_startup_system(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.system()) - .add_system(egui_focus.system()); + .add_system_to_stage("physics", update_testbed) + .add_system(egui_focus); init(&mut app); app.run(); } @@ -856,11 +850,14 @@ fn setup_graphics_environment(mut commands: Commands) { commands .spawn_bundle(PerspectiveCameraBundle { - transform: Transform::from_matrix(Mat4::face_toward( - Vec3::new(-30.0, 30.0, 100.0), - Vec3::new(0.0, 10.0, 0.0), - Vec3::new(0.0, 1.0, 0.0), - )), + transform: Transform::from_matrix( + Mat4::look_at_rh( + Vec3::new(-30.0, 30.0, 100.0), + Vec3::new(0.0, 10.0, 0.0), + Vec3::new(0.0, 1.0, 0.0), + ) + .inverse(), + ), ..Default::default() }) .insert(OrbitCamera { @@ -900,9 +897,9 @@ fn setup_graphics_environment(mut commands: Commands) { }); } -fn egui_focus(ui_context: Res, mut cameras: Query<&mut OrbitCamera>) { +fn egui_focus(mut ui_context: ResMut, mut cameras: Query<&mut OrbitCamera>) { let mut camera_enabled = true; - if ui_context.ctx().wants_pointer_input() { + if ui_context.ctx_mut().wants_pointer_input() { camera_enabled = false; } for mut camera in cameras.iter_mut() { @@ -922,7 +919,7 @@ fn update_testbed( mut harness: NonSendMut, #[cfg(feature = "other-backends")] mut other_backends: NonSendMut, mut plugins: NonSendMut, - ui_context: Res, + mut ui_context: ResMut, mut gfx_components: Query<(&mut Transform,)>, mut cameras: Query<(&Camera, &GlobalTransform, &mut OrbitCamera)>, keys: Res>, @@ -957,11 +954,11 @@ fn update_testbed( // Update UI { let harness = &mut *harness; - ui::update_ui(&ui_context, &mut state, harness); + ui::update_ui(&mut ui_context, &mut state, harness); for plugin in &mut plugins.0 { plugin.update_ui( - &ui_context, + &mut ui_context, harness, &mut graphics, &mut commands, -- cgit From 65824e74f3a949343059b3bf5ab51bc7920f416d Mon Sep 17 00:00:00 2001 From: Sébastien Crozet Date: Thu, 28 Apr 2022 17:30:35 +0200 Subject: Add comments for the debug-renderer --- src_testbed/testbed.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'src_testbed/testbed.rs') diff --git a/src_testbed/testbed.rs b/src_testbed/testbed.rs index 6996cd4..c17e5ac 100644 --- a/src_testbed/testbed.rs +++ b/src_testbed/testbed.rs @@ -17,7 +17,7 @@ use rapier::geometry::{ColliderHandle, ColliderSet, NarrowPhase}; #[cfg(feature = "dim3")] use rapier::geometry::{InteractionGroups, Ray}; use rapier::math::{Real, Vector}; -use rapier::pipeline::{DebugRenderMode, PhysicsHooks}; +use rapier::pipeline::PhysicsHooks; #[cfg(all(feature = "dim2", feature = "other-backends"))] use crate::box2d_backend::Box2dWorld; @@ -26,7 +26,6 @@ use crate::harness::Harness; use crate::physx_backend::PhysxWorld; use bevy::pbr::wireframe::WireframePlugin; use bevy::render::camera::Camera; -use bevy::render::render_resource::WgpuFeatures; use bevy_egui::EguiContext; #[cfg(feature = "dim2")] -- cgit