From 51d6a5721dea6016c44218ef755e48cd1869d8a6 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Tue, 17 Nov 2009 06:51:14 +0000 Subject: [PATCH] Debug info to help track down render test failures --- test/automated/common/common.c | 32 ++++++++++++++++++++++++++++++++ test/automated/common/common.h | 2 +- test/automated/render/render.c | 3 ++- 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/test/automated/common/common.c b/test/automated/common/common.c index 2839942af..899480ca1 100644 --- a/test/automated/common/common.c +++ b/test/automated/common/common.c @@ -73,5 +73,37 @@ int surface_compare( SDL_Surface *sur, const SurfaceImage_t *img ) SDL_UnlockSurface( sur ); + if (ret) { + SDL_SaveBMP(sur, "fail.bmp"); + + SDL_LockSurface( sur ); + + bpp = sur->format->BytesPerPixel; + + /* Compare image - should be same format. */ + if (bpp == 4) { + for (j=0; jh; j++) { + for (i=0; iw; i++) { + p = (Uint8 *)sur->pixels + j * sur->pitch + i * bpp; + pd = (Uint8 *)img->pixel_data + (j*img->width + i) * img->bytes_per_pixel; + Uint8 R, G, B, A; + + R = pd[0]; + G = pd[1]; + B = pd[2]; + if (img->bytes_per_pixel == 4) { + A = pd[3]; + } else { + A = 0; + } + *(Uint32*)p = (A << 24) | (R << 16) | (G << 8) | B; + } + } + } + + SDL_UnlockSurface( sur ); + + SDL_SaveBMP(sur, "good.bmp"); + } return ret; } diff --git a/test/automated/common/common.h b/test/automated/common/common.h index 573c2b74f..dcf7ca139 100644 --- a/test/automated/common/common.h +++ b/test/automated/common/common.h @@ -11,7 +11,7 @@ # define COMMON_H -# define FORMAT SDL_PIXELFORMAT_ARGB8888 +# define FORMAT SDL_PIXELFORMAT_ARGB8888 # define AMASK 0xff000000 /**< Alpha bit mask. */ # define RMASK 0x00ff0000 /**< Red bit mask. */ # define GMASK 0x0000ff00 /**< Green bit mask. */ diff --git a/test/automated/render/render.c b/test/automated/render/render.c index de2ddb59f..567803b40 100644 --- a/test/automated/render/render.c +++ b/test/automated/render/render.c @@ -67,6 +67,7 @@ static int render_compare( const char *msg, const SurfaceImage_t *s ) return 1; /* Read pixels. */ + SDL_RenderPresent(); ret = SDL_RenderReadPixels( NULL, FORMAT, pix, 80*4 ); if (SDL_ATassert( "SDL_RenderReadPixels", ret==0) ) return 1; @@ -1012,7 +1013,7 @@ int test_render (void) goto err; /* Create window. */ wid = SDL_CreateWindow( msg, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, - 80, 60, 0 ); + 80, 60, SDL_WINDOW_SHOWN ); if (SDL_ATassert( "SDL_CreateWindow", wid!=0 )) goto err; /* Check title. */