test/automated/render/render.c
branchgsoc2009_unit_tests
changeset 3731 f5ddf1b670f0
parent 3730 dafd796f0c95
child 3733 ca544951b504
equal deleted inserted replaced
3730:dafd796f0c95 3731:f5ddf1b670f0
    15 
    15 
    16 /*
    16 /*
    17  * Pull in images for testcases.
    17  * Pull in images for testcases.
    18  */
    18  */
    19 #include "common/images.h"
    19 #include "common/images.h"
       
    20 
       
    21 
       
    22 #define SCREEN_W     80
       
    23 #define SCREEN_H     60
    20 
    24 
    21 
    25 
    22 /*
    26 /*
    23  * Prototypes.
    27  * Prototypes.
    24  */
    28  */
   169 
   173 
   170    /* See if it's the same. */
   174    /* See if it's the same. */
   171    if (render_compare( "Primitives output not the same.", &img_primitives ))
   175    if (render_compare( "Primitives output not the same.", &img_primitives ))
   172       return;
   176       return;
   173 }
   177 }
   174 #if 0
       
   175 
   178 
   176 
   179 
   177 /**
   180 /**
   178  * @brief Tests the SDL primitives with alpha for rendering.
   181  * @brief Tests the SDL primitives with alpha for rendering.
   179  */
   182  */
   181 {
   184 {
   182    int ret;
   185    int ret;
   183    int i, j;
   186    int i, j;
   184    SDL_Rect rect;
   187    SDL_Rect rect;
   185 
   188 
   186    SDL_ATbegin( "Primitives Blend Test" );
       
   187 
       
   188    /* Clear surface. */
   189    /* Clear surface. */
   189    ret = SDL_FillRect( testsur, NULL,
   190    if (render_clearScreen())
   190          SDL_MapRGB( testsur->format, 0, 0, 0 ) );
       
   191    if (SDL_ATassert( "SDL_FillRect", ret == 0))
       
   192       return;
   191       return;
   193 
   192 
   194    /* Create some rectangles for each blend mode. */
   193    /* Create some rectangles for each blend mode. */
   195    ret = SDL_BlendRect( testsur, NULL, SDL_BLENDMODE_NONE, 255, 255, 255, 0 );
   194    ret = SDL_SetRenderDrawColor( 255, 255, 255, 0 );
   196    if (SDL_ATassert( "SDL_BlendRect", ret == 0))
   195    if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
       
   196       return;
       
   197    ret = SDL_SetRenderDrawBlendMode( SDL_BLENDMODE_NONE );
       
   198    if (SDL_ATassert( "SDL_SetSurfaceBlendMode", ret == 0))
       
   199       return;
       
   200    ret = SDL_RenderFill( NULL );
       
   201    if (SDL_ATassert( "SDL_RenderFill", ret == 0))
   197       return;
   202       return;
   198    rect.x = 10;
   203    rect.x = 10;
   199    rect.y = 25;
   204    rect.y = 25;
   200    rect.w = 40;
   205    rect.w = 40;
   201    rect.h = 25;
   206    rect.h = 25;
   202    ret = SDL_BlendRect( testsur, &rect, SDL_BLENDMODE_ADD, 240, 10, 10, 75 );
   207    ret = SDL_SetRenderDrawColor( 240, 10, 10, 75 );
   203    if (SDL_ATassert( "SDL_BlendRect", ret == 0))
   208    if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
       
   209       return;
       
   210    ret = SDL_SetRenderDrawBlendMode( SDL_BLENDMODE_ADD );
       
   211    if (SDL_ATassert( "SDL_SetSurfaceBlendMode", ret == 0))
       
   212       return;
       
   213    ret = SDL_RenderFill( &rect );
       
   214    if (SDL_ATassert( "SDL_RenderFill", ret == 0))
   204       return;
   215       return;
   205    rect.x = 30;
   216    rect.x = 30;
   206    rect.y = 40;
   217    rect.y = 40;
   207    rect.w = 45;
   218    rect.w = 45;
   208    rect.h = 15;
   219    rect.h = 15;
   209    ret = SDL_BlendRect( testsur, &rect, SDL_BLENDMODE_BLEND, 10, 240, 10, 100 );
   220    ret = SDL_SetRenderDrawColor( 10, 240, 10, 100 );
   210    if (SDL_ATassert( "SDL_BlendRect", ret == 0))
   221    if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
       
   222       return;
       
   223    ret = SDL_SetRenderDrawBlendMode( SDL_BLENDMODE_BLEND );
       
   224    if (SDL_ATassert( "SDL_SetSurfaceBlendMode", ret == 0))
       
   225       return;
       
   226    ret = SDL_RenderFill( &rect );
       
   227    if (SDL_ATassert( "SDL_RenderFill", ret == 0))
   211       return;
   228       return;
   212    rect.x = 25;
   229    rect.x = 25;
   213    rect.y = 25;
   230    rect.y = 25;
   214    rect.w = 25;
   231    rect.w = 25;
   215    rect.h = 25;
   232    rect.h = 25;
   216    ret = SDL_BlendRect( testsur, &rect, SDL_BLENDMODE_MOD, 10, 10, 240, 125 );
   233    ret = SDL_SetRenderDrawColor( 10, 10, 240, 125 );
   217    if (SDL_ATassert( "SDL_BlendRect", ret == 0))
   234    if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
       
   235       return;
       
   236    ret = SDL_SetRenderDrawBlendMode( SDL_BLENDMODE_MOD );
       
   237    if (SDL_ATassert( "SDL_SetSurfaceBlendMode", ret == 0))
       
   238       return;
       
   239    ret = SDL_RenderFill( &rect );
       
   240    if (SDL_ATassert( "SDL_RenderFill", ret == 0))
   218       return;
   241       return;
   219 
   242 
   220    /* Draw blended lines, lines for everyone. */
   243    /* Draw blended lines, lines for everyone. */
   221    for (i=0; i<testsur->w; i+=2)  {
   244    for (i=0; i<SCREEN_W; i+=2)  {
   222       ret = SDL_BlendLine( testsur, 0, 0, i, 59,
   245       ret = SDL_SetRenderDrawColor( 60+2*i, 240-2*i, 50, 3*i );
   223             (((i/2)%3)==0) ? SDL_BLENDMODE_BLEND :
   246       if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
   224                (((i/2)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD,
       
   225             60+2*i, 240-2*i, 50, 3*i );
       
   226       if (SDL_ATassert( "SDL_BlendLine", ret == 0))
       
   227          return;
   247          return;
   228    }
   248       ret = SDL_SetRenderDrawBlendMode((((i/2)%3)==0) ? SDL_BLENDMODE_BLEND :
   229    for (i=0; i<testsur->h; i+=2)  {
   249             (((i/2)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD );
   230       ret = SDL_BlendLine( testsur, 0, 0, 79, i,
   250       if (SDL_ATassert( "SDL_SetSurfaceBlendMode", ret == 0))
   231             (((i/2)%3)==0) ? SDL_BLENDMODE_BLEND :
       
   232                (((i/2)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD,
       
   233             60+2*i, 240-2*i, 50, 3*i );
       
   234       if (SDL_ATassert( "SDL_BlendLine", ret == 0))
       
   235          return;
   251          return;
       
   252       ret = SDL_RenderLine( 0, 0, i, 59 );
       
   253       if (SDL_ATassert( "SDL_RenderLine", ret == 0))
       
   254          return;
       
   255    }
       
   256    for (i=0; i<SCREEN_H; i+=2)  {
       
   257       ret = SDL_SetRenderDrawColor( 60+2*i, 240-2*i, 50, 3*i );
       
   258       if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
       
   259          return;
       
   260       ret = SDL_SetRenderDrawBlendMode((((i/2)%3)==0) ? SDL_BLENDMODE_BLEND :
       
   261             (((i/2)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD );
       
   262       if (SDL_ATassert( "SDL_SetSurfaceBlendMode", ret == 0))
       
   263          return;
       
   264       ret = SDL_RenderLine( 0, 0, 79, i );
       
   265       if (SDL_ATassert( "SDL_RenderLine", ret == 0))
       
   266          return;
   236    }
   267    }
   237 
   268 
   238    /* Draw points. */
   269    /* Draw points. */
   239    for (j=0; j<testsur->h; j+=3) {
   270    for (j=0; j<SCREEN_H; j+=3) {
   240       for (i=0; i<testsur->w; i+=3) {
   271       for (i=0; i<SCREEN_W; i+=3) {
   241       ret = SDL_BlendPoint( testsur, i, j,
   272          ret = SDL_SetRenderDrawColor( j*4, i*3, j*4, i*3 );
   242             ((((i+j)/3)%3)==0) ? SDL_BLENDMODE_BLEND :
   273          if (SDL_ATassert( "SDL_SetRenderDrawColor", ret == 0))
   243                ((((i+j)/3)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD,
   274             return;
   244             j*4, i*3, j*4, i*3 );
   275          ret = SDL_SetRenderDrawBlendMode( ((((i+j)/3)%3)==0) ? SDL_BLENDMODE_BLEND :
   245       if (SDL_ATassert( "SDL_BlendPoint", ret == 0))
   276                ((((i+j)/3)%3)==1) ? SDL_BLENDMODE_ADD : SDL_BLENDMODE_MOD );
   246          return;
   277          if (SDL_ATassert( "SDL_SetSurfaceBlendMode", ret == 0))
       
   278             return;
       
   279          ret = SDL_RenderPoint( i, j );
       
   280          if (SDL_ATassert( "SDL_RenderPoint", ret == 0))
       
   281             return;
   247       }
   282       }
   248    }
   283    }
   249 
   284 
   250    /* See if it's the same. */
   285    /* See if it's the same. */
   251    if (SDL_ATassert( "Primitives output not the same.",
   286    if (render_compare( "Blended primitives output not the same.", &img_primitives ))
   252             render_compare( testsur, &img_blend )==0 ))
   287       return;
   253       return;
   288 }
   254 
   289 #if 0
   255    SDL_ATend();
       
   256 }
       
   257 
   290 
   258 
   291 
   259 /**
   292 /**
   260  * @brief Tests some blitting routines.
   293  * @brief Tests some blitting routines.
   261  */
   294  */