Xcode-iOS/Template/SDL iOS Application/main.c
author Alex Szpakowski <slime73@gmail.com>
Fri, 18 Mar 2016 22:15:53 -0300
changeset 10121 6b6ded44e6e0
parent 7497 109f37bca7cc
child 10943 729e39fc0175
permissions -rw-r--r--
Windows CMake: don't try to link dxguid, it's unavailable when using Visual Studio's XP-compatible toolset.
     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 
    10 #define SCREEN_WIDTH 320
    11 #define SCREEN_HEIGHT 480
    12 
    13 int
    14 randomInt(int min, int max)
    15 {
    16     return min + rand() % (max - min + 1);
    17 }
    18 
    19 void
    20 render(SDL_Renderer *renderer)
    21 {
    22 
    23     Uint8 r, g, b;
    24 
    25     /* Clear the screen */
    26     SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
    27     SDL_RenderClear(renderer);
    28 
    29     /*  Come up with a random rectangle */
    30     SDL_Rect rect;
    31     rect.w = randomInt(64, 128);
    32     rect.h = randomInt(64, 128);
    33     rect.x = randomInt(0, SCREEN_WIDTH);
    34     rect.y = randomInt(0, SCREEN_HEIGHT);
    35 
    36     /* Come up with a random color */
    37     r = randomInt(50, 255);
    38     g = randomInt(50, 255);
    39     b = randomInt(50, 255);
    40     SDL_SetRenderDrawColor(renderer, r, g, b, 255);
    41 
    42     /*  Fill the rectangle in the color */
    43     SDL_RenderFillRect(renderer, &rect);
    44 
    45     /* update screen */
    46     SDL_RenderPresent(renderer);
    47 }
    48 
    49 int
    50 main(int argc, char *argv[])
    51 {
    52 
    53     SDL_Window *window;
    54     SDL_Renderer *renderer;
    55     int done;
    56     SDL_Event event;
    57 
    58     /* initialize SDL */
    59     if (SDL_Init(SDL_INIT_VIDEO) < 0) {
    60         printf("Could not initialize SDL\n");
    61         return 1;
    62     }
    63 
    64     /* seed random number generator */
    65     srand(time(NULL));
    66 
    67     /* create window and renderer */
    68     window =
    69         SDL_CreateWindow(NULL, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT,
    70                          SDL_WINDOW_OPENGL);
    71     if (!window) {
    72         printf("Could not initialize Window\n");
    73         return 1;
    74     }
    75 
    76     renderer = SDL_CreateRenderer(window, -1, 0);
    77     if (!renderer) {
    78         printf("Could not create renderer\n");
    79         return 1;
    80     }
    81 
    82     /* Enter render loop, waiting for user to quit */
    83     done = 0;
    84     while (!done) {
    85         while (SDL_PollEvent(&event)) {
    86             if (event.type == SDL_QUIT) {
    87                 done = 1;
    88             }
    89         }
    90         render(renderer);
    91         SDL_Delay(1);
    92     }
    93 
    94     /* shutdown SDL */
    95     SDL_Quit();
    96 
    97     return 0;
    98 }