eliminate view cmds hook; just use ui hook

This commit is contained in:
Ryan Fleury
2024-09-16 09:45:54 -07:00
parent 3c262fccf3
commit 23a5c9eb44
10 changed files with 171 additions and 413 deletions
+34 -34
View File
@@ -714,40 +714,40 @@ str8_lit_comp("settings"),
RD_ViewSpecInfo rd_gfx_view_kind_spec_info_table[34] =
{
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("null"), str8_lit_comp(""), RD_IconKind_Null, RD_VIEW_SETUP_FUNCTION_NAME(null), RD_VIEW_CMD_FUNCTION_NAME(null), RD_VIEW_UI_FUNCTION_NAME(null)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("empty"), str8_lit_comp(""), RD_IconKind_Null, RD_VIEW_SETUP_FUNCTION_NAME(empty), RD_VIEW_CMD_FUNCTION_NAME(empty), RD_VIEW_UI_FUNCTION_NAME(empty)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("getting_started"), str8_lit_comp("Getting Started"), RD_IconKind_QuestionMark, RD_VIEW_SETUP_FUNCTION_NAME(getting_started), RD_VIEW_CMD_FUNCTION_NAME(getting_started), RD_VIEW_UI_FUNCTION_NAME(getting_started)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("commands"), str8_lit_comp("Commands"), RD_IconKind_List, RD_VIEW_SETUP_FUNCTION_NAME(commands), RD_VIEW_CMD_FUNCTION_NAME(commands), RD_VIEW_UI_FUNCTION_NAME(commands)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("file_system"), str8_lit_comp("File System"), RD_IconKind_FileOutline, RD_VIEW_SETUP_FUNCTION_NAME(file_system), RD_VIEW_CMD_FUNCTION_NAME(file_system), RD_VIEW_UI_FUNCTION_NAME(file_system)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("system_processes"), str8_lit_comp("System Processes"), RD_IconKind_Null, RD_VIEW_SETUP_FUNCTION_NAME(system_processes), RD_VIEW_CMD_FUNCTION_NAME(system_processes), RD_VIEW_UI_FUNCTION_NAME(system_processes)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("entity_lister"), str8_lit_comp("Entity List"), RD_IconKind_Null, RD_VIEW_SETUP_FUNCTION_NAME(entity_lister), RD_VIEW_CMD_FUNCTION_NAME(entity_lister), RD_VIEW_UI_FUNCTION_NAME(entity_lister)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("symbol_lister"), str8_lit_comp("Symbols"), RD_IconKind_Null, RD_VIEW_SETUP_FUNCTION_NAME(symbol_lister), RD_VIEW_CMD_FUNCTION_NAME(symbol_lister), RD_VIEW_UI_FUNCTION_NAME(symbol_lister)},
{(0|1*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("target"), str8_lit_comp("Target"), RD_IconKind_Target, RD_VIEW_SETUP_FUNCTION_NAME(target), RD_VIEW_CMD_FUNCTION_NAME(target), RD_VIEW_UI_FUNCTION_NAME(target)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("targets"), str8_lit_comp("Targets"), RD_IconKind_Target, RD_VIEW_SETUP_FUNCTION_NAME(targets), RD_VIEW_CMD_FUNCTION_NAME(targets), RD_VIEW_UI_FUNCTION_NAME(targets)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("file_path_map"), str8_lit_comp("File Path Map"), RD_IconKind_FileOutline, RD_VIEW_SETUP_FUNCTION_NAME(file_path_map), RD_VIEW_CMD_FUNCTION_NAME(file_path_map), RD_VIEW_UI_FUNCTION_NAME(file_path_map)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("auto_view_rules"), str8_lit_comp("Auto View Rules"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(auto_view_rules), RD_VIEW_CMD_FUNCTION_NAME(auto_view_rules), RD_VIEW_UI_FUNCTION_NAME(auto_view_rules)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("breakpoints"), str8_lit_comp("Breakpoints"), RD_IconKind_CircleFilled, RD_VIEW_SETUP_FUNCTION_NAME(breakpoints), RD_VIEW_CMD_FUNCTION_NAME(breakpoints), RD_VIEW_UI_FUNCTION_NAME(breakpoints)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("watch_pins"), str8_lit_comp("Watch Pins"), RD_IconKind_Pin, RD_VIEW_SETUP_FUNCTION_NAME(watch_pins), RD_VIEW_CMD_FUNCTION_NAME(watch_pins), RD_VIEW_UI_FUNCTION_NAME(watch_pins)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("scheduler"), str8_lit_comp("Scheduler"), RD_IconKind_Scheduler, RD_VIEW_SETUP_FUNCTION_NAME(scheduler), RD_VIEW_CMD_FUNCTION_NAME(scheduler), RD_VIEW_UI_FUNCTION_NAME(scheduler)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("call_stack"), str8_lit_comp("Call Stack"), RD_IconKind_Thread, RD_VIEW_SETUP_FUNCTION_NAME(call_stack), RD_VIEW_CMD_FUNCTION_NAME(call_stack), RD_VIEW_UI_FUNCTION_NAME(call_stack)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("modules"), str8_lit_comp("Modules"), RD_IconKind_Module, RD_VIEW_SETUP_FUNCTION_NAME(modules), RD_VIEW_CMD_FUNCTION_NAME(modules), RD_VIEW_UI_FUNCTION_NAME(modules)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("watch"), str8_lit_comp("Watch"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(watch), RD_VIEW_CMD_FUNCTION_NAME(watch), RD_VIEW_UI_FUNCTION_NAME(watch)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("locals"), str8_lit_comp("Locals"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(locals), RD_VIEW_CMD_FUNCTION_NAME(locals), RD_VIEW_UI_FUNCTION_NAME(locals)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("registers"), str8_lit_comp("Registers"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(registers), RD_VIEW_CMD_FUNCTION_NAME(registers), RD_VIEW_UI_FUNCTION_NAME(registers)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("globals"), str8_lit_comp("Globals"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(globals), RD_VIEW_CMD_FUNCTION_NAME(globals), RD_VIEW_UI_FUNCTION_NAME(globals)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("thread_locals"), str8_lit_comp("Thread Locals"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(thread_locals), RD_VIEW_CMD_FUNCTION_NAME(thread_locals), RD_VIEW_UI_FUNCTION_NAME(thread_locals)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("types"), str8_lit_comp("Types"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(types), RD_VIEW_CMD_FUNCTION_NAME(types), RD_VIEW_UI_FUNCTION_NAME(types)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("procedures"), str8_lit_comp("Procedures"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(procedures), RD_VIEW_CMD_FUNCTION_NAME(procedures), RD_VIEW_UI_FUNCTION_NAME(procedures)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("pending_file"), str8_lit_comp("Pending File"), RD_IconKind_FileOutline, RD_VIEW_SETUP_FUNCTION_NAME(pending_file), RD_VIEW_CMD_FUNCTION_NAME(pending_file), RD_VIEW_UI_FUNCTION_NAME(pending_file)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|1*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("text"), str8_lit_comp("Text"), RD_IconKind_FileOutline, RD_VIEW_SETUP_FUNCTION_NAME(text), RD_VIEW_CMD_FUNCTION_NAME(text), RD_VIEW_UI_FUNCTION_NAME(text)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("disasm"), str8_lit_comp("Disassembly"), RD_IconKind_Glasses, RD_VIEW_SETUP_FUNCTION_NAME(disasm), RD_VIEW_CMD_FUNCTION_NAME(disasm), RD_VIEW_UI_FUNCTION_NAME(disasm)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("output"), str8_lit_comp("Output"), RD_IconKind_List, RD_VIEW_SETUP_FUNCTION_NAME(output), RD_VIEW_CMD_FUNCTION_NAME(output), RD_VIEW_UI_FUNCTION_NAME(output)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("memory"), str8_lit_comp("Memory"), RD_IconKind_Grid, RD_VIEW_SETUP_FUNCTION_NAME(memory), RD_VIEW_CMD_FUNCTION_NAME(memory), RD_VIEW_UI_FUNCTION_NAME(memory)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("bitmap"), str8_lit_comp("Bitmap"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(bitmap), RD_VIEW_CMD_FUNCTION_NAME(bitmap), RD_VIEW_UI_FUNCTION_NAME(bitmap)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("color_rgba"), str8_lit_comp("Color (RGBA)"), RD_IconKind_Palette, RD_VIEW_SETUP_FUNCTION_NAME(color_rgba), RD_VIEW_CMD_FUNCTION_NAME(color_rgba), RD_VIEW_UI_FUNCTION_NAME(color_rgba)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("geo3d"), str8_lit_comp("Geometry (3D)"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(geo3d), RD_VIEW_CMD_FUNCTION_NAME(geo3d), RD_VIEW_UI_FUNCTION_NAME(geo3d)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("exception_filters"), str8_lit_comp("Exception Filters"), RD_IconKind_Gear, RD_VIEW_SETUP_FUNCTION_NAME(exception_filters), RD_VIEW_CMD_FUNCTION_NAME(exception_filters), RD_VIEW_UI_FUNCTION_NAME(exception_filters)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("settings"), str8_lit_comp("Settings"), RD_IconKind_Gear, RD_VIEW_SETUP_FUNCTION_NAME(settings), RD_VIEW_CMD_FUNCTION_NAME(settings), RD_VIEW_UI_FUNCTION_NAME(settings)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("null"), str8_lit_comp(""), RD_IconKind_Null, RD_VIEW_SETUP_FUNCTION_NAME(null), RD_VIEW_UI_FUNCTION_NAME(null)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("empty"), str8_lit_comp(""), RD_IconKind_Null, RD_VIEW_SETUP_FUNCTION_NAME(empty), RD_VIEW_UI_FUNCTION_NAME(empty)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("getting_started"), str8_lit_comp("Getting Started"), RD_IconKind_QuestionMark, RD_VIEW_SETUP_FUNCTION_NAME(getting_started), RD_VIEW_UI_FUNCTION_NAME(getting_started)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("commands"), str8_lit_comp("Commands"), RD_IconKind_List, RD_VIEW_SETUP_FUNCTION_NAME(commands), RD_VIEW_UI_FUNCTION_NAME(commands)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("file_system"), str8_lit_comp("File System"), RD_IconKind_FileOutline, RD_VIEW_SETUP_FUNCTION_NAME(file_system), RD_VIEW_UI_FUNCTION_NAME(file_system)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("system_processes"), str8_lit_comp("System Processes"), RD_IconKind_Null, RD_VIEW_SETUP_FUNCTION_NAME(system_processes), RD_VIEW_UI_FUNCTION_NAME(system_processes)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("entity_lister"), str8_lit_comp("Entity List"), RD_IconKind_Null, RD_VIEW_SETUP_FUNCTION_NAME(entity_lister), RD_VIEW_UI_FUNCTION_NAME(entity_lister)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("symbol_lister"), str8_lit_comp("Symbols"), RD_IconKind_Null, RD_VIEW_SETUP_FUNCTION_NAME(symbol_lister), RD_VIEW_UI_FUNCTION_NAME(symbol_lister)},
{(0|1*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("target"), str8_lit_comp("Target"), RD_IconKind_Target, RD_VIEW_SETUP_FUNCTION_NAME(target), RD_VIEW_UI_FUNCTION_NAME(target)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("targets"), str8_lit_comp("Targets"), RD_IconKind_Target, RD_VIEW_SETUP_FUNCTION_NAME(targets), RD_VIEW_UI_FUNCTION_NAME(targets)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("file_path_map"), str8_lit_comp("File Path Map"), RD_IconKind_FileOutline, RD_VIEW_SETUP_FUNCTION_NAME(file_path_map), RD_VIEW_UI_FUNCTION_NAME(file_path_map)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("auto_view_rules"), str8_lit_comp("Auto View Rules"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(auto_view_rules), RD_VIEW_UI_FUNCTION_NAME(auto_view_rules)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("breakpoints"), str8_lit_comp("Breakpoints"), RD_IconKind_CircleFilled, RD_VIEW_SETUP_FUNCTION_NAME(breakpoints), RD_VIEW_UI_FUNCTION_NAME(breakpoints)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("watch_pins"), str8_lit_comp("Watch Pins"), RD_IconKind_Pin, RD_VIEW_SETUP_FUNCTION_NAME(watch_pins), RD_VIEW_UI_FUNCTION_NAME(watch_pins)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("scheduler"), str8_lit_comp("Scheduler"), RD_IconKind_Scheduler, RD_VIEW_SETUP_FUNCTION_NAME(scheduler), RD_VIEW_UI_FUNCTION_NAME(scheduler)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("call_stack"), str8_lit_comp("Call Stack"), RD_IconKind_Thread, RD_VIEW_SETUP_FUNCTION_NAME(call_stack), RD_VIEW_UI_FUNCTION_NAME(call_stack)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("modules"), str8_lit_comp("Modules"), RD_IconKind_Module, RD_VIEW_SETUP_FUNCTION_NAME(modules), RD_VIEW_UI_FUNCTION_NAME(modules)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("watch"), str8_lit_comp("Watch"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(watch), RD_VIEW_UI_FUNCTION_NAME(watch)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("locals"), str8_lit_comp("Locals"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(locals), RD_VIEW_UI_FUNCTION_NAME(locals)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("registers"), str8_lit_comp("Registers"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(registers), RD_VIEW_UI_FUNCTION_NAME(registers)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("globals"), str8_lit_comp("Globals"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(globals), RD_VIEW_UI_FUNCTION_NAME(globals)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("thread_locals"), str8_lit_comp("Thread Locals"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(thread_locals), RD_VIEW_UI_FUNCTION_NAME(thread_locals)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("types"), str8_lit_comp("Types"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(types), RD_VIEW_UI_FUNCTION_NAME(types)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("procedures"), str8_lit_comp("Procedures"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(procedures), RD_VIEW_UI_FUNCTION_NAME(procedures)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|0*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("pending_file"), str8_lit_comp("Pending File"), RD_IconKind_FileOutline, RD_VIEW_SETUP_FUNCTION_NAME(pending_file), RD_VIEW_UI_FUNCTION_NAME(pending_file)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|1*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("text"), str8_lit_comp("Text"), RD_IconKind_FileOutline, RD_VIEW_SETUP_FUNCTION_NAME(text), RD_VIEW_UI_FUNCTION_NAME(text)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("disasm"), str8_lit_comp("Disassembly"), RD_IconKind_Glasses, RD_VIEW_SETUP_FUNCTION_NAME(disasm), RD_VIEW_UI_FUNCTION_NAME(disasm)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("output"), str8_lit_comp("Output"), RD_IconKind_List, RD_VIEW_SETUP_FUNCTION_NAME(output), RD_VIEW_UI_FUNCTION_NAME(output)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("memory"), str8_lit_comp("Memory"), RD_IconKind_Grid, RD_VIEW_SETUP_FUNCTION_NAME(memory), RD_VIEW_UI_FUNCTION_NAME(memory)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("bitmap"), str8_lit_comp("Bitmap"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(bitmap), RD_VIEW_UI_FUNCTION_NAME(bitmap)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("color_rgba"), str8_lit_comp("Color (RGBA)"), RD_IconKind_Palette, RD_VIEW_SETUP_FUNCTION_NAME(color_rgba), RD_VIEW_UI_FUNCTION_NAME(color_rgba)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|0*RD_ViewSpecFlag_CanFilter|1*RD_ViewSpecFlag_FilterIsCode|0*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("geo3d"), str8_lit_comp("Geometry (3D)"), RD_IconKind_Binoculars, RD_VIEW_SETUP_FUNCTION_NAME(geo3d), RD_VIEW_UI_FUNCTION_NAME(geo3d)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("exception_filters"), str8_lit_comp("Exception Filters"), RD_IconKind_Gear, RD_VIEW_SETUP_FUNCTION_NAME(exception_filters), RD_VIEW_UI_FUNCTION_NAME(exception_filters)},
{(0|0*RD_ViewSpecFlag_ParameterizedByEntity|0*RD_ViewSpecFlag_ProjectSpecific|1*RD_ViewSpecFlag_CanSerialize|1*RD_ViewSpecFlag_CanFilter|0*RD_ViewSpecFlag_FilterIsCode|1*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("settings"), str8_lit_comp("Settings"), RD_IconKind_Gear, RD_VIEW_SETUP_FUNCTION_NAME(settings), RD_VIEW_UI_FUNCTION_NAME(settings)},
};
RD_IconKind rd_entity_kind_icon_kind_table[30] =
-34
View File
@@ -716,40 +716,6 @@ RD_VIEW_SETUP_FUNCTION_DEF(color_rgba);
RD_VIEW_SETUP_FUNCTION_DEF(geo3d);
RD_VIEW_SETUP_FUNCTION_DEF(exception_filters);
RD_VIEW_SETUP_FUNCTION_DEF(settings);
RD_VIEW_CMD_FUNCTION_DEF(null);
RD_VIEW_CMD_FUNCTION_DEF(empty);
RD_VIEW_CMD_FUNCTION_DEF(getting_started);
RD_VIEW_CMD_FUNCTION_DEF(commands);
RD_VIEW_CMD_FUNCTION_DEF(file_system);
RD_VIEW_CMD_FUNCTION_DEF(system_processes);
RD_VIEW_CMD_FUNCTION_DEF(entity_lister);
RD_VIEW_CMD_FUNCTION_DEF(symbol_lister);
RD_VIEW_CMD_FUNCTION_DEF(target);
RD_VIEW_CMD_FUNCTION_DEF(targets);
RD_VIEW_CMD_FUNCTION_DEF(file_path_map);
RD_VIEW_CMD_FUNCTION_DEF(auto_view_rules);
RD_VIEW_CMD_FUNCTION_DEF(breakpoints);
RD_VIEW_CMD_FUNCTION_DEF(watch_pins);
RD_VIEW_CMD_FUNCTION_DEF(scheduler);
RD_VIEW_CMD_FUNCTION_DEF(call_stack);
RD_VIEW_CMD_FUNCTION_DEF(modules);
RD_VIEW_CMD_FUNCTION_DEF(watch);
RD_VIEW_CMD_FUNCTION_DEF(locals);
RD_VIEW_CMD_FUNCTION_DEF(registers);
RD_VIEW_CMD_FUNCTION_DEF(globals);
RD_VIEW_CMD_FUNCTION_DEF(thread_locals);
RD_VIEW_CMD_FUNCTION_DEF(types);
RD_VIEW_CMD_FUNCTION_DEF(procedures);
RD_VIEW_CMD_FUNCTION_DEF(pending_file);
RD_VIEW_CMD_FUNCTION_DEF(text);
RD_VIEW_CMD_FUNCTION_DEF(disasm);
RD_VIEW_CMD_FUNCTION_DEF(output);
RD_VIEW_CMD_FUNCTION_DEF(memory);
RD_VIEW_CMD_FUNCTION_DEF(bitmap);
RD_VIEW_CMD_FUNCTION_DEF(color_rgba);
RD_VIEW_CMD_FUNCTION_DEF(geo3d);
RD_VIEW_CMD_FUNCTION_DEF(exception_filters);
RD_VIEW_CMD_FUNCTION_DEF(settings);
RD_VIEW_UI_FUNCTION_DEF(null);
RD_VIEW_UI_FUNCTION_DEF(empty);
RD_VIEW_UI_FUNCTION_DEF(getting_started);
+1 -2
View File
@@ -973,7 +973,6 @@ RD_ViewTable:
@gen
{
@expand(RD_ViewTable a) `RD_VIEW_SETUP_FUNCTION_DEF($(a.name_lower));`;
@expand(RD_ViewTable a) `RD_VIEW_CMD_FUNCTION_DEF($(a.name_lower));`;
@expand(RD_ViewTable a) `RD_VIEW_UI_FUNCTION_DEF($(a.name_lower));`;
}
@@ -984,7 +983,7 @@ RD_ViewTable:
@data(RD_ViewSpecInfo) rd_gfx_view_kind_spec_info_table:
{
@expand(RD_ViewTable a) ```{(0|$(a.parameterized_by_entity)*RD_ViewSpecFlag_ParameterizedByEntity|$(a.project_specific)*RD_ViewSpecFlag_ProjectSpecific|$(a.can_serialize)*RD_ViewSpecFlag_CanSerialize|$(a.can_filter)*RD_ViewSpecFlag_CanFilter|$(a.filter_is_code)*RD_ViewSpecFlag_FilterIsCode|$(a.typing_automatically_filters)*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("$(a.name_lower)"), str8_lit_comp("$(a.display_string)"), RD_IconKind_$(a.icon), RD_VIEW_SETUP_FUNCTION_NAME($(a.name_lower)), RD_VIEW_CMD_FUNCTION_NAME($(a.name_lower)), RD_VIEW_UI_FUNCTION_NAME($(a.name_lower))}```;
@expand(RD_ViewTable a) ```{(0|$(a.parameterized_by_entity)*RD_ViewSpecFlag_ParameterizedByEntity|$(a.project_specific)*RD_ViewSpecFlag_ProjectSpecific|$(a.can_serialize)*RD_ViewSpecFlag_CanSerialize|$(a.can_filter)*RD_ViewSpecFlag_CanFilter|$(a.filter_is_code)*RD_ViewSpecFlag_FilterIsCode|$(a.typing_automatically_filters)*RD_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("$(a.name_lower)"), str8_lit_comp("$(a.display_string)"), RD_IconKind_$(a.icon), RD_VIEW_SETUP_FUNCTION_NAME($(a.name_lower)), RD_VIEW_UI_FUNCTION_NAME($(a.name_lower))}```;
}
////////////////////////////////
-46
View File
@@ -2841,36 +2841,6 @@ rd_window_frame(RD_Window *ws)
rd_regs()->panel = rd_handle_from_panel(ws->focused_panel);
rd_regs()->view = ws->focused_panel->selected_tab_view;
//////////////////////////////
//- rjf: process view-level commands on leaf panels
//
ProfScope("dispatch view-level commands")
{
for(RD_Panel *panel = ws->root_panel;
!rd_panel_is_nil(panel);
panel = rd_panel_rec_depth_first_pre(panel).next)
{
if(!rd_panel_is_nil(panel->first))
{
continue;
}
RD_View *view = rd_selected_tab_from_panel(panel);
if(!rd_view_is_nil(view))
{
rd_push_regs();
rd_regs()->panel = rd_handle_from_panel(panel);
rd_regs()->view = rd_handle_from_view(view);
RD_ViewCmdFunctionType *do_view_cmds_function = view->spec->info.cmd_hook;
do_view_cmds_function(view, view->params_roots[view->params_read_gen%ArrayCount(view->params_roots)], str8(view->query_buffer, view->query_string_size));
RD_Regs *view_regs = rd_pop_regs();
if(panel == ws->focused_panel)
{
MemoryCopyStruct(rd_regs(), view_regs);
}
}
}
}
//////////////////////////////
//- rjf: compute ui palettes from theme
//
@@ -14286,22 +14256,6 @@ rd_frame(void)
}
}
//////////////////////////////
//- rjf: animate alive-transitions for entities
//
{
F32 rate = 1.f - pow_f32(2.f, -20.f*rd_state->frame_dt);
for(RD_Entity *e = rd_entity_root(); !rd_entity_is_nil(e); e = rd_entity_rec_depth_first_pre(e, rd_entity_root()).next)
{
F32 diff = (1.f - e->alive_t);
e->alive_t += diff * rate;
if(diff >= 0.01f)
{
rd_request_frame();
}
}
}
//////////////////////////////
//- rjf: capture is active? -> keep rendering
//
-8
View File
@@ -166,11 +166,6 @@ typedef struct RD_View RD_View;
#define RD_VIEW_SETUP_FUNCTION_DEF(name) internal RD_VIEW_SETUP_FUNCTION_SIG(RD_VIEW_SETUP_FUNCTION_NAME(name))
typedef RD_VIEW_SETUP_FUNCTION_SIG(RD_ViewSetupFunctionType);
#define RD_VIEW_CMD_FUNCTION_SIG(name) void name(RD_View *view, MD_Node *params, String8 string)
#define RD_VIEW_CMD_FUNCTION_NAME(name) rd_view_cmds_##name
#define RD_VIEW_CMD_FUNCTION_DEF(name) internal RD_VIEW_CMD_FUNCTION_SIG(RD_VIEW_CMD_FUNCTION_NAME(name))
typedef RD_VIEW_CMD_FUNCTION_SIG(RD_ViewCmdFunctionType);
#define RD_VIEW_UI_FUNCTION_SIG(name) void name(RD_View *view, MD_Node *params, String8 string, Rng2F32 rect)
#define RD_VIEW_UI_FUNCTION_NAME(name) rd_view_ui_##name
#define RD_VIEW_UI_FUNCTION_DEF(name) internal RD_VIEW_UI_FUNCTION_SIG(RD_VIEW_UI_FUNCTION_NAME(name))
@@ -216,7 +211,6 @@ struct RD_ViewSpecInfo
String8 display_string;
U32 icon_kind;
RD_ViewSetupFunctionType *setup_hook;
RD_ViewCmdFunctionType *cmd_hook;
RD_ViewUIFunctionType *ui_hook;
};
@@ -542,7 +536,6 @@ struct RD_Entity
RD_EntityID id;
U64 gen;
U64 alloc_time_us;
F32 alive_t;
// rjf: basic equipment
TxtPt text_point;
@@ -1092,7 +1085,6 @@ read_only global RD_ViewSpec rd_nil_view_spec =
{0},
RD_IconKind_Null,
RD_VIEW_SETUP_FUNCTION_NAME(null),
RD_VIEW_CMD_FUNCTION_NAME(null),
RD_VIEW_UI_FUNCTION_NAME(null),
},
};
+129 -283
View File
@@ -2872,14 +2872,12 @@ rd_watch_view_build(RD_View *view, RD_WatchViewState *ewv, B32 modifiable, U32 d
//~ rjf: null @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(null) {}
RD_VIEW_CMD_FUNCTION_DEF(null) {}
RD_VIEW_UI_FUNCTION_DEF(null) {}
////////////////////////////////
//~ rjf: empty @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(empty) {}
RD_VIEW_CMD_FUNCTION_DEF(empty) {}
RD_VIEW_UI_FUNCTION_DEF(empty)
{
ui_set_next_flags(UI_BoxFlag_DefaultFocusNav);
@@ -2906,7 +2904,6 @@ RD_VIEW_UI_FUNCTION_DEF(empty)
//~ rjf: getting_started @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(getting_started) {}
RD_VIEW_CMD_FUNCTION_DEF(getting_started) {}
RD_VIEW_UI_FUNCTION_DEF(getting_started)
{
ProfBeginFunction();
@@ -3173,7 +3170,6 @@ rd_cmd_lister_item_array_sort_by_strength__in_place(RD_CmdListerItemArray array)
}
RD_VIEW_SETUP_FUNCTION_DEF(commands) {}
RD_VIEW_CMD_FUNCTION_DEF(commands) {}
RD_VIEW_UI_FUNCTION_DEF(commands)
{
ProfBeginFunction();
@@ -3498,7 +3494,6 @@ rd_qsort_compare_file_info__size(RD_FileInfo *a, RD_FileInfo *b)
}
RD_VIEW_SETUP_FUNCTION_DEF(file_system){}
RD_VIEW_CMD_FUNCTION_DEF(file_system){}
RD_VIEW_UI_FUNCTION_DEF(file_system)
{
ProfBeginFunction();
@@ -4080,7 +4075,6 @@ rd_process_info_array_sort_by_strength__in_place(RD_ProcessInfoArray array)
}
RD_VIEW_SETUP_FUNCTION_DEF(system_processes){}
RD_VIEW_CMD_FUNCTION_DEF(system_processes){}
RD_VIEW_UI_FUNCTION_DEF(system_processes)
{
ProfBeginFunction();
@@ -4331,7 +4325,6 @@ rd_entity_lister_item_array_sort_by_strength__in_place(RD_EntityListerItemArray
}
RD_VIEW_SETUP_FUNCTION_DEF(entity_lister){}
RD_VIEW_CMD_FUNCTION_DEF(entity_lister){}
RD_VIEW_UI_FUNCTION_DEF(entity_lister)
{
ProfBeginFunction();
@@ -4459,7 +4452,6 @@ RD_VIEW_UI_FUNCTION_DEF(entity_lister)
//~ rjf: symbol_lister @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(symbol_lister){}
RD_VIEW_CMD_FUNCTION_DEF(symbol_lister){}
RD_VIEW_UI_FUNCTION_DEF(symbol_lister)
{
ProfBeginFunction();
@@ -4667,11 +4659,17 @@ struct RD_TargetViewState
};
RD_VIEW_SETUP_FUNCTION_DEF(target){}
RD_VIEW_CMD_FUNCTION_DEF(target)
RD_VIEW_UI_FUNCTION_DEF(target)
{
ProfBeginFunction();
Temp scratch = scratch_begin(0, 0);
RD_Entity *entity = rd_entity_from_eval_string(string);
RD_EntityList custom_entry_points = rd_push_entity_child_list_with_kind(scratch.arena, entity, RD_EntityKind_EntryPoint);
F32 row_height_px = floor_f32(ui_top_font_size()*2.5f);
#if 0 // TODO(rjf): @msgs
RD_TargetViewState *tv = rd_view_user_state(view, RD_TargetViewState);
RD_Entity *entity = rd_entity_from_eval_string(string);
#if 0 // TODO(rjf): @msgs
// rjf: process commands
for(RD_Cmd *cmd = 0; rd_next_cmd(&cmd);)
{
@@ -4706,15 +4704,6 @@ RD_VIEW_CMD_FUNCTION_DEF(target)
}
}
#endif
}
RD_VIEW_UI_FUNCTION_DEF(target)
{
ProfBeginFunction();
Temp scratch = scratch_begin(0, 0);
RD_Entity *entity = rd_entity_from_eval_string(string);
RD_EntityList custom_entry_points = rd_push_entity_child_list_with_kind(scratch.arena, entity, RD_EntityKind_EntryPoint);
F32 row_height_px = floor_f32(ui_top_font_size()*2.5f);
//- rjf: grab state
RD_TargetViewState *tv = rd_view_user_state(view, RD_TargetViewState);
@@ -4977,7 +4966,6 @@ RD_VIEW_UI_FUNCTION_DEF(target)
//~ rjf: targets @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(targets){}
RD_VIEW_CMD_FUNCTION_DEF(targets){}
RD_VIEW_UI_FUNCTION_DEF(targets)
{
ProfBeginFunction();
@@ -5155,8 +5143,15 @@ RD_VIEW_SETUP_FUNCTION_DEF(file_path_map)
}
}
RD_VIEW_CMD_FUNCTION_DEF(file_path_map)
RD_VIEW_UI_FUNCTION_DEF(file_path_map)
{
ProfBeginFunction();
Temp scratch = scratch_begin(0, 0);
RD_EntityList maps_list = rd_query_cached_entity_list_with_kind(RD_EntityKind_FilePathMap);
RD_EntityArray maps = rd_entity_array_from_list(scratch.arena, &maps_list);
F32 row_height_px = floor_f32(ui_top_font_size()*2.5f);
#if 0 // TODO(rjf): @msgs
RD_FilePathMapViewState *fpms = rd_view_user_state(view, RD_FilePathMapViewState);
// rjf: process commands
@@ -5189,15 +5184,7 @@ RD_VIEW_CMD_FUNCTION_DEF(file_path_map)
}break;
}
}
}
RD_VIEW_UI_FUNCTION_DEF(file_path_map)
{
ProfBeginFunction();
Temp scratch = scratch_begin(0, 0);
RD_EntityList maps_list = rd_query_cached_entity_list_with_kind(RD_EntityKind_FilePathMap);
RD_EntityArray maps = rd_entity_array_from_list(scratch.arena, &maps_list);
F32 row_height_px = floor_f32(ui_top_font_size()*2.5f);
#endif
//- rjf: grab state
RD_FilePathMapViewState *fpms = rd_view_user_state(view, RD_FilePathMapViewState);
@@ -5469,14 +5456,12 @@ RD_VIEW_UI_FUNCTION_DEF(file_path_map)
//~ rjf: auto_view_rules @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(auto_view_rules){}
RD_VIEW_CMD_FUNCTION_DEF(auto_view_rules){}
RD_VIEW_UI_FUNCTION_DEF(auto_view_rules){}
////////////////////////////////
//~ rjf: breakpoints @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(breakpoints){}
RD_VIEW_CMD_FUNCTION_DEF(breakpoints){}
RD_VIEW_UI_FUNCTION_DEF(breakpoints)
{
ProfBeginFunction();
@@ -5498,7 +5483,6 @@ RD_VIEW_UI_FUNCTION_DEF(breakpoints)
//~ rjf: watch_pins @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(watch_pins){}
RD_VIEW_CMD_FUNCTION_DEF(watch_pins){}
RD_VIEW_UI_FUNCTION_DEF(watch_pins)
{
ProfBeginFunction();
@@ -5517,7 +5501,6 @@ RD_VIEW_UI_FUNCTION_DEF(watch_pins)
//~ rjf: scheduler @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(scheduler) {}
RD_VIEW_CMD_FUNCTION_DEF(scheduler) {}
RD_VIEW_UI_FUNCTION_DEF(scheduler)
{
ProfBeginFunction();
@@ -5741,7 +5724,6 @@ RD_VIEW_UI_FUNCTION_DEF(scheduler)
//~ rjf: call_stack @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(call_stack){}
RD_VIEW_CMD_FUNCTION_DEF(call_stack){}
RD_VIEW_UI_FUNCTION_DEF(call_stack)
{
ProfBeginFunction();
@@ -5795,7 +5777,7 @@ RD_VIEW_SETUP_FUNCTION_DEF(modules)
#endif
}
RD_VIEW_CMD_FUNCTION_DEF(modules)
RD_VIEW_UI_FUNCTION_DEF(modules)
{
#if 0 // TODO(rjf): @msgs
RD_ModulesViewState *mv = rd_view_user_state(view, RD_ModulesViewState);
@@ -5829,10 +5811,6 @@ RD_VIEW_CMD_FUNCTION_DEF(modules)
}
}
#endif
}
RD_VIEW_UI_FUNCTION_DEF(modules)
{
#if 0 // TODO(rjf): @msgs
ProfBeginFunction();
Temp scratch = scratch_begin(0, 0);
@@ -6105,7 +6083,6 @@ RD_VIEW_UI_FUNCTION_DEF(modules)
//~ rjf: watch @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(watch){}
RD_VIEW_CMD_FUNCTION_DEF(watch){}
RD_VIEW_UI_FUNCTION_DEF(watch)
{
ProfBeginFunction();
@@ -6126,7 +6103,6 @@ RD_VIEW_UI_FUNCTION_DEF(watch)
//~ rjf: locals @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(locals){}
RD_VIEW_CMD_FUNCTION_DEF(locals){}
RD_VIEW_UI_FUNCTION_DEF(locals)
{
ProfBeginFunction();
@@ -6147,7 +6123,6 @@ RD_VIEW_UI_FUNCTION_DEF(locals)
//~ rjf: registers @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(registers){}
RD_VIEW_CMD_FUNCTION_DEF(registers){}
RD_VIEW_UI_FUNCTION_DEF(registers)
{
ProfBeginFunction();
@@ -6168,7 +6143,6 @@ RD_VIEW_UI_FUNCTION_DEF(registers)
//~ rjf: globals @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(globals){}
RD_VIEW_CMD_FUNCTION_DEF(globals){}
RD_VIEW_UI_FUNCTION_DEF(globals)
{
ProfBeginFunction();
@@ -6189,7 +6163,6 @@ RD_VIEW_UI_FUNCTION_DEF(globals)
//~ rjf: thread_locals @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(thread_locals){}
RD_VIEW_CMD_FUNCTION_DEF(thread_locals){}
RD_VIEW_UI_FUNCTION_DEF(thread_locals)
{
ProfBeginFunction();
@@ -6210,7 +6183,6 @@ RD_VIEW_UI_FUNCTION_DEF(thread_locals)
//~ rjf: types @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(types){}
RD_VIEW_CMD_FUNCTION_DEF(types){}
RD_VIEW_UI_FUNCTION_DEF(types)
{
ProfBeginFunction();
@@ -6231,7 +6203,6 @@ RD_VIEW_UI_FUNCTION_DEF(types)
//~ rjf: procedures @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(procedures){}
RD_VIEW_CMD_FUNCTION_DEF(procedures){}
RD_VIEW_UI_FUNCTION_DEF(procedures)
{
ProfBeginFunction();
@@ -6262,13 +6233,16 @@ RD_VIEW_SETUP_FUNCTION_DEF(pending_file)
RD_PendingFileViewState *pves = rd_view_user_state(view, RD_PendingFileViewState);
pves->deferred_cmd_arena = rd_view_push_arena_ext(view);
}
RD_VIEW_CMD_FUNCTION_DEF(pending_file)
RD_VIEW_UI_FUNCTION_DEF(pending_file)
{
Temp scratch = scratch_begin(0, 0);
RD_PendingFileViewState *pves = rd_view_user_state(view, RD_PendingFileViewState);
view->loading_t = view->loading_t_target = 1.f;
rd_request_frame();
//////////////////////////////
//- rjf: process commands
//
for(RD_Cmd *cmd = 0; rd_next_cmd(&cmd);)
{
// rjf: mismatched window/panel => skip
@@ -6377,12 +6351,6 @@ RD_VIEW_CMD_FUNCTION_DEF(pending_file)
scratch_end(scratch);
}
RD_VIEW_UI_FUNCTION_DEF(pending_file)
{
view->loading_t = view->loading_t_target = 1.f;
rd_request_frame();
}
////////////////////////////////
//~ rjf: text @view_hook_impl
@@ -6405,62 +6373,6 @@ RD_VIEW_SETUP_FUNCTION_DEF(text)
view->loading_t = view->loading_t_target = 1.f;
}
RD_VIEW_CMD_FUNCTION_DEF(text)
{
RD_CodeViewState *cv = rd_view_user_state(view, RD_CodeViewState);
Temp scratch = scratch_begin(0, 0);
HS_Scope *hs_scope = hs_scope_open();
TXT_Scope *txt_scope = txt_scope_open();
E_Eval eval = e_eval_from_string(scratch.arena, string);
Rng1U64 range = rd_range_from_eval_params(eval, params);
rd_regs()->text_key = rd_key_from_eval_space_range(eval.space, range, 1);
rd_regs()->lang_kind = rd_lang_kind_from_eval_params(eval, params);
U128 hash = {0};
TXT_TextInfo info = txt_text_info_from_key_lang(txt_scope, rd_regs()->text_key, rd_regs()->lang_kind, &hash);
String8 data = hs_data_from_hash(hs_scope, hash);
//- rjf: process general code-view commands
rd_code_view_cmds(view, cv, data, &info, 0, r1u64(0, 0), di_key_zero());
//- rjf: process code-file commands
for(RD_Cmd *cmd = 0; rd_next_cmd(&cmd);)
{
// rjf: mismatched window/panel => skip
if(!rd_handle_match(rd_regs()->window, cmd->regs->window) ||
!rd_handle_match(rd_regs()->panel, cmd->regs->panel))
{
continue;
}
// rjf: process
RD_CmdKind kind = rd_cmd_kind_from_string(cmd->name);
switch(kind)
{
default:{}break;
// rjf: override file picking
case RD_CmdKind_PickFile:
{
String8 src = rd_file_path_from_eval_string(scratch.arena, str8(view->query_buffer, view->query_string_size));
String8 dst = cmd->regs->file_path;
if(src.size != 0 && dst.size != 0)
{
// rjf: record src -> dst mapping
rd_cmd(RD_CmdKind_SetFileReplacementPath, .string = src, .file_path = dst);
// rjf: switch this view to viewing replacement file
view->query_string_size = Min(sizeof(view->query_buffer), dst.size);
MemoryCopy(view->query_buffer, dst.str, view->query_string_size);
}
}break;
}
}
txt_scope_close(txt_scope);
hs_scope_close(hs_scope);
scratch_end(scratch);
}
RD_VIEW_UI_FUNCTION_DEF(text)
{
RD_CodeViewState *cv = rd_view_user_state(view, RD_CodeViewState);
@@ -6493,6 +6405,42 @@ RD_VIEW_UI_FUNCTION_DEF(text)
B32 file_is_missing = (path.size != 0 && os_properties_from_file_path(path).modified == 0);
B32 key_has_data = !u128_match(hash, u128_zero()) && info.lines_count;
//////////////////////////////
//- rjf: process code-file commands
//
for(RD_Cmd *cmd = 0; rd_next_cmd(&cmd);)
{
// rjf: mismatched window/panel => skip
if(!rd_handle_match(rd_regs()->window, cmd->regs->window) ||
!rd_handle_match(rd_regs()->panel, cmd->regs->panel))
{
continue;
}
// rjf: process
RD_CmdKind kind = rd_cmd_kind_from_string(cmd->name);
switch(kind)
{
default:{}break;
// rjf: override file picking
case RD_CmdKind_PickFile:
{
String8 src = rd_file_path_from_eval_string(scratch.arena, str8(view->query_buffer, view->query_string_size));
String8 dst = cmd->regs->file_path;
if(src.size != 0 && dst.size != 0)
{
// rjf: record src -> dst mapping
rd_cmd(RD_CmdKind_SetFileReplacementPath, .string = src, .file_path = dst);
// rjf: switch this view to viewing replacement file
view->query_string_size = Min(sizeof(view->query_buffer), dst.size);
MemoryCopy(view->query_buffer, dst.str, view->query_string_size);
}
}break;
}
}
//////////////////////////////
//- rjf: build missing file interface
//
@@ -6679,125 +6627,6 @@ RD_VIEW_SETUP_FUNCTION_DEF(disasm)
}
}
RD_VIEW_CMD_FUNCTION_DEF(disasm)
{
RD_DisasmViewState *dv = rd_view_user_state(view, RD_DisasmViewState);
Temp scratch = scratch_begin(0, 0);
DASM_Scope *dasm_scope = dasm_scope_open();
HS_Scope *hs_scope = hs_scope_open();
TXT_Scope *txt_scope = txt_scope_open();
//////////////////////////////
//- rjf: if disassembly views are not parameterized by anything, they
// automatically snap to the selected thread's RIP, rounded down to the
// nearest 16K boundary
//
B32 auto_selected_thread = 0;
if(string.size == 0)
{
auto_selected_thread = 1;
string = str8_lit("(rip.u64 & (~(0x4000 - 1))");
}
//////////////////////////////
//- rjf: unpack parameterization info
//
E_Eval eval = e_eval_from_string(scratch.arena, string);
E_Space space = eval.space;
if(auto_selected_thread)
{
space = rd_eval_space_from_ctrl_entity(ctrl_entity_from_handle(d_state->ctrl_entity_store, rd_regs()->process));
}
Rng1U64 range = rd_range_from_eval_params(eval, params);
Arch arch = rd_arch_from_eval_params(eval, params);
CTRL_Entity *space_entity = rd_ctrl_entity_from_eval_space(space);
CTRL_Entity *dasm_module = &ctrl_entity_nil;
DI_Key dbgi_key = {0};
U64 base_vaddr = 0;
switch(space_entity->kind)
{
default:{}break;
case CTRL_EntityKind_Process:
{
arch = space_entity->arch;
dasm_module = ctrl_module_from_process_vaddr(space_entity, range.min);
dbgi_key = ctrl_dbgi_key_from_module(dasm_module);
base_vaddr = dasm_module->vaddr_range.min;
}break;
}
U128 dasm_key = rd_key_from_eval_space_range(space, range, 0);
U128 dasm_data_hash = {0};
DASM_Params dasm_params = {0};
{
dasm_params.vaddr = range.min;
dasm_params.arch = arch;
dasm_params.style_flags = dv->style_flags;
dasm_params.syntax = DASM_Syntax_Intel;
dasm_params.base_vaddr = base_vaddr;
dasm_params.dbgi_key = dbgi_key;
}
DASM_Info dasm_info = dasm_info_from_key_params(dasm_scope, dasm_key, &dasm_params, &dasm_data_hash);
rd_regs()->text_key = dasm_info.text_key;
rd_regs()->lang_kind = txt_lang_kind_from_arch(arch);
U128 dasm_text_hash = {0};
TXT_TextInfo dasm_text_info = txt_text_info_from_key_lang(txt_scope, rd_regs()->text_key, rd_regs()->lang_kind, &dasm_text_hash);
String8 dasm_text_data = hs_data_from_hash(hs_scope, dasm_text_hash);
B32 has_disasm = (dasm_info.lines.count != 0 && dasm_text_info.lines_count != 0);
B32 is_loading = (!has_disasm && dim_1u64(range) != 0 && eval.msgs.max_kind == E_MsgKind_Null);
//////////////////////////////
//- rjf: process general code-view commands
//
rd_code_view_cmds(view, &dv->cv, dasm_text_data, &dasm_text_info, &dasm_info.lines, range, dbgi_key);
//////////////////////////////
//- rjf: process disassembly-specific commands
//
for(RD_Cmd *cmd = 0; rd_next_cmd(&cmd);)
{
// rjf: mismatched window/panel => skip
if(!rd_handle_match(rd_regs()->window, cmd->regs->window) ||
!rd_handle_match(rd_regs()->panel, cmd->regs->panel))
{
continue;
}
// rjf: process
RD_CmdKind kind = rd_cmd_kind_from_string(cmd->name);
switch(kind)
{
default: break;
case RD_CmdKind_GoToAddress:
{
RD_Entity *process = &d_nil_entity;
{
RD_Entity *entity = rd_entity_from_handle(cmd->regs->entity);
if(!rd_entity_is_nil(entity) &&
(entity->kind == RD_EntityKind_Process ||
entity->kind == RD_EntityKind_Thread ||
entity->kind == RD_EntityKind_Module))
{
process = entity;
if(entity->kind == RD_EntityKind_Thread ||
entity->kind == RD_EntityKind_Module)
{
process = rd_entity_ancestor_from_kind(process, RD_EntityKind_Process);
}
}
}
dv->goto_vaddr = cmd->regs->vaddr;
}break;
case RD_CmdKind_ToggleCodeBytesVisibility: {dv->style_flags ^= DASM_StyleFlag_CodeBytes;}break;
case RD_CmdKind_ToggleAddressVisibility: {dv->style_flags ^= DASM_StyleFlag_Addresses;}break;
}
}
txt_scope_close(txt_scope);
hs_scope_close(hs_scope);
dasm_scope_close(dasm_scope);
scratch_end(scratch);
}
RD_VIEW_UI_FUNCTION_DEF(disasm)
{
RD_DisasmViewState *dv = rd_view_user_state(view, RD_DisasmViewState);
@@ -6874,6 +6703,48 @@ RD_VIEW_UI_FUNCTION_DEF(disasm)
B32 has_disasm = (dasm_info.lines.count != 0 && dasm_text_info.lines_count != 0);
B32 is_loading = (!has_disasm && dim_1u64(range) != 0 && eval.msgs.max_kind == E_MsgKind_Null);
//////////////////////////////
//- rjf: process disassembly-specific commands
//
for(RD_Cmd *cmd = 0; rd_next_cmd(&cmd);)
{
// rjf: mismatched window/panel => skip
if(!rd_handle_match(rd_regs()->window, cmd->regs->window) ||
!rd_handle_match(rd_regs()->panel, cmd->regs->panel))
{
continue;
}
// rjf: process
RD_CmdKind kind = rd_cmd_kind_from_string(cmd->name);
switch(kind)
{
default: break;
case RD_CmdKind_GoToAddress:
{
RD_Entity *process = &d_nil_entity;
{
RD_Entity *entity = rd_entity_from_handle(cmd->regs->entity);
if(!rd_entity_is_nil(entity) &&
(entity->kind == RD_EntityKind_Process ||
entity->kind == RD_EntityKind_Thread ||
entity->kind == RD_EntityKind_Module))
{
process = entity;
if(entity->kind == RD_EntityKind_Thread ||
entity->kind == RD_EntityKind_Module)
{
process = rd_entity_ancestor_from_kind(process, RD_EntityKind_Process);
}
}
}
dv->goto_vaddr = cmd->regs->vaddr;
}break;
case RD_CmdKind_ToggleCodeBytesVisibility: {dv->style_flags ^= DASM_StyleFlag_CodeBytes;}break;
case RD_CmdKind_ToggleAddressVisibility: {dv->style_flags ^= DASM_StyleFlag_Addresses;}break;
}
}
//////////////////////////////
//- rjf: is loading -> equip view with loading information
//
@@ -6959,24 +6830,6 @@ RD_VIEW_SETUP_FUNCTION_DEF(output)
RD_CodeViewState *cv = rd_view_user_state(view, RD_CodeViewState);
rd_code_view_init(cv, view);
}
RD_VIEW_CMD_FUNCTION_DEF(output)
{
RD_CodeViewState *cv = rd_view_user_state(view, RD_CodeViewState);
Temp scratch = scratch_begin(0, 0);
HS_Scope *hs_scope = hs_scope_open();
TXT_Scope *txt_scope = txt_scope_open();
rd_regs()->text_key = d_state->output_log_key;
rd_regs()->lang_kind = TXT_LangKind_Null;
U128 hash = {0};
TXT_TextInfo info = txt_text_info_from_key_lang(txt_scope, rd_regs()->text_key, rd_regs()->lang_kind, &hash);
String8 data = hs_data_from_hash(hs_scope, hash);
rd_code_view_cmds(view, cv, data, &info, 0, r1u64(0, 0), di_key_zero());
txt_scope_close(txt_scope);
hs_scope_close(hs_scope);
scratch_end(scratch);
}
RD_VIEW_UI_FUNCTION_DEF(output)
{
RD_CodeViewState *cv = rd_view_user_state(view, RD_CodeViewState);
@@ -7060,10 +6913,36 @@ EV_VIEW_RULE_BLOCK_PROD_FUNCTION_DEF(memory)
}
RD_VIEW_SETUP_FUNCTION_DEF(memory){}
RD_VIEW_CMD_FUNCTION_DEF(memory)
RD_VIEW_UI_FUNCTION_DEF(memory)
{
ProfBeginFunction();
Temp scratch = scratch_begin(0, 0);
HS_Scope *hs_scope = hs_scope_open();
RD_MemoryViewState *mv = rd_view_user_state(view, RD_MemoryViewState);
//////////////////////////////
//- rjf: unpack parameterization info
//
E_Eval eval = e_eval_from_string(scratch.arena, string);
if(eval.space.kind == 0)
{
eval.space = rd_eval_space_from_ctrl_entity(ctrl_entity_from_handle(d_state->ctrl_entity_store, rd_regs()->process));
}
Rng1U64 space_range = rd_whole_range_from_eval_space(eval.space);
U64 cursor = rd_value_from_params_key(params, str8_lit("cursor_vaddr")).u64;
U64 mark = rd_value_from_params_key(params, str8_lit("mark_vaddr")).u64;
U64 bytes_per_cell = rd_value_from_params_key(params, str8_lit("bytes_per_cell")).u64;
U64 num_columns = rd_value_from_params_key(params, str8_lit("num_columns")).u64;
if(num_columns == 0)
{
num_columns = 16;
}
num_columns = ClampBot(1, num_columns);
bytes_per_cell = ClampBot(1, bytes_per_cell);
//////////////////////////////
//- rjf: process commands
//
for(RD_Cmd *cmd = 0; rd_next_cmd(&cmd);)
{
RD_CmdKind kind = rd_cmd_kind_from_string(cmd->name);
@@ -7098,34 +6977,6 @@ RD_VIEW_CMD_FUNCTION_DEF(memory)
}break;
}
}
}
RD_VIEW_UI_FUNCTION_DEF(memory)
{
ProfBeginFunction();
Temp scratch = scratch_begin(0, 0);
HS_Scope *hs_scope = hs_scope_open();
RD_MemoryViewState *mv = rd_view_user_state(view, RD_MemoryViewState);
//////////////////////////////
//- rjf: unpack parameterization info
//
E_Eval eval = e_eval_from_string(scratch.arena, string);
if(eval.space.kind == 0)
{
eval.space = rd_eval_space_from_ctrl_entity(ctrl_entity_from_handle(d_state->ctrl_entity_store, rd_regs()->process));
}
Rng1U64 space_range = rd_whole_range_from_eval_space(eval.space);
U64 cursor = rd_value_from_params_key(params, str8_lit("cursor_vaddr")).u64;
U64 mark = rd_value_from_params_key(params, str8_lit("mark_vaddr")).u64;
U64 bytes_per_cell = rd_value_from_params_key(params, str8_lit("bytes_per_cell")).u64;
U64 num_columns = rd_value_from_params_key(params, str8_lit("num_columns")).u64;
if(num_columns == 0)
{
num_columns = 16;
}
num_columns = ClampBot(1, num_columns);
bytes_per_cell = ClampBot(1, bytes_per_cell);
//////////////////////////////
//- rjf: unpack visual params
@@ -7962,7 +7813,6 @@ RD_VIEW_SETUP_FUNCTION_DEF(bitmap)
rd_view_equip_loading_info(view, 1, 0, 0);
view->loading_t = view->loading_t_target = 1.f;
}
RD_VIEW_CMD_FUNCTION_DEF(bitmap) {}
RD_VIEW_UI_FUNCTION_DEF(bitmap)
{
Temp scratch = scratch_begin(0, 0);
@@ -8274,7 +8124,6 @@ RD_VIEW_RULE_ROW_UI_FUNCTION_DEF(color_rgba)
}
RD_VIEW_SETUP_FUNCTION_DEF(color_rgba) {}
RD_VIEW_CMD_FUNCTION_DEF(color_rgba) {}
RD_VIEW_UI_FUNCTION_DEF(color_rgba)
{
Temp scratch = scratch_begin(0, 0);
@@ -8386,7 +8235,6 @@ RD_VIEW_SETUP_FUNCTION_DEF(geo3d)
rd_view_equip_loading_info(view, 1, 0, 0);
view->loading_t = view->loading_t_target = 1.f;
}
RD_VIEW_CMD_FUNCTION_DEF(geo3d) {}
RD_VIEW_UI_FUNCTION_DEF(geo3d)
{
Temp scratch = scratch_begin(0, 0);
@@ -8504,7 +8352,6 @@ RD_VIEW_UI_FUNCTION_DEF(geo3d)
//~ rjf: exception_filters @view_hook_impl
RD_VIEW_SETUP_FUNCTION_DEF(exception_filters) {}
RD_VIEW_CMD_FUNCTION_DEF(exception_filters) {}
RD_VIEW_UI_FUNCTION_DEF(exception_filters)
{
ProfBeginFunction();
@@ -8713,7 +8560,6 @@ rd_qsort_compare_settings_item(RD_SettingsItem *a, RD_SettingsItem *b)
}
RD_VIEW_SETUP_FUNCTION_DEF(settings){}
RD_VIEW_CMD_FUNCTION_DEF(settings){}
RD_VIEW_UI_FUNCTION_DEF(settings)
{
ProfBeginFunction();
-1
View File
@@ -151,7 +151,6 @@ struct RD_WatchViewState
//~ rjf: Code View Functions
internal void rd_code_view_init(RD_CodeViewState *cv, RD_View *view);
internal void rd_code_view_cmds(RD_View *view, RD_CodeViewState *cv, String8 text_data, TXT_TextInfo *text_info, DASM_LineArray *dasm_lines, Rng1U64 dasm_vaddr_range, DI_Key dasm_dbgi_key);
internal RD_CodeViewBuildResult rd_code_view_build(Arena *arena, RD_View *view, RD_CodeViewState *cv, RD_CodeViewBuildFlags flags, Rng2F32 rect, String8 text_data, TXT_TextInfo *text_info, DASM_LineArray *dasm_lines, Rng1U64 dasm_vaddr_range, DI_Key dasm_dbgi_key);
////////////////////////////////
+4 -3
View File
@@ -972,6 +972,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
UI_Palette *margin_contents_palette = ui_build_palette(rd_palette_from_code(RD_PaletteCode_Floating));
margin_contents_palette->background = v4f32(0, 0, 0, 0);
F32 line_num_padding_px = ui_top_font_size()*1.f;
F32 entity_alive_t_rate = 1 - pow_f32(2, (-30.f * rd_state->frame_dt));
//////////////////////////////
//- rjf: build top-level container
@@ -1109,7 +1110,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
{
RD_ThreadBoxDrawExtData *u = push_array(ui_build_arena(), RD_ThreadBoxDrawExtData, 1);
u->thread_color = color;
u->alive_t = ui_anim(ui_key_from_stringf(top_container_box->key, "###thread_alive_t_%p", thread), 1.f);
u->alive_t = ui_anim(ui_key_from_stringf(top_container_box->key, "###thread_alive_t_%p", thread), 1.f, .rate = entity_alive_t_rate);
u->is_selected = (thread == selected_thread);
u->is_frozen = !!thread->is_frozen;
u->do_lines = rd_setting_val_from_code(RD_SettingCode_ThreadLines).s32;
@@ -1269,7 +1270,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
{
RD_ThreadBoxDrawExtData *u = push_array(ui_build_arena(), RD_ThreadBoxDrawExtData, 1);
u->thread_color = color;
u->alive_t = ui_anim(ui_key_from_stringf(top_container_box->key, "###thread_alive_t_%p", thread), 1.f);
u->alive_t = ui_anim(ui_key_from_stringf(top_container_box->key, "###thread_alive_t_%p", thread), 1.f, .rate = entity_alive_t_rate);
u->is_selected = (thread == selected_thread);
u->is_frozen = !!thread->is_frozen;
ui_box_equip_custom_draw(thread_box, rd_thread_box_draw_extensions, u);
@@ -1352,7 +1353,7 @@ rd_code_slice(RD_CodeSliceParams *params, TxtPt *cursor, TxtPt *mark, S64 *prefe
RD_BreakpointBoxDrawExtData *bp_draw = push_array(ui_build_arena(), RD_BreakpointBoxDrawExtData, 1);
{
bp_draw->color = bp_color;
bp_draw->alive_t = bp->alive_t;
bp_draw->alive_t = ui_anim(ui_key_from_stringf(ui_key_zero(), "bp_alive_t_%p", bp), 1.f, .rate = entity_alive_t_rate);
bp_draw->do_lines = rd_setting_val_from_code(RD_SettingCode_BreakpointLines).s32;
bp_draw->do_glow = rd_setting_val_from_code(RD_SettingCode_BreakpointGlow).s32;
if(rd_regs()->file_path.size != 0)
+2 -1
View File
@@ -2982,6 +2982,7 @@ ui_anim_(UI_Key key, UI_AnimParams *params)
node->first_touched_build_index = ui_state->build_index;
node->key = key;
MemoryCopyStruct(&node->params, params);
node->current = params->initial;
DLLPushBack_NPZ(&ui_nil_anim_node, slot->first, slot->last, node, slot_next, slot_prev);
}
else
@@ -2998,7 +2999,7 @@ ui_anim_(UI_Key key, UI_AnimParams *params)
{
node->params.epsilon = (node->params.target - node->params.initial) / 10000.f;
}
return node->current;;
return node->current;
}
////////////////////////////////
+1 -1
View File
@@ -903,7 +903,7 @@ read_only global UI_AnimNode ui_nil_anim_node =
};
internal F32 ui_anim_(UI_Key key, UI_AnimParams *params);
#define ui_anim(key, target_val, ...) ui_anim_((key), &(UI_AnimParams){.target = (target_val), __VA_ARGS__, .rate = (ui_state->default_animation_rate)})
#define ui_anim(key, target_val, ...) ui_anim_((key), &(UI_AnimParams){.target = (target_val), .rate = (ui_state->default_animation_rate), __VA_ARGS__})
////////////////////////////////
//~ rjf: Stacks