meta layer progress

This commit is contained in:
jacob 2025-08-12 05:12:52 -05:00
parent cf8a4820da
commit deed0e2013
3 changed files with 19 additions and 81 deletions

66
.natvis
View File

@ -1,66 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name = "Vec2">
<DisplayString>({x}, {y})</DisplayString>
</Type>
<Type Name = "String">
<DisplayString>({len}) {text, [len] s}</DisplayString>
<StringView>text, [len] s</StringView>
</Type>
<Type Name = "String16">
<DisplayString>({len}) {text, [len] su}</DisplayString>
<StringView>text, [len] su</StringView>
</Type>
<Type Name = "Arena">
<DisplayString>pos: {pos}, committed: [{committed} / {reserved}]</DisplayString>
<Expand>
<Item Name="Data">(((u8 *)this) + 64), [pos] s</Item>
<Item Name="Data (Extended)">(((u8 *)this) + 64), [pos+100] s</Item>
</Expand>
</Type>
<Type Name = "TempArena">
<DisplayString>start: {start_pos}, arena: {{{*arena}}}</DisplayString>
<Expand>
<Item Name="Data">(((u8 *)arena) + start_pos + 64), [arena->pos - start_pos]</Item>
<Item Name="Data (Extended)">(((u8 *)arena) + start_pos + 64), [arena->pos - start_pos + 100]</Item>
<Item Name="Size">arena->pos - start_pos</Item>
</Expand>
</Type>
<Type Name = "bitbuf">
<DisplayString>bits: [{cur_bit} / {data_nbits}], bytes: [{cur_bit / 8} / {data_nbits / 8}]</DisplayString>
<Expand>
<ArrayItems>
<Size>(cur_bit + 7) / 8</Size>
<ValuePointer>data, bb</ValuePointer>
</ArrayItems>
</Expand>
</Type>
<Type Name = "UID">
<DisplayString>[{(u32)(hi >> 32), xb}]{((u32)(hi &amp; 0xFFFFFFFF)), xb}{lo, xb}</DisplayString>
<Expand>
<Item Name="hi">hi, x</Item>
<Item Name="lo">lo, x</Item>
</Expand>
</Type>
<Type Name = "EntityId">
<DisplayString Condition="uid.hi == 0 &amp;&amp; uid.lo == 0">[NIL]</DisplayString>
<DisplayString Condition="uid.hi == 0x66a36cc2bcc752da &amp;&amp; uid.lo == 0x6c286c09b366eae6">[ROOT]</DisplayString>
<DisplayString>[{(u32)(uid.hi >> 32), xb}]</DisplayString>
</Type>
<Type Name = "Entity">
<DisplayString Condition="(valid == 0 || (id.uid.hi == 0 &amp;&amp; id.uid.lo == 0)) &amp;&amp; this != *_g_sim_ent_nil">~~~MISMATCH~~~ {id} &lt;{this - this->ss->ents}&gt;</DisplayString>
<DisplayString Condition="valid == 1 &amp;&amp; (id.uid.hi == 0 || id.uid.lo == 0)">~~~MISMATCH~~~ {id} &lt;{this - this->ss->ents}&gt;</DisplayString>
<DisplayString Condition="this == *_g_sim_ent_nil">{id}</DisplayString>
<DisplayString>{id} &lt;{this - this->ss->ents}&gt;</DisplayString>
</Type>
</AutoVisualizer>

View File

@ -26,12 +26,6 @@
# include "win32/meta_win32.c" # include "win32/meta_win32.c"
#endif #endif
////////////////////////////////
//~ Globals
static Arena *perm = 0;
static StringList args = ZI;
//////////////////////////////// ////////////////////////////////
//~ Util //~ Util
@ -55,13 +49,23 @@ i32 main(i32 argc, u8 **argv)
{ {
//- Startup //- Startup
StartupOs(); StartupOs();
perm = AcquireArena(Gibi(64)); Arena *arena = AcquireArena(Gibi(64));
//- Unpack args //- Unpack args
StringList args = ZI;
StringList exe_layer_names = ZI;
for (i32 i = 1; i < argc; ++i) for (i32 i = 1; i < argc; ++i)
{ {
String arg = StringFromCstrNoLimit(argv[i]); String arg = StringFromCstrNoLimit(argv[i]);
PushStringNode(perm, &args, arg); if (EndsWith(arg, Lit(".exe")))
{
String layer_name = TrimRight(arg, Lit(".exe"));
PushStringToList(arena, layer_name);
}
else
{
PushStringToList(arena, &args, arg);
}
} }
return 0; return 0;