You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-06 12:20:30 +00:00
Merge pull request #62309 from reduz/remake-resource-thread-safety
Remake ResourceCache thread safety code and API
This commit is contained in:
@@ -881,7 +881,7 @@ void EditorNode::_resources_changed(const Vector<String> &p_resources) {
|
||||
|
||||
int rc = p_resources.size();
|
||||
for (int i = 0; i < rc; i++) {
|
||||
Ref<Resource> res(ResourceCache::get(p_resources.get(i)));
|
||||
Ref<Resource> res = ResourceCache::get_ref(p_resources.get(i));
|
||||
if (res.is_null()) {
|
||||
continue;
|
||||
}
|
||||
@@ -1011,8 +1011,8 @@ void EditorNode::_resources_reimported(const Vector<String> &p_resources) {
|
||||
continue;
|
||||
}
|
||||
// Reload normally.
|
||||
Resource *resource = ResourceCache::get(p_resources[i]);
|
||||
if (resource) {
|
||||
Ref<Resource> resource = ResourceCache::get_ref(p_resources[i]);
|
||||
if (resource.is_valid()) {
|
||||
resource->reload_from_file();
|
||||
}
|
||||
}
|
||||
@@ -1725,7 +1725,7 @@ void EditorNode::_save_scene(String p_file, int idx) {
|
||||
// We must update it, but also let the previous scene state go, as
|
||||
// old version still work for referencing changes in instantiated or inherited scenes.
|
||||
|
||||
sdata = Ref<PackedScene>(Object::cast_to<PackedScene>(ResourceCache::get(p_file)));
|
||||
sdata = ResourceCache::get_ref(p_file);
|
||||
if (sdata.is_valid()) {
|
||||
sdata->recreate_state();
|
||||
} else {
|
||||
@@ -3717,7 +3717,7 @@ Error EditorNode::load_scene(const String &p_scene, bool p_ignore_broken_deps, b
|
||||
|
||||
if (ResourceCache::has(lpath)) {
|
||||
// Used from somewhere else? No problem! Update state and replace sdata.
|
||||
Ref<PackedScene> ps = Ref<PackedScene>(Object::cast_to<PackedScene>(ResourceCache::get(lpath)));
|
||||
Ref<PackedScene> ps = ResourceCache::get_ref(lpath);
|
||||
if (ps.is_valid()) {
|
||||
ps->replace_state(sdata->get_state());
|
||||
ps->set_last_modified_time(sdata->get_last_modified_time());
|
||||
|
||||
Reference in New Issue
Block a user