| 98 | } |
| 99 | |
| 100 | void 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 | |
| 128 | void sugoi_storage_t::serialize_type(const sugoi_entity_type_t& type, skr_binary_writer_t* s, bool keepMeta) |
| 129 | { |
nothing calls this directly
no test coverage detected