Fix bug mixing image buffers in ExpandCelCanvas for new cels

Bug introduced from commit 48864b440b82a710076a8af66d98c95343407e40
This commit is contained in:
David Capello 2013-12-15 10:31:25 -03:00
parent bcab165700
commit 7b09aefe6a

View File

@ -42,23 +42,20 @@
namespace {
static raster::ImageBufferPtr cel_buffer;
static raster::ImageBufferPtr src_buffer;
static raster::ImageBufferPtr dst_buffer;
static void destroy_buffers()
{
cel_buffer.reset(NULL);
src_buffer.reset(NULL);
dst_buffer.reset(NULL);
}
static void create_buffers()
{
if (!cel_buffer) {
if (!src_buffer) {
app::App::instance()->Exit.connect(&destroy_buffers);
cel_buffer.reset(new raster::ImageBuffer(1));
src_buffer.reset(new raster::ImageBuffer(1));
dst_buffer.reset(new raster::ImageBuffer(1));
}
@ -93,7 +90,7 @@ ExpandCelCanvas::ExpandCelCanvas(Context* context, TiledMode tiledMode, UndoTran
if (m_cel == NULL) {
// Create the image
m_celImage = Image::create(m_sprite->getPixelFormat(), m_sprite->getWidth(),
m_sprite->getHeight(), cel_buffer);
m_sprite->getHeight());
clear_image(m_celImage, m_sprite->getTransparentColor());
// Create the cel
@ -129,8 +126,7 @@ ExpandCelCanvas::ExpandCelCanvas(Context* context, TiledMode tiledMode, UndoTran
m_sprite->getTransparentColor(),
src_buffer);
m_dstImage = Image::createCopy(m_srcImage,
dst_buffer);
m_dstImage = Image::createCopy(m_srcImage, dst_buffer);
// We have to adjust the cel position to match the m_dstImage
// position (the new m_dstImage will be used in RenderEngine to