/* * Copyright (c) 2018, 2019 Amine Ben Hassouna * All rights reserved. * * Permission is hereby granted, free of charge, to any * person obtaining a copy of this software and associated * documentation files (the "Software"), to deal in the * Software without restriction, including without * limitation the rights to use, copy, modify, merge, * publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software * is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice * shall be included in all copies or substantial portions * of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF * ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT * SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR * IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER * DEALINGS IN THE SOFTWARE. * */ #include #include #include #include "game.h" // Define screen dimensions #define SCREEN_WIDTH 1024 #define SCREEN_HEIGHT 768 int main(int argc, char* argv[]) { // Unused argc, argv (void) argc; (void) argv; // Initialize SDL if(SDL_Init(SDL_INIT_VIDEO) < 0) { fprintf(stderr, "SDL could not be initialized!\n" "SDL_Error: %s\n", SDL_GetError()); return 0; } #if defined linux && SDL_VERSION_ATLEAST(2, 0, 8) // Disable compositor bypass if(!SDL_SetHint(SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR, "0")) { printf("SDL can not disable compositor bypass!\n"); return 0; } #endif // Create window SDL_Window *window = SDL_CreateWindow("Basic C SDL game", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN); if(!window) { fprintf(stderr, "Window could not be created!\n" "SDL_Error: %s\n", SDL_GetError()); } else { // Create renderer SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); if(!renderer) { fprintf(stderr, "Renderer could not be created!\n" "SDL_Error: %s\n", SDL_GetError()); } else { // Start the game Game_start(renderer, SCREEN_WIDTH, SCREEN_HEIGHT); // Destroy renderer SDL_DestroyRenderer(renderer); } // Destroy window SDL_DestroyWindow(window); } // Quit SDL SDL_Quit(); return 0; }