c++sdl

Can't figure out why line is not being drawn in SDL


This program to draw a line in SDL is not working:

#include "SDL.h"

int main(int argc, char** argv)
{
    SDL_Window* window = SDL_CreateWindow("A line", 10, 10, 1200, 600, false);

    bool running = true;

    while (running)
    {
        SDL_Event events;
        if (SDL_WaitEvent(&events))
            if (events.type == SDL_QUIT)
                running = false;

        SDL_Renderer* renderer;
        renderer = SDL_CreateRenderer(window, -1, 0);

        SDL_RenderClear(renderer);

        SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0);
        SDL_RenderDrawLine(renderer, 10, 10, 500, 500);

    }

    SDL_Quit();

    return 1;
}

When I run the program, I don't get any error, but nothing is drawn either.


Solution

  • @Cool_Cornflakes, a few issues:

    All together:

    // g++ main.cpp `pkg-config --cflags --libs sdl2`
    #include "SDL.h"
    
    int main(int argc, char** argv)
    {
        SDL_Window* window = SDL_CreateWindow("A line", 10, 10, 1200, 600, false);
        SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);
    
        bool running = true;
        while (running)
        {
            SDL_Event event;
            while( SDL_PollEvent(&event) )
            {
                if (event.type == SDL_QUIT)
                    running = false;
            }
    
            SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
            SDL_RenderClear(renderer);
    
            SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
            SDL_RenderDrawLine(renderer, 10, 10, 500, 500);
            SDL_RenderPresent( renderer );
        }
    
        SDL_Quit();
        return 1;
    }