//Source.ccp
//Setup SDL
bool InitSDL() {
//If failed to Initialize
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
cout << "Failed to Init SDL. Error: " << SDL_GetError() << "\n";
return false;
}
//If Sucesss
else {
//Create Window
gWindow = SDL_CreateWindow("MarioBrosClone", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
//Create renderer
gRenderer = SDL_CreateRenderer(gWindow, -1, SDL_RENDERER_ACCELERATED);
//Check if Window is null
if (gWindow == NULL) {
cout << "Failed to create Window, Error: " << SDL_GetError() << "\n";
return false;
}
//Check if renderer is null;
if (gRenderer == NULL) {
cout << "Failed to create Renderer, Error " << SDL_GetError() << "\n";
return false;
}
//Set Texture
else {
int imageFlags = IMG_INIT_PNG;
if (!(IMG_Init(imageFlags)) && imageFlags) {
cout << "Failed to load SDL_Image, Error " << SDL_GetError() << "\n";
return false;
}
}
//Create Mixer
if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 2048) < 0) {
cout << "Mixer could not initialise. Error: " << Mix_GetError();
return false;
}
if (TTF_Init() < 0) {
cout << "Error: " << TTF_GetError() << endl;
return false;
}
}
return true;
}
//Close SDL
void CloseSDL() {
SDL_DestroyWindow(gWindow);
gWindow = NULL;
IMG_Quit();
SDL_Quit();
SDL_DestroyRenderer(gRenderer);
gRenderer = NULL;
delete gTexture;
gTexture = NULL;
delete gameScreenManager;
gameScreenManager = NULL;
}
//Render
void Render() {
//Clear Screen
SDL_SetRenderDrawColor(gRenderer, 0x00, 0x00, 0x00, 0x00);
SDL_RenderClear(gRenderer);
//Render Texture to Screen
gameScreenManager->Render();
//Update Screen
SDL_RenderPresent(gRenderer);
}