You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.0 KiB
100 lines
2.0 KiB
/* |
|
* rectangles.c |
|
* written by Holmes Futrell |
|
* use however you want |
|
*/ |
|
|
|
#include "SDL.h" |
|
#include <stdio.h> |
|
#include <stdlib.h> |
|
#include <time.h> |
|
|
|
#define SCREEN_WIDTH 320 |
|
#define SCREEN_HEIGHT 480 |
|
|
|
int |
|
randomInt(int min, int max) |
|
{ |
|
return min + rand() % (max - min + 1); |
|
} |
|
|
|
void |
|
render(SDL_Renderer *renderer) |
|
{ |
|
|
|
SDL_Rect rect; |
|
Uint8 r, g, b; |
|
|
|
/* Clear the screen */ |
|
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); |
|
SDL_RenderClear(renderer); |
|
|
|
/* Come up with a random rectangle */ |
|
rect.w = randomInt(64, 128); |
|
rect.h = randomInt(64, 128); |
|
rect.x = randomInt(0, SCREEN_WIDTH); |
|
rect.y = randomInt(0, SCREEN_HEIGHT); |
|
|
|
/* Come up with a random color */ |
|
r = randomInt(50, 255); |
|
g = randomInt(50, 255); |
|
b = randomInt(50, 255); |
|
SDL_SetRenderDrawColor(renderer, r, g, b, 255); |
|
|
|
/* Fill the rectangle in the color */ |
|
SDL_RenderFillRect(renderer, &rect); |
|
|
|
/* update screen */ |
|
SDL_RenderPresent(renderer); |
|
} |
|
|
|
int |
|
main(int argc, char *argv[]) |
|
{ |
|
|
|
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 */ |
|
window = |
|
SDL_CreateWindow(NULL, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, |
|
SDL_WINDOW_OPENGL); |
|
if (!window) { |
|
printf("Could not initialize Window\n"); |
|
return 1; |
|
} |
|
|
|
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; |
|
while (!done) { |
|
while (SDL_PollEvent(&event)) { |
|
if (event.type == SDL_QUIT) { |
|
done = 1; |
|
} |
|
} |
|
render(renderer); |
|
SDL_Delay(1); |
|
} |
|
|
|
/* shutdown SDL */ |
|
SDL_Quit(); |
|
|
|
return 0; |
|
}
|
|
|