diff --git a/test/testdrawchessboard.c b/test/testdrawchessboard.c index c6a33548bf..06429a265b 100644 --- a/test/testdrawchessboard.c +++ b/test/testdrawchessboard.c @@ -12,7 +12,10 @@ This file is created by : Nitin Jain (nitin.j4\samsung.com) */ -/* Sample program: Draw a Chess Board by using SDL_CreateSoftwareRenderer API */ +/* Sample program: Draw a Chess Board by using the SDL render API */ + +/* This allows testing SDL_CreateSoftwareRenderer with the window surface API. Undefine it to use the accelerated renderer instead. */ +#define USE_SOFTWARE_RENDERER #include #include @@ -24,9 +27,11 @@ static SDL_Window *window; static SDL_Renderer *renderer; -static SDL_Surface *surface; static int done; +#ifdef USE_SOFTWARE_RENDERER +static SDL_Surface *surface; +#endif static void DrawChessBoard(void) { @@ -57,7 +62,6 @@ static void DrawChessBoard(void) } } } - SDL_RenderPresent(renderer); } static void loop(void) @@ -65,6 +69,7 @@ static void loop(void) SDL_Event e; while (SDL_PollEvent(&e)) { +#ifdef USE_SOFTWARE_RENDERER /* Re-create when window surface has been resized */ if (e.type == SDL_EVENT_WINDOW_PIXEL_SIZE_CHANGED) { @@ -76,6 +81,7 @@ static void loop(void) SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF); SDL_RenderClear(renderer); } +#endif if (e.type == SDL_EVENT_QUIT) { done = 1; @@ -94,11 +100,19 @@ static void loop(void) } } + /* Clear the rendering surface with the specified color */ + SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF); + SDL_RenderClear(renderer); + DrawChessBoard(); + SDL_RenderPresent(renderer); + +#ifdef USE_SOFTWARE_RENDERER /* Got everything on rendering surface, now Update the drawing image on window screen */ SDL_UpdateWindowSurface(window); +#endif } int main(int argc, char *argv[]) @@ -128,17 +142,17 @@ int main(int argc, char *argv[]) SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Window creation fail : %s\n", SDL_GetError()); return 1; } +#ifdef USE_SOFTWARE_RENDERER surface = SDL_GetWindowSurface(window); renderer = SDL_CreateSoftwareRenderer(surface); +#else + renderer = SDL_CreateRenderer(window, NULL); +#endif if (!renderer) { SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Render creation for surface fail : %s\n", SDL_GetError()); return 1; } - /* Clear the rendering surface with the specified color */ - SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF); - SDL_RenderClear(renderer); - /* Draw the Image on rendering surface */ done = 0; #ifdef SDL_PLATFORM_EMSCRIPTEN