base layer defined type info tables experiment - can ideally be used as a more whole solution for the ctrl meta eval info stuff

This commit is contained in:
Ryan Fleury
2024-09-17 17:52:23 -07:00
parent 85a07be1ac
commit 9ae3b2eb92
9 changed files with 551 additions and 21 deletions
+18 -10
View File
@@ -4,23 +4,31 @@
////////////////////////////////
//~ rjf: Meta Evaluation Type Information
@table(name info_type eval_type dynamic)
@table(name info_type eval_type dynamic_kind)
CTRL_MetaEvalMemberTable:
{
{enabled S32 S32 }
{frozen S32 S32 }
{hit_count U64 U64 }
{id U64 U64 }
{color U32 U32 }
{label String8 U64 x }
{location String8 U64 x }
{condition String8 U64 x }
{enabled S32 S32 }
{frozen S32 S32 }
{hit_count U64 U64 }
{id U64 U64 }
{color U32 U32 }
{label String8 U64 String8 }
{location String8 U64 String8 }
{condition String8 U64 String8 }
{callstack CTRL_MetaEvalFrameArray U64 FrameArray }
}
@struct CTRL_MetaEvalFrameArray:
{
`U64 *frames`;
`U64 count`;
}
@enum CTRL_MetaEvalDynamicKind:
{
Null,
String8,
FrameArray,
COUNT
}
@@ -56,7 +64,7 @@ CTRL_MetaEvalMemberTable:
@data(CTRL_MetaEvalDynamicKind) ctrl_meta_eval_member_dynamic_kind_table:
{
@expand(CTRL_MetaEvalMemberTable a) `$(a.dynamic == 'x' -> 'CTRL_MetaEvalDynamicKind_'..a.info_type)$(a.dynamic == '' -> 'CTRL_MetaEvalDynamicKind_Null')`
@expand(CTRL_MetaEvalMemberTable a) `$(a.dynamic_kind != '' -> 'CTRL_MetaEvalDynamicKind_'..a.dynamic_kind)$(a.dynamic_kind == '' -> 'CTRL_MetaEvalDynamicKind_Null')`
}
////////////////////////////////