Files
old-core/src/main.c
2022-11-27 18:57:45 +01:00

103 lines
3.0 KiB
C

/*
* Copyright (c) 2018, 2019 Amine Ben Hassouna <amine.benhassouna@gmail.com>
* 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 <stdio.h>
#include <stdbool.h>
#include <SDL.h>
#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;
}