#include #include #include #include int main(int argc, char** argv) { SDL_Init(SDL_INIT_VIDEO); auto sdlWindow = SDL_CreateWindow(nullptr, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 1024, 768, SDL_WINDOW_OPENGL); if(sdlWindow == nullptr) { std::cerr << "Unable to create SDL window." << std::endl; SDL_Quit(); return EXIT_FAILURE; } auto glContext = SDL_GL_CreateContext(sdlWindow); if(glContext == nullptr) { std::cerr << "Unable to create OpenGL context." << std::endl; SDL_DestroyWindow(sdlWindow); SDL_Quit(); return EXIT_FAILURE; } auto fullscreen = false; auto keepAlive = true; while(keepAlive) { SDL_Event sdlEvent{ }; while(SDL_PollEvent(&sdlEvent)) { switch(sdlEvent.type) { case SDL_KEYDOWN: if(sdlEvent.key.keysym.sym == SDLK_f) { // toggle fullscreen if(! fullscreen) { SDL_SetWindowFullscreen(sdlWindow, SDL_WINDOW_FULLSCREEN_DESKTOP); fullscreen = true; } else { SDL_SetWindowFullscreen(sdlWindow, 0); fullscreen = false; } } else if(sdlEvent.key.keysym.sym == SDLK_m) { // minimize SDL_MinimizeWindow(sdlWindow); } else if(sdlEvent.key.keysym.sym == SDLK_ESCAPE) { // quit keepAlive = false; } break; default: ; } } } SDL_GL_DeleteContext(glContext); SDL_DestroyWindow(sdlWindow); SDL_Quit(); return EXIT_SUCCESS; }