aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorinmarket <andrewh@inmarket.com.au>2019-05-08 09:25:35 +1000
committerinmarket <andrewh@inmarket.com.au>2019-05-08 09:25:35 +1000
commit0586fd276d81ae7cd95ff50f92b1536c947ddf67 (patch)
tree909a91960d794ecb094bd2f4e7a77b9beadcb620
parent127a7cd2a2d6145b808b1960f602cc26cafcb1dd (diff)
downloaduGFX-0586fd276d81ae7cd95ff50f92b1536c947ddf67.tar.gz
uGFX-0586fd276d81ae7cd95ff50f92b1536c947ddf67.tar.bz2
uGFX-0586fd276d81ae7cd95ff50f92b1536c947ddf67.zip
Fix to gImage BMP handling where the system pixel size is less than a byte
-rw-r--r--changelog.txt2
-rw-r--r--src/gdisp/gdisp_image_bmp.c10
-rw-r--r--src/gdisp/gdisp_options.h4
3 files changed, 14 insertions, 2 deletions
diff --git a/changelog.txt b/changelog.txt
index 8b3babf0..07c0a27a 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -4,6 +4,8 @@
*** After Release 2.9 ***
CHANGE: Added type gImage to replace V2.x gdispImage
+FIX: Fixed GWIN console widget scroll
+FIX: A warning and adjusted is made if GDISP_IMAGE_BMP_BLIT_BUFFER_SIZE is less than 40 bytes.
*** Release 2.9 ***
diff --git a/src/gdisp/gdisp_image_bmp.c b/src/gdisp/gdisp_image_bmp.c
index 188c9313..270cba26 100644
--- a/src/gdisp/gdisp_image_bmp.c
+++ b/src/gdisp/gdisp_image_bmp.c
@@ -11,6 +11,16 @@
#include "gdisp_image_support.h"
+#if GDISP_IMAGE_BMP_BLIT_BUFFER_SIZE * (COLOR_TYPE_BITS/8) < 40
+ #if GFX_COMPILER_WARNING_TYPE == GFX_COMPILER_WARNING_DIRECT
+ #warning "GDISP: GDISP_IMAGE_BMP_BLIT_BUFFER_SIZE must be at least 40 bytes. It has been adjusted for you."
+ #elif GFX_COMPILER_WARNING_TYPE == GFX_COMPILER_WARNING_MACRO
+ COMPILER_WARNING("GDISP: GDISP_IMAGE_BMP_BLIT_BUFFER_SIZE must be at least 40 bytes. It has been adjusted for you.")
+ #endif
+ #undef GDISP_IMAGE_BMP_BLIT_BUFFER_SIZE
+ #define GDISP_IMAGE_BMP_BLIT_BUFFER_SIZE ((40 + (COLOR_TYPE_BITS/8) - 1) / (COLOR_TYPE_BITS/8))
+#endif
+
typedef struct gdispImagePrivate_BMP {
gU8 bmpflags;
#define BMP_V2 0x01 // Version 2 (old) header format
diff --git a/src/gdisp/gdisp_options.h b/src/gdisp/gdisp_options.h
index 18948945..a3037967 100644
--- a/src/gdisp/gdisp_options.h
+++ b/src/gdisp/gdisp_options.h
@@ -389,8 +389,8 @@
#define GDISP_NEED_IMAGE_BMP_32 GFXON
#endif
/**
- * @brief The BMP blit buffer size.
- * @details Defaults to 32
+ * @brief The BMP blit buffer size in pixels.
+ * @details Defaults to 32 pixels
* @note Bigger is faster but requires more RAM.
* @note This must be greater than 40 bytes and 32 pixels as we read our headers into this space as well.
*/