diff --git a/Source/Core/Data/ImageData.cs b/Source/Core/Data/ImageData.cs index dec6249e0a694a2a221b50de5d03eb91cb8c3778..016b3f4cb215e807d32f7353a7be99a20920a81b 100755 --- a/Source/Core/Data/ImageData.cs +++ b/Source/Core/Data/ImageData.cs @@ -73,6 +73,7 @@ namespace CodeImp.DoomBuilder.Data // GDI bitmap private Bitmap bitmap; private Bitmap previewbitmap; + private Bitmap spritepreviewbitmap; // Direct3D texture private int mipmaplevels; // 0 = all mipmaps @@ -147,8 +148,12 @@ namespace CodeImp.DoomBuilder.Data { // Clean up bitmap?.Dispose(); - texture?.Dispose(); - bitmap = null; + previewbitmap?.Dispose(); + spritepreviewbitmap?.Dispose(); + texture?.Dispose(); + bitmap = null; + previewbitmap = null; + spritepreviewbitmap = null; texture = null; // Done @@ -213,22 +218,24 @@ namespace CodeImp.DoomBuilder.Data public Image GetBackgroundBitmap() { - return GetBitmap(); + return LocalGetBitmap(); } public Bitmap GetSkyboxBitmap() { - return GetBitmap(); + return LocalGetBitmap(); } public Bitmap ExportBitmap() { - return GetBitmap(); + return LocalGetBitmap(); } public Bitmap GetSpritePreview() { - return GetBitmap(); + if (spritepreviewbitmap == null) + spritepreviewbitmap = LocalGetBitmap(); + return spritepreviewbitmap; } // Loads the image directly. This is needed by the background loader for some patches.