4#include <unordered_map>
13 void* (*alloc_fn)(
Arena* arena);
31 template<
typename T,
typename... Args>
32 void add(Args&&... args) {
34 *data = T(std::forward<Args>(args)...);
40 .execute_fn = [](
void*
d,
72 static inline std::unordered_map<U64, TypeErasedCommandEntry>
s_type_entries;
SD_EXPORT Arena * arena_alloc(ArenaParams params={})
Definition arena.cpp:91
SD_EXPORT void arena_release(Arena *arena)
Definition arena.cpp:142
Definition Application.hpp:22
Definition arena_vec.hpp:6
T * push_array(this Arena &arena, U64 count)
Definition arena.hpp:120
Definition Command.hpp:25
U64 type_id
Definition Command.hpp:26
Definition CommandQueue.hpp:19
static void register_type_erased_entry(U64 type_id, TypeErasedCommandEntry entry)
Definition CommandQueue.cpp:82
static std::unordered_map< U64, TypeErasedCommandEntry > s_type_entries
Definition CommandQueue.hpp:72
Arena * arena() const
Definition CommandQueue.hpp:60
void set_entity_for_handle(EntityHandle entity_handle, Entity entity)
Definition CommandQueue.cpp:51
std::mutex m_mutex
Definition CommandQueue.hpp:69
CommandQueue(CommandQueue &&)=delete
void serialize(Serializer &serializer) const
Definition CommandQueue.cpp:93
ArenaVec< Entity > m_handle_to_entity
Definition CommandQueue.hpp:68
void add(Args &&... args)
Definition CommandQueue.hpp:32
USize get_count() const
Definition CommandQueue.cpp:73
CommandQueue()
Definition CommandQueue.hpp:20
CommandQueue(const CommandQueue &)=delete
ArenaVec< CommandNode > m_commands
Definition CommandQueue.hpp:67
~CommandQueue()
Definition CommandQueue.hpp:21
void apply(EntityManager< ComponentGroup<> > &em)
Definition CommandQueue.cpp:43
void deserialize(Serializer &serializer)
Definition CommandQueue.cpp:106
void clear()
Definition CommandQueue.cpp:67
Entity get_entity(EntityHandle handle) const
Definition CommandQueue.cpp:77
CommandQueue & operator=(CommandQueue &&)=delete
bool is_handle_resolved(EntityHandle handle) const
Definition CommandQueue.cpp:63
static TypeErasedCommandEntry lookup_type_erased_entry(U64 type_id)
Definition CommandQueue.cpp:86
Arena * m_arena
Definition CommandQueue.hpp:70
CommandQueue & operator=(const CommandQueue &)=delete
Definition component_registration.hpp:12
Definition Command.hpp:16
Definition EntityManager.hpp:64
Definition serialization.hpp:38
Definition CommandQueue.hpp:12
void(* execute_fn)(void *data, EntityManager< ComponentGroup<> > &em, CommandQueue &queue)
Definition CommandQueue.hpp:14
void(* deserialize_fn)(void *data, Serializer &s)
Definition CommandQueue.hpp:16
void(* serialize_fn)(void *data, Serializer &s)
Definition CommandQueue.hpp:15
consteval U64 type_id_of()
Definition type_id.hpp:6
std::size_t USize
Definition types.hpp:18
std::uint64_t U64
Definition types.hpp:16