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

Function ResourceContainerCreate

engine/resource/src/test/test_resource.cpp:335–377  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

333}
334
335dmResource::Result ResourceContainerCreate(const dmResource::ResourceCreateParams* params)
336{
337 HResourceType type = params->m_Type;
338 GetResourceTest* self = (GetResourceTest*) ResourceTypeGetContext(type);
339 self->m_ResourceContainerCreateCallCount++;
340
341 TestResource::ResourceContainerDesc* resource_container_desc = (TestResource::ResourceContainerDesc*) params->m_PreloadData;
342
343 TestResourceContainer* resource_cont = new TestResourceContainer();
344 resource_cont->m_NameHash = dmHashBuffer64(resource_container_desc->m_Name, strlen(resource_container_desc->m_Name));
345
346 ResourceDescriptorSetResource(params->m_Resource, (void*) resource_cont);
347
348 bool error = false;
349 dmResource::Result factory_e = dmResource::RESULT_OK;
350 for (uint32_t i = 0; i < resource_container_desc->m_Resources.m_Count; ++i)
351 {
352 TestResource::ResourceFoo* sub_resource;
353 factory_e = dmResource::Get(params->m_Factory, resource_container_desc->m_Resources[i], (void**)&sub_resource);
354 if (factory_e != dmResource::RESULT_OK)
355 {
356 error = true;
357 break;
358 }
359 resource_cont->m_Resources.push_back(sub_resource);
360 }
361
362 dmDDF::FreeMessage(resource_container_desc);
363 if (error)
364 {
365 for (uint32_t i = 0; i < resource_cont->m_Resources.size(); ++i)
366 {
367 dmResource::Release(params->m_Factory, resource_cont->m_Resources[i]);
368 }
369 delete resource_cont;
370 ResourceDescriptorSetResource(params->m_Resource, 0);
371 return factory_e;
372 }
373 else
374 {
375 return dmResource::RESULT_OK;
376 }
377}
378
379dmResource::Result ResourceContainerDestroy(const dmResource::ResourceDestroyParams* params)
380{

Callers

nothing calls this directly

Calls 8

ResourceTypeGetContextFunction · 0.85
FreeMessageFunction · 0.85
dmHashBuffer64Function · 0.50
GetFunction · 0.50
ReleaseFunction · 0.50
push_backMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected