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

Commit

Permalink
Browse files Browse the repository at this point in the history
Fixed some bugs in the automated test suite, revealed by working SDL_…
…RenderReadPixels()
  • Loading branch information
slouken committed Nov 17, 2009
1 parent 9f80d60 commit 1744287
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 23 deletions.
23 changes: 20 additions & 3 deletions test/automated/common/common.c
Expand Up @@ -46,9 +46,26 @@ int surface_compare( SDL_Surface *sur, const SurfaceImage_t *img )
break;

case 4:
ret += !( (p[0] == pd[0]) &&
(p[1] == pd[1]) &&
(p[2] == pd[2]) );
{
int fail;
Uint8 R, G, B, A;

SDL_GetRGBA(*(Uint32*)p, sur->format, &R, &G, &B, &A);

if (img->bytes_per_pixel == 3) {
fail = !( (R == pd[0]) &&
(G == pd[1]) &&
(B == pd[2]) );
} else {
fail = !( (R == pd[0]) &&
(G == pd[1]) &&
(B == pd[2]) &&
(A == pd[3]) );
}
if (fail) {
++ret;
}
}
break;
}
}
Expand Down
16 changes: 4 additions & 12 deletions test/automated/common/common.h
Expand Up @@ -11,19 +11,11 @@
# define COMMON_H


#if (SDL_BYTEORDER == SDL_BIG_ENDIAN)
# define FORMAT SDL_PIXELFORMAT_RGBA8888
# define RMASK 0xff000000 /**< Red bit mask. */
# define GMASK 0x00ff0000 /**< Green bit mask. */
# define BMASK 0x0000ff00 /**< Blue bit mask. */
# define AMASK 0x000000ff /**< Alpha bit mask. */
#else
# define FORMAT SDL_PIXELFORMAT_ABGR8888
# define RMASK 0x000000ff /**< Red bit mask. */
# define GMASK 0x0000ff00 /**< Green bit mask. */
# define BMASK 0x00ff0000 /**< Blue bit mask. */
# define FORMAT SDL_PIXELFORMAT_ARGB8888
# define AMASK 0xff000000 /**< Alpha bit mask. */
#endif
# define RMASK 0x00ff0000 /**< Red bit mask. */
# define GMASK 0x0000ff00 /**< Green bit mask. */
# define BMASK 0x000000ff /**< Blue bit mask. */


typedef struct SurfaceImage_s {
Expand Down
32 changes: 24 additions & 8 deletions test/automated/surface/surface.c
Expand Up @@ -97,12 +97,6 @@ static void surface_testPrimitives( SDL_Surface *testsur )
if (SDL_ATassert( "SDL_FillRect", ret == 0))
return;

/* Create the surface. */
testsur = SDL_CreateRGBSurface( 0, 80, 60, 32,
RMASK, GMASK, BMASK, AMASK );
if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL))
return;

/* Draw a rectangle. */
rect.x = 40;
rect.y = 0;
Expand Down Expand Up @@ -263,7 +257,18 @@ static void surface_testBlit( SDL_Surface *testsur )
/* Create face surface. */
face = SDL_CreateRGBSurfaceFrom( (void*)img_face.pixel_data,
img_face.width, img_face.height, 32, img_face.width*4,
RMASK, GMASK, BMASK, AMASK );
#if (SDL_BYTEORDER == SDL_BIG_ENDIAN)
0xff000000, /* Red bit mask. */
0x00ff0000, /* Green bit mask. */
0x0000ff00, /* Blue bit mask. */
0x000000ff /* Alpha bit mask. */
#else
0x000000ff, /* Red bit mask. */
0x0000ff00, /* Green bit mask. */
0x00ff0000, /* Blue bit mask. */
0xff000000 /* Alpha bit mask. */
#endif
);
if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", face != NULL))
return;

Expand Down Expand Up @@ -424,7 +429,18 @@ static void surface_testBlitBlend( SDL_Surface *testsur )
/* Create the blit surface. */
face = SDL_CreateRGBSurfaceFrom( (void*)img_face.pixel_data,
img_face.width, img_face.height, 32, img_face.width*4,
RMASK, GMASK, BMASK, AMASK );
#if (SDL_BYTEORDER == SDL_BIG_ENDIAN)
0xff000000, /* Red bit mask. */
0x00ff0000, /* Green bit mask. */
0x0000ff00, /* Blue bit mask. */
0x000000ff /* Alpha bit mask. */
#else
0x000000ff, /* Red bit mask. */
0x0000ff00, /* Green bit mask. */
0x00ff0000, /* Blue bit mask. */
0xff000000 /* Alpha bit mask. */
#endif
);
if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", face != NULL))
return;

Expand Down

0 comments on commit 1744287

Please sign in to comment.