SleakEngine 1.0.0
C++23 multi-backend game engine
Loading...
Searching...
No Matches
VertexLayout.cpp
Go to the documentation of this file.
2#include <deque>
3#include <mutex>
4
5namespace Sleak {
6
7namespace {
8 // deque: stable addresses across push_back
9 std::deque<VertexLayoutDesc> s_layouts;
10 std::mutex s_mutex;
11}
12
14 std::lock_guard<std::mutex> lock(s_mutex);
15 s_layouts.push_back(desc);
16 return static_cast<VertexFormatHandle>(s_layouts.size());
17}
18
20 std::lock_guard<std::mutex> lock(s_mutex);
21 if (handle == 0 || handle > s_layouts.size()) {
22 return nullptr;
23 }
24 return &s_layouts[handle - 1];
25}
26
28 std::lock_guard<std::mutex> lock(s_mutex);
29 s_layouts.clear();
30}
31
32} // namespace Sleak
static VertexFormatHandle Register(const VertexLayoutDesc &desc)
static const VertexLayoutDesc * Get(VertexFormatHandle handle)
static void Shutdown()
Clears the registry; call only during application teardown.
Root namespace for everything the engine exposes.
Definition Camera.hpp:10
uint32_t VertexFormatHandle