--- a/test/automated/surface/surface.c Thu Jul 09 15:01:38 2009 +0000
+++ b/test/automated/surface/surface.c Sat Jul 11 17:57:49 2009 +0000
@@ -96,13 +96,19 @@
/**
* @brief Tests sprite loading.
*/
-static void surface_testLoad (void)
+static void surface_testLoad( SDL_Surface *testsur )
{
int ret;
- SDL_Surface *face, *rface, *testsur;
+ SDL_Surface *face, *rface;
SDL_ATbegin( "Load Test" );
+ /* Clear surface. */
+ ret = SDL_FillRect( testsur, NULL,
+ SDL_MapRGB( testsur->format, 0, 0, 0 ) );
+ if (SDL_ATassert( "SDL_FillRect", ret == 0))
+ return;
+
/* Create the blit surface. */
face = SDL_LoadBMP("../icon.bmp");
if (SDL_ATassert( "SDL_CreateLoadBmp", face != NULL))
@@ -116,12 +122,6 @@
return;
}
- /* Create the test surface. */
- testsur = SDL_CreateRGBSurface( 0, 80, 60, 32,
- RMASK, GMASK, BMASK, AMASK );
- if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL))
- return;
-
/* Convert to 32 bit to compare. */
rface = SDL_ConvertSurface( face, testsur->format, 0 );
if (SDL_ATassert( "SDL_ConvertSurface", rface != NULL))
@@ -133,7 +133,6 @@
return;
/* Clean up. */
- SDL_FreeSurface( testsur );
SDL_FreeSurface( rface );
SDL_FreeSurface( face );
@@ -144,15 +143,20 @@
/**
* @brief Tests the SDL primitives for rendering.
*/
-static void surface_testPrimitives (void)
+static void surface_testPrimitives( SDL_Surface *testsur )
{
int ret;
int x, y;
SDL_Rect rect;
- SDL_Surface *testsur;
SDL_ATbegin( "Primitives Test" );
+ /* Clear surface. */
+ ret = SDL_FillRect( testsur, NULL,
+ SDL_MapRGB( testsur->format, 0, 0, 0 ) );
+ if (SDL_ATassert( "SDL_FillRect", ret == 0))
+ return;
+
/* Create the surface. */
testsur = SDL_CreateRGBSurface( 0, 80, 60, 32,
RMASK, GMASK, BMASK, AMASK );
@@ -211,9 +215,6 @@
surface_compare( testsur, &img_primitives )==0 ))
return;
- /* Clean up. */
- SDL_FreeSurface( testsur );
-
SDL_ATend();
}
@@ -221,19 +222,18 @@
/**
* @brief Tests the SDL primitives with alpha for rendering.
*/
-static void surface_testPrimitivesBlend (void)
+static void surface_testPrimitivesBlend( SDL_Surface *testsur )
{
int ret;
int i, j;
SDL_Rect rect;
- SDL_Surface *testsur;
SDL_ATbegin( "Primitives Blend Test" );
- /* Create the surface. */
- testsur = SDL_CreateRGBSurface( 0, 80, 60, 32,
- RMASK, GMASK, BMASK, AMASK );
- if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL))
+ /* Clear surface. */
+ ret = SDL_FillRect( testsur, NULL,
+ SDL_MapRGB( testsur->format, 0, 0, 0 ) );
+ if (SDL_ATassert( "SDL_FillRect", ret == 0))
return;
/* Create some rectangles for each blend mode. */
@@ -297,9 +297,6 @@
surface_compare( testsur, &img_blend )==0 ))
return;
- /* Clean up. */
- SDL_FreeSurface( testsur );
-
SDL_ATend();
}
@@ -307,15 +304,21 @@
/**
* @brief Tests some blitting routines.
*/
-static void surface_testBlit (void)
+static void surface_testBlit( SDL_Surface *testsur )
{
int ret;
SDL_Rect rect;
- SDL_Surface *face, *testsur;
+ SDL_Surface *face;
int i, j, ni, nj;
SDL_ATbegin( "Blit Tests" );
+ /* Clear surface. */
+ ret = SDL_FillRect( testsur, NULL,
+ SDL_MapRGB( testsur->format, 0, 0, 0 ) );
+ if (SDL_ATassert( "SDL_FillRect", ret == 0))
+ return;
+
/* Create face surface. */
face = SDL_CreateRGBSurfaceFrom( (void*)img_face.pixel_data,
img_face.width, img_face.height, 32, img_face.width*4,
@@ -323,12 +326,6 @@
if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", face != NULL))
return;
- /* Create the test surface. */
- testsur = SDL_CreateRGBSurface( 0, 80, 60, 32,
- RMASK, GMASK, BMASK, AMASK );
- if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL))
- return;
-
/* Constant values. */
rect.w = face->w;
rect.h = face->h;
@@ -415,7 +412,6 @@
/* Clean up. */
SDL_FreeSurface( face );
- SDL_FreeSurface( testsur );
SDL_ATend();
}
@@ -468,16 +464,22 @@
/**
* @brief Tests some more blitting routines.
*/
-static void surface_testBlitBlend (void)
+static void surface_testBlitBlend( SDL_Surface *testsur )
{
int ret;
SDL_Rect rect;
- SDL_Surface *face, *testsur;
+ SDL_Surface *face;
int i, j, ni, nj;
int mode;
SDL_ATbegin( "Blit Blending Tests" );
+ /* Clear surface. */
+ ret = SDL_FillRect( testsur, NULL,
+ SDL_MapRGB( testsur->format, 0, 0, 0 ) );
+ if (SDL_ATassert( "SDL_FillRect", ret == 0))
+ return;
+
/* Create the blit surface. */
face = SDL_CreateRGBSurfaceFrom( (void*)img_face.pixel_data,
img_face.width, img_face.height, 32, img_face.width*4,
@@ -485,12 +487,6 @@
if (SDL_ATassert( "SDL_CreateRGBSurfaceFrom", face != NULL))
return;
- /* Create the test surface. */
- testsur = SDL_CreateRGBSurface( 0, 80, 60, 32,
- RMASK, GMASK, BMASK, AMASK );
- if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL))
- return;
-
/* Set alpha mod. */
ret = SDL_SetSurfaceAlphaMod( face, 100 );
if (SDL_ATassert( "SDL_SetSurfaceAlphaMod", ret == 0))
@@ -585,7 +581,6 @@
/* Clean up. */
SDL_FreeSurface( face );
- SDL_FreeSurface( testsur );
SDL_ATend();
}
@@ -598,17 +593,30 @@
{
(void) argc;
(void) argv;
+ SDL_Surface *testsur;
SDL_ATinit( "SDL_Surface" );
/* Initializes the SDL subsystems. */
SDL_Init(0);
- surface_testLoad();
- surface_testPrimitives();
- surface_testPrimitivesBlend();
- surface_testBlit();
- surface_testBlitBlend();
+ SDL_ATbegin( "Creating Testsurface" );
+ /* Create the test surface. */
+ testsur = SDL_CreateRGBSurface( 0, 80, 60, 32,
+ RMASK, GMASK, BMASK, AMASK );
+ if (SDL_ATassert( "SDL_CreateRGBSurface", testsur != NULL))
+ return -1;
+ SDL_ATend();
+
+ /* Software blitting. */
+ surface_testLoad( testsur );
+ surface_testPrimitives( testsur );
+ surface_testPrimitivesBlend( testsur );
+ surface_testBlit( testsur );
+ surface_testBlitBlend( testsur );
+
+ /* Clean up. */
+ SDL_FreeSurface( testsur );
/* Exit SDL. */
SDL_Quit();