mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-07-10 11:31:37 -07:00
eliminate view cmds hook; just use ui hook
This commit is contained in:
@@ -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] =
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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))}```;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
@@ -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
|
||||
//
|
||||
|
||||
@@ -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
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user