first pass at asynchronous file streaming -> hash store layer; fix non-windowed memory access in watch window when doing change visualization, causing major performance regression with large arrays; fix some extra jank with truncated-string-hover & help labels

This commit is contained in:
Ryan Fleury
2024-01-26 11:47:25 -08:00
parent 0974337450
commit 455dac958c
9 changed files with 298 additions and 44 deletions
+9 -9
View File
@@ -10543,22 +10543,22 @@ internal B32
df_help_label(String8 string)
{
B32 result = 0;
UI_Box *box = ui_build_box_from_stringf(0, "###%S_help_label", string);
UI_Key help_hoverer_key = ui_key_from_stringf(box->key, "###help_hoverer");
B32 box_is_hot = ((ui_key_match(ui_active_key(Side_Min), ui_key_zero()) || ui_key_match(ui_active_key(Side_Min), help_hoverer_key)) &&
(ui_key_match(ui_active_key(Side_Max), ui_key_zero()) || ui_key_match(ui_active_key(Side_Min), help_hoverer_key)) &&
contains_2f32(box->rect, ui_mouse()));
UI_Box *box = ui_build_box_from_stringf(UI_BoxFlag_Clickable, "###%S_help_label", string);
UI_Signal sig = ui_signal_from_box(box);
UI_Parent(box)
{
UI_PrefWidth(ui_pct(1, 0)) ui_label(string);
if(box_is_hot) UI_PrefWidth(ui_em(2.25f, 1))
if(sig.hovering) UI_PrefWidth(ui_em(2.25f, 1))
{
result = 1;
ui_set_next_font(ui_icon_font());
ui_set_next_text_alignment(UI_TextAlign_Center);
UI_Box *help_hoverer = ui_build_box_from_key(UI_BoxFlag_DrawText|UI_BoxFlag_DrawBorder|UI_BoxFlag_DrawHotEffects|UI_BoxFlag_Clickable, help_hoverer_key);
UI_Box *help_hoverer = ui_build_box_from_stringf(UI_BoxFlag_DrawText|UI_BoxFlag_DrawBorder|UI_BoxFlag_DrawHotEffects, "###help_hoverer_%S", string);
ui_box_equip_display_string(help_hoverer, df_g_icon_kind_text_table[DF_IconKind_QuestionMark]);
UI_Signal sig = ui_signal_from_box(help_hoverer);
result = sig.hovering;
if(!contains_2f32(help_hoverer->rect, ui_mouse()))
{
result = 0;
}
}
}
return result;