From 1912eaa34df5891af0f46141411e53da945ef54d Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 14 Dec 2009 06:35:59 +0000 Subject: [PATCH] Added a test to check the read/write pixels API --- test/automated/common/common.c | 1 - test/automated/render/render.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/test/automated/common/common.c b/test/automated/common/common.c index 7abf0a68a..60da7b864 100644 --- a/test/automated/common/common.c +++ b/test/automated/common/common.c @@ -82,7 +82,6 @@ int surface_compare( SDL_Surface *sur, const SurfaceImage_t *img, int allowable_ bpp = sur->format->BytesPerPixel; - /* Compare image - should be same format. */ if (bpp == 4) { for (j=0; jh; j++) { for (i=0; iw; i++) { diff --git a/test/automated/render/render.c b/test/automated/render/render.c index 91fe5138e..f87e151e8 100644 --- a/test/automated/render/render.c +++ b/test/automated/render/render.c @@ -37,6 +37,7 @@ static int render_hasTexColor (void); 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); @@ -362,6 +363,31 @@ static int render_clearScreen (void) } +/** + * @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. */ @@ -932,6 +958,9 @@ int render_runTests (void) 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;