You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-08 12:40:44 +00:00
Merge pull request #86845 from RandomShaper/no_load_regress
Avoid regressing in progress reporting in resource load
This commit is contained in:
@@ -509,20 +509,20 @@ Ref<ResourceLoader::LoadToken> ResourceLoader::_load_start(const String &p_path,
|
||||
float ResourceLoader::_dependency_get_progress(const String &p_path) {
|
||||
if (thread_load_tasks.has(p_path)) {
|
||||
ThreadLoadTask &load_task = thread_load_tasks[p_path];
|
||||
float current_progress = 0.0;
|
||||
int dep_count = load_task.sub_tasks.size();
|
||||
if (dep_count > 0) {
|
||||
float dep_progress = 0;
|
||||
for (const String &E : load_task.sub_tasks) {
|
||||
dep_progress += _dependency_get_progress(E);
|
||||
current_progress += _dependency_get_progress(E);
|
||||
}
|
||||
dep_progress /= float(dep_count);
|
||||
dep_progress *= 0.5;
|
||||
dep_progress += load_task.progress * 0.5;
|
||||
return dep_progress;
|
||||
current_progress /= float(dep_count);
|
||||
current_progress *= 0.5;
|
||||
current_progress += load_task.progress * 0.5;
|
||||
} else {
|
||||
return load_task.progress;
|
||||
current_progress = load_task.progress;
|
||||
}
|
||||
|
||||
load_task.max_reported_progress = MAX(load_task.max_reported_progress, current_progress);
|
||||
return load_task.max_reported_progress;
|
||||
} else {
|
||||
return 1.0; //assume finished loading it so it no longer exists
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user