sdl

FORK: Simple Directmedia Layer
git clone https://git.neptards.moe/neptards/sdl.git
Log | Files | Refs

rectangles.c (2031B)


      1 /*
      2  *  rectangles.c
      3  *  written by Holmes Futrell
      4  *  use however you want
      5 */
      6 
      7 #include "SDL.h"
      8 #include <time.h>
      9 #include "common.h"
     10 
     11 void
     12 render(SDL_Renderer *renderer)
     13 {
     14     Uint8 r, g, b;
     15     int renderW;
     16     int renderH;
     17 
     18     SDL_RenderGetLogicalSize(renderer, &renderW, &renderH);
     19 
     20     /*  Come up with a random rectangle */
     21     SDL_Rect rect;
     22     rect.w = randomInt(64, 128);
     23     rect.h = randomInt(64, 128);
     24     rect.x = randomInt(0, renderW);
     25     rect.y = randomInt(0, renderH);
     26 
     27     /* Come up with a random color */
     28     r = randomInt(50, 255);
     29     g = randomInt(50, 255);
     30     b = randomInt(50, 255);
     31 
     32     /*  Fill the rectangle in the color */
     33     SDL_SetRenderDrawColor(renderer, r, g, b, 255);
     34     SDL_RenderFillRect(renderer, &rect);
     35 
     36     /* update screen */
     37     SDL_RenderPresent(renderer);
     38 }
     39 
     40 int
     41 main(int argc, char *argv[])
     42 {
     43 
     44     SDL_Window *window;
     45     SDL_Renderer *renderer;
     46     int done;
     47     SDL_Event event;
     48     int windowW;
     49     int windowH;
     50 
     51     /* initialize SDL */
     52     if (SDL_Init(SDL_INIT_VIDEO) < 0) {
     53         fatalError("Could not initialize SDL");
     54     }
     55 
     56     /* seed random number generator */
     57     srand(time(NULL));
     58 
     59     /* create window and renderer */
     60     window = SDL_CreateWindow(NULL, 0, 0, 320, 480, SDL_WINDOW_ALLOW_HIGHDPI);
     61     if (window == 0) {
     62         fatalError("Could not initialize Window");
     63     }
     64     renderer = SDL_CreateRenderer(window, -1, 0);
     65     if (!renderer) {
     66         fatalError("Could not create renderer");
     67     }
     68 
     69     SDL_GetWindowSize(window, &windowW, &windowH);
     70     SDL_RenderSetLogicalSize(renderer, windowW, windowH);
     71 
     72     /* Fill screen with black */
     73     SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
     74     SDL_RenderClear(renderer);
     75 
     76     /* Enter render loop, waiting for user to quit */
     77     done = 0;
     78     while (!done) {
     79         while (SDL_PollEvent(&event)) {
     80             if (event.type == SDL_QUIT) {
     81                 done = 1;
     82             }
     83         }
     84         render(renderer);
     85         SDL_Delay(1);
     86     }
     87 
     88     /* shutdown SDL */
     89     SDL_Quit();
     90 
     91     return 0;
     92 }