Skip to content

Commit 8442ac3

Browse files
refactored arena splitting (#450)
1 parent edb326e commit 8442ac3

File tree

12 files changed

+53
-56
lines changed

12 files changed

+53
-56
lines changed

Tetragrama/Components/DockspaceUIComponent.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ namespace Tetragrama::Components
3333
{
3434
UIComponent::Initialize(parent, name, visibility, closed);
3535

36-
parent->LayerArena.CreateSubArena(ZMega(10), &LocalArena);
36+
parent->LocalArena.CreateSubArena(ZKilo(100), &LocalArena);
3737

38-
m_asset_importer = ZPushStructCtor(&(parent->LayerArena), Importers::AssimpImporter);
39-
m_editor_serializer = ZPushStructCtor(&(parent->LayerArena), Serializers::EditorSceneSerializer);
38+
m_asset_importer = ZPushStructCtor(parent->Arena, Importers::AssimpImporter);
39+
m_editor_serializer = ZPushStructCtor(parent->Arena, Serializers::EditorSceneSerializer);
4040

41-
m_editor_serializer->Initialize(&(parent->LayerArena));
42-
m_asset_importer->Initialize(&(parent->LayerArena));
41+
m_editor_serializer->Initialize(parent->Arena);
42+
m_asset_importer->Initialize(parent->Arena);
4343

4444
m_dockspace_node_flag = ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_PassthruCentralNode;
4545
m_window_flags = ImGuiWindowFlags_MenuBar | ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_NoNavFocus;

Tetragrama/Components/HierarchyViewUIComponent.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ namespace Tetragrama::Components
275275
stack.push({-1, 0}); // Marker for TreePop
276276

277277
// Push children in reverse order
278-
auto scratch = ZGetScratch(&ParentLayer->LayerArena);
278+
auto scratch = ZGetScratch(&ParentLayer->LocalArena);
279279
ZEngine::Core::Containers::Array<int> children;
280280
children.init(scratch.Arena, 5);
281281

Tetragrama/Components/LogUIComponent.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace Tetragrama::Components
2222
{
2323
UIComponent::Initialize(parent, name, visibility, closed);
2424

25-
parent->LayerArena.CreateSubArena(ZMega(1), &m_local_arena);
25+
parent->LocalArena.CreateSubArena(ZMega(1), &m_local_arena);
2626
m_log_queue.init(&(m_local_arena), m_maxCount, m_maxCount);
2727
m_handler_cookie = Logger::AddEventHandler(std::bind(&LogUIComponent::OnLog, this, std::placeholders::_1));
2828
}

Tetragrama/Components/ProjectViewUIComponent.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ namespace Tetragrama::Components
1616
void ProjectViewUIComponent::Initialize(Layers::ImguiLayer* parent, const char* name, bool visibility, bool closed)
1717
{
1818
UIComponent::Initialize(parent, name, visibility, closed);
19-
parent->LayerArena.CreateSubArena(ZMega(1), &m_local_arena);
19+
parent->LocalArena.CreateSubArena(ZMega(1), &m_local_arena);
2020
auto context = reinterpret_cast<EditorContext*>(ParentLayer->ParentContext);
2121
m_assets_directory = context->ConfigurationPtr->WorkingSpacePath.c_str();
2222
m_current_directory = m_assets_directory;

Tetragrama/Editor.cpp

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,24 @@ namespace Tetragrama
2020
{
2121
AssetManager::Initialize(arena);
2222

23-
Context = ZPushStruct(arena, EditorContext);
24-
25-
arena->CreateSubArena(ZMega(800), &(Context->Arena));
23+
Context = ZPushStruct(arena, EditorContext);
24+
Context->Arena = arena;
2625

2726
Context->AssetManagerPtr = AssetManager::Instance();
28-
Context->ConfigurationPtr = ZPushStructCtor(&(Context->Arena), EditorConfiguration);
29-
Context->CameraControllerPtr = ZPushStructCtor(&(Context->Arena), EditorCameraController);
30-
UILayer = ZPushStructCtor(&(Context->Arena), ImguiLayer);
31-
CanvasLayer = ZPushStructCtor(&(Context->Arena), RenderLayer);
27+
Context->ConfigurationPtr = ZPushStructCtor(Context->Arena, EditorConfiguration);
28+
Context->CameraControllerPtr = ZPushStructCtor(Context->Arena, EditorCameraController);
29+
UILayer = ZPushStructCtor(Context->Arena, ImguiLayer);
30+
CanvasLayer = ZPushStructCtor(Context->Arena, RenderLayer);
3231

33-
Context->CurrentScenePtr = ZPushStructCtor(&(Context->Arena), EditorScene);
32+
Context->CurrentScenePtr = ZPushStructCtor(Context->Arena, EditorScene);
3433

3534
if (ZEngine::Helpers::secure_strlen(file))
3635
{
3736
Context->ConfigurationPtr->ReadConfig(arena, file);
3837

3938
if (!Context->ConfigurationPtr->ActiveSceneName.empty())
4039
{
41-
Context->CurrentScenePtr->Initialize(&(Context->Arena), Context->ConfigurationPtr->ActiveSceneName.c_str());
40+
Context->CurrentScenePtr->Initialize(Context->Arena, Context->ConfigurationPtr->ActiveSceneName.c_str());
4241
}
4342
}
4443

@@ -47,16 +46,16 @@ namespace Tetragrama
4746

4847
std::string title = fmt::format("{0} - Active Scene : {1}", Context->ConfigurationPtr->ProjectName.c_str(), Context->CurrentScenePtr->Name);
4948
Windows::WindowConfiguration window_conf = {.EnableVsync = true};
50-
window_conf.Title.init(&(Context->Arena), title.c_str());
51-
window_conf.RenderingLayerCollection.init(&(Context->Arena), 1);
52-
window_conf.OverlayLayerCollection.init(&(Context->Arena), 1);
49+
window_conf.Title.init(Context->Arena, title.c_str());
50+
window_conf.RenderingLayerCollection.init(Context->Arena, 1);
51+
window_conf.OverlayLayerCollection.init(Context->Arena, 1);
5352

5453
window_conf.RenderingLayerCollection.push(CanvasLayer);
5554
window_conf.OverlayLayerCollection.push(UILayer);
5655

57-
Window = ZEngine::Windows::Create(&(Context->Arena), window_conf);
56+
Window = ZEngine::Windows::Create(Context->Arena, window_conf);
5857

59-
Context->CameraControllerPtr->Initialize(&(Context->Arena), Window, 150.0, 0.f, 45.f);
58+
Context->CameraControllerPtr->Initialize(Context->Arena, Window, 150.0, 0.f, 45.f);
6059

6160
ZEngine::Engine::Initialize(arena, Window);
6261
}

Tetragrama/Editor.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ namespace Tetragrama
3535

3636
struct EditorContext
3737
{
38-
ZEngine::Core::Memory::ArenaAllocator Arena = {};
39-
std::atomic_int SelectedSceneNode = -1;
38+
ZEngine::Core::Memory::ArenaAllocator* Arena = nullptr;
39+
std::atomic_int SelectedSceneNode = -1;
4040
ZRawPtr(EditorConfiguration) ConfigurationPtr = nullptr;
4141
ZRawPtr(EditorScene) CurrentScenePtr = nullptr;
4242
ZRawPtr(Controllers::EditorCameraController) CameraControllerPtr = nullptr;

Tetragrama/EntryPoint.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ int applicationEntryPoint(int argc, char* argv[])
2222
CLI11_PARSE(app, argc, argv);
2323

2424
MemoryManager manager = {};
25-
MemoryConfiguration config = {.DefaultSize = ZGiga(3u)};
25+
MemoryConfiguration config = {.DefaultSize = ZGiga(1u)};
2626
manager.Initialize(config);
2727
auto arena = &(manager.ArenaAllocator);
2828

Tetragrama/Importers/IAssetImporter.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ namespace Tetragrama::Importers
5757

5858
void IAssetImporter::Initialize(ZEngine::Core::Memory::ArenaAllocator* arena)
5959
{
60-
arena->CreateSubArena(ZMega(150), &Arena);
60+
arena->CreateSubArena(ZMega(100), &Arena);
6161
}
6262

6363
void IAssetImporter::SetOnCompleteCallback(on_import_complete_fn callback)

Tetragrama/Layers/ImguiLayer.cpp

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,13 @@ namespace Tetragrama::Layers
2828

2929
void ImguiLayer::Initialize(ZEngine::Core::Memory::ArenaAllocator* arena)
3030
{
31-
arena->CreateSubArena(ZMega(200), &LayerArena);
31+
Arena = arena;
32+
arena->CreateSubArena(ZMega(10), &LocalArena);
3233

33-
NodeHierarchies.init(&LayerArena, 10, 0);
34-
NodeUIComponents.init(&LayerArena, 10, 0);
35-
NodeToRender.init(&LayerArena, 10);
36-
KeyEntries.init(&LayerArena, 10, 0);
34+
NodeHierarchies.init(arena, 10, 0);
35+
NodeUIComponents.init(arena, 10, 0);
36+
NodeToRender.init(arena, 10);
37+
KeyEntries.init(arena, 10, 0);
3738

3839
KeyEntries[ZENGINE_KEY_SPACE] = ImGuiKey_Space;
3940
KeyEntries[ZENGINE_KEY_BACKSPACE] = ImGuiKey_Backspace;
@@ -47,14 +48,14 @@ namespace Tetragrama::Layers
4748
KeyEntries[ZENGINE_KEY_MOUSE_RIGHT] = ImGuiKey_MouseRight;
4849
KeyEntries[ZENGINE_KEY_MOUSE_MIDDLE] = ImGuiKey_MouseMiddle;
4950

50-
auto dockspace_cmp = ZPushStructCtor(&LayerArena, Components::DockspaceUIComponent);
51-
auto scene_cmp = ZPushStructCtor(&LayerArena, Components::SceneViewportUIComponent);
52-
auto editor_log_cmp = ZPushStructCtor(&LayerArena, Components::LogUIComponent);
53-
auto project_view_cmp = ZPushStructCtor(&LayerArena, Components::ProjectViewUIComponent);
54-
auto inspector_view_cmp = ZPushStructCtor(&LayerArena, Components::InspectorViewUIComponent);
55-
auto hierarchy_view_cmp = ZPushStructCtor(&LayerArena, Components::HierarchyViewUIComponent);
51+
auto dockspace_cmp = ZPushStructCtor(arena, Components::DockspaceUIComponent);
52+
auto scene_cmp = ZPushStructCtor(arena, Components::SceneViewportUIComponent);
53+
auto editor_log_cmp = ZPushStructCtor(arena, Components::LogUIComponent);
54+
auto project_view_cmp = ZPushStructCtor(arena, Components::ProjectViewUIComponent);
55+
auto inspector_view_cmp = ZPushStructCtor(arena, Components::InspectorViewUIComponent);
56+
auto hierarchy_view_cmp = ZPushStructCtor(arena, Components::HierarchyViewUIComponent);
5657

57-
auto demo_cmp = ZPushStructCtor(&LayerArena, Components::DemoUIComponent);
58+
auto demo_cmp = ZPushStructCtor(arena, Components::DemoUIComponent);
5859

5960
dockspace_cmp->Initialize(this);
6061
scene_cmp->Initialize(this);
@@ -64,7 +65,7 @@ namespace Tetragrama::Layers
6465
hierarchy_view_cmp->Initialize(this);
6566
demo_cmp->Initialize(this);
6667

67-
dockspace_cmp->Children.init(&LayerArena, 8);
68+
dockspace_cmp->Children.init(arena, 8);
6869
dockspace_cmp->Children.push(scene_cmp);
6970
dockspace_cmp->Children.push(editor_log_cmp);
7071
dockspace_cmp->Children.push(demo_cmp);
@@ -131,7 +132,7 @@ namespace Tetragrama::Layers
131132
NodeToRender.clear();
132133
}
133134

134-
auto temp_arena = ZGetScratch(&LayerArena);
135+
auto temp_arena = ZGetScratch(&LocalArena);
135136

136137
Array<int> roots = {};
137138
Array<int> children = {};

Tetragrama/Layers/RenderLayer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ namespace Tetragrama::Layers
2323

2424
void RenderLayer::Initialize(ZEngine::Core::Memory::ArenaAllocator* arena)
2525
{
26-
arena->CreateSubArena(ZMega(1), &LayerArena);
26+
arena->CreateSubArena(ZMega(1), &LocalArena);
2727
}
2828

2929
void RenderLayer::Deinitialize() {}

0 commit comments

Comments
 (0)