From 22c1e6618099caeaf5077b379a0375c02317896a Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 21 Nov 2009 05:25:08 +0000 Subject: [PATCH] pixels don't need to be dynamically allocated Added a dump_screen() function to assist with test failure diagnosis --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%404208 --- test/automated/render/render.c | 39 ++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/test/automated/render/render.c b/test/automated/render/render.c index 55e7e3727..1fa881176 100644 --- a/test/automated/render/render.c +++ b/test/automated/render/render.c @@ -58,14 +58,9 @@ static int render_compare( const char *msg, const SurfaceImage_t *s ) (void) msg; (void) s; int ret; - void *pix; + Uint8 pix[4*80*60]; SDL_Surface *testsur; - /* Allocate pixel space. */ - pix = malloc( 4*80*60 ); - if (SDL_ATassert( "malloc", pix!=NULL )) - return 1; - /* Read pixels. */ ret = SDL_RenderReadPixels( NULL, FORMAT, pix, 80*4 ); if (SDL_ATassert( "SDL_RenderReadPixels", ret==0) ) @@ -84,11 +79,41 @@ static int render_compare( const char *msg, const SurfaceImage_t *s ) /* Clean up. */ SDL_FreeSurface( testsur ); - free(pix); return 0; } +#if 0 +static int dump_screen( int index ) +{ + int ret; + char name[1024]; + Uint8 pix[4*80*60]; + SDL_Surface *testsur; + SDL_RendererInfo info; + + /* Read pixels. */ + ret = SDL_RenderReadPixels( NULL, FORMAT, pix, 80*4 ); + if (SDL_ATassert( "SDL_RenderReadPixels", ret==0) ) + return 1; + + /* Create surface. */ + testsur = SDL_CreateRGBSurfaceFrom( pix, 80, 60, 32, 80*4, + RMASK, GMASK, BMASK, AMASK); + if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", testsur!=NULL )) + return 1; + + /* Dump surface. */ + SDL_GetRendererInfo(&info); + sprintf(name, "%s-%s-%d.bmp", SDL_GetCurrentVideoDriver(), info.name, index); + SDL_SaveBMP(testsur, name); + + /* Clean up. */ + SDL_FreeSurface( testsur ); + + return 0; +} +#endif /** * @brief Checks to see if functionality is supported.