From 0162409383cfd971ac58b01bd4b7274ca5825c5d Mon Sep 17 00:00:00 2001 From: Leander Hasty Date: Fri, 22 Apr 2016 14:35:48 -0400 Subject: [PATCH] Discard sourceImage when all frames generated. After the final frame is pulled in by generateBitmap(i) call, it appears we can safely null both sourceImage and sourceImageAlpha. The usual uses of merge and updateImage and other methods seems to be supported; the one case this might break is a "merge with another spritesheet with the same sourceImage and sourceImageAlpha as ourselves", causing it to generate frames earlier than it would have otherwise. --- spritesheet/Spritesheet.hx | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/spritesheet/Spritesheet.hx b/spritesheet/Spritesheet.hx index 52b269a..0801048 100644 --- a/spritesheet/Spritesheet.hx +++ b/spritesheet/Spritesheet.hx @@ -94,6 +94,29 @@ class Spritesheet { frame.bitmapData = bitmapData; + var hasGeneratedAllFrames = true; + for (i in 0...totalFrames) { + + if ( frames[i].bitmapData == null ) + { + + hasGeneratedAllFrames = false; + break; + + } + + } + + if ( hasGeneratedAllFrames ) { + + // We've generated all frames, don't need to keep the original spritesheet anymore. + // Should not break merge() or updateImage() or similar. + //trace( "Spritesheet.generateBitmap: all frames generated, evicting source." ); + sourceImage = null; + sourceImageAlpha = null; + + } + }