Created
October 3, 2016 06:53
-
-
Save sergnechaev/c9512a1f82ba1768c383286599e6e8b1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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