Improve resource load cache
-Added a new method in Resource: reset_state , used for reloading the same resource from disk -Added a new cache mode "replace" in ResourceLoader, which reuses existing loaded sub-resources but resets their data from disk (or replaces them if they chaged type) -Because the correct sub-resource paths are always loaded now, this fixes bugs with subresource folding or subresource ordering when saving.
This commit is contained in:
parent
e5bb89cdd5
commit
f8d03b98e7
83 changed files with 395 additions and 183 deletions
|
|
@ -259,13 +259,17 @@ void EditorFolding::_do_object_unfolds(Object *p_object, Set<RES> &resources) {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (E->get().type == Variant::OBJECT) {
|
||||
RES res = p_object->get(E->get().name);
|
||||
if (res.is_valid() && !resources.has(res) && res->get_path() != String() && !res->get_path().is_resource_file()) {
|
||||
resources.insert(res);
|
||||
_do_object_unfolds(res.ptr(), resources);
|
||||
if (E->get().type == Variant::OBJECT) {
|
||||
RES res = p_object->get(E->get().name);
|
||||
print_line("res: " + String(E->get().name) + " valid " + itos(res.is_valid()));
|
||||
if (res.is_valid()) {
|
||||
print_line("path " + res->get_path());
|
||||
}
|
||||
if (res.is_valid() && !resources.has(res) && res->get_path() != String() && !res->get_path().is_resource_file()) {
|
||||
resources.insert(res);
|
||||
_do_object_unfolds(res.ptr(), resources);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue