/* g++ -std=c++11 <name_of_file>.cpp -o simple-sdl2 -lSDL2 */
#include <SDL2/SDL.h>
#include <iostream>
#include <stdexcept>
namespace
{
int const WIDTH = 320;
int const HEIGHT = 320;
}
int main()
{
if (SDL_Init(SDL_INIT_EVERYTHING) < 0)
{
throw std::runtime_error("Failed to init SDL2");
}
SDL_Window* window = SDL_CreateWindow("SDL2 - Test",
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
WIDTH, HEIGHT,
SDL_WINDOW_SHOWN);
if (window == nullptr)
{
throw std::runtime_error("Failed to create SDL2 window");
}
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);
if (renderer == nullptr)
{
throw std::runtime_error("Failed to create SDL2 renderer");
}
bool done = false;
while (!done)
{
SDL_Event event;
while (SDL_PollEvent(&event))
{
switch (event.type)
{
case SDL_KEYUP:
if (event.key.keysym.sym == SDLK_ESCAPE)
{
done = true;
}
break;
case SDL_QUIT:
done = true;
break;
}
}
SDL_RenderClear(renderer);
SDL_SetRenderDrawColor(renderer, 0x00, 0xFF, 0x00, 0xFF);
SDL_RenderPresent(renderer);
}
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
}