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] [Dependencies]
corlib = "*" corlib = "*"
"CxxBuildTool.git" = {Git = "https://git.unicon-gmbh.de/Rune/CxxBuildTool.git"} "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 FileVersion = 1
ExtraPlatforms = ["Linux32", "Linux64", "macOS"]
[Workspace] [Workspace]
StartupProject = "MicroUI" StartupProject = "MicroUI"
+8 -5
View File
@@ -86,11 +86,14 @@ class MicroUIGenerator : Cpp2BeefGenerator, this(Span<char8*> args)
BeginCursor(cursor); BeginCursor(cursor);
str.Append("[CRepr] "); str.Append("[CRepr] ");
AccessSpecifier(cursor); AccessSpecifier(cursor);
str.Append("struct { public c_int idx; public c_char[MU_"); str.Append("struct { ");
for (let char in spelling) Clang.Type_VisitFields(Clang.GetCursorType(cursor), (cursor, client_data) =>
if (char.IsLetter) {
str.Append(char.ToUpper); Self self = (.)Internal.UnsafeCastToObject(client_data);
str.Append("_SIZE] items; } ", spelling); self.WriteCursor(cursor);
return .Continue;
}, Internal.UnsafeCastToPtr(this));
str.Append(" } ", spelling);
str.Append(';'); str.Append(';');
return; return;
} }
+6 -6
View File
@@ -202,12 +202,12 @@ public typealias mu_Font = void*;
public c_char[127] number_edit_buf; public c_char[127] number_edit_buf;
public mu_Id number_edit; public mu_Id number_edit;
/* stacks */ /* 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[262144] 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 mu_Container*[32] 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 mu_Container*[32] 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 mu_Rect[32] 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 mu_Id[32] 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 mu_Layout[16] items; } layout_stack;
/* retained state pools */ /* retained state pools */
public mu_PoolItem[48] container_pool; public mu_PoolItem[48] container_pool;
public mu_Container[48] containers; public mu_Container[48] containers;