Commit 7aadbd91 authored by Sam Lantinga's avatar Sam Lantinga

Updated the template code

parent 1c631c85
...@@ -17,10 +17,15 @@ randomInt(int min, int max) ...@@ -17,10 +17,15 @@ randomInt(int min, int max)
} }
void void
render(void) render(SDL_Renderer *renderer)
{ {
Uint8 r, g, b; Uint8 r, g, b;
/* Clear the screen */
SDL_SetRenderDrawColor(0, 0, 0, 255);
SDL_SetRenderClear(renderer);
/* Come up with a random rectangle */ /* Come up with a random rectangle */
SDL_Rect rect; SDL_Rect rect;
rect.w = randomInt(64, 128); rect.w = randomInt(64, 128);
...@@ -32,46 +37,48 @@ render(void) ...@@ -32,46 +37,48 @@ render(void)
r = randomInt(50, 255); r = randomInt(50, 255);
g = randomInt(50, 255); g = randomInt(50, 255);
b = randomInt(50, 255); b = randomInt(50, 255);
SDL_SetRenderDrawColor(r, g, b, 255); SDL_SetRenderDrawColor(renderer, r, g, b, 255);
/* Fill the rectangle in the color */ /* Fill the rectangle in the color */
SDL_RenderFillRect(&rect); SDL_RenderFillRect(renderer, &rect);
/* update screen */ /* update screen */
SDL_RenderPresent(); SDL_RenderPresent(renderer);
} }
int int
main(int argc, char *argv[]) main(int argc, char *argv[])
{ {
SDL_WindowID windowID; SDL_Window *window;
SDL_Renderer *renderer;
int done; int done;
SDL_Event event; SDL_Event event;
/* initialize SDL */ /* initialize SDL */
if (SDL_Init(SDL_INIT_VIDEO) < 0) { if (SDL_Init(SDL_INIT_VIDEO) < 0) {
printf("Could not initialize SDL\n"); printf("Could not initialize SDL\n");
return 1;
} }
/* seed random number generator */ /* seed random number generator */
srand(time(NULL)); srand(time(NULL));
/* create window and renderer */ /* create window and renderer */
windowID = window =
SDL_CreateWindow(NULL, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_CreateWindow(NULL, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT,
SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN); SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN);
if (windowID == 0) { if (!window) {
printf("Could not initialize Window\n"); printf("Could not initialize Window\n");
return 1;
} }
if (SDL_CreateRenderer(windowID, -1, 0) != 0) {
renderer = SDL_CreateRenderer(window, -1, 0);
if (renderer) {
printf("Could not create renderer\n"); printf("Could not create renderer\n");
return 1;
} }
/* Fill screen with black */
SDL_RenderClear();
/* Enter render loop, waiting for user to quit */ /* Enter render loop, waiting for user to quit */
done = 0; done = 0;
while (!done) { while (!done) {
...@@ -80,7 +87,7 @@ main(int argc, char *argv[]) ...@@ -80,7 +87,7 @@ main(int argc, char *argv[])
done = 1; done = 1;
} }
} }
render(); render(renderer);
SDL_Delay(1); SDL_Delay(1);
} }
......
...@@ -75,12 +75,12 @@ static void createSurface (int fullscreen) ...@@ -75,12 +75,12 @@ static void createSurface (int fullscreen)
// Create window // Create window
gScreen = SDL_SetVideoMode (640, 480, 0, flags); gScreen = SDL_SetVideoMode (640, 480, 0, flags);
if (gScreen == NULL) { if (gScreen == NULL) {
fprintf (stderr, "Couldn't set 640x480 OpenGL video mode: %s\n", fprintf (stderr, "Couldn't set 640x480 OpenGL video mode: %s\n",
SDL_GetError()); SDL_GetError());
SDL_Quit(); SDL_Quit();
exit(2); exit(2);
} }
} }
static void initGL () static void initGL ()
...@@ -100,29 +100,29 @@ static void mainLoop () ...@@ -100,29 +100,29 @@ static void mainLoop ()
SDL_Event event; SDL_Event event;
int done = 0; int done = 0;
int fps = 24; int fps = 24;
int delay = 1000/fps; int delay = 1000/fps;
int thenTicks = -1; int thenTicks = -1;
int nowTicks; int nowTicks;
while ( !done ) { while ( !done ) {
/* Check for events */ /* Check for events */
while ( SDL_PollEvent (&event) ) { while ( SDL_PollEvent (&event) ) {
switch (event.type) { switch (event.type) {
case SDL_MOUSEMOTION: case SDL_MOUSEMOTION:
break; break;
case SDL_MOUSEBUTTONDOWN: case SDL_MOUSEBUTTONDOWN:
break; break;
case SDL_KEYDOWN: case SDL_KEYDOWN:
/* Any keypress quits the app... */ /* Any keypress quits the app... */
case SDL_QUIT: case SDL_QUIT:
done = 1; done = 1;
break; break;
default: default:
break; break;
} }
} }
// Draw at 24 hz // Draw at 24 hz
// This approach is not normally recommended - it is better to // This approach is not normally recommended - it is better to
...@@ -144,18 +144,18 @@ static void mainLoop () ...@@ -144,18 +144,18 @@ static void mainLoop ()
} }
SDL_Delay (delay); SDL_Delay (delay);
} }
} }
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
// Init SDL video subsystem // Init SDL video subsystem
if ( SDL_Init (SDL_INIT_VIDEO) < 0 ) { if ( SDL_Init (SDL_INIT_VIDEO) < 0 ) {
fprintf(stderr, "Couldn't initialize SDL: %s\n", fprintf(stderr, "Couldn't initialize SDL: %s\n",
SDL_GetError()); SDL_GetError());
exit(1); exit(1);
} }
// Set GL context attributes // Set GL context attributes
initAttributes (); initAttributes ();
...@@ -173,7 +173,7 @@ int main(int argc, char *argv[]) ...@@ -173,7 +173,7 @@ int main(int argc, char *argv[])
mainLoop (); mainLoop ();
// Cleanup // Cleanup
SDL_Quit(); SDL_Quit();
return 0; return 0;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment