diff options
author | A Thousand Ships <96648715+AThousandShips@users.noreply.github.com> | 2024-01-29 18:48:47 +0100 |
---|---|---|
committer | A Thousand Ships <96648715+AThousandShips@users.noreply.github.com> | 2024-01-29 19:28:29 +0100 |
commit | 666daf47c31307c50a9f0eb08fc5146d0a3e5f32 (patch) | |
tree | 0b1d5e7c2cd532d152d7c70a96dd0091b71d937c | |
parent | fa48a51183567934984b381ad8ec281cb24d66ba (diff) | |
download | redot-engine-666daf47c31307c50a9f0eb08fc5146d0a3e5f32.tar.gz |
Free dummy renderer objects
These leaked during tests etc.
-rw-r--r-- | servers/rendering/dummy/storage/material_storage.h | 2 | ||||
-rw-r--r-- | servers/rendering/dummy/storage/mesh_storage.h | 2 | ||||
-rw-r--r-- | servers/rendering/dummy/storage/utilities.h | 7 |
3 files changed, 11 insertions, 0 deletions
diff --git a/servers/rendering/dummy/storage/material_storage.h b/servers/rendering/dummy/storage/material_storage.h index 4fd178ac88..4a956cd25d 100644 --- a/servers/rendering/dummy/storage/material_storage.h +++ b/servers/rendering/dummy/storage/material_storage.h @@ -76,6 +76,8 @@ public: /* SHADER API */ + bool owns_shader(RID p_rid) { return shader_owner.owns(p_rid); } + virtual RID shader_allocate() override; virtual void shader_initialize(RID p_rid) override; virtual void shader_free(RID p_rid) override; diff --git a/servers/rendering/dummy/storage/mesh_storage.h b/servers/rendering/dummy/storage/mesh_storage.h index a7351655bd..ce0e80e8c8 100644 --- a/servers/rendering/dummy/storage/mesh_storage.h +++ b/servers/rendering/dummy/storage/mesh_storage.h @@ -138,6 +138,8 @@ public: /* MULTIMESH API */ + bool owns_multimesh(RID p_rid) { return multimesh_owner.owns(p_rid); } + virtual RID multimesh_allocate() override; virtual void multimesh_initialize(RID p_rid) override; virtual void multimesh_free(RID p_rid) override; diff --git a/servers/rendering/dummy/storage/utilities.h b/servers/rendering/dummy/storage/utilities.h index 72327fbf4d..2497451fdc 100644 --- a/servers/rendering/dummy/storage/utilities.h +++ b/servers/rendering/dummy/storage/utilities.h @@ -31,6 +31,7 @@ #ifndef UTILITIES_DUMMY_H #define UTILITIES_DUMMY_H +#include "material_storage.h" #include "mesh_storage.h" #include "servers/rendering/storage/utilities.h" #include "texture_storage.h" @@ -63,6 +64,12 @@ public: } else if (RendererDummy::MeshStorage::get_singleton()->owns_mesh(p_rid)) { RendererDummy::MeshStorage::get_singleton()->mesh_free(p_rid); return true; + } else if (RendererDummy::MeshStorage::get_singleton()->owns_multimesh(p_rid)) { + RendererDummy::MeshStorage::get_singleton()->multimesh_free(p_rid); + return true; + } else if (RendererDummy::MaterialStorage::get_singleton()->owns_shader(p_rid)) { + RendererDummy::MaterialStorage::get_singleton()->shader_free(p_rid); + return true; } return false; } |