diff options
author | Hugo Locurcio <hugo.locurcio@hugo.pro> | 2022-03-04 08:28:14 +0100 |
---|---|---|
committer | Hugo Locurcio <hugo.locurcio@hugo.pro> | 2022-03-04 08:28:14 +0100 |
commit | 6b003384d763241905d0ed12c90ba29b497ad722 (patch) | |
tree | 540942abc4b4bb829b2e5f4246ddfdbef0ab6751 | |
parent | d0c3094da8fb3ec2ffb0b88df464979abebefe85 (diff) |
Clamp the editor theme's base colors to avoid various issues
This fixes the profiler backgrounds being black when using the
light editor theme (which is a regression from using a negative
contrast setting by default for the Light preset).
-rw-r--r-- | editor/editor_themes.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/editor/editor_themes.cpp b/editor/editor_themes.cpp index 05aa638a4b..cdf51dda20 100644 --- a/editor/editor_themes.cpp +++ b/editor/editor_themes.cpp @@ -411,9 +411,11 @@ Ref<Theme> create_editor_theme(const Ref<Theme> p_theme) { // Colors bool dark_theme = EditorSettings::get_singleton()->is_dark_theme(); - const Color dark_color_1 = base_color.lerp(Color(0, 0, 0, 1), contrast); - const Color dark_color_2 = base_color.lerp(Color(0, 0, 0, 1), contrast * 1.5); - const Color dark_color_3 = base_color.lerp(Color(0, 0, 0, 1), contrast * 2); + // Ensure base colors are in the 0..1 luminance range to avoid 8-bit integer overflow or text rendering issues. + // Some places in the editor use 8-bit integer colors. + const Color dark_color_1 = base_color.lerp(Color(0, 0, 0, 1), contrast).clamp(); + const Color dark_color_2 = base_color.lerp(Color(0, 0, 0, 1), contrast * 1.5).clamp(); + const Color dark_color_3 = base_color.lerp(Color(0, 0, 0, 1), contrast * 2).clamp(); const Color background_color = dark_color_2; |