Merge pull request #93292 from rune-scape/singleton-cleanup
Fix missing cleanup and null checks for various singletons
This commit is contained in:
@@ -545,8 +545,13 @@ public:
|
||||
|
||||
virtual void set_debug_redraw(bool p_enabled, double p_time, const Color &p_color) = 0;
|
||||
|
||||
RendererCanvasRender() { singleton = this; }
|
||||
virtual ~RendererCanvasRender() {}
|
||||
RendererCanvasRender() {
|
||||
ERR_FAIL_COND_MSG(singleton != nullptr, "A RendererCanvasRender singleton already exists.");
|
||||
singleton = this;
|
||||
}
|
||||
virtual ~RendererCanvasRender() {
|
||||
singleton = nullptr;
|
||||
}
|
||||
};
|
||||
|
||||
#endif // RENDERER_CANVAS_RENDER_H
|
||||
|
||||
@@ -47,6 +47,7 @@ bool RendererCompositor::is_xr_enabled() const {
|
||||
}
|
||||
|
||||
RendererCompositor::RendererCompositor() {
|
||||
ERR_FAIL_COND_MSG(singleton != nullptr, "A RendererCompositor singleton already exists.");
|
||||
singleton = this;
|
||||
|
||||
#ifndef _3D_DISABLED
|
||||
@@ -57,3 +58,7 @@ RendererCompositor::RendererCompositor() {
|
||||
}
|
||||
#endif // _3D_DISABLED
|
||||
}
|
||||
|
||||
RendererCompositor::~RendererCompositor() {
|
||||
singleton = nullptr;
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ public:
|
||||
|
||||
static RendererCompositor *get_singleton() { return singleton; }
|
||||
RendererCompositor();
|
||||
virtual ~RendererCompositor() {}
|
||||
virtual ~RendererCompositor();
|
||||
};
|
||||
|
||||
#endif // RENDERER_COMPOSITOR_H
|
||||
|
||||
@@ -299,6 +299,7 @@ RendererCompositorRD::RendererCompositorRD() {
|
||||
}
|
||||
}
|
||||
|
||||
ERR_FAIL_COND_MSG(singleton != nullptr, "A RendererCompositorRD singleton already exists.");
|
||||
singleton = this;
|
||||
|
||||
utilities = memnew(RendererRD::Utilities);
|
||||
@@ -330,6 +331,7 @@ RendererCompositorRD::RendererCompositorRD() {
|
||||
}
|
||||
|
||||
RendererCompositorRD::~RendererCompositorRD() {
|
||||
singleton = nullptr;
|
||||
memdelete(uniform_set_cache);
|
||||
memdelete(framebuffer_cache);
|
||||
ShaderRD::set_shader_cache_dir(String());
|
||||
|
||||
Reference in New Issue
Block a user