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
| 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(¶ms); |
| 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(¶ms); |
| 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 | { |
no test coverage detected