MCPcopy Create free account
hub / github.com/defold/defold / AllocCollection

Function AllocCollection

engine/gameobject/src/gameobject/gameobject.cpp:398–427  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

396 }
397
398 Collection* AllocCollection(const char* name, HRegister regist, uint32_t max_instances, dmGameObjectDDF::CollectionDesc* collection_desc)
399 {
400 uint32_t instances_in_collection = GetMaxComponentInstances(GAME_OBJECT_EXT, collection_desc);
401 if (instances_in_collection == 0)
402 {
403 instances_in_collection = max_instances;
404 }
405 else
406 {
407 instances_in_collection = dmMath::Min(max_instances, instances_in_collection);
408 }
409 Collection* collection = new Collection(0, 0, instances_in_collection, GetInputStackDefaultCapacity(regist));
410 collection->m_Mutex = dmMutex::New();
411
412 for (uint32_t i = 0; i < regist->m_ComponentTypeCount; ++i)
413 {
414 if (regist->m_ComponentTypes[i].m_NewWorldFunction)
415 {
416 ComponentNewWorldParams params;
417 params.m_Context = regist->m_ComponentTypes[i].m_Context;
418 params.m_ComponentIndex = i;
419 params.m_MaxComponentInstances = GetMaxComponentInstances(regist->m_ComponentTypes[i].m_NameHash, collection_desc);
420 params.m_MaxInstances = max_instances;
421 params.m_World = &collection->m_ComponentWorlds[i];
422 regist->m_ComponentTypes[i].m_NewWorldFunction(params);
423 }
424 }
425
426 return collection;
427 }
428
429 void DeallocCollection(Collection* collection)
430 {

Callers 1

NewCollectionFunction · 0.85

Calls 4

GetMaxComponentInstancesFunction · 0.85
MinFunction · 0.85
NewFunction · 0.70

Tested by

no test coverage detected