mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 13:58:40 +00: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
|
// rows, this stage offers the ability to build a ui
|
||||||
// stretching over all of the rows.
|
// 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
|
// 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:
|
// 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)
|
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 string_memory_addr = value_eval.imm_u64;
|
||||||
U64 element_size = tg_byte_size_from_graph_rdi_key(graph, rdi, eval.type_key);
|
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, eval.offset, 256, element_size, 0);
|
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};
|
String8 raw_text = {0};
|
||||||
switch(element_size)
|
switch(element_size)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -281,6 +281,7 @@ enum
|
|||||||
DF_GfxViewRuleSpecInfoFlag_LineStringize = (1<<1),
|
DF_GfxViewRuleSpecInfoFlag_LineStringize = (1<<1),
|
||||||
DF_GfxViewRuleSpecInfoFlag_RowUI = (1<<2),
|
DF_GfxViewRuleSpecInfoFlag_RowUI = (1<<2),
|
||||||
DF_GfxViewRuleSpecInfoFlag_BlockUI = (1<<3),
|
DF_GfxViewRuleSpecInfoFlag_BlockUI = (1<<3),
|
||||||
|
DF_GfxViewRuleSpecInfoFlag_WholeUI = (1<<4),
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DF_GFX_VIEW_RULE_VIZ_ROW_PROD_FUNCTION_SIG(name) void name(void)
|
#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_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_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_VIZ_ROW_PROD_FUNCTION_SIG(DF_GfxViewRuleVizRowProdHookFunctionType);
|
||||||
typedef DF_GFX_VIEW_RULE_LINE_STRINGIZE_FUNCTION_SIG(DF_GfxViewRuleLineStringizeHookFunctionType);
|
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_ROW_UI_FUNCTION_SIG(DF_GfxViewRuleRowUIFunctionType);
|
||||||
typedef DF_GFX_VIEW_RULE_BLOCK_UI_FUNCTION_SIG(DF_GfxViewRuleBlockUIFunctionType);
|
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;
|
typedef struct DF_GfxViewRuleSpecInfo DF_GfxViewRuleSpecInfo;
|
||||||
struct DF_GfxViewRuleSpecInfo
|
struct DF_GfxViewRuleSpecInfo
|
||||||
@@ -313,6 +319,7 @@ struct DF_GfxViewRuleSpecInfo
|
|||||||
DF_GfxViewRuleLineStringizeHookFunctionType *line_stringize;
|
DF_GfxViewRuleLineStringizeHookFunctionType *line_stringize;
|
||||||
DF_GfxViewRuleRowUIFunctionType *row_ui;
|
DF_GfxViewRuleRowUIFunctionType *row_ui;
|
||||||
DF_GfxViewRuleBlockUIFunctionType *block_ui;
|
DF_GfxViewRuleBlockUIFunctionType *block_ui;
|
||||||
|
DF_GfxViewRuleWholeUIFunctionType *whole_ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct DF_GfxViewRuleSpecInfoArray DF_GfxViewRuleSpecInfoArray;
|
typedef struct DF_GfxViewRuleSpecInfoArray DF_GfxViewRuleSpecInfoArray;
|
||||||
|
|||||||
+15
-15
@@ -231,23 +231,23 @@ DF_CmdParamSlot2ViewSpecMap:
|
|||||||
//
|
//
|
||||||
// NOTE(rjf): see @view_rule_info
|
// NOTE(rjf): see @view_rule_info
|
||||||
|
|
||||||
@table(string vr ls ru bu)
|
@table(string vr ls ru bu wu)
|
||||||
DF_GfxViewRuleTable:
|
DF_GfxViewRuleTable:
|
||||||
{
|
{
|
||||||
{"array" - - - -}
|
{"array" - - - - - }
|
||||||
{"list" x - - -}
|
{"list" x - - - - }
|
||||||
{"dec" - x - -}
|
{"dec" - x - - - }
|
||||||
{"bin" - x - -}
|
{"bin" - x - - - }
|
||||||
{"oct" - x - -}
|
{"oct" - x - - - }
|
||||||
{"hex" - x - -}
|
{"hex" - x - - - }
|
||||||
{"only" x x - -}
|
{"only" x x - - - }
|
||||||
{"omit" x x - -}
|
{"omit" x x - - - }
|
||||||
{"no_addr" - x - -}
|
{"no_addr" - x - - - }
|
||||||
{"rgba" - - x x}
|
{"rgba" - - x x - }
|
||||||
{"text" - - - x}
|
{"text" - - - x - }
|
||||||
{"disasm" - - - x}
|
{"disasm" - - - x - }
|
||||||
{"bitmap" - - x x}
|
{"bitmap" - - x x x }
|
||||||
{"geo" - - x x}
|
{"geo" - - x x - }
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////
|
////////////////////////////////
|
||||||
|
|||||||
Reference in New Issue
Block a user