diff options
-rw-r--r-- | src/defs.h | 26 | ||||
-rw-r--r-- | src/local.mk | 1 | ||||
-rw-r--r-- | src/main.c | 98 |
3 files changed, 125 insertions, 0 deletions
diff --git a/src/defs.h b/src/defs.h new file mode 100644 index 0000000..7fa89b4 --- /dev/null +++ b/src/defs.h @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2021 P. J. McDermott + * + * This file is part of Maze Fight + * + * Maze Fight is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Maze Fight is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Maze Fight. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef MF_DEFS_H_ +#define MF_DEFS_H_ + +#define MF_WINDOW_W 640 /* Window width */ +#define MF_WINDOW_H 480 /* Window height */ + +#endif /* MF_DEFS_H_ */ diff --git a/src/local.mk b/src/local.mk index 1cd44cd..84fefc6 100644 --- a/src/local.mk +++ b/src/local.mk @@ -1,2 +1,3 @@ mazefight_SOURCES += \ + %reldir%/defs.h \ %reldir%/main.c @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2021 P. J. McDermott + * + * This file is part of Maze Fight + * + * Maze Fight is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Maze Fight is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Maze Fight. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <SDL.h> +#include <SDL_ttf.h> +#include <stdlib.h> +#include "defs.h" + +static SDL_Window *_mf_window; +static SDL_Renderer *_mf_renderer; + +static int +_mf_init(void) +{ + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, + "Couldn't initialize SDL: %s", + SDL_GetError()); + return -1; + } + + if (TTF_Init() < 0) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, + "Couldn't initialize SDL_ttf: %s", + SDL_GetError()); + SDL_Quit(); + return -1; + } + + _mf_window = SDL_CreateWindow("Maze Fight", + SDL_WINDOWPOS_UNDEFINED, + SDL_WINDOWPOS_UNDEFINED, + MF_WINDOW_W, MF_WINDOW_H, 0); + if (_mf_window == NULL) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, + "Couldn't create window: %s", + SDL_GetError()); + TTF_Quit(); + SDL_Quit(); + return -1; + } + + _mf_renderer = SDL_CreateRenderer(_mf_window, -1, 0); + if (_mf_renderer == NULL) { + SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, + "Couldn't create renderer: %s", + SDL_GetError()); + SDL_DestroyWindow(_mf_window); + TTF_Quit(); + SDL_Quit(); + return -1; + } + + SDL_DisableScreenSaver(); + + return 0; +} + +static void +_mf_quit(void) +{ + SDL_EnableScreenSaver(); + SDL_DestroyRenderer(_mf_renderer); + SDL_DestroyWindow(_mf_window); + TTF_Quit(); + SDL_Quit(); +} + +int +main(int argc __attribute__((__unused__)), + char *argv[] __attribute__((__unused__))) +{ + /* Initialize SDL libraries */ + if (_mf_init() < 0) { + return EXIT_FAILURE; + } + + /* Quit SDL libraries */ + _mf_quit(); + + return EXIT_SUCCESS; +} |