diff --git a/src/libprojectM/ProjectM.cpp b/src/libprojectM/ProjectM.cpp index ae9390efa..3e97724de 100644 --- a/src/libprojectM/ProjectM.cpp +++ b/src/libprojectM/ProjectM.cpp @@ -90,7 +90,7 @@ void ProjectM::ResetTextures() m_textureManager = std::make_unique(m_textureSearchPaths); } -void ProjectM::RenderFrame() +void ProjectM::RenderFrame(uint32_t targetFramebufferObject /*= 0*/) { // Don't render if window area is zero. if (m_windowWidth == 0 || m_windowHeight == 0) @@ -166,8 +166,7 @@ void ProjectM::RenderFrame() // ToDo: Call the to-be-implemented render method in Renderer m_activePreset->RenderFrame(audioData, renderContext); - // ToDo: Allow external apps to provide a custom target framebuffer. - glBindFramebuffer(GL_DRAW_FRAMEBUFFER, 0); + glBindFramebuffer(GL_DRAW_FRAMEBUFFER, static_cast(targetFramebufferObject)); if (m_transition != nullptr && m_transitioningPreset != nullptr) { diff --git a/src/libprojectM/ProjectM.hpp b/src/libprojectM/ProjectM.hpp index b84e29335..844597128 100644 --- a/src/libprojectM/ProjectM.hpp +++ b/src/libprojectM/ProjectM.hpp @@ -101,7 +101,7 @@ public: void ResetTextures(); - void RenderFrame(); + void RenderFrame(uint32_t targetFramebufferObject = 0); void SetBeatSensitivity(float sensitivity);