Edit

kc3-lang/SDL/Xcode-iOS/Demos/src/rectangles.c

Branch :

  • Show log

    Commit

  • Author : Sam Lantinga
    Date : 2020-11-06 13:03:07
    Hash : 1bd4b7fd
    Message : Updated iOS tests and demos for latest SDL linking requirements

  • Xcode-iOS/Demos/src/rectangles.c
  • /*
     *  rectangles.c
     *  written by Holmes Futrell
     *  use however you want
    */
    
    #include "SDL.h"
    #include <time.h>
    #include "common.h"
    
    void
    render(SDL_Renderer *renderer)
    {
        Uint8 r, g, b;
        int renderW;
        int renderH;
    
        SDL_RenderGetLogicalSize(renderer, &renderW, &renderH);
    
        /*  Come up with a random rectangle */
        SDL_Rect rect;
        rect.w = randomInt(64, 128);
        rect.h = randomInt(64, 128);
        rect.x = randomInt(0, renderW);
        rect.y = randomInt(0, renderH);
    
        /* Come up with a random color */
        r = randomInt(50, 255);
        g = randomInt(50, 255);
        b = randomInt(50, 255);
    
        /*  Fill the rectangle in the color */
        SDL_SetRenderDrawColor(renderer, r, g, b, 255);
        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;
        int windowW;
        int windowH;
    
        /* initialize SDL */
        if (SDL_Init(SDL_INIT_VIDEO) < 0) {
            fatalError("Could not initialize SDL");
        }
    
        /* seed random number generator */
        srand(time(NULL));
    
        /* create window and renderer */
        window = SDL_CreateWindow(NULL, 0, 0, 320, 480, SDL_WINDOW_ALLOW_HIGHDPI);
        if (window == 0) {
            fatalError("Could not initialize Window");
        }
        renderer = SDL_CreateRenderer(window, -1, 0);
        if (!renderer) {
            fatalError("Could not create renderer");
        }
    
        SDL_GetWindowSize(window, &windowW, &windowH);
        SDL_RenderSetLogicalSize(renderer, windowW, windowH);
    
        /* Fill screen with black */
        SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
        SDL_RenderClear(renderer);
    
        /* 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;
    }