Skip to content

Commit 0689e60

Browse files
initial editor move to arena alloc
1 parent c2c6679 commit 0689e60

36 files changed

+514
-466
lines changed

Tetragrama/Components/AboutUIComponent.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,14 @@ namespace Tetragrama::Components
77
class AboutUIComponent : public UIComponent
88
{
99
public:
10-
AboutUIComponent(std::string_view name = "AboutUIComponent", bool visibility = true) : UIComponent(name, visibility, true) {}
10+
AboutUIComponent() {}
1111
virtual ~AboutUIComponent() = default;
1212

13+
void Initialize(Layers::ImguiLayer* parent = nullptr, const char* name = "AboutUIComponent", bool visibility = true, bool closed = false) override
14+
{
15+
UIComponent::Initialize(parent, name, visibility, closed);
16+
}
17+
1318
virtual void Render(ZEngine::Rendering::Renderers::GraphicRenderer* const renderer, ZEngine::Hardwares::CommandBuffer* const command_buffer) override
1419
{
1520
ImGui::ShowAboutWindow(&m_is_open);

Tetragrama/Components/DemoUIComponent.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,14 @@ namespace Tetragrama::Components
77
class DemoUIComponent : public UIComponent
88
{
99
public:
10-
DemoUIComponent(Layers::ImguiLayer* parent = nullptr, std::string_view name = "DemoUIComponent", bool visibility = true) : UIComponent(parent, name, visibility, true) {}
10+
DemoUIComponent() {}
1111
virtual ~DemoUIComponent() = default;
1212

13+
void Initialize(Layers::ImguiLayer* parent = nullptr, const char* name = "DemoUIComponent", bool visibility = true, bool closed = false) override
14+
{
15+
UIComponent::Initialize(parent, name, visibility, closed);
16+
}
17+
1318
virtual void Render(ZEngine::Rendering::Renderers::GraphicRenderer* const renderer, ZEngine::Hardwares::CommandBuffer* const command_buffer) override
1419
{
1520
ImGui::ShowDemoWindow(&m_is_open);

Tetragrama/Components/DockspaceUIComponent.cpp

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,14 @@ namespace Tetragrama::Components
2121
std::string DockspaceUIComponent::s_asset_importer_report_msg = "";
2222
float DockspaceUIComponent::s_editor_scene_serializer_progress = 0.0f;
2323

24-
DockspaceUIComponent::DockspaceUIComponent(Layers::ImguiLayer* parent, std::string_view name, bool visibility) : UIComponent(parent, name, visibility, false), m_asset_importer(CreateScope<Importers::AssimpImporter>()), m_editor_serializer(CreateScope<Serializers::EditorSceneSerializer>())
24+
DockspaceUIComponent::DockspaceUIComponent() : m_asset_importer(CreateScope<Importers::AssimpImporter>()), m_editor_serializer(CreateScope<Serializers::EditorSceneSerializer>()) {}
25+
26+
DockspaceUIComponent::~DockspaceUIComponent() {}
27+
28+
void DockspaceUIComponent::Initialize(Layers::ImguiLayer* parent, const char* name, bool visibility, bool closed)
2529
{
30+
UIComponent::Initialize(parent, name, visibility, closed);
31+
2632
m_dockspace_node_flag = ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_PassthruCentralNode;
2733
m_window_flags = ImGuiWindowFlags_MenuBar | ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoNavFocus;
2834

@@ -58,8 +64,6 @@ namespace Tetragrama::Components
5864
m_asset_importer->SetOnErrorCallback(OnAssetImporterError);
5965
}
6066

61-
DockspaceUIComponent::~DockspaceUIComponent() {}
62-
6367
void DockspaceUIComponent::Update(ZEngine::Core::TimeStep dt) {}
6468

6569
void DockspaceUIComponent::Render(ZEngine::Rendering::Renderers::GraphicRenderer* const renderer, ZEngine::Hardwares::CommandBuffer* const command_buffer)
@@ -74,14 +78,14 @@ namespace Tetragrama::Components
7478
m_window_flags |= ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoNavFocus;
7579
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f));
7680

77-
ImGui::Begin(Name.c_str(), (CanBeClosed ? &CanBeClosed : NULL), m_window_flags);
81+
ImGui::Begin(Name, (CanBeClosed ? &CanBeClosed : NULL), m_window_flags);
7882

7983
ImGui::PopStyleVar(3);
8084

8185
if (ImGui::GetIO().ConfigFlags & ImGuiConfigFlags_DockingEnable)
8286
{
8387
// Dock space
84-
const auto window_id = ImGui::GetID(Name.c_str());
88+
const auto window_id = ImGui::GetID(Name);
8589
if (!ImGui::DockBuilderGetNode(window_id))
8690
{
8791
// Reset current docking state
@@ -160,9 +164,9 @@ namespace Tetragrama::Components
160164
if (ImGui::Button("...", ImVec2(50, 0)) && is_import_button_enabled)
161165
{
162166
Helpers::UIDispatcher::RunAsync([this]() -> std::future<void> {
163-
if (ParentLayer)
167+
if (ParentLayer && ParentLayer->ParentWindow)
164168
{
165-
auto window = ParentLayer->GetAttachedWindow();
169+
auto window = ParentLayer->ParentWindow;
166170
std::vector<std::string_view> filters{".obj", ".gltf"};
167171
std::string filename = co_await window->OpenFileDialogAsync(filters);
168172

@@ -527,9 +531,9 @@ namespace Tetragrama::Components
527531

528532
std::future<void> DockspaceUIComponent::OnOpenSceneAsync()
529533
{
530-
if (ParentLayer)
534+
if (ParentLayer && ParentLayer->ParentWindow)
531535
{
532-
auto window = ParentLayer->GetAttachedWindow();
536+
auto window = ParentLayer->ParentWindow;
533537
std::vector<std::string_view> filters = {".zescene"};
534538
std::string scene_filename = co_await window->OpenFileDialogAsync(filters);
535539

Tetragrama/Components/DockspaceUIComponent.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,11 @@ namespace Tetragrama::Components
1010
class DockspaceUIComponent : public UIComponent
1111
{
1212
public:
13-
DockspaceUIComponent(Layers::ImguiLayer* parent = nullptr, std::string_view name = "Dockspace", bool visibility = true);
13+
DockspaceUIComponent();
1414
virtual ~DockspaceUIComponent();
1515

16+
void Initialize(Layers::ImguiLayer* parent = nullptr, const char* name = "Dockspace", bool visibility = true, bool closed = false) override;
17+
1618
void Update(ZEngine::Core::TimeStep dt) override;
1719
virtual void Render(ZEngine::Rendering::Renderers::GraphicRenderer* const renderer, ZEngine::Hardwares::CommandBuffer* const command_buffer) override;
1820

Tetragrama/Components/HierarchyViewUIComponent.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,22 @@ using namespace Tetragrama::Controllers;
2323

2424
namespace Tetragrama::Components
2525
{
26-
HierarchyViewUIComponent::HierarchyViewUIComponent(Layers::ImguiLayer* parent, std::string_view name, bool visibility) : UIComponent(parent, name, visibility, false)
26+
HierarchyViewUIComponent::HierarchyViewUIComponent() {}
27+
28+
HierarchyViewUIComponent::~HierarchyViewUIComponent() {}
29+
30+
void HierarchyViewUIComponent::Initialize(Layers::ImguiLayer* parent, const char* name, bool visibility, bool closed)
2731
{
32+
UIComponent::Initialize(parent, name, visibility, closed);
2833
m_node_flag = ImGuiTreeNodeFlags_OpenOnArrow | ImGuiTreeNodeFlags_SpanAvailWidth /* | ImGuiTreeNodeFlags_DefaultOpen*/;
2934
}
3035

31-
HierarchyViewUIComponent::~HierarchyViewUIComponent() {}
32-
3336
void HierarchyViewUIComponent::Update(ZEngine::Core::TimeStep dt)
3437
{
3538

36-
if (ParentLayer)
39+
if (ParentLayer && ParentLayer->ParentWindow)
3740
{
38-
auto window = ParentLayer->GetAttachedWindow();
41+
auto window = ParentLayer->ParentWindow;
3942
if (IDevice::As<Keyboard>()->IsKeyPressed(ZENGINE_KEY_T, window))
4043
{
4144
m_gizmo_operation = ImGuizmo::OPERATION::TRANSLATE;
@@ -58,8 +61,8 @@ namespace Tetragrama::Components
5861
auto ctx = reinterpret_cast<EditorContext*>(ParentLayer->ParentContext);
5962
auto render_scene = ctx->CurrentScenePtr->RenderScene;
6063

61-
ImGui::Begin(Name.c_str(), (CanBeClosed ? &CanBeClosed : NULL), ImGuiWindowFlags_NoCollapse);
62-
if (ImGui::BeginPopupContextWindow(Name.c_str()))
64+
ImGui::Begin(Name, (CanBeClosed ? &CanBeClosed : NULL), ImGuiWindowFlags_NoCollapse);
65+
if (ImGui::BeginPopupContextWindow(Name))
6366
{
6467
if (ImGui::MenuItem("Create Empty"))
6568
{

Tetragrama/Components/HierarchyViewUIComponent.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ namespace Tetragrama::Components
1212
class HierarchyViewUIComponent : public UIComponent
1313
{
1414
public:
15-
HierarchyViewUIComponent(Layers::ImguiLayer* parent = nullptr, std::string_view name = "Hierarchy", bool visibility = true);
15+
HierarchyViewUIComponent();
1616
virtual ~HierarchyViewUIComponent();
1717

18+
void Initialize(Layers::ImguiLayer* parent = nullptr, const char* name = "Hierarchy", bool visibility = true, bool closed = false) override;
19+
1820
void Update(ZEngine::Core::TimeStep dt) override;
1921
virtual void Render(ZEngine::Rendering::Renderers::GraphicRenderer* const renderer, ZEngine::Hardwares::CommandBuffer* const command_buffer) override;
2022

Tetragrama/Components/InspectorViewUIComponent.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,16 @@ using namespace ZEngine::Helpers;
1919

2020
namespace Tetragrama::Components
2121
{
22-
InspectorViewUIComponent::InspectorViewUIComponent(Layers::ImguiLayer* parent, std::string_view name, bool visibility) : UIComponent(parent, name, visibility, false)
22+
InspectorViewUIComponent::InspectorViewUIComponent() {}
23+
24+
InspectorViewUIComponent::~InspectorViewUIComponent() {}
25+
26+
void InspectorViewUIComponent::Initialize(Layers::ImguiLayer* parent, const char* name, bool visibility, bool closed)
2327
{
28+
UIComponent::Initialize(parent, name, visibility, closed);
2429
m_node_flag = ImGuiTreeNodeFlags_DefaultOpen | ImGuiTreeNodeFlags_SpanAvailWidth | ImGuiTreeNodeFlags_AllowItemOverlap | ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_FramePadding;
2530
}
2631

27-
InspectorViewUIComponent::~InspectorViewUIComponent() {}
28-
2932
void InspectorViewUIComponent::Update(ZEngine::Core::TimeStep dt) {}
3033

3134
std::future<void> InspectorViewUIComponent::SceneEntitySelectedMessageHandlerAsync(Messengers::GenericMessage<ZEngine::Rendering::Scenes::SceneEntity>& message)
@@ -64,7 +67,7 @@ namespace Tetragrama::Components
6467
m_recieved_unselected_request = false;
6568
}
6669

67-
ImGui::Begin(Name.c_str(), (CanBeClosed ? &CanBeClosed : NULL), ImGuiWindowFlags_NoCollapse);
70+
ImGui::Begin(Name, (CanBeClosed ? &CanBeClosed : NULL), ImGuiWindowFlags_NoCollapse);
6871

6972
Helpers::DrawEntityControl("Name", m_scene_entity, m_node_flag, [this] {
7073
ImGui::Dummy(ImVec2(0, 3));

Tetragrama/Components/InspectorViewUIComponent.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ namespace Tetragrama::Components
1212
class InspectorViewUIComponent : public UIComponent
1313
{
1414
public:
15-
InspectorViewUIComponent(Layers::ImguiLayer* parent = nullptr, std::string_view name = "Inspector", bool visibility = true);
15+
InspectorViewUIComponent();
1616
virtual ~InspectorViewUIComponent();
1717

18+
void Initialize(Layers::ImguiLayer* parent = nullptr, const char* name = "Inspector", bool visibility = true, bool closed = false) override;
19+
1820
void Update(ZEngine::Core::TimeStep dt) override;
1921

2022
virtual void Render(ZEngine::Rendering::Renderers::GraphicRenderer* const renderer, ZEngine::Hardwares::CommandBuffer* const command_buffer) override;

Tetragrama/Components/LogUIComponent.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,16 @@ using namespace ZEngine::Helpers;
99

1010
namespace Tetragrama::Components
1111
{
12-
LogUIComponent::LogUIComponent(Layers::ImguiLayer* parent, std::string_view name, bool visibility) : UIComponent(parent, name, visibility, false)
12+
LogUIComponent::LogUIComponent() {}
13+
14+
LogUIComponent::~LogUIComponent() {}
15+
16+
void LogUIComponent::Initialize(Layers::ImguiLayer* parent, const char* name, bool visibility, bool closed)
1317
{
18+
UIComponent::Initialize(parent, name, visibility, closed);
1419
Logger::AddEventHandler(std::bind(&LogUIComponent::OnLog, this, std::placeholders::_1));
1520
}
1621

17-
LogUIComponent::~LogUIComponent() {}
18-
1922
void LogUIComponent::Update(ZEngine::Core::TimeStep dt) {}
2023

2124
void LogUIComponent::ClearLog()
@@ -29,7 +32,7 @@ namespace Tetragrama::Components
2932

3033
void LogUIComponent::Render(ZEngine::Rendering::Renderers::GraphicRenderer* const renderer, ZEngine::Hardwares::CommandBuffer* const command_buffer)
3134
{
32-
ImGui::Begin(Name.c_str(), (CanBeClosed ? &CanBeClosed : NULL), ImGuiWindowFlags_NoCollapse);
35+
ImGui::Begin(Name, (CanBeClosed ? &CanBeClosed : NULL), ImGuiWindowFlags_NoCollapse);
3336

3437
static const char* items[] = {"All", "info", "error", "warn", "critical", "trace"};
3538
static int current_item = 0;

Tetragrama/Components/LogUIComponent.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ namespace Tetragrama::Components
88
class LogUIComponent : public UIComponent
99
{
1010
public:
11-
LogUIComponent(Layers::ImguiLayer* parent = nullptr, std::string_view name = "Console", bool visibility = true);
11+
LogUIComponent();
1212
virtual ~LogUIComponent();
1313

14+
void Initialize(Layers::ImguiLayer* parent = nullptr, const char* name = "Console", bool visibility = true, bool closed = false) override;
15+
1416
virtual void Update(ZEngine::Core::TimeStep dt) override;
1517
virtual void Render(ZEngine::Rendering::Renderers::GraphicRenderer* const renderer, ZEngine::Hardwares::CommandBuffer* const command_buffer) override;
1618

Tetragrama/Components/ProjectViewUIComponent.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,18 @@ using namespace ZEngine::Helpers;
88

99
namespace Tetragrama::Components
1010
{
11-
ProjectViewUIComponent::ProjectViewUIComponent(Layers::ImguiLayer* parent, std::string_view name, bool visibility) : UIComponent(parent, name, visibility, false)
11+
ProjectViewUIComponent::ProjectViewUIComponent() {}
12+
13+
ProjectViewUIComponent::~ProjectViewUIComponent() {}
14+
15+
void ProjectViewUIComponent::Initialize(Layers::ImguiLayer* parent, const char* name, bool visibility, bool closed)
1216
{
17+
UIComponent::Initialize(parent, name, visibility, closed);
1318
auto context = reinterpret_cast<EditorContext*>(ParentLayer->ParentContext);
1419
m_assets_directory = context->ConfigurationPtr->WorkingSpacePath;
1520
m_current_directory = m_assets_directory;
1621
}
1722

18-
ProjectViewUIComponent::~ProjectViewUIComponent() {}
19-
2023
void ProjectViewUIComponent::Update(ZEngine::Core::TimeStep dt) {}
2124

2225
void ProjectViewUIComponent::Render(ZEngine::Rendering::Renderers::GraphicRenderer* const renderer, ZEngine::Hardwares::CommandBuffer* const command_buffer)
@@ -32,7 +35,7 @@ namespace Tetragrama::Components
3235
m_textures_loaded = true;
3336
}
3437

35-
ImGui::Begin(Name.c_str(), (CanBeClosed ? &CanBeClosed : NULL), ImGuiWindowFlags_NoCollapse);
38+
ImGui::Begin(Name, (CanBeClosed ? &CanBeClosed : NULL), ImGuiWindowFlags_NoCollapse);
3639

3740
ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(2, 2));
3841
ImVec2 current_win_size = ImGui::GetContentRegionAvail();

Tetragrama/Components/ProjectViewUIComponent.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,11 @@ namespace Tetragrama::Components
2626
class ProjectViewUIComponent : public UIComponent
2727
{
2828
public:
29-
ProjectViewUIComponent(Layers::ImguiLayer* parent = nullptr, std::string_view name = "Project", bool visibility = true);
29+
ProjectViewUIComponent();
3030
virtual ~ProjectViewUIComponent();
3131

32+
void Initialize(Layers::ImguiLayer* parent = nullptr, const char* name = "Project", bool visibility = true, bool closed = false) override;
33+
3234
void Update(ZEngine::Core::TimeStep dt) override;
3335

3436
virtual void Render(ZEngine::Rendering::Renderers::GraphicRenderer* const renderer, ZEngine::Hardwares::CommandBuffer* const command_buffer) override;

Tetragrama/Components/SceneViewportUIComponent.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,19 @@ using namespace ZEngine;
1717

1818
namespace Tetragrama::Components
1919
{
20-
SceneViewportUIComponent::SceneViewportUIComponent(Layers::ImguiLayer* parent, std::string_view name, bool visibility) : UIComponent(parent, name, visibility, false)
20+
SceneViewportUIComponent::SceneViewportUIComponent() {}
21+
22+
SceneViewportUIComponent::~SceneViewportUIComponent() {}
23+
24+
void SceneViewportUIComponent::Initialize(Layers::ImguiLayer* parent, const char* name, bool visibility, bool closed)
2125
{
26+
UIComponent::Initialize(parent, name, visibility, closed);
27+
2228
// ImGuizmo configuration
2329
ImGuizmo::AllowAxisFlip(false);
2430
ImGuizmo::SetOrthographic(false);
2531
}
2632

27-
SceneViewportUIComponent::~SceneViewportUIComponent() {}
28-
2933
void SceneViewportUIComponent::Update(ZEngine::Core::TimeStep dt)
3034
{
3135
if ((m_viewport_size.x != m_content_region_available_size.x) || (m_viewport_size.y != m_content_region_available_size.y))
@@ -78,7 +82,7 @@ namespace Tetragrama::Components
7882
void SceneViewportUIComponent::Render(ZEngine::Rendering::Renderers::GraphicRenderer* const renderer, ZEngine::Hardwares::CommandBuffer* const command_buffer)
7983
{
8084
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f));
81-
ImGui::Begin(Name.c_str(), (CanBeClosed ? &CanBeClosed : NULL), ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoMove);
85+
ImGui::Begin(Name, (CanBeClosed ? &CanBeClosed : NULL), ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoMove);
8286

8387
auto viewport_offset = ImGui::GetCursorPos();
8488
m_content_region_available_size = ImGui::GetContentRegionAvail();

Tetragrama/Components/SceneViewportUIComponent.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,11 @@ namespace Tetragrama::Components
1212
class SceneViewportUIComponent : public UIComponent
1313
{
1414
public:
15-
SceneViewportUIComponent(Layers::ImguiLayer* parent = nullptr, std::string_view name = "Scene", bool visibility = true);
15+
SceneViewportUIComponent();
1616
virtual ~SceneViewportUIComponent();
1717

18+
void Initialize(Layers::ImguiLayer* parent = nullptr, const char* name = "Scene", bool visibility = true, bool closed = false) override;
19+
1820
void Update(ZEngine::Core::TimeStep dt) override;
1921
virtual void Render(ZEngine::Rendering::Renderers::GraphicRenderer* const renderer, ZEngine::Hardwares::CommandBuffer* const command_buffer) override;
2022

Tetragrama/Components/UIComponent.h

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
#pragma once
22
#include <ImguiLayer.h>
3+
#include <ZEngine/Core/Container/Array.h>
34
#include <ZEngine/Core/IRenderable.h>
45
#include <ZEngine/Core/IUpdatable.h>
5-
#include <ZEngine/Helpers/IntrusivePtr.h>
6-
#include <string>
76

87
namespace Tetragrama::Layers
98
{
@@ -12,17 +11,24 @@ namespace Tetragrama::Layers
1211

1312
namespace Tetragrama::Components
1413
{
15-
struct UIComponent : public ZEngine::Core::IRenderable, public ZEngine::Core::IUpdatable, public ZEngine::Helpers::RefCounted
14+
struct UIComponent : public ZEngine::Core::IRenderable, public ZEngine::Core::IUpdatable
1615
{
17-
UIComponent() = default;
18-
UIComponent(Layers::ImguiLayer* parent, std::string_view name, bool visibility, bool can_be_closed) : ParentLayer(parent), Name(name.data()), IsVisible(visibility), CanBeClosed(can_be_closed) {}
19-
virtual ~UIComponent() = default;
16+
UIComponent() = default;
17+
virtual ~UIComponent() = default;
2018

21-
bool IsVisible = true;
22-
bool CanBeClosed = false;
23-
uint32_t ChildrenCount = 0;
24-
Tetragrama::Layers::ImguiLayer* ParentLayer = nullptr;
25-
std::string Name = "";
26-
std::vector<UIComponent*> Children = {};
19+
virtual void Initialize(Layers::ImguiLayer* parent, const char* name, bool visibility, bool closed)
20+
{
21+
ParentLayer = parent;
22+
Name = name;
23+
IsVisible = visibility;
24+
CanBeClosed = closed;
25+
}
26+
27+
bool IsVisible = true;
28+
bool CanBeClosed = false;
29+
const char* Name = "";
30+
uint32_t ChildrenCount = 0;
31+
Tetragrama::Layers::ImguiLayer* ParentLayer = nullptr;
32+
ZEngine::Core::Container::Array<ZRawPtr(UIComponent)> Children = {};
2733
};
2834
} // namespace Tetragrama::Components

0 commit comments

Comments
 (0)