aboutsummaryrefslogtreecommitdiff
path: root/src_testbed/debug_render.rs
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2023-11-04 18:32:55 +0100
committerGitHub <noreply@github.com>2023-11-04 18:32:55 +0100
commite9ea2ca10b3058a6ac2d7f4b79d351ef18ad3c06 (patch)
tree8a64ad550e9b99158bdbb26a260e9ab27ffd4be6 /src_testbed/debug_render.rs
parentdbc540d788a3c46d85e07d47e7028d67aab04dbf (diff)
parent1886c6f362139d780596baa6a0d6208a2c49212f (diff)
downloadrapier-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.rs66
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,
+ );
+ }
}