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

Function PostCreateUpdateOneItem

engine/resource/src/resource_preloader.cpp:892–933  ·  view source on GitHub ↗

Calls the PostCreate function of any pending resources If the resource load is duplicate (indicated by ResourcePostCreateParamsInternal::m_Destroy) the resource will be deleted but we still need to call the PostCreate function

Source from the content-addressed store, hash-verified

890 // If the resource load is duplicate (indicated by ResourcePostCreateParamsInternal::m_Destroy)
891 // the resource will be deleted but we still need to call the PostCreate function
892 static Result PostCreateUpdateOneItem(HPreloader preloader)
893 {
894 ResourcePostCreateParamsInternal& ip = preloader->m_PostCreateCallbacks[preloader->m_PostCreateCallbackIndex];
895 ResourcePostCreateParams& params = ip.m_Params;
896 params.m_Resource = &ip.m_ResourceDesc;
897 ResourceType* resource_type = params.m_Resource->m_ResourceType;
898 Result ret = (Result)resource_type->m_PostCreateFunction(&params);
899
900 if (ret == RESULT_PENDING)
901 {
902 return ret;
903 }
904 ++preloader->m_PostCreateCallbackIndex;
905
906 // Resource has been marked for delayed destroy after PostCreate function has been run.
907 if (ip.m_Destroy)
908 {
909 ResourceDestroyParams params;
910 params.m_Factory = preloader->m_Factory;
911 params.m_Type = resource_type;
912 params.m_Context = resource_type->m_Context;
913 params.m_Resource = &ip.m_ResourceDesc;
914 resource_type->m_DestroyFunction(&params);
915 ip.m_Destroy = false;
916 }
917 else {
918 ResourceDescriptor* rd = FindByHash(preloader->m_Factory, params.m_Resource->m_NameHash);
919 if (rd)
920 {
921 if (params.m_Resource->m_ResourceSize != 0)
922 rd->m_ResourceSize = params.m_Resource->m_ResourceSize;
923 }
924 }
925
926 if (preloader->m_PostCreateCallbackIndex == preloader->m_PostCreateCallbacks.Size())
927 {
928 preloader->m_PostCreateCallbacks.SetSize(0);
929 preloader->m_PostCreateCallbackIndex = 0;
930 }
931
932 return ret;
933 }
934
935 Result UpdatePreloader(HPreloader preloader, FPreloaderCompleteCallback complete_callback, PreloaderCompleteCallbackParams* complete_callback_params, uint32_t soft_time_limit)
936 {

Callers 1

UpdatePreloaderFunction · 0.85

Calls 3

FindByHashFunction · 0.85
SizeMethod · 0.45
SetSizeMethod · 0.45

Tested by

no test coverage detected