1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Change RID_Owner::get_owned_list.

This commit is contained in:
Yyf2333
2025-01-21 21:23:46 +08:00
committed by Yufeng Ying
parent 2d3bdcac35
commit 1a70a06a43
11 changed files with 74 additions and 102 deletions

View File

@@ -748,10 +748,8 @@ void ShaderRD::enable_group(int p_group) {
group_enabled.write[p_group] = true;
// Compile all versions again to include the new group.
List<RID> all_versions;
version_owner.get_owned_list(&all_versions);
for (const RID &E : all_versions) {
Version *version = version_owner.get_or_null(E);
for (const RID &version_rid : version_owner.get_owned_list()) {
Version *version = version_owner.get_or_null(version_rid);
version->mutex->lock();
_compile_version_start(version, p_group);
version->mutex->unlock();
@@ -907,13 +905,11 @@ bool ShaderRD::shader_cache_save_compressed_zstd = true;
bool ShaderRD::shader_cache_save_debug = true;
ShaderRD::~ShaderRD() {
List<RID> remaining;
version_owner.get_owned_list(&remaining);
LocalVector<RID> remaining = version_owner.get_owned_list();
if (remaining.size()) {
ERR_PRINT(itos(remaining.size()) + " shaders of type " + name + " were never freed");
while (remaining.size()) {
version_free(remaining.front()->get());
remaining.pop_front();
for (const RID &version_rid : remaining) {
version_free(version_rid);
}
}
}