From ad98a108157ee171da5fac9f3af5cfd00501ff05 Mon Sep 17 00:00:00 2001 From: Björn Steinbrink Date: Thu, 7 Sep 2006 20:01:48 +0000 Subject: Worked around a memory leak when using OpenGL. --- ChangeLog | 6 ++++++ src/resources/image.cpp | 21 ++++++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index df887c29..20af37fb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,10 @@ +2006-09-07 Björn Steinbrink + + * src/resources/image.cpp: Worked around a memory leak when using + OpenGL. + 2006-09-06 Philipp Sehmisch + * data/graphics/sprites/item010.png, data/graphics/sprites/item010.xml, data/graphics/sprites/Makefile.am: Added santa hat sprites and updated makefile. diff --git a/src/resources/image.cpp b/src/resources/image.cpp index 51899d3f..6a7c79df 100644 --- a/src/resources/image.cpp +++ b/src/resources/image.cpp @@ -260,11 +260,18 @@ void Image::unload() { mLoaded = false; - if (!mImage) return; + if (!mImage) { + // Free the image surface. + SDL_FreeSurface(mImage); + mImage = NULL; + } - // Free the image surface. - SDL_FreeSurface(mImage); - mImage = NULL; +#ifdef USE_OPENGL + if (mGLImage) { + glDeleteTextures(1, &mGLImage); + mGLImage = 0; + } +#endif } Image *Image::getSubImage(int x, int y, int width, int height) @@ -341,7 +348,11 @@ SubImage::SubImage(Image *parent, GLuint image, SubImage::~SubImage() { - mImage = 0; // Avoid destruction of the image + // Avoid destruction of the image + mImage = 0; +#ifdef USE_OPENGL + mGLImage = 0; +#endif mParent->decRef(); } -- cgit v1.2.3-70-g09d2