Skip to content

Instantly share code, notes, and snippets.

@sergnechaev
Created October 3, 2016 06:53
Show Gist options
  • Save sergnechaev/c9512a1f82ba1768c383286599e6e8b1 to your computer and use it in GitHub Desktop.
Save sergnechaev/c9512a1f82ba1768c383286599e6e8b1 to your computer and use it in GitHub Desktop.
#include <cstdio>
#include <iostream>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
using namespace std;
int main(int argv, char* argc[]) {
auto w = 1024;
auto h = 768;
if (SDL_Init( SDL_INIT_EVERYTHING) < 0) {
std::cerr << "There was an error initializing SDL2: " << SDL_GetError() << std::endl;
std::terminate();
}
SDL_Window* window = SDL_CreateWindow("SDL2", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, w, h, SDL_WINDOW_SHOWN | SDL_WINDOW_ALLOW_HIGHDPI);
if (window == nullptr) {
std::cerr << "There was an error creating the window: " << SDL_GetError() << std::endl;
std::terminate();
}
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RendererFlags::SDL_RENDERER_ACCELERATED);
if (renderer == nullptr) {
std::cerr << "There was an error creating the renderer: " << SDL_GetError() << std::endl;
std::terminate();
}
// init SDL image
int image_flags = IMG_INIT_JPG | IMG_INIT_PNG;
int initted = IMG_Init(image_flags);
if ((initted & image_flags) != image_flags) {
std::cerr << "IMG_Init: Failed to init required jpg and png support!" << std::endl;
std::cerr << "IMG_Init: " << IMG_GetError() << std::endl;
std::terminate();
}
{
SDL_version compile_version;
const SDL_version *link_version = IMG_Linked_Version();
SDL_IMAGE_VERSION(&compile_version);
printf("SDL_Image: Compiled with SDL_image version: %d.%d.%d\n", compile_version.major, compile_version.minor, compile_version.patch);
printf("SDL_Image: Running with SDL_image version: %d.%d.%d\n", link_version->major, link_version->minor, link_version->patch);
}
bool running = true;
SDL_Event event;
while (running) {
if (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_QUIT:
running = false;
break;
case SDL_KEYDOWN:
switch (event.key.keysym.sym) {
case SDLK_ESCAPE:
case SDLK_AC_BACK:
running = false;
break;
}
break;
default:
break;
}
}
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
SDL_Delay(4);
}
IMG_Quit();
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment