changeset 3464:09136f534198

1. SDL_RenderPresent() call has been added after each test to be sure, that all graphics output is flushed in case if it was asynchronous. 2. After each renderer test window recreation has been added.
author Mike Gorchak <lestat@i.com.ua>
date Fri, 20 Nov 2009 07:11:29 +0000
parents 06c66b8d5033
children 0cbfec87e4f1
files test/automated/render/render.c
diffstat 1 files changed, 34 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/test/automated/render/render.c	Fri Nov 20 07:08:28 2009 +0000
+++ b/test/automated/render/render.c	Fri Nov 20 07:11:29 2009 +0000
@@ -329,6 +329,9 @@
       return -1;
    */
 
+   /* Flush all asynchronous operations */
+   SDL_RenderPresent();
+
    return 0;
 }
 
@@ -410,6 +413,9 @@
    if (SDL_ATassert( "SDL_RenderLine", ret == 0))
       return -1;
 
+   /* Flush all asynchronous operations */
+   SDL_RenderPresent();
+
    /* See if it's the same. */
    if (render_compare( "Primitives output not the same.", &img_primitives ))
       return -1;
@@ -527,6 +533,9 @@
       }
    }
 
+   /* Flush all asynchronous operations */
+   SDL_RenderPresent();
+
    /* See if it's the same. */
    if (render_compare( "Blended primitives output not the same.", &img_blend ))
       return -1;
@@ -579,6 +588,9 @@
    /* Clean up. */
    SDL_DestroyTexture( tface );
 
+   /* Flush all asynchronous operations */
+   SDL_RenderPresent();
+
    /* See if it's the same. */
    if (render_compare( "Blit output not the same.", &img_blit ))
       return -1;
@@ -636,6 +648,9 @@
    /* Clean up. */
    SDL_DestroyTexture( tface );
 
+   /* Flush all asynchronous operations */
+   SDL_RenderPresent();
+
    /* See if it's the same. */
    if (render_compare( "Blit output not the same (using SDL_SetTextureColorMod).",
             &img_blitColour ))
@@ -698,6 +713,9 @@
    /* Clean up. */
    SDL_DestroyTexture( tface );
 
+   /* Flush all asynchronous operations */
+   SDL_RenderPresent();
+
    /* See if it's the same. */
    if (render_compare( "Blit output not the same (using SDL_SetSurfaceAlphaMod).",
             &img_blitAlpha ))
@@ -745,6 +763,9 @@
       }
    }
 
+   /* Flush all asynchronous operations */
+   SDL_RenderPresent();
+
    return 0;
 }
 
@@ -862,6 +883,9 @@
    /* Clean up. */
    SDL_DestroyTexture( tface );
 
+   /* Flush all asynchronous operations */
+   SDL_RenderPresent();
+
    /* Check to see if matches. */
    if (render_compare( "Blit blending output not the same (using SDL_BLENDMODE_*).",
             &img_blendAll ))
@@ -879,7 +903,7 @@
 int render_runTests (void)
 {
    int ret;
-  
+
    /* No error. */
    ret = 0;
 
@@ -911,7 +935,6 @@
       return -1;
    ret = render_testBlitBlend();
 
-
    return ret;
 }
 
@@ -1004,6 +1027,14 @@
       SDL_ATend();
       for (j=0; j<nr; j++) {
 
+         /* We have to recreate window each time, because opengl and opengles renderers */
+         /* both add SDL_WINDOW_OPENGL flag for window, that was last used              */
+         SDL_DestroyWindow(wid);
+         wid = SDL_CreateWindow( msg, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
+               80, 60, 0 );
+         if (SDL_ATassert( "SDL_CreateWindow", wid!=0 ))
+            goto err_cleanup;
+
          /* Get renderer info. */
          ret = SDL_GetRenderDriverInfo( j, &renderer );
          if (ret != 0)
@@ -1021,9 +1052,9 @@
           * Run tests.
           */
          ret = render_runTests();
+
          if (ret)
             continue;
-
          SDL_ATend();
       }
 
@@ -1036,7 +1067,6 @@
       failed += SDL_ATfinish();
    }
 
-
    /* Exit SDL. */
    SDL_Quit();