diff --git a/crates/bevy_dev_tools/src/fps_overlay.rs b/crates/bevy_dev_tools/src/fps_overlay.rs index ea5c0fde4318b..7e5e0ed2d2bf4 100644 --- a/crates/bevy_dev_tools/src/fps_overlay.rs +++ b/crates/bevy_dev_tools/src/fps_overlay.rs @@ -6,7 +6,6 @@ use bevy_color::Color; use bevy_diagnostic::{DiagnosticsStore, FrameTimeDiagnosticsPlugin}; use bevy_ecs::{ component::Component, - entity::Entity, prelude::Local, query::{With, Without}, resource::Resource, @@ -15,12 +14,9 @@ use bevy_ecs::{ }; use bevy_picking::Pickable; use bevy_render::storage::ShaderStorageBuffer; -use bevy_text::{Font, TextColor, TextFont, TextSpan}; +use bevy_text::{Font, FontFace, FontSize, TextColor}; use bevy_time::Time; -use bevy_ui::{ - widget::{Text, TextUiWriter}, - FlexDirection, GlobalZIndex, Node, PositionType, Val, -}; +use bevy_ui::{widget::Text, FlexDirection, GlobalZIndex, Node, PositionType, Val}; use bevy_ui_render::prelude::MaterialNode; use core::time::Duration; @@ -77,9 +73,11 @@ impl Plugin for FpsOverlayPlugin { /// Configuration options for the FPS overlay. #[derive(Resource, Clone)] pub struct FpsOverlayConfig { - /// Configuration of text in the overlay. - pub text_config: TextFont, - /// Color of text in the overlay. + /// Font face used for the overlay's text. + pub font: Handle, + /// Font size used for the overlay's text. + pub font_size: f32, + /// Color used for the overlay's text. pub text_color: Color, /// Displays the FPS overlay if true. pub enabled: bool, @@ -94,11 +92,8 @@ pub struct FpsOverlayConfig { impl Default for FpsOverlayConfig { fn default() -> Self { FpsOverlayConfig { - text_config: TextFont { - font: Handle::::default(), - font_size: 32.0, - ..Default::default() - }, + font: Handle::default(), + font_size: 32., text_color: Color::WHITE, enabled: true, refresh_interval: Duration::from_millis(100), @@ -146,6 +141,9 @@ impl Default for FrameTimeGraphConfig { #[derive(Component)] struct FpsText; +#[derive(Component)] +struct FpsCounter; + #[derive(Component)] struct FrameTimeGraph; @@ -170,14 +168,15 @@ fn setup( .with_children(|p| { p.spawn(( Text::new("FPS: "), - overlay_config.text_config.clone(), + FontFace(overlay_config.font.clone()), + FontSize::Px(overlay_config.font_size), TextColor(overlay_config.text_color), FpsText, Pickable::IGNORE, )) - .with_child((TextSpan::default(), overlay_config.text_config.clone())); + .with_child((Text::default(), FpsCounter)); + let font_size = overlay_config.font_size; - let font_size = overlay_config.text_config.font_size; p.spawn(( Node { width: Val::Px(font_size * FRAME_TIME_GRAPH_WIDTH_SCALE), @@ -211,8 +210,7 @@ fn setup( fn update_text( diagnostic: Res, - query: Query>, - mut writer: TextUiWriter, + mut fps_counter_text_query: Query<&mut Text, With>, time: Res