From 4c5587b78d359621f0c0bfa2d95d0603b3558191 Mon Sep 17 00:00:00 2001 From: inmarket Date: Fri, 27 Sep 2013 01:36:31 +1000 Subject: [PATCH] Update animated image demo to better support small displays --- .../modules/gdisp/gdisp_images_animated/main.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/demos/modules/gdisp/gdisp_images_animated/main.c b/demos/modules/gdisp/gdisp_images_animated/main.c index c5260174..58558185 100644 --- a/demos/modules/gdisp/gdisp_images_animated/main.c +++ b/demos/modules/gdisp/gdisp_images_animated/main.c @@ -38,7 +38,7 @@ #define USE_MEMORY_FILE TRUE // Non-Win32 - use the compiled in image #endif -#define SHOW_ERROR(color) gdispFillArea(swidth-10, 0, 10, sheight, color) +#define SHOW_ERROR(color) gdispFillArea(errx, erry, errcx, errcy, color) #if USE_MEMORY_FILE #include "testanim.h" @@ -57,7 +57,7 @@ static gdispImage myImage; * Orange - Decoding a frame has produced an error. */ int main(void) { - coord_t swidth, sheight; + coord_t swidth, sheight, errx, erry, errcx, errcy; delaytime_t delay; gfxInit(); // Initialize the display @@ -68,6 +68,12 @@ int main(void) { swidth = gdispGetWidth(); sheight = gdispGetHeight(); + // Work out our error indicator area + errx = swidth-10; + erry = 0; + errcx = 10; + errcy = sheight; + // Set up IO for our image #if USE_MEMORY_FILE gdispImageSetMemoryReader(&myImage, testanim); @@ -77,11 +83,16 @@ int main(void) { if (gdispImageOpen(&myImage) == GDISP_IMAGE_ERR_OK) { gdispImageSetBgColor(&myImage, MY_BG_COLOR); + // Adjust the error indicator area if necessary + if (myImage.width > errx && myImage.height < sheight) { + errx = 0; erry = sheight-10; + errcx = swidth; errcy = 10; + } while(1) { #if USE_IMAGE_CACHE gdispImageCache(&myImage); #endif - if (gdispImageDraw(&myImage, 5, 5, myImage.width, myImage.height, 0, 0) != GDISP_IMAGE_ERR_OK) { + if (gdispImageDraw(&myImage, 0, 0, myImage.width, myImage.height, 0, 0) != GDISP_IMAGE_ERR_OK) { SHOW_ERROR(Orange); break; }