mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-23 04:04:59 -07:00
sketch out parts of 'whole ui' eval viz pipeline build stage; fix copypaste issue with string viz
This commit is contained in:
@@ -462,6 +462,13 @@ DF_CoreCmdTable:// | | |
|
||||
// rows, this stage offers the ability to build a ui
|
||||
// stretching over all of the rows.
|
||||
//
|
||||
// whole ui build, "wu" -> sometimes, more sophisticated interfaces need to be
|
||||
// provided for a view rule, that stretch beyond the
|
||||
// limits of what could be offered inside a watch
|
||||
// window block. in such cases, the eval/view-rule
|
||||
// combo will be granted its own tab for example, and
|
||||
// this stage is used to fill such a ui.
|
||||
//
|
||||
// A few other bits are included for various ways in which a view rule may be
|
||||
// applied throughout the eval visualization pipeline. A list follows:
|
||||
//
|
||||
|
||||
+2
-2
@@ -6878,8 +6878,8 @@ df_single_line_eval_value_strings_from_eval(Arena *arena, DF_EvalVizStringFlags
|
||||
if(!has_array && direct_type_is_string && (flags & DF_EvalVizStringFlag_ReadOnlyDisplayRules) && eval.mode == EVAL_EvalMode_Addr)
|
||||
{
|
||||
U64 string_memory_addr = value_eval.imm_u64;
|
||||
U64 element_size = tg_byte_size_from_graph_rdi_key(graph, rdi, eval.type_key);
|
||||
CTRL_ProcessMemorySlice text_slice = ctrl_query_cached_zero_terminated_data_from_process_vaddr_limit(arena, process->ctrl_machine_id, process->ctrl_handle, eval.offset, 256, element_size, 0);
|
||||
U64 element_size = tg_byte_size_from_graph_rdi_key(graph, rdi, direct_type_key);
|
||||
CTRL_ProcessMemorySlice text_slice = ctrl_query_cached_zero_terminated_data_from_process_vaddr_limit(arena, process->ctrl_machine_id, process->ctrl_handle, string_memory_addr, 256, element_size, 0);
|
||||
String8 raw_text = {0};
|
||||
switch(element_size)
|
||||
{
|
||||
|
||||
@@ -281,6 +281,7 @@ enum
|
||||
DF_GfxViewRuleSpecInfoFlag_LineStringize = (1<<1),
|
||||
DF_GfxViewRuleSpecInfoFlag_RowUI = (1<<2),
|
||||
DF_GfxViewRuleSpecInfoFlag_BlockUI = (1<<3),
|
||||
DF_GfxViewRuleSpecInfoFlag_WholeUI = (1<<4),
|
||||
};
|
||||
|
||||
#define DF_GFX_VIEW_RULE_VIZ_ROW_PROD_FUNCTION_SIG(name) void name(void)
|
||||
@@ -299,10 +300,15 @@ enum
|
||||
#define DF_GFX_VIEW_RULE_BLOCK_UI_FUNCTION_NAME(name) df_gfx_view_rule_block_ui__##name
|
||||
#define DF_GFX_VIEW_RULE_BLOCK_UI_FUNCTION_DEF(name) DF_GFX_VIEW_RULE_BLOCK_UI_FUNCTION_SIG(DF_GFX_VIEW_RULE_BLOCK_UI_FUNCTION_NAME(name))
|
||||
|
||||
#define DF_GFX_VIEW_RULE_WHOLE_UI_FUNCTION_SIG(name) void name(struct DF_Window *ws, struct DF_Panel *panel, struct DF_View *view, Rng2F32 rect, DBGI_Scope *dbgi_scope, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, EVAL_String2ExprMap *macro_map, struct DF_CfgNode *cfg)
|
||||
#define DF_GFX_VIEW_RULE_WHOLE_UI_FUNCTION_NAME(name) df_gfx_view_rule_whole_ui__##name
|
||||
#define DF_GFX_VIEW_RULE_WHOLE_UI_FUNCTION_DEF(name) DF_GFX_VIEW_RULE_WHOLW_UI_FUNCTION_SIG(DF_GFX_VIEW_RULE_WHOLE_UI_FUNCTION_NAME(name))
|
||||
|
||||
typedef DF_GFX_VIEW_RULE_VIZ_ROW_PROD_FUNCTION_SIG(DF_GfxViewRuleVizRowProdHookFunctionType);
|
||||
typedef DF_GFX_VIEW_RULE_LINE_STRINGIZE_FUNCTION_SIG(DF_GfxViewRuleLineStringizeHookFunctionType);
|
||||
typedef DF_GFX_VIEW_RULE_ROW_UI_FUNCTION_SIG(DF_GfxViewRuleRowUIFunctionType);
|
||||
typedef DF_GFX_VIEW_RULE_BLOCK_UI_FUNCTION_SIG(DF_GfxViewRuleBlockUIFunctionType);
|
||||
typedef DF_GFX_VIEW_RULE_WHOLE_UI_FUNCTION_SIG(DF_GfxViewRuleWholeUIFunctionType);
|
||||
|
||||
typedef struct DF_GfxViewRuleSpecInfo DF_GfxViewRuleSpecInfo;
|
||||
struct DF_GfxViewRuleSpecInfo
|
||||
@@ -313,6 +319,7 @@ struct DF_GfxViewRuleSpecInfo
|
||||
DF_GfxViewRuleLineStringizeHookFunctionType *line_stringize;
|
||||
DF_GfxViewRuleRowUIFunctionType *row_ui;
|
||||
DF_GfxViewRuleBlockUIFunctionType *block_ui;
|
||||
DF_GfxViewRuleWholeUIFunctionType *whole_ui;
|
||||
};
|
||||
|
||||
typedef struct DF_GfxViewRuleSpecInfoArray DF_GfxViewRuleSpecInfoArray;
|
||||
|
||||
+15
-15
@@ -231,23 +231,23 @@ DF_CmdParamSlot2ViewSpecMap:
|
||||
//
|
||||
// NOTE(rjf): see @view_rule_info
|
||||
|
||||
@table(string vr ls ru bu)
|
||||
@table(string vr ls ru bu wu)
|
||||
DF_GfxViewRuleTable:
|
||||
{
|
||||
{"array" - - - -}
|
||||
{"list" x - - -}
|
||||
{"dec" - x - -}
|
||||
{"bin" - x - -}
|
||||
{"oct" - x - -}
|
||||
{"hex" - x - -}
|
||||
{"only" x x - -}
|
||||
{"omit" x x - -}
|
||||
{"no_addr" - x - -}
|
||||
{"rgba" - - x x}
|
||||
{"text" - - - x}
|
||||
{"disasm" - - - x}
|
||||
{"bitmap" - - x x}
|
||||
{"geo" - - x x}
|
||||
{"array" - - - - - }
|
||||
{"list" x - - - - }
|
||||
{"dec" - x - - - }
|
||||
{"bin" - x - - - }
|
||||
{"oct" - x - - - }
|
||||
{"hex" - x - - - }
|
||||
{"only" x x - - - }
|
||||
{"omit" x x - - - }
|
||||
{"no_addr" - x - - - }
|
||||
{"rgba" - - x x - }
|
||||
{"text" - - - x - }
|
||||
{"disasm" - - - x - }
|
||||
{"bitmap" - - x x x }
|
||||
{"geo" - - x x - }
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
Reference in New Issue
Block a user