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.
authorMike Gorchak <lestat@i.com.ua>
Fri, 20 Nov 2009 07:11:29 +0000
changeset 3464 09136f534198
parent 3463 06c66b8d5033
child 3465 0cbfec87e4f1
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.
test/automated/render/render.c
--- 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();