Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Debug info to help track down render test failures
Browse files Browse the repository at this point in the history
  • Loading branch information
slouken committed Nov 17, 2009
1 parent 1663a16 commit 51d6a57
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 2 deletions.
32 changes: 32 additions & 0 deletions test/automated/common/common.c
Expand Up @@ -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; 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;
}
2 changes: 1 addition & 1 deletion test/automated/common/common.h
Expand Up @@ -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. */
Expand Down
3 changes: 2 additions & 1 deletion test/automated/render/render.c
Expand Up @@ -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;
Expand Down Expand Up @@ -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. */
Expand Down

0 comments on commit 51d6a57

Please sign in to comment.