From eb0084ef69a05f8d5c93a4d2d5a500c11f558543 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Sun, 01 Aug 2021 23:44:27 -0400 Subject: main: Implement --- (limited to 'src') 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 . + */ + +#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 diff --git a/src/main.c b/src/main.c index e69de29..648bac8 100644 --- a/src/main.c +++ b/src/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 . + */ + +#include +#include +#include +#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; +} -- cgit v0.9.1