diff test/automated/common/common.c @ 3441:5271ce790fed

Debug info to help track down render test failures
author Sam Lantinga <slouken@libsdl.org>
date Tue, 17 Nov 2009 06:51:14 +0000
parents 0acec8c9f5c9
children 6b182cbe38ac
line wrap: on
line diff
--- a/test/automated/common/common.c	Tue Nov 17 06:50:29 2009 +0000
+++ b/test/automated/common/common.c	Tue Nov 17 06:51:14 2009 +0000
@@ -73,5 +73,37 @@
 
    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; j<sur->h; j++) {
+            for (i=0; i<sur->w; 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;
 }