Fixed some bugs in the automated test suite, revealed by working SDL_RenderReadPixels()
--HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%404180
This commit is contained in:
parent
82d400ccd4
commit
c635254fa1
3 changed files with 48 additions and 23 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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;
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue