Skip to content

Commit

Permalink
Fix egui-dock example build errors
Browse files Browse the repository at this point in the history
  • Loading branch information
nightkr authored and jakobhellermann committed Oct 14, 2024
1 parent 2c6f9f8 commit 6bb59a5
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 4 deletions.
3 changes: 3 additions & 0 deletions crates/bevy-inspector-egui/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ egui_clipboard = ["bevy_egui/manage_clipboard"]
egui_open_url = ["bevy_egui/open_url"]
highlight_changes = []

# Currently broken since transform-gizmo-egui is stuck on egui 0.28
examples-dock-transform-gizmo = []

[dependencies]
bevy-inspector-egui-derive = { version = "0.26.0", path = "../bevy-inspector-egui-derive" }
bevy_app = { version = "0.14.0" }
Expand Down
24 changes: 20 additions & 4 deletions crates/bevy-inspector-egui/examples/integrations/egui_dock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,15 @@ use bevy_reflect::TypeRegistry;
use bevy_render::camera::{CameraProjection, Viewport};
use bevy_window::PrimaryWindow;
use egui_dock::{DockArea, DockState, NodeIndex, Style};

#[cfg(feature = "examples-dock-transform-gizmo")]
use transform_gizmo_egui::GizmoMode;

/// Placeholder type if gizmo is disabled.
#[cfg(not(feature = "examples-dock-transform-gizmo"))]
#[derive(Clone, Copy)]
struct GizmoMode;

fn main() {
App::new()
.add_plugins(DefaultPlugins)
Expand All @@ -30,6 +37,7 @@ fn main() {
PostUpdate,
show_ui_system
.before(EguiSet::ProcessOutput)
.before(bevy_egui::systems::end_pass_system)
.before(bevy::transform::TransformSystem::TransformPropagate),
)
.add_systems(PostUpdate, set_camera_viewport.after(show_ui_system))
Expand Down Expand Up @@ -97,7 +105,7 @@ fn show_ui_system(world: &mut World) {
fn set_camera_viewport(
ui_state: Res<UiState>,
primary_window: Query<&mut Window, With<PrimaryWindow>>,
egui_settings: Res<bevy_egui::EguiSettings>,
egui_settings: Query<&bevy_egui::EguiSettings>,
mut cameras: Query<&mut Camera, With<MainCamera>>,
) {
let mut cam = cameras.single_mut();
Expand All @@ -106,7 +114,7 @@ fn set_camera_viewport(
return;
};

let scale_factor = window.scale_factor() * egui_settings.scale_factor;
let scale_factor = window.scale_factor() * egui_settings.single().scale_factor;

let viewport_pos = ui_state.viewport_rect.left_top().to_vec2() * scale_factor;
let viewport_size = ui_state.viewport_rect.size() * scale_factor;
Expand All @@ -132,11 +140,15 @@ fn set_camera_viewport(
}

fn set_gizmo_mode(input: Res<ButtonInput<KeyCode>>, mut ui_state: ResMut<UiState>) {
for (key, mode) in [
#[cfg(feature = "examples-dock-transform-gizmo")]
let keybinds = [
(KeyCode::KeyR, GizmoMode::Rotate),
(KeyCode::KeyT, GizmoMode::Translate),
(KeyCode::KeyS, GizmoMode::Scale),
] {
];
#[cfg(not(feature = "examples-dock-transform-gizmo"))]
let keybinds = [];
for (key, mode) in keybinds {
if input.just_pressed(key) {
ui_state.gizmo_mode = mode;
}
Expand Down Expand Up @@ -174,7 +186,10 @@ impl UiState {
selected_entities: SelectedEntities::default(),
selection: InspectorSelection::Entities,
viewport_rect: egui::Rect::NOTHING,
#[cfg(feature = "examples-dock-transform-gizmo")]
gizmo_mode: GizmoMode::Translate,
#[cfg(not(feature = "examples-dock-transform-gizmo"))]
gizmo_mode: GizmoMode,
}
}

Expand Down Expand Up @@ -282,6 +297,7 @@ fn draw_gizmo(
let projection_matrix = projection.get_clip_from_view();

if selected_entities.len() != 1 {
#[allow(clippy::needless_return)]
return;
}

Expand Down

0 comments on commit 6bb59a5

Please sign in to comment.