From b4cd8e462882ca495f602532e1cf8fd5dbf93518 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=B6eh=20Matt?= <5415177+ZehMatt@users.noreply.github.com> Date: Mon, 11 Oct 2021 12:01:11 -0700 Subject: [PATCH] Fix #15560: Memory leak due to OpenGL Renderer not releasing a texture --- distribution/changelog.txt | 1 + src/openrct2-ui/drawing/engines/opengl/SwapFramebuffer.cpp | 5 +++++ src/openrct2-ui/drawing/engines/opengl/SwapFramebuffer.h | 1 + 3 files changed, 7 insertions(+) diff --git a/distribution/changelog.txt b/distribution/changelog.txt index d547108d3f..9d9fde6605 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -36,6 +36,7 @@ - Fix: [#15496] Crash in paint_swinging_inverter_ship_structure(). - Fix: [#15503] Freeze when doing specific coaster merges with block brakes. - Fix: [#15514] Two different “quit to menu” menu items are available in track designer and track design manager. +- Fix: [#15560] Memory leak due to OpenGL Renderer not releasing a texture. - Improved: [#3417] Crash dumps are now placed in their own folder. - Improved: [#13524] macOS arm64 native (universal) app - Improved: [#15538] Software rendering can now draw in parallel when Multithreading is enabled. diff --git a/src/openrct2-ui/drawing/engines/opengl/SwapFramebuffer.cpp b/src/openrct2-ui/drawing/engines/opengl/SwapFramebuffer.cpp index fb7098183c..39c88b9dec 100644 --- a/src/openrct2-ui/drawing/engines/opengl/SwapFramebuffer.cpp +++ b/src/openrct2-ui/drawing/engines/opengl/SwapFramebuffer.cpp @@ -27,6 +27,11 @@ SwapFramebuffer::SwapFramebuffer(int32_t width, int32_t height) glClearBufferfv(GL_DEPTH, 0, depthValueTransparent); } +SwapFramebuffer::~SwapFramebuffer() +{ + glDeleteTextures(1, &_backDepth); +} + void SwapFramebuffer::ApplyTransparency(ApplyTransparencyShader& shader, GLuint paletteTex) { _mixFramebuffer.Bind(); diff --git a/src/openrct2-ui/drawing/engines/opengl/SwapFramebuffer.h b/src/openrct2-ui/drawing/engines/opengl/SwapFramebuffer.h index 5880e254f9..44d1659a3b 100644 --- a/src/openrct2-ui/drawing/engines/opengl/SwapFramebuffer.h +++ b/src/openrct2-ui/drawing/engines/opengl/SwapFramebuffer.h @@ -33,6 +33,7 @@ private: public: SwapFramebuffer(int32_t width, int32_t height); + ~SwapFramebuffer(); const OpenGLFramebuffer& GetFinalFramebuffer() const {