From 7703a8e2c020d1c475147cfca8b83c27a54f7696 Mon Sep 17 00:00:00 2001 From: MrCdK Date: Fri, 24 Apr 2015 00:33:19 +0200 Subject: [PATCH] Fix windows imageBuffer transparent value --- project/include/graphics/ImageBuffer.h | 1 + project/src/graphics/Image.cpp | 2 +- project/src/graphics/ImageBuffer.cpp | 6 ++++++ project/src/graphics/utils/ImageDataUtil.cpp | 2 +- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/project/include/graphics/ImageBuffer.h b/project/include/graphics/ImageBuffer.h index d6ddf291f..6e6e0ecfd 100644 --- a/project/include/graphics/ImageBuffer.h +++ b/project/include/graphics/ImageBuffer.h @@ -26,6 +26,7 @@ namespace lime { ByteArray *data; int height; int width; + bool transparent; private: diff --git a/project/src/graphics/Image.cpp b/project/src/graphics/Image.cpp index 4a84bffb4..3ad8692db 100644 --- a/project/src/graphics/Image.cpp +++ b/project/src/graphics/Image.cpp @@ -44,7 +44,7 @@ namespace lime { buffer = new ImageBuffer (val_field (image, id_buffer)); offsetX = val_int (val_field (image, id_offsetX)); offsetY = val_int (val_field (image, id_offsetY)); - transparent = val_int (val_field (image, id_transparent)); + transparent = val_bool (val_field (image, id_transparent)); } diff --git a/project/src/graphics/ImageBuffer.cpp b/project/src/graphics/ImageBuffer.cpp index 2f95b52b2..4f6c179ce 100644 --- a/project/src/graphics/ImageBuffer.cpp +++ b/project/src/graphics/ImageBuffer.cpp @@ -10,6 +10,7 @@ namespace lime { static int id_data; static int id_height; static int id_width; + static int id_transparent; static bool init = false; @@ -19,6 +20,7 @@ namespace lime { height = 0; bpp = 4; data = 0; + transparent = false; } @@ -29,6 +31,7 @@ namespace lime { id_bpp = val_id ("bpp"); id_bitsPerPixel = val_id ("bitsPerPixel"); + id_transparent = val_id ("transparent"); id_buffer = val_id ("buffer"); id_width = val_id ("width"); id_height = val_id ("height"); @@ -40,6 +43,7 @@ namespace lime { width = val_int (val_field (imageBuffer, id_width)); height = val_int (val_field (imageBuffer, id_height)); bpp = val_int (val_field (imageBuffer, id_bitsPerPixel)); + transparent = val_bool (val_field (imageBuffer, id_transparent)); value data_value = val_field (imageBuffer, id_data); value buffer_value = val_field (data_value, id_buffer); @@ -94,6 +98,7 @@ namespace lime { id_bpp = val_id ("bpp"); id_bitsPerPixel = val_id ("bitsPerPixel"); + id_transparent = val_id ("transparent"); id_buffer = val_id ("buffer"); id_width = val_id ("width"); id_height = val_id ("height"); @@ -106,6 +111,7 @@ namespace lime { alloc_field (mValue, id_width, alloc_int (width)); alloc_field (mValue, id_height, alloc_int (height)); alloc_field (mValue, id_bpp, alloc_int (bpp)); + alloc_field (mValue, id_transparent, alloc_bool (transparent)); alloc_field (mValue, id_data, data->mValue); return mValue; diff --git a/project/src/graphics/utils/ImageDataUtil.cpp b/project/src/graphics/utils/ImageDataUtil.cpp index d956ad641..649e11b1b 100644 --- a/project/src/graphics/utils/ImageDataUtil.cpp +++ b/project/src/graphics/utils/ImageDataUtil.cpp @@ -141,7 +141,7 @@ namespace lime { int rows = sourceRect->y + sourceRect->height + sourceImage->offsetY; int columns = sourceRect->x + sourceRect->width + sourceImage->offsetX; - if (!mergeAlpha || !sourceImage->transparent) { + if (!mergeAlpha || !sourceImage->buffer->transparent) { for (int row = sourceRect->y + sourceImage->offsetY; row < rows; row++) {