diff --git a/src/viewport_texture_router.cpp b/src/viewport_texture_router.cpp index f27ff98..e79919c 100644 --- a/src/viewport_texture_router.cpp +++ b/src/viewport_texture_router.cpp @@ -8,6 +8,7 @@ file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #include "viewport_texture_router.hpp" +#include "ndi.hpp" #include #include @@ -18,6 +19,8 @@ ViewportTextureRouter::ViewportTextureRouter() { } ViewportTextureRouter::~ViewportTextureRouter() { + // Ensure the disconnection from the frame_post_draw signal if it's connected + SIGNAL_DISCONNECT(RenderingServer::get_singleton(), "frame_post_draw", callable_mp(this, &ViewportTextureRouter::request_textures)); } void ViewportTextureRouter::add_viewport(Viewport *viewport) { @@ -46,7 +49,7 @@ void ViewportTextureRouter::remove_viewport(Viewport *viewport) { // Last viewport removed, disconnect from the frame_post_draw signal if (vps.size() == 0) { - RenderingServer::get_singleton()->disconnect("frame_post_draw", callable_mp(this, &ViewportTextureRouter::request_textures)); + SIGNAL_DISCONNECT(RenderingServer::get_singleton(), "frame_post_draw", callable_mp(this, &ViewportTextureRouter::request_textures)); } print_verbose("NDI: ViewportTextureRouter registrations: ", vps);