Skip to content

Instantly share code, notes, and snippets.

@sergnechaev
Created July 12, 2016 08:12
Show Gist options
  • Save sergnechaev/1bdf15d7383ece9b0889f77576b98f1d to your computer and use it in GitHub Desktop.
Save sergnechaev/1bdf15d7383ece9b0889f77576b98f1d to your computer and use it in GitHub Desktop.
Basic SDL2 2D C++ Application (c++1y)
#include <iostream>
#include <SDL2/SDL.h>
constexpr int SCREEN_WIDTH = 800;
constexpr int SCREEN_HEIGHT = 600;
int main(int argc, char *argv[]) {
if (SDL_Init( SDL_INIT_VIDEO) < 0) {
std::cerr << "There was an error initializing SDL2: " << SDL_GetError() << std::endl;
return 1;
}
SDL_Window* displayWindow = SDL_CreateWindow("Basic SDL2 2D application", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
if (displayWindow == nullptr) {
std::cerr << "There was an error creating the window: " << SDL_GetError() << std::endl;
return 1;
}
SDL_Renderer* renderer = SDL_CreateRenderer(displayWindow, -1, SDL_RendererFlags::SDL_RENDERER_ACCELERATED);
if (renderer == nullptr) {
std::cerr << "There was an error creating the renderer: " << SDL_GetError() << std::endl;
return 1;
}
// draw sample stuff
SDL_RenderClear(renderer);
SDL_SetRenderDrawColor(renderer, 255, 255, 255, SDL_ALPHA_OPAQUE);
SDL_Rect rect { 100, 100, SCREEN_WIDTH - 200, SCREEN_HEIGHT - 200 };
SDL_RenderFillRect(renderer, &rect);
SDL_RenderPresent(renderer);
// sleep for 5 seconds
SDL_Delay(5000);
// Clean up
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(displayWindow);
SDL_Quit();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment