MCPcopy Create free account
hub / github.com/SakuraEngine/SakuraEngine / serialize_view

Method serialize_view

modules/engine/runtime/src/ecs/serialize.cpp:100–126  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

98}
99
100void sugoi_storage_t::serialize_view(sugoi_group_t* group, sugoi_chunk_view_t& view, skr_binary_writer_t* s, skr_binary_reader_t* ds, bool withEntities)
101{
102 using namespace sugoi;
103 namespace bin = skr::binary;
104 if(s)
105 bin::Archive(s, view.count);
106 else
107 {
108 bin::Archive(ds, view.count);
109 SKR_ASSERT(view.count);
110 view = allocate_view_strict(group, view.count);
111 }
112
113 archetype_t* type = view.chunk->type;
114 EIndex* offsets = type->offsets[(int)view.chunk->pt];
115 uint32_t* sizes = type->sizes;
116 uint32_t* elemSizes = type->elemSizes;
117 if (withEntities)
118 {
119 if(s)
120 ArchiveBuffer(s, view.chunk->get_entities() + view.start, view.count);
121 else
122 ArchiveBuffer(ds, view.chunk->get_entities() + view.start, view.count);
123 }
124 for (SIndex i = 0; i < type->firstChunkComponent; ++i)
125 serialize_impl(view, type->type.data[i], offsets[i], sizes[i], elemSizes[i], s, ds, type->callbacks[i].serialize, type->callbacks[i].deserialize);
126}
127
128void sugoi_storage_t::serialize_type(const sugoi_entity_type_t& type, skr_binary_writer_t* s, bool keepMeta)
129{

Callers

nothing calls this directly

Calls 4

ArchiveFunction · 0.85
ArchiveBufferFunction · 0.85
serialize_implFunction · 0.85
get_entitiesMethod · 0.45

Tested by

no test coverage detected