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

Method clone

modules/engine/runtime/src/ecs/storage.cpp:755–782  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

753}
754
755sugoi_storage_t* sugoi_storage_t::clone()
756{
757 sugoi_storage_t* dst = SkrNew<sugoi_storage_t>();
758 dst->entities = entities;
759 dst->userdata = userdata;
760 dst->timestamp = timestamp;
761 for (auto group : groups)
762 {
763 auto dstGroup = dst->clone_group(group.second);
764 for (auto chunk : group.second->chunks)
765 {
766 auto count = chunk->count;
767 auto view = sugoi_chunk_view_t{ chunk, 0, count };
768 while (count != 0)
769 {
770 sugoi_chunk_view_t v = dst->allocate_view(dstGroup, count);
771 sugoi::clone_view(v, view.chunk, view.start + (view.count - count));
772 std::memcpy((sugoi_entity_t*)v.chunk->get_entities() + v.start, view.chunk->get_entities() + view.start + (view.count - count), v.count * sizeof(sugoi_entity_t));
773 count -= v.count;
774 }
775 }
776 }
777 for (auto query : queries)
778 {
779 dst->make_query(query->filter, query->parameters);
780 }
781 return dst;
782}
783
784void sugoi_storage_t::make_alias(skr::StringView name, skr::StringView aliasName)
785{

Callers

nothing calls this directly

Calls 6

clone_viewFunction · 0.85
memcpyFunction · 0.85
clone_groupMethod · 0.80
allocate_viewMethod · 0.80
make_queryMethod · 0.80
get_entitiesMethod · 0.45

Tested by

no test coverage detected