From 788a5ecaacaaa09fecd40bdae9886fcff35ab17b Mon Sep 17 00:00:00 2001 From: Kai Blaschke Date: Mon, 6 Jun 2022 18:07:19 +0200 Subject: [PATCH] Class Renderer: Store TextureManager instance as unique_ptr for easier memory management --- src/libprojectM/Renderer/Renderer.cpp | 14 +++----------- src/libprojectM/Renderer/Renderer.hpp | 2 +- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/src/libprojectM/Renderer/Renderer.cpp b/src/libprojectM/Renderer/Renderer.cpp index ed13d1679..5cc135c1a 100644 --- a/src/libprojectM/Renderer/Renderer.cpp +++ b/src/libprojectM/Renderer/Renderer.cpp @@ -209,7 +209,7 @@ void Renderer::RenderItems(const Pipeline& pipeline, const PipelineContext& pipe m_renderContext.aspectY = m_fAspectY; m_renderContext.invAspectX = m_fInvAspectX; m_renderContext.invAspectY = m_fInvAspectY; - m_renderContext.textureManager = m_textureManager; + m_renderContext.textureManager = m_textureManager.get(); m_renderContext.beatDetect = m_beatDetect; for (std::vector::const_iterator pos = pipeline.drawables.begin(); pos != pipeline.drawables.end(); ++pos) @@ -428,10 +428,6 @@ void Renderer::Interpolation(const Pipeline& pipeline, const PipelineContext& pi Renderer::~Renderer() { - if (m_textureManager) - delete (m_textureManager); - - free(m_perPointMeshBuffer); glDeleteBuffers(1, &m_vboInterpolation); @@ -479,13 +475,9 @@ void Renderer::reset(int w, int h) InitCompositeShaderVertex(); - if (m_textureManager != nullptr) - { - delete m_textureManager; - } - m_textureManager = new TextureManager(m_presetPath, m_textureSizeX, m_textureSizeY, m_dataPath); + m_textureManager = std::make_unique(m_presetPath, m_textureSizeX, m_textureSizeY, m_dataPath); - m_shaderEngine.setParams(m_textureSizeX, m_textureSizeY, m_fAspectX, m_fAspectY, m_beatDetect, m_textureManager); + m_shaderEngine.setParams(m_textureSizeX, m_textureSizeY, m_fAspectX, m_fAspectY, m_beatDetect, m_textureManager.get()); m_shaderEngine.reset(); m_shaderEngine.loadPresetShaders(*m_currentPipeline, m_presetName); diff --git a/src/libprojectM/Renderer/Renderer.hpp b/src/libprojectM/Renderer/Renderer.hpp index 8f837becb..c829bd975 100644 --- a/src/libprojectM/Renderer/Renderer.hpp +++ b/src/libprojectM/Renderer/Renderer.hpp @@ -187,7 +187,7 @@ private: PerPixelMesh m_perPixelMesh; BeatDetect* m_beatDetect{nullptr}; - TextureManager* m_textureManager{nullptr}; + std::unique_ptr m_textureManager; Pipeline* m_currentPipeline{nullptr}; RenderContext m_renderContext; ShaderEngine m_shaderEngine;