diff options
| -rw-r--r-- | gfxconf.example.h | 1 | ||||
| -rw-r--r-- | src/gdisp/gdisp_image_png.c | 12 | ||||
| -rw-r--r-- | src/gdisp/gdisp_options.h | 13 | 
3 files changed, 15 insertions, 11 deletions
diff --git a/gfxconf.example.h b/gfxconf.example.h index 31a6b8a6..c7b836bf 100644 --- a/gfxconf.example.h +++ b/gfxconf.example.h @@ -137,6 +137,7 @@  //        #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_IMAGE_PNG_FILE_BUFFER_SIZE     8  //    #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 9fa1c68e..1b3c2469 100644 --- a/src/gdisp/gdisp_image_png.c +++ b/src/gdisp/gdisp_image_png.c @@ -12,12 +12,6 @@  #include "gdisp_image_support.h"  /** - * How big a byte array to use for input file buffer - * Bigger is faster but uses more RAM. - * Must be more than 8 bytes - */ -#define PNG_FILE_BUFFER_SIZE	8 -/**   * How big a byte array to use for inflate decompression   * Bigger is faster but uses more RAM.   * Must be >= 32768 due to the PNG 32K sliding window @@ -73,7 +67,7 @@ typedef struct PNG_input {  	uint8_t		*pbuf;							// The pointer to the next byte  	uint32_t	chunklen;						// The number of bytes left in the current PNG chunk  	uint32_t	chunknext;						// The file position of the next PNG chunk -	uint8_t		buf[PNG_FILE_BUFFER_SIZE];		// Must be a minimum of 8 bytes to hold a chunk header +	uint8_t		buf[GDISP_IMAGE_PNG_FILE_BUFFER_SIZE];		// Must be a minimum of 8 bytes to hold a chunk header  	} PNG_input;  // Handle the display output and windowing @@ -191,8 +185,8 @@ gotchunk:  	// Try to read data some from the chunk  	sz = d->i.chunklen; -	if (sz > PNG_FILE_BUFFER_SIZE) -		sz = PNG_FILE_BUFFER_SIZE; +	if (sz > GDISP_IMAGE_PNG_FILE_BUFFER_SIZE) +		sz = GDISP_IMAGE_PNG_FILE_BUFFER_SIZE;  	if (gfileRead(d->i.f, d->i.buf, sz) != sz)  		return FALSE;  	d->i.chunklen -= sz; diff --git a/src/gdisp/gdisp_options.h b/src/gdisp/gdisp_options.h index ec043769..32429cde 100644 --- a/src/gdisp/gdisp_options.h +++ b/src/gdisp/gdisp_options.h @@ -390,7 +390,7 @@  	#endif  	/**  	 * @brief   The BMP blit buffer size. -	 * @details	Defaults to TRUE +	 * @details	Defaults to 32  	 * @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.  	 */ @@ -520,12 +520,21 @@  	#endif  	/**  	 * @brief   The PNG blit buffer size in pixels. -	 * @details	Defaults to TRUE +	 * @details	Defaults to 32  	 * @note 	Bigger is faster but requires more RAM.  	 */  	#ifndef GDISP_IMAGE_PNG_BLIT_BUFFER_SIZE  		#define GDISP_IMAGE_PNG_BLIT_BUFFER_SIZE	32  	#endif +	/** +	 * @brief   The PNG input file buffer size in bytes. +	 * @details	Defaults to 8 +	 * @note 	Bigger is faster but requires more RAM. +	 * @note 	Must be >= 8 +	 */ +	#ifndef GDISP_IMAGE_PNG_FILE_BUFFER_SIZE +		#define GDISP_IMAGE_PNG_FILE_BUFFER_SIZE	8 +	#endif  /**   * @}   *  | 
