diff test/automated/render/render.c @ 3558:5f038ec1a1af

Added a test to check the read/write pixels API
author Sam Lantinga <slouken@libsdl.org>
date Mon, 14 Dec 2009 06:35:59 +0000
parents 0267b8b1595c
children f638ded38b8a
line wrap: on
line diff
--- a/test/automated/render/render.c	Mon Dec 14 06:35:27 2009 +0000
+++ b/test/automated/render/render.c	Mon Dec 14 06:35:59 2009 +0000
@@ -37,6 +37,7 @@
 static int render_hasTexAlpha (void);
 static int render_clearScreen (void);
 /* Testcases. */
+static int render_testReadWrite (void);
 static int render_testPrimitives (void);
 static int render_testPrimitivesBlend (void);
 static int render_testBlit (void);
@@ -363,6 +364,31 @@
 
 
 /**
+ * @brief Test reading and writing framebuffer
+ */
+static int render_testReadWrite (void)
+{
+   int ret;
+   SDL_Rect rect;
+
+   /* Write pixels. */
+   rect.x = 0;
+   rect.y = 0;
+   rect.w = 80;
+   rect.h = 60;
+   ret = SDL_RenderWritePixels( &rect, SDL_PIXELFORMAT_RGB24, img_primitives.pixel_data, img_primitives.width*img_primitives.bytes_per_pixel );
+   if (SDL_ATassert( "SDL_RenderWritePixels", ret==0) )
+      return 1;
+
+   /* See if it's the same. */
+   if (render_compare( "Read/write output not the same.", &img_primitives, ALLOWABLE_ERROR_OPAQUE ))
+      return -1;
+
+   return 0;
+}
+
+
+/**
  * @brief Tests the SDL primitives for rendering.
  */
 static int render_testPrimitives (void)
@@ -932,6 +958,9 @@
       SDL_ATprintVerbose( 1, "      Texture Alpha Mod supported\n" );
 
    /* Software surface blitting. */
+   ret = render_testReadWrite();
+   if (ret)
+      return -1;
    ret = render_testPrimitives();
    if (ret)
       return -1;