MCPcopy Create free account
hub / github.com/GDRETools/gdsdecomp / custom_load

Method custom_load

compat/resource_compat_binary.cpp:2916–2972  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2914///// NEW FUNCTIONS //////
2915
2916Ref<Resource> ResourceFormatLoaderCompatBinary::custom_load(const String &p_path, const String &p_original_path, ResourceInfo::LoadType p_load_type, Error *r_error, bool use_threads, ResourceFormatLoader::CacheMode p_cache_mode) {
2917 if (r_error) {
2918 *r_error = ERR_CANT_OPEN;
2919 }
2920
2921 Error err;
2922
2923 Ref<FileAccess> f = FileAccess::open(p_path, FileAccess::READ, &err);
2924
2925 ERR_FAIL_COND_V_MSG(err != OK, Ref<Resource>(), "Cannot open file '" + p_path + "'.");
2926
2927 ResourceLoaderCompatBinary loader;
2928 loader.load_type = p_load_type;
2929 switch (p_load_type) {
2930 case ResourceInfo::FAKE_LOAD:
2931 case ResourceInfo::NON_GLOBAL_LOAD:
2932 loader.cache_mode = ResourceFormatLoader::CACHE_MODE_IGNORE;
2933 loader.use_sub_threads = false;
2934 break;
2935 case ResourceInfo::GLTF_LOAD:
2936 case ResourceInfo::REAL_LOAD:
2937 default:
2938 switch (p_cache_mode) {
2939 case CACHE_MODE_IGNORE:
2940 case CACHE_MODE_REUSE:
2941 case CACHE_MODE_REPLACE:
2942 loader.cache_mode = p_cache_mode;
2943 loader.cache_mode_for_external = CACHE_MODE_REUSE;
2944 break;
2945 case CACHE_MODE_IGNORE_DEEP:
2946 loader.cache_mode = CACHE_MODE_IGNORE;
2947 loader.cache_mode_for_external = p_cache_mode;
2948 break;
2949 case CACHE_MODE_REPLACE_DEEP:
2950 loader.cache_mode = CACHE_MODE_REPLACE;
2951 loader.cache_mode_for_external = p_cache_mode;
2952 break;
2953 }
2954
2955 loader.use_sub_threads = use_threads;
2956 break;
2957 }
2958 String path = !p_original_path.is_empty() ? p_original_path : p_path;
2959 loader.local_path = GDRESettings::get_singleton()->localize_path(path);
2960 loader.progress = nullptr;
2961 loader.res_path = loader.local_path;
2962 loader.open(f);
2963 err = loader.load();
2964 if (r_error) {
2965 *r_error = err;
2966 }
2967 if (err == OK) {
2968 return loader.get_resource();
2969 } else {
2970 return Ref<Resource>();
2971 }
2972}
2973

Callers

nothing calls this directly

Calls 4

localize_pathMethod · 0.80
openMethod · 0.45
loadMethod · 0.45
get_resourceMethod · 0.45

Tested by

no test coverage detected