Skip to content

Commit e2f2736

Browse files
ccawley2011slouken
authored andcommitted
testdrawchessboard: Allow using the standard render API
1 parent da4608e commit e2f2736

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

test/testdrawchessboard.c

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,10 @@
1212
This file is created by : Nitin Jain (nitin.j4@samsung.com)
1313
*/
1414

15-
/* Sample program: Draw a Chess Board by using SDL_CreateSoftwareRenderer API */
15+
/* Sample program: Draw a Chess Board by using the SDL render API */
16+
17+
/* This allows testing SDL_CreateSoftwareRenderer with the window surface API. Undefine it to use the accelerated renderer instead. */
18+
#define USE_SOFTWARE_RENDERER
1619

1720
#include <stdlib.h>
1821
#include <stdio.h>
@@ -25,9 +28,12 @@
2528

2629
SDL_Window *window;
2730
SDL_Renderer *renderer;
28-
SDL_Surface *surface;
2931
int done;
3032

33+
#ifdef USE_SOFTWARE_RENDERER
34+
SDL_Surface *surface;
35+
#endif
36+
3137
void DrawChessBoard(void)
3238
{
3339
int row = 0, column = 0, x = 0;
@@ -50,14 +56,14 @@ void DrawChessBoard(void)
5056
SDL_RenderFillRect(renderer, &rect);
5157
}
5258
}
53-
SDL_RenderPresent(renderer);
5459
}
5560

5661
void loop(void)
5762
{
5863
SDL_Event e;
5964
while (SDL_PollEvent(&e)) {
6065

66+
#ifdef USE_SOFTWARE_RENDERER
6167
/* Re-create when window has been resized */
6268
if ((e.type == SDL_WINDOWEVENT) && (e.window.event == SDL_WINDOWEVENT_SIZE_CHANGED)) {
6369

@@ -69,6 +75,7 @@ void loop(void)
6975
SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);
7076
SDL_RenderClear(renderer);
7177
}
78+
#endif
7279

7380
if (e.type == SDL_QUIT) {
7481
done = 1;
@@ -87,11 +94,19 @@ void loop(void)
8794
}
8895
}
8996

97+
/* Clear the rendering surface with the specified color */
98+
SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);
99+
SDL_RenderClear(renderer);
100+
90101
DrawChessBoard();
91102

103+
SDL_RenderPresent(renderer);
104+
105+
#ifdef USE_SOFTWARE_RENDERER
92106
/* Got everything on rendering surface,
93107
now Update the drawing image on window screen */
94108
SDL_UpdateWindowSurface(window);
109+
#endif
95110
}
96111

97112
int main(int argc, char *argv[])
@@ -111,17 +126,17 @@ int main(int argc, char *argv[])
111126
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Window creation fail : %s\n", SDL_GetError());
112127
return 1;
113128
}
129+
#ifdef USE_SOFTWARE_RENDERER
114130
surface = SDL_GetWindowSurface(window);
115131
renderer = SDL_CreateSoftwareRenderer(surface);
132+
#else
133+
renderer = SDL_CreateRenderer(window, -1, 0);
134+
#endif
116135
if (!renderer) {
117136
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Render creation for surface fail : %s\n", SDL_GetError());
118137
return 1;
119138
}
120139

121-
/* Clear the rendering surface with the specified color */
122-
SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF);
123-
SDL_RenderClear(renderer);
124-
125140
/* Draw the Image on rendering surface */
126141
done = 0;
127142
#ifdef __EMSCRIPTEN__

0 commit comments

Comments
 (0)