|  | /* | 
|  | *  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; | 
|  | } |