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