diff options
| author | Sébastien Crozet <developer@crozet.re> | 2023-11-04 18:32:55 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-04 18:32:55 +0100 |
| commit | e9ea2ca10b3058a6ac2d7f4b79d351ef18ad3c06 (patch) | |
| tree | 8a64ad550e9b99158bdbb26a260e9ab27ffd4be6 /src_testbed/debug_render.rs | |
| parent | dbc540d788a3c46d85e07d47e7028d67aab04dbf (diff) | |
| parent | 1886c6f362139d780596baa6a0d6208a2c49212f (diff) | |
| download | rapier-e9ea2ca10b3058a6ac2d7f4b79d351ef18ad3c06.tar.gz rapier-e9ea2ca10b3058a6ac2d7f4b79d351ef18ad3c06.tar.bz2 rapier-e9ea2ca10b3058a6ac2d7f4b79d351ef18ad3c06.zip | |
Merge pull request #540 from johnny-smitherson/bevy-0.11
update bevy 0.11 - fix compile errors
Diffstat (limited to 'src_testbed/debug_render.rs')
| -rw-r--r-- | src_testbed/debug_render.rs | 66 |
1 files changed, 30 insertions, 36 deletions
diff --git a/src_testbed/debug_render.rs b/src_testbed/debug_render.rs index 928b8ba..4633865 100644 --- a/src_testbed/debug_render.rs +++ b/src_testbed/debug_render.rs @@ -1,5 +1,5 @@ use crate::harness::Harness; -use crate::lines::DebugLines; +use bevy::gizmos::gizmos::Gizmos; use bevy::prelude::*; use rapier::math::{Point, Real}; use rapier::pipeline::{ @@ -7,70 +7,64 @@ use rapier::pipeline::{ }; #[derive(Resource)] -pub struct DebugRenderPipelineResource(pub DebugRenderPipeline); - -pub struct RapierDebugRenderPlugin { - depth_test: bool, +pub struct DebugRenderPipelineResource { + pub pipeline: DebugRenderPipeline, + pub enabled: bool, } -impl Default for RapierDebugRenderPlugin { - fn default() -> Self { - Self { - depth_test: cfg!(feature = "dim3"), - } - } -} +#[derive(Default)] +pub struct RapierDebugRenderPlugin {} impl Plugin for RapierDebugRenderPlugin { fn build(&self, app: &mut App) { - app.add_plugin(crate::lines::DebugLinesPlugin::with_depth_test( - self.depth_test, - )) - .insert_resource(DebugRenderPipelineResource(DebugRenderPipeline::new( - Default::default(), - !DebugRenderMode::RIGID_BODY_AXES & !DebugRenderMode::COLLIDER_AABBS, - ))) - .add_system_to_stage(CoreStage::Update, debug_render_scene); + app.insert_resource(DebugRenderPipelineResource { + pipeline: DebugRenderPipeline::new( + Default::default(), + !DebugRenderMode::RIGID_BODY_AXES & !DebugRenderMode::COLLIDER_AABBS, + ), + enabled: false, + }) + .add_systems(Update, debug_render_scene); } } struct BevyLinesRenderBackend<'a> { - lines: &'a mut DebugLines, + gizmos: Gizmos<'a>, } impl<'a> DebugRenderBackend for BevyLinesRenderBackend<'a> { #[cfg(feature = "dim2")] fn draw_line(&mut self, _: DebugRenderObject, a: Point<Real>, b: Point<Real>, color: [f32; 4]) { - self.lines.line_colored( + self.gizmos.line( [a.x as f32, a.y as f32, 1.0e-8 as f32].into(), [b.x as f32, b.y as f32, 1.0e-8 as f32].into(), - 0.0, Color::hsla(color[0], color[1], color[2], color[3]), ) } #[cfg(feature = "dim3")] fn draw_line(&mut self, _: DebugRenderObject, a: Point<Real>, b: Point<Real>, color: [f32; 4]) { - self.lines.line_colored( + self.gizmos.line( [a.x as f32, a.y as f32, a.z as f32].into(), [b.x as f32, b.y as f32, b.z as f32].into(), - 0.0, Color::hsla(color[0], color[1], color[2], color[3]), ) } } fn debug_render_scene( - mut pipeline: ResMut<DebugRenderPipelineResource>, + mut debug_render: ResMut<DebugRenderPipelineResource>, harness: NonSend<Harness>, - mut lines: ResMut<DebugLines>, + gizmos: Gizmos, ) { - let mut backend = BevyLinesRenderBackend { lines: &mut *lines }; - pipeline.0.render( - &mut backend, - &harness.physics.bodies, - &harness.physics.colliders, - &harness.physics.impulse_joints, - &harness.physics.multibody_joints, - &harness.physics.narrow_phase, - ); + if debug_render.enabled { + let mut backend = BevyLinesRenderBackend { gizmos }; + debug_render.pipeline.render( + &mut backend, + &harness.physics.bodies, + &harness.physics.colliders, + &harness.physics.impulse_joints, + &harness.physics.multibody_joints, + &harness.physics.narrow_phase, + ); + } } |
