Last active
July 2, 2020 03:47
-
-
Save haxpor/51a9e086d600e8135c3de332e9444b9a to your computer and use it in GitHub Desktop.
Skeleton code for sdl
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 <SDL2/SDL.h> | |
#include <iostream> | |
// screen dimension constants | |
const int SCREEN_WIDTH = 640; | |
const int SCREEN_HEIGHT = 480; | |
SDL_Window* gWindow = NULL; | |
SDL_Renderer* gRenderer = NULL; | |
// initialize sdl | |
bool init() | |
{ | |
// result of initialization | |
bool success = true; | |
// Intialize SDL | |
if (SDL_Init(SDL_INIT_VIDEO) < 0) { | |
std::cout << "SDL could not initialize! error: " << SDL_GetError() << "\n"; | |
success = false; | |
} | |
else { | |
// create window | |
gWindow = SDL_CreateWindow("SDL Skeleton", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN); | |
if (gWindow == NULL) { | |
std::cout << "Window could not be created! error: " << SDL_GetError() << "\n"; | |
success =false; | |
} | |
else { | |
// create renderer for window | |
gRenderer = SDL_CreateRenderer(gWindow, -1, SDL_RENDERER_ACCELERATED); | |
if (gRenderer == NULL) { | |
std::cout << "Renderer could not be created. error: " << SDL_GetError() << "\n"; | |
success =false; | |
} | |
else { | |
SDL_SetRenderDrawColor(gRenderer, 0xff, 0xff, 0xff, 0xff); | |
} | |
} | |
} | |
return success; | |
} | |
void close() | |
{ | |
SDL_DestroyRenderer(gRenderer); | |
SDL_DestroyWindow(gWindow); | |
gRenderer = NULL; | |
gWindow = NULL; | |
SDL_Quit(); | |
} | |
int main(int argc, const char* argv[]) | |
{ | |
if (!init()) { | |
std::cout << "Failed to initialize!\n"; | |
} | |
else { | |
bool quit = false; | |
SDL_Event e; | |
while (!quit) { | |
// handle event on queue | |
while (SDL_PollEvent(&e) != 0) { | |
// user request to quit | |
if (e.type == SDL_QUIT) { | |
quit = true; | |
} | |
// clear screen | |
SDL_RenderClear(gRenderer); | |
// update screen | |
SDL_RenderPresent(gRenderer); | |
} | |
} | |
} | |
close(); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment