From ff8aa099497576217fae6b946506a1de1744ca67 Mon Sep 17 00:00:00 2001 From: Joel Bodenmann Date: Tue, 10 Jan 2017 10:28:42 +0100 Subject: [PATCH] Adding GDISP_IMAGE_PNG_BLIT_BUFFER_SIZE configuration option --- changelog.txt | 1 + gfxconf.example.h | 1 + src/gdisp/gdisp_image_png.c | 7 +------ src/gdisp/gdisp_options.h | 8 ++++++++ 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/changelog.txt b/changelog.txt index 074da055..30d6c79e 100644 --- a/changelog.txt +++ b/changelog.txt @@ -10,6 +10,7 @@ FIX: Ensure valid thread stack sizes on platforms where it matters FEATURE: Add support for a GFILE user provided file system FEATURE: Add gwinListItemSetText() to replace text in a GWIN list item FEATURE: Added GDISP_IMAGE_BMP_BLIT_BUFFER_SIZE configuration option +FEATURE: Added GDISP_IMAGE_PNG_BLIT_BUFFER_SIZE configuration option *** Release 2.7 *** diff --git a/gfxconf.example.h b/gfxconf.example.h index d37fbe58..31a6b8a6 100644 --- a/gfxconf.example.h +++ b/gfxconf.example.h @@ -136,6 +136,7 @@ // #define GDISP_NEED_IMAGE_PNG_RGB_16 TRUE // #define GDISP_NEED_IMAGE_PNG_RGBALPHA_8 TRUE // #define GDISP_NEED_IMAGE_PNG_RGBALPHA_16 TRUE +// #define GDISP_IMAGE_PNG_BLIT_BUFFER_SIZE 32 // #define GDISP_NEED_IMAGE_ACCOUNTING FALSE //#define GDISP_NEED_PIXMAP FALSE diff --git a/src/gdisp/gdisp_image_png.c b/src/gdisp/gdisp_image_png.c index 8b2bfb04..9fa1c68e 100644 --- a/src/gdisp/gdisp_image_png.c +++ b/src/gdisp/gdisp_image_png.c @@ -11,11 +11,6 @@ #include "gdisp_image_support.h" -/** - * How big a pixel array to allocate for blitting the image to the display (in pixels) - * Bigger is faster but uses more RAM. - */ -#define PNG_BLIT_BUFFER_SIZE 32 /** * How big a byte array to use for input file buffer * Bigger is faster but uses more RAM. @@ -89,7 +84,7 @@ typedef struct PNG_output { coord_t sx, sy; coord_t ix, iy; unsigned cnt; - pixel_t buf[PNG_BLIT_BUFFER_SIZE]; + pixel_t buf[GDISP_IMAGE_PNG_BLIT_BUFFER_SIZE]; } PNG_output; // Handle the PNG scan line filter diff --git a/src/gdisp/gdisp_options.h b/src/gdisp/gdisp_options.h index fa1a21e4..ec043769 100644 --- a/src/gdisp/gdisp_options.h +++ b/src/gdisp/gdisp_options.h @@ -518,6 +518,14 @@ #ifndef GDISP_NEED_IMAGE_PNG_RGBALPHA_16 #define GDISP_NEED_IMAGE_PNG_RGBALPHA_16 TRUE #endif + /** + * @brief The PNG blit buffer size in pixels. + * @details Defaults to TRUE + * @note Bigger is faster but requires more RAM. + */ + #ifndef GDISP_IMAGE_PNG_BLIT_BUFFER_SIZE + #define GDISP_IMAGE_PNG_BLIT_BUFFER_SIZE 32 + #endif /** * @} *