diff test/automated/render/render.c @ 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 bb35055cb101
children a288892cd24c
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();