SleakEngine
0.1.0
C++23 multi-backend game engine
Toggle main menu visibility
Loading...
Searching...
No Matches
VertexLayout.cpp
Go to the documentation of this file.
1
#include <
Runtime/VertexLayout.hpp
>
2
#include <deque>
3
#include <mutex>
4
5
namespace
Sleak
{
6
7
namespace
{
8
// deque: stable addresses across push_back
9
std::deque<VertexLayoutDesc> s_layouts;
10
std::mutex s_mutex;
11
}
12
13
VertexFormatHandle
VertexFormatRegistry::Register
(
const
VertexLayoutDesc
& desc) {
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
19
const
VertexLayoutDesc
*
VertexFormatRegistry::Get
(
VertexFormatHandle
handle) {
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
27
void
VertexFormatRegistry::Shutdown
() {
28
std::lock_guard<std::mutex> lock(s_mutex);
29
s_layouts.clear();
30
}
31
32
}
// namespace Sleak
VertexLayout.hpp
Sleak::VertexFormatRegistry::Register
static VertexFormatHandle Register(const VertexLayoutDesc &desc)
Definition
VertexLayout.cpp:13
Sleak::VertexFormatRegistry::Get
static const VertexLayoutDesc * Get(VertexFormatHandle handle)
Definition
VertexLayout.cpp:19
Sleak::VertexFormatRegistry::Shutdown
static void Shutdown()
Clears the registry; call only during application teardown.
Definition
VertexLayout.cpp:27
Sleak
Root namespace for everything the engine exposes.
Definition
Camera.hpp:10
Sleak::VertexFormatHandle
uint32_t VertexFormatHandle
Definition
VertexLayout.hpp:88
Sleak::VertexLayoutDesc
Definition
VertexLayout.hpp:74
src
Graphics
Common
VertexLayout.cpp
Generated on
for SleakEngine by
1.18.0