fix stack types

This commit is contained in:
2026-06-15 16:35:42 +02:00
parent 14a89ef1e3
commit 92682c2191
4 changed files with 75 additions and 11 deletions
+60
View File
@@ -8,3 +8,63 @@ StartupObject = "MicroUI.Program"
[Dependencies]
corlib = "*"
"CxxBuildTool.git" = {Git = "https://git.unicon-gmbh.de/Rune/CxxBuildTool.git"}
[Configs.Debug.Win32]
LibPaths = ["$(BuildDir)/microui.lib"]
[Configs.Debug.Win64]
LibPaths = ["$(BuildDir)/microui.lib"]
[Configs.Debug.Linux64]
LibPaths = ["$(BuildDir)/microui.a"]
[Configs.Debug.Linux32]
LibPaths = ["$(BuildDir)/microui.a"]
[Configs.Debug.macOS]
LibPaths = ["$(BuildDir)/microui.a"]
[Configs.Release.Win32]
LibPaths = ["$(BuildDir)/microui.lib"]
[Configs.Release.Win64]
LibPaths = ["$(BuildDir)/microui.lib"]
[Configs.Release.Linux32]
LibPaths = ["$(BuildDir)/microui.a"]
[Configs.Release.Linux64]
LibPaths = ["$(BuildDir)/microui.a"]
[Configs.Release.macOS]
LibPaths = ["$(BuildDir)/microui.a"]
[Configs.Paranoid.Win32]
LibPaths = ["$(BuildDir)/microui.lib"]
[Configs.Paranoid.Win64]
LibPaths = ["$(BuildDir)/microui.lib"]
[Configs.Paranoid.Linux32]
LibPaths = ["$(BuildDir)/microui.a"]
[Configs.Paranoid.Linux64]
LibPaths = ["$(BuildDir)/microui.a"]
[Configs.Paranoid.macOS]
LibPaths = ["$(BuildDir)/microui.a"]
[Configs.Test.Win32]
LibPaths = ["$(BuildDir)/microui.lib"]
[Configs.Test.Win64]
LibPaths = ["$(BuildDir)/microui.lib"]
[Configs.Test.Linux32]
LibPaths = ["$(BuildDir)/microui.a"]
[Configs.Test.Linux64]
LibPaths = ["$(BuildDir)/microui.a"]
[Configs.Test.macOS]
LibPaths = ["$(BuildDir)/microui.a"]
+1
View File
@@ -1,4 +1,5 @@
FileVersion = 1
ExtraPlatforms = ["Linux32", "Linux64", "macOS"]
[Workspace]
StartupProject = "MicroUI"
+8 -5
View File
@@ -86,11 +86,14 @@ class MicroUIGenerator : Cpp2BeefGenerator, this(Span<char8*> args)
BeginCursor(cursor);
str.Append("[CRepr] ");
AccessSpecifier(cursor);
str.Append("struct { public c_int idx; public c_char[MU_");
for (let char in spelling)
if (char.IsLetter)
str.Append(char.ToUpper);
str.Append("_SIZE] items; } ", spelling);
str.Append("struct { ");
Clang.Type_VisitFields(Clang.GetCursorType(cursor), (cursor, client_data) =>
{
Self self = (.)Internal.UnsafeCastToObject(client_data);
self.WriteCursor(cursor);
return .Continue;
}, Internal.UnsafeCastToPtr(this));
str.Append(" } ", spelling);
str.Append(';');
return;
}
+6 -6
View File
@@ -202,12 +202,12 @@ public typealias mu_Font = void*;
public c_char[127] number_edit_buf;
public mu_Id number_edit;
/* stacks */
[CRepr] public struct { public c_int idx; public c_char[MU_COMMANDLIST_SIZE] items; } command_list;
[CRepr] public struct { public c_int idx; public c_char[MU_ROOTLIST_SIZE] items; } root_list;
[CRepr] public struct { public c_int idx; public c_char[MU_CONTAINERSTACK_SIZE] items; } container_stack;
[CRepr] public struct { public c_int idx; public c_char[MU_CLIPSTACK_SIZE] items; } clip_stack;
[CRepr] public struct { public c_int idx; public c_char[MU_IDSTACK_SIZE] items; } id_stack;
[CRepr] public struct { public c_int idx; public c_char[MU_LAYOUTSTACK_SIZE] items; } layout_stack;
[CRepr] public struct { public c_int idx; public c_char[262144] items; } command_list;
[CRepr] public struct { public c_int idx; public mu_Container*[32] items; } root_list;
[CRepr] public struct { public c_int idx; public mu_Container*[32] items; } container_stack;
[CRepr] public struct { public c_int idx; public mu_Rect[32] items; } clip_stack;
[CRepr] public struct { public c_int idx; public mu_Id[32] items; } id_stack;
[CRepr] public struct { public c_int idx; public mu_Layout[16] items; } layout_stack;
/* retained state pools */
public mu_PoolItem[48] container_pool;
public mu_Container[48] containers;