Updated the template code

This commit is contained in:
Sam Lantinga 2011-02-20 19:15:00 -08:00
parent 1c631c853c
commit 7aadbd91ac
2 changed files with 51 additions and 44 deletions

View file

@ -17,10 +17,15 @@ randomInt(int min, int max)
}
void
render(void)
render(SDL_Renderer *renderer)
{
Uint8 r, g, b;
/* Clear the screen */
SDL_SetRenderDrawColor(0, 0, 0, 255);
SDL_SetRenderClear(renderer);
/* Come up with a random rectangle */
SDL_Rect rect;
rect.w = randomInt(64, 128);
@ -32,45 +37,47 @@ render(void)
r = randomInt(50, 255);
g = 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 */
SDL_RenderFillRect(&rect);
SDL_RenderFillRect(renderer, &rect);
/* update screen */
SDL_RenderPresent();
SDL_RenderPresent(renderer);
}
int
main(int argc, char *argv[])
{
SDL_WindowID windowID;
SDL_Window *window;
SDL_Renderer *renderer;
int done;
SDL_Event event;
/* initialize SDL */
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
printf("Could not initialize SDL\n");
return 1;
}
/* seed random number generator */
srand(time(NULL));
/* create window and renderer */
windowID =
window =
SDL_CreateWindow(NULL, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT,
SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN);
if (windowID == 0) {
if (!window) {
printf("Could not initialize Window\n");
}
if (SDL_CreateRenderer(windowID, -1, 0) != 0) {
printf("Could not create renderer\n");
return 1;
}
/* Fill screen with black */
SDL_RenderClear();
renderer = SDL_CreateRenderer(window, -1, 0);
if (renderer) {
printf("Could not create renderer\n");
return 1;
}
/* Enter render loop, waiting for user to quit */
done = 0;
@ -80,7 +87,7 @@ main(int argc, char *argv[])
done = 1;
}
}
render();
render(renderer);
SDL_Delay(1);
}

View file

@ -78,9 +78,9 @@ static void createSurface (int fullscreen)
fprintf (stderr, "Couldn't set 640x480 OpenGL video mode: %s\n",
SDL_GetError());
SDL_Quit();
exit(2);
}
SDL_Quit();
exit(2);
}
}
static void initGL ()
@ -100,29 +100,29 @@ static void mainLoop ()
SDL_Event event;
int done = 0;
int fps = 24;
int delay = 1000/fps;
int delay = 1000/fps;
int thenTicks = -1;
int nowTicks;
while ( !done ) {
/* Check for events */
while ( SDL_PollEvent (&event) ) {
switch (event.type) {
/* Check for events */
while ( SDL_PollEvent (&event) ) {
switch (event.type) {
case SDL_MOUSEMOTION:
break;
case SDL_MOUSEBUTTONDOWN:
break;
case SDL_KEYDOWN:
/* Any keypress quits the app... */
case SDL_QUIT:
done = 1;
break;
default:
break;
}
}
case SDL_MOUSEMOTION:
break;
case SDL_MOUSEBUTTONDOWN:
break;
case SDL_KEYDOWN:
/* Any keypress quits the app... */
case SDL_QUIT:
done = 1;
break;
default:
break;
}
}
// Draw at 24 hz
// This approach is not normally recommended - it is better to
@ -144,18 +144,18 @@ static void mainLoop ()
}
SDL_Delay (delay);
}
}
}
int main(int argc, char *argv[])
{
// Init SDL video subsystem
if ( SDL_Init (SDL_INIT_VIDEO) < 0 ) {
// Init SDL video subsystem
if ( SDL_Init (SDL_INIT_VIDEO) < 0 ) {
fprintf(stderr, "Couldn't initialize SDL: %s\n",
SDL_GetError());
exit(1);
}
SDL_GetError());
exit(1);
}
// Set GL context attributes
initAttributes ();
@ -173,7 +173,7 @@ int main(int argc, char *argv[])
mainLoop ();
// Cleanup
SDL_Quit();
SDL_Quit();
return 0;
}