From 2518eaf57c3169376defc50ee610ff6d00636e98 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Mon, 29 Jan 2024 16:54:31 -0800 Subject: [PATCH] pass over line info colors, enable source-hover-line-info-viz, a few other visual improvements/tweaks --- src/df/gfx/df_gfx.c | 35 ++++++++------- src/df/gfx/df_gfx.mdesk | 8 ++-- src/df/gfx/generated/df_gfx.meta.h | 72 +++++++++++++++--------------- 3 files changed, 58 insertions(+), 57 deletions(-) diff --git a/src/df/gfx/df_gfx.c b/src/df/gfx/df_gfx.c index 7a79352b..a7c485c7 100644 --- a/src/df/gfx/df_gfx.c +++ b/src/df/gfx/df_gfx.c @@ -4014,7 +4014,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D UI_Focus((hover_eval_is_open && !ui_any_ctx_menu_is_open() && !query_is_open) ? UI_FocusKind_Null : UI_FocusKind_Off) { //- rjf: eval -> viz artifacts - F32 row_height = ui_top_font_size()*2.f; + F32 row_height = ui_top_font_size()*2.25f; DF_CfgTable cfg_table = {0}; U64 expr_hash = df_hash_from_string(expr); DF_EvalViewKey eval_view_key = df_eval_view_key_from_stringf("eval_hover_%I64x", expr_hash); @@ -4102,7 +4102,7 @@ df_window_update_and_render(Arena *arena, OS_EventList *events, DF_Window *ws, D { df_expand_set_expansion(eval_view->arena, &eval_view->expand_tree_table, row->parent_key, row->key, !row_is_expanded); } - UI_PrefWidth(ui_em(30.f, 1.f)) + UI_PrefWidth(ui_em(40.f, 1.f)) { UI_PrefWidth(ui_text_dim(10, 1.f)) df_code_label(1.f, 1, df_rgba_from_theme_color(DF_ThemeColor_CodeDefault), row->expr); ui_spacer(ui_em(1.5f, 1.f)); @@ -8893,6 +8893,13 @@ df_code_slice(DF_Window *ws, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, DF_ DF_Entity *stopper_thread = df_entity_from_ctrl_handle(stop_event.machine_id, stop_event.entity); B32 is_focused = ui_is_focus_active(); B32 ctrlified = (os_get_event_flags() & OS_EventFlag_Ctrl); + Vec4F32 code_line_bgs[] = + { + df_rgba_from_theme_color(DF_ThemeColor_LineInfo0), + df_rgba_from_theme_color(DF_ThemeColor_LineInfo1), + df_rgba_from_theme_color(DF_ThemeColor_LineInfo2), + df_rgba_from_theme_color(DF_ThemeColor_LineInfo3), + }; ////////////////////////////// //- rjf: build top-level container @@ -9600,7 +9607,7 @@ df_code_slice(DF_Window *ws, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, DF_ ////////////////////////////// //- rjf: mouse -> set global frontend hovered line info // - if(text_container_sig.mouse_over && contains_1s64(params->line_num_range, mouse_pt.line)) + if(text_container_sig.hovering && contains_1s64(params->line_num_range, mouse_pt.line)) { U64 line_slice_idx = mouse_pt.line-params->line_num_range.min; if(params->line_src2dasm[line_slice_idx].first != 0) @@ -9701,13 +9708,6 @@ df_code_slice(DF_Window *ws, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, DF_ UI_FontSize(params->font_size) UI_CornerRadius(0) { - Vec4F32 code_line_bgs[] = - { - df_rgba_from_theme_color(DF_ThemeColor_LineInfo0), - df_rgba_from_theme_color(DF_ThemeColor_LineInfo1), - df_rgba_from_theme_color(DF_ThemeColor_LineInfo2), - df_rgba_from_theme_color(DF_ThemeColor_LineInfo3), - }; U64 line_idx = 0; for(S64 line_num = params->line_num_range.min; line_num <= params->line_num_range.max; @@ -9717,8 +9717,8 @@ df_code_slice(DF_Window *ws, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, DF_ Vec4F32 bg_color = v4f32(0, 0, 0, 0); // rjf: line info on this line -> adjust bg color to visualize + B32 has_line_info = 0; { - B32 has_line_info = 0; S64 line_info_line_num = 0; F32 line_info_t = 0; DF_TextLineSrc2DasmInfoList *src2dasm_list = ¶ms->line_src2dasm[line_idx]; @@ -9760,7 +9760,7 @@ df_code_slice(DF_Window *ws, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, DF_ // rjf: build line num box ui_set_next_text_color(text_color); ui_set_next_background_color(bg_color); - ui_build_box_from_stringf(UI_BoxFlag_DrawText, "%I64u##line_num", line_num); + ui_build_box_from_stringf(UI_BoxFlag_DrawText|(UI_BoxFlag_DrawBackground*!!has_line_info), "%I64u##line_num", line_num); } } } @@ -10016,25 +10016,25 @@ df_code_slice(DF_Window *ws, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, DF_ // rjf: extra rendering for lines with line-info that match the hovered { B32 matches = 0; + S64 line_info_line_num = 0; DF_TextLineSrc2DasmInfoList *src2dasm_list = ¶ms->line_src2dasm[line_idx]; DF_TextLineDasm2SrcInfoList *dasm2src_list = ¶ms->line_dasm2src[line_idx]; // rjf: check src2dasm -#if 0 if(src2dasm_list->first != 0) { for(DF_TextLineSrc2DasmInfoNode *n = src2dasm_list->first; n != 0; n = n->next) { if(n->v.remap_line == line_num && - n->v.dbg_info == hovered_line_debug_info && + n->v.binary == hovered_line_binary && n->v.voff_range.min <= hovered_line_voff && hovered_line_voff < n->v.voff_range.max) { matches = 1; + line_info_line_num = line_num; break; } } } -#endif // rjf: check dasm2src if(dasm2src_list->first != 0) @@ -10046,6 +10046,7 @@ df_code_slice(DF_Window *ws, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, DF_ { if(n->v.voff_range.min <= hovered_line_voff && hovered_line_voff < n->v.voff_range.max) { + line_info_line_num = n->v.pt.line; matches = 1; break; } @@ -10056,8 +10057,8 @@ df_code_slice(DF_Window *ws, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, DF_ // rjf: matches => highlight background if(matches) { - Vec4F32 highlight_color = df_rgba_from_theme_color(DF_ThemeColor_Highlight0); - highlight_color.w *= 0.1f; + Vec4F32 highlight_color = code_line_bgs[line_info_line_num % ArrayCount(code_line_bgs)]; + highlight_color.w *= 0.25f; d_rect(line_box->rect, highlight_color, 0, 0, 0); } } diff --git a/src/df/gfx/df_gfx.mdesk b/src/df/gfx/df_gfx.mdesk index cee322ed..7f1c31fa 100644 --- a/src/df/gfx/df_gfx.mdesk +++ b/src/df/gfx/df_gfx.mdesk @@ -410,10 +410,10 @@ DF_ThemePresetColorTable: (code_string 0xe5cc66ff 0xcc5a0fff 0xd69d85ff 0xc11515ff 0x2aa198ff 0x5ab4a9ff 0x6b8e23ff 0x50ff30ff 0xe5cc66ff ) (code_meta 0xe54c4cff 0x8a0c0cff 0x9b9b9bff 0x808080ff 0xe54c4cff 0xe54c4cff 0xdab98fff 0x50ff30ff 0xffff00ff ) (code_comment 0x7f7f7fff 0x7f7f7fff 0x6a9955ff 0x008000ff 0x7f7f7fff 0xadafb2ff 0x686868ff 0x2090f0ff 0x7f7f7fff ) - (line_info_0 0x3f72993f 0x3e71993f 0xbeb7ff3f 0x3f72993f 0x3f72993f 0x3f72993f 0xaf60103f 0x3f72993f 0x3f72993f ) - (line_info_1 0x3f72994c 0x3f72994c 0xbeb7ff4c 0x3f72994c 0x3f72994c 0x3f72994c 0xaf60104c 0x3f72994c 0x3f72994c ) - (line_info_2 0x3f729972 0x3f729972 0xbeb7ff72 0x3f729972 0x3f729972 0x3f729972 0xaf601072 0x3f729972 0x3f729972 ) - (line_info_3 0x3f72997f 0x3f72997f 0xbeb7ff7f 0x3f72997f 0x3f72997f 0x3f72997f 0xaf60107f 0x3f72997f 0x3f72997f ) + (line_info_0 0x99503d3f 0x99503d3f 0x99503d3f 0x99503d3f 0x99503d3f 0x99503d3f 0x99503d3f 0x99503d3f 0x99503d3f ) + (line_info_1 0xfe82493f 0xfe82493f 0xfe82493f 0xfe82493f 0xfe82493f 0xfe82493f 0xfe82493f 0xfe82493f 0xfe82493f ) + (line_info_2 0xffba173f 0xffba173f 0xffba173f 0xffba173f 0xffba173f 0xffba173f 0xffba173f 0xffba173f 0xffba173f ) + (line_info_3 0xcefd693f 0xcefd693f 0xcefd693f 0xcefd693f 0xcefd693f 0xcefd693f 0xcefd693f 0xcefd693f 0xcefd693f ) (alt_text 0xe5e5e5ff 0x535353ff 0xf1f1f1ff 0x535353ff 0xe5e5e5ff 0x535353ff 0xa08563ff 0x90b080ff 0x000000ff ) (alt_background 0x42474c7f 0xfefefebc 0x1b1b1cff 0xfefefebc 0x002b36ff 0xfcf6e2ff 0x0c0c0cff 0x0c0c0cff 0x008184ff ) (alt_border 0xffffff19 0xffffff19 0x333337ff 0xffffff19 0xffffff19 0xffffff19 0xffffff19 0xffffff19 0xffffff19 ) diff --git a/src/df/gfx/generated/df_gfx.meta.h b/src/df/gfx/generated/df_gfx.meta.h index 58d67a6d..6cc711a8 100644 --- a/src/df/gfx/generated/df_gfx.meta.h +++ b/src/df/gfx/generated/df_gfx.meta.h @@ -265,10 +265,10 @@ rgba_from_u32_lit_comp(0x4ce54cff), rgba_from_u32_lit_comp(0xe5cc66ff), rgba_from_u32_lit_comp(0xe54c4cff), rgba_from_u32_lit_comp(0x7f7f7fff), -rgba_from_u32_lit_comp(0x3f72993f), -rgba_from_u32_lit_comp(0x3f72994c), -rgba_from_u32_lit_comp(0x3f729972), -rgba_from_u32_lit_comp(0x3f72997f), +rgba_from_u32_lit_comp(0x99503d3f), +rgba_from_u32_lit_comp(0xfe82493f), +rgba_from_u32_lit_comp(0xffba173f), +rgba_from_u32_lit_comp(0xcefd693f), rgba_from_u32_lit_comp(0xe5e5e5ff), rgba_from_u32_lit_comp(0x42474c7f), rgba_from_u32_lit_comp(0xffffff19), @@ -322,10 +322,10 @@ rgba_from_u32_lit_comp(0x2c7d2cff), rgba_from_u32_lit_comp(0xcc5a0fff), rgba_from_u32_lit_comp(0x8a0c0cff), rgba_from_u32_lit_comp(0x7f7f7fff), -rgba_from_u32_lit_comp(0x3e71993f), -rgba_from_u32_lit_comp(0x3f72994c), -rgba_from_u32_lit_comp(0x3f729972), -rgba_from_u32_lit_comp(0x3f72997f), +rgba_from_u32_lit_comp(0x99503d3f), +rgba_from_u32_lit_comp(0xfe82493f), +rgba_from_u32_lit_comp(0xffba173f), +rgba_from_u32_lit_comp(0xcefd693f), rgba_from_u32_lit_comp(0x535353ff), rgba_from_u32_lit_comp(0xfefefebc), rgba_from_u32_lit_comp(0xffffff19), @@ -379,10 +379,10 @@ rgba_from_u32_lit_comp(0xb5cea8ff), rgba_from_u32_lit_comp(0xd69d85ff), rgba_from_u32_lit_comp(0x9b9b9bff), rgba_from_u32_lit_comp(0x6a9955ff), -rgba_from_u32_lit_comp(0xbeb7ff3f), -rgba_from_u32_lit_comp(0xbeb7ff4c), -rgba_from_u32_lit_comp(0xbeb7ff72), -rgba_from_u32_lit_comp(0xbeb7ff7f), +rgba_from_u32_lit_comp(0x99503d3f), +rgba_from_u32_lit_comp(0xfe82493f), +rgba_from_u32_lit_comp(0xffba173f), +rgba_from_u32_lit_comp(0xcefd693f), rgba_from_u32_lit_comp(0xf1f1f1ff), rgba_from_u32_lit_comp(0x1b1b1cff), rgba_from_u32_lit_comp(0x333337ff), @@ -436,10 +436,10 @@ rgba_from_u32_lit_comp(0x000000ff), rgba_from_u32_lit_comp(0xc11515ff), rgba_from_u32_lit_comp(0x808080ff), rgba_from_u32_lit_comp(0x008000ff), -rgba_from_u32_lit_comp(0x3f72993f), -rgba_from_u32_lit_comp(0x3f72994c), -rgba_from_u32_lit_comp(0x3f729972), -rgba_from_u32_lit_comp(0x3f72997f), +rgba_from_u32_lit_comp(0x99503d3f), +rgba_from_u32_lit_comp(0xfe82493f), +rgba_from_u32_lit_comp(0xffba173f), +rgba_from_u32_lit_comp(0xcefd693f), rgba_from_u32_lit_comp(0x535353ff), rgba_from_u32_lit_comp(0xfefefebc), rgba_from_u32_lit_comp(0xffffff19), @@ -493,10 +493,10 @@ rgba_from_u32_lit_comp(0xcb4b20ff), rgba_from_u32_lit_comp(0x2aa198ff), rgba_from_u32_lit_comp(0xe54c4cff), rgba_from_u32_lit_comp(0x7f7f7fff), -rgba_from_u32_lit_comp(0x3f72993f), -rgba_from_u32_lit_comp(0x3f72994c), -rgba_from_u32_lit_comp(0x3f729972), -rgba_from_u32_lit_comp(0x3f72997f), +rgba_from_u32_lit_comp(0x99503d3f), +rgba_from_u32_lit_comp(0xfe82493f), +rgba_from_u32_lit_comp(0xffba173f), +rgba_from_u32_lit_comp(0xcefd693f), rgba_from_u32_lit_comp(0xe5e5e5ff), rgba_from_u32_lit_comp(0x002b36ff), rgba_from_u32_lit_comp(0xffffff19), @@ -550,10 +550,10 @@ rgba_from_u32_lit_comp(0x657b83ff), rgba_from_u32_lit_comp(0x5ab4a9ff), rgba_from_u32_lit_comp(0xe54c4cff), rgba_from_u32_lit_comp(0xadafb2ff), -rgba_from_u32_lit_comp(0x3f72993f), -rgba_from_u32_lit_comp(0x3f72994c), -rgba_from_u32_lit_comp(0x3f729972), -rgba_from_u32_lit_comp(0x3f72997f), +rgba_from_u32_lit_comp(0x99503d3f), +rgba_from_u32_lit_comp(0xfe82493f), +rgba_from_u32_lit_comp(0xffba173f), +rgba_from_u32_lit_comp(0xcefd693f), rgba_from_u32_lit_comp(0x535353ff), rgba_from_u32_lit_comp(0xfcf6e2ff), rgba_from_u32_lit_comp(0xffffff19), @@ -607,10 +607,10 @@ rgba_from_u32_lit_comp(0x6b8e23ff), rgba_from_u32_lit_comp(0x6b8e23ff), rgba_from_u32_lit_comp(0xdab98fff), rgba_from_u32_lit_comp(0x686868ff), -rgba_from_u32_lit_comp(0xaf60103f), -rgba_from_u32_lit_comp(0xaf60104c), -rgba_from_u32_lit_comp(0xaf601072), -rgba_from_u32_lit_comp(0xaf60107f), +rgba_from_u32_lit_comp(0x99503d3f), +rgba_from_u32_lit_comp(0xfe82493f), +rgba_from_u32_lit_comp(0xffba173f), +rgba_from_u32_lit_comp(0xcefd693f), rgba_from_u32_lit_comp(0xa08563ff), rgba_from_u32_lit_comp(0x0c0c0cff), rgba_from_u32_lit_comp(0xffffff19), @@ -664,10 +664,10 @@ rgba_from_u32_lit_comp(0x50ff30ff), rgba_from_u32_lit_comp(0x50ff30ff), rgba_from_u32_lit_comp(0x50ff30ff), rgba_from_u32_lit_comp(0x2090f0ff), -rgba_from_u32_lit_comp(0x3f72993f), -rgba_from_u32_lit_comp(0x3f72994c), -rgba_from_u32_lit_comp(0x3f729972), -rgba_from_u32_lit_comp(0x3f72997f), +rgba_from_u32_lit_comp(0x99503d3f), +rgba_from_u32_lit_comp(0xfe82493f), +rgba_from_u32_lit_comp(0xffba173f), +rgba_from_u32_lit_comp(0xcefd693f), rgba_from_u32_lit_comp(0x90b080ff), rgba_from_u32_lit_comp(0x0c0c0cff), rgba_from_u32_lit_comp(0xffffff19), @@ -721,10 +721,10 @@ rgba_from_u32_lit_comp(0x2cff50ff), rgba_from_u32_lit_comp(0xe5cc66ff), rgba_from_u32_lit_comp(0xffff00ff), rgba_from_u32_lit_comp(0x7f7f7fff), -rgba_from_u32_lit_comp(0x3f72993f), -rgba_from_u32_lit_comp(0x3f72994c), -rgba_from_u32_lit_comp(0x3f729972), -rgba_from_u32_lit_comp(0x3f72997f), +rgba_from_u32_lit_comp(0x99503d3f), +rgba_from_u32_lit_comp(0xfe82493f), +rgba_from_u32_lit_comp(0xffba173f), +rgba_from_u32_lit_comp(0xcefd693f), rgba_from_u32_lit_comp(0x000000ff), rgba_from_u32_lit_comp(0x008184ff), rgba_from_u32_lit_comp(0xffffff19),