From 3f95bc6b463f629c620ba5811ca3ce53ed9c03a2 Mon Sep 17 00:00:00 2001 From: fschildt Date: Tue, 25 Nov 2025 06:21:26 +0100 Subject: add MemoryManager, enhance cmake,compile.sh --- src/common/MemoryManager.cpp | 24 ++++++++++++++++++++++++ src/common/MemoryManager.hpp | 23 +++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 src/common/MemoryManager.cpp create mode 100644 src/common/MemoryManager.hpp (limited to 'src/common') diff --git a/src/common/MemoryManager.cpp b/src/common/MemoryManager.cpp new file mode 100644 index 0000000..d4fd068 --- /dev/null +++ b/src/common/MemoryManager.cpp @@ -0,0 +1,24 @@ +#include + +std::vector MemoryManager::s_frame_string32s; + +std::u32string& +MemoryManager::GetString32(String32Id id) +{ + return s_frame_string32s[id]; +} + +String32Id +MemoryManager::EmplaceString32_Frame(std::u32string&& str) +{ + String32Id id = static_cast(s_frame_string32s.size()); + s_frame_string32s.emplace_back(str); + return id; +} + +void +MemoryManager::Clear_Frame() +{ + s_frame_string32s.clear(); +} + diff --git a/src/common/MemoryManager.hpp b/src/common/MemoryManager.hpp new file mode 100644 index 0000000..59c31d7 --- /dev/null +++ b/src/common/MemoryManager.hpp @@ -0,0 +1,23 @@ +#pragma once + +#include + +#include +#include + + +using String32Id = uint32_t; + + +class MemoryManager { +public: + static std::u32string& GetString32(String32Id id); + + static String32Id EmplaceString32_Frame(std::u32string&& str); + static void Clear_Frame(); + + +private: + static std::vector s_frame_string32s; +}; + -- cgit v1.2.3