From 5ba4795b7eb6cde37b7704ab7a0a1e0a61fdd991 Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Thu, 18 Mar 2021 14:16:35 -0400 Subject: main: Make some variables static global --- (limited to 'src/main.c') diff --git a/src/main.c b/src/main.c index d772449..10d6359 100644 --- a/src/main.c +++ b/src/main.c @@ -26,27 +26,32 @@ #include "game.h" #include "output.h" +static const char *_db_games_dir; +static const char *_db_fonts_dir; +static SDL_Window *_db_window; +static SDL_Renderer *_db_renderer; +static SDL_Texture *_db_texture; + static void -_db_find_dirs(char *program_name, - const char **games_dir, const char **fonts_dir) +_db_find_dirs(char *program_name) { char *program_dir; program_dir = realpath(dirname(program_name), NULL); if (strcmp(program_dir, ABS_BUILDDIR) == 0) { /* Running in place */ - *games_dir = ABS_BUILDDIR "/games"; - *fonts_dir = ABS_BUILDDIR "/fonts"; + _db_games_dir = ABS_BUILDDIR "/games"; + _db_fonts_dir = ABS_BUILDDIR "/fonts"; } else { /* Running from installation */ - *games_dir = GAMESDIR; - *fonts_dir = FONTSDIR; + _db_games_dir = GAMESDIR; + _db_fonts_dir = FONTSDIR; } free(program_dir); } static int -_db_init(SDL_Window **window, SDL_Renderer **renderer, SDL_Texture **texture) +_db_init(void) { if (SDL_Init(SDL_INIT_VIDEO) < 0) { db_err("Failed to initialize SDL (%s)", SDL_GetError()); @@ -58,30 +63,30 @@ _db_init(SDL_Window **window, SDL_Renderer **renderer, SDL_Texture **texture) return -1; } - *window = SDL_CreateWindow("Dodge Balls", + _db_window = SDL_CreateWindow("Dodge Balls", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0); - if (*window == NULL) { + if (_db_window == NULL) { db_err("Failed to create window (%s)", SDL_GetError()); SDL_Quit(); return -1; } - *renderer = SDL_CreateRenderer(*window, -1, 0); - if (*renderer == NULL) { + _db_renderer = SDL_CreateRenderer(_db_window, -1, 0); + if (_db_renderer == NULL) { db_err("Failed to create renderer (%s)", SDL_GetError()); - SDL_DestroyWindow(*window); + SDL_DestroyWindow(_db_window); SDL_Quit(); return -1; } - *texture = SDL_CreateTexture(*renderer, SDL_PIXELFORMAT_ARGB8888, + _db_texture = SDL_CreateTexture(_db_renderer, SDL_PIXELFORMAT_ARGB8888, SDL_TEXTUREACCESS_TARGET, 640, 480); - if (*texture == NULL) { + if (_db_texture == NULL) { db_err("Failed to create texture (%s)", SDL_GetError()); - SDL_DestroyRenderer(*renderer); - SDL_DestroyWindow(*window); + SDL_DestroyRenderer(_db_renderer); + SDL_DestroyWindow(_db_window); SDL_Quit(); return -1; } @@ -92,12 +97,12 @@ _db_init(SDL_Window **window, SDL_Renderer **renderer, SDL_Texture **texture) } static void -_db_quit(SDL_Window *window, SDL_Renderer *renderer, SDL_Texture *texture) +_db_quit(void) { SDL_EnableScreenSaver(); - SDL_DestroyTexture(texture); - SDL_DestroyRenderer(renderer); - SDL_DestroyWindow(window); + SDL_DestroyTexture(_db_texture); + SDL_DestroyRenderer(_db_renderer); + SDL_DestroyWindow(_db_window); TTF_Quit(); SDL_Quit(); } @@ -105,25 +110,20 @@ _db_quit(SDL_Window *window, SDL_Renderer *renderer, SDL_Texture *texture) int main(int argc, char *argv[]) { - const char *games_dir; - const char *fonts_dir; - SDL_Window *window; - SDL_Renderer *renderer; - SDL_Texture *texture; struct db_game **games; int n; int i; /* Find data directories */ - _db_find_dirs(argv[0], &games_dir, &fonts_dir); + _db_find_dirs(argv[0]); /* Initialize SDL libraries */ - if (_db_init(&window, &renderer, &texture) < 0) { + if (_db_init() < 0) { return EXIT_FAILURE; } /* Find games */ - n = db_games_find(games_dir, &games); + n = db_games_find(_db_games_dir, &games); if (n > 0) { printf("%d games:\n", n); for (i = 0; i < n; ++i) { @@ -134,13 +134,13 @@ main(int argc, char *argv[]) free(games); } - SDL_SetRenderDrawColor(renderer, 0x7F, 0x7F, 0x7F, 0xFF); - SDL_RenderClear(renderer); - SDL_RenderPresent(renderer); + SDL_SetRenderDrawColor(_db_renderer, 0x7F, 0x7F, 0x7F, 0xFF); + SDL_RenderClear(_db_renderer); + SDL_RenderPresent(_db_renderer); SDL_Delay(1000); /* Quit SDL libraries */ - _db_quit(window, renderer, texture); + _db_quit(); return EXIT_SUCCESS; } -- cgit v0.9.1