From 40ea5b4ef60d7f32e7bb8c37a177fb69baaa40e6 Mon Sep 17 00:00:00 2001 From: xtr3m3nerd Date: Sat, 5 Nov 2022 13:51:12 +0000 Subject: [PATCH] UI scaling fix (#6479) # Objective Fixes: https://github.com/bevyengine/bevy/issues/6466 Summary: The UI Scaling example dynamically scales the UI which will dynamically allocate fonts to the font atlas surpassing the protective limit, throwing a panic. ## Solution - Set TextSettings.allow_dynamic_font_size = true for the UI Scaling example. This is the ideal solution since the dynamic changes to the UI are not continuous yet still discrete. - Update the panic text to reflect ui scaling as a potential cause --- crates/bevy_text/src/error.rs | 2 +- examples/ui/ui_scaling.rs | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/bevy_text/src/error.rs b/crates/bevy_text/src/error.rs index bf6e4e774c..bf45a1129e 100644 --- a/crates/bevy_text/src/error.rs +++ b/crates/bevy_text/src/error.rs @@ -7,6 +7,6 @@ pub enum TextError { NoSuchFont, #[error("failed to add glyph to newly-created atlas {0:?}")] FailedToAddGlyph(GlyphId), - #[error("exceeded {0:?} available TextAltases for font. This can be caused by using an excessive number of font sizes. If you are changing font sizes dynamically consider using Transform::scale to modify the size. If you need more font sizes modify TextSettings.max_font_atlases." )] + #[error("exceeded {0:?} available TextAltases for font. This can be caused by using an excessive number of font sizes or ui scaling. If you are changing font sizes or ui scaling dynamically consider using Transform::scale to modify the size. If you need more font sizes modify TextSettings.max_font_atlases." )] ExceedMaxTextAtlases(usize), } diff --git a/examples/ui/ui_scaling.rs b/examples/ui/ui_scaling.rs index e2b6d1468a..008a992060 100644 --- a/examples/ui/ui_scaling.rs +++ b/examples/ui/ui_scaling.rs @@ -1,6 +1,6 @@ //! This example illustrates the [`UIScale`] resource from `bevy_ui`. -use bevy::{prelude::*, utils::Duration}; +use bevy::{prelude::*, text::TextSettings, utils::Duration}; const SCALE_TIME: u64 = 400; @@ -10,6 +10,10 @@ struct ApplyScaling; fn main() { App::new() .add_plugins(DefaultPlugins) + .insert_resource(TextSettings { + allow_dynamic_font_size: true, + ..default() + }) .insert_resource(TargetScale { start_scale: 1.0, target_scale: 1.0,