aboutsummaryrefslogtreecommitdiffstats
path: root/src/gdisp/gdisp_image_bmp.c
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 /src/gdisp/gdisp_image_bmp.c
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
Diffstat (limited to 'src/gdisp/gdisp_image_bmp.c')
-rw-r--r--src/gdisp/gdisp_image_bmp.c10
1 files changed, 10 insertions, 0 deletions
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