103 lines
3.0 KiB
C
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;
|
|
}
|