--- VTexture.cpp.orig 2007-10-31 14:35:54.000000000 +0200 +++ VTexture.cpp 2007-10-31 15:09:57.669463524 +0200 @@ -44,12 +44,7 @@ pTexture->Tag = ""; pTexture->isAlpha = bAlpha; -#ifdef ENABLE_SDLGFX - pTexture->pcData = pcData; -#endif - #ifdef ENABLE_OPENGL - pTexture->pcData = NULL; pTexture->nID = 0; /* OpenGL magic */ @@ -113,8 +108,8 @@ if (retval!=0) { throw TextureError("Failed to scale image in TextureManagerc::createTexture()"); } -// delete[] pcData; - pcData = (unsigned char*) newdata; + delete[] pcData; + pcData = newdata; nWidth = max_texture_size; nHeight = max_texture_size; @@ -174,8 +169,12 @@ pTexture->surface = SDL_CreateRGBSurfaceFrom(pcData,nWidth,nHeight,24 /*bitsPerPixel */, nWidth * 3 /*pitch*/,rmask,gmask,bmask,0); } + + pTexture->pcData = pc; #else pTexture->surface = NULL; + pTexture->pcData = NULL; + delete pcData; #endif /* Do it captain */ @@ -267,9 +266,6 @@ } pTexture = createTexture(TexName,pc,TextureImage.getWidth(),TextureImage.getHeight(),bAlpha,bClamp, eFilterMode); -#ifdef ENABLE_OPENGL - delete pc; -#endif } else { Logger::Log("** Warning ** : TextureManager::loadTexture() : texture '%s' not found or invalid",Path.c_str());