diff --git a/game.c b/game.c index 97ae085..422ff69 100644 --- a/game.c +++ b/game.c @@ -119,7 +119,6 @@ static shape_t shapes[MAX_SHAPES]; static unsigned entity_count; static unsigned shape_count; -static float aspect; static unsigned level; static bool dead; @@ -516,12 +515,11 @@ static void pause() counter = 0; } -void game_init(float _aspect) +void game_init() { input_on_shoot(shoot); input_on_restart(reset); input_on_pause(pause); - aspect = _aspect; reset(); } @@ -578,7 +576,7 @@ void game_draw() shapes[i].connect); } - text_draw_score(aspect, score); + text_draw_score(score); if (paused && !(counter & COUNTER_MASK)) { text_draw_centre("PAUSED"); diff --git a/game.h b/game.h index 2428160..d6f3b4c 100644 --- a/game.h +++ b/game.h @@ -1,7 +1,7 @@ #ifndef GAME_H #define GAME_H -void game_init(float aspect); +void game_init(); void game_update(); void game_draw(); diff --git a/main.c b/main.c index 9a773e0..0bceed0 100644 --- a/main.c +++ b/main.c @@ -18,16 +18,15 @@ static void quit() int main() { const int input_fd = input_init(); - const renderer_params_t renderer_params = renderer_init(); + const int drm_fd = renderer_init(); rng_init(); - game_init(renderer_params.aspect); + game_init(); input_on_quit(quit); renderer_clear(); renderer_swap(); - const int drm_fd = renderer_params.drm_fd; const int max_fd = MAX(input_fd, drm_fd); fd_set set; diff --git a/renderer.c b/renderer.c index 6137f09..235e1ec 100644 --- a/renderer.c +++ b/renderer.c @@ -9,6 +9,8 @@ #include #include +float aspect; + static int drm_fd; static drmModeConnector *conn; static drmModeCrtc *crtc; @@ -74,7 +76,7 @@ static void draw_line(vec3_t v1, vec3_t v2) } } -renderer_params_t renderer_init() +int renderer_init() { drm_fd = open("/dev/dri/card1", O_RDWR | O_CLOEXEC); assert(drm_fd != -1); @@ -104,7 +106,7 @@ renderer_params_t renderer_init() wrap = true; - const float aspect = (float)width / (float)height; + aspect = (float)width / (float)height; const float scale = (float)height / 2.0f; view = (mat3_t) { { scale, 0, 0 }, @@ -112,10 +114,7 @@ renderer_params_t renderer_init() { aspect * scale, scale, 1 }, }; - return (renderer_params_t) { - .drm_fd = drm_fd, - .aspect = aspect, - }; + return drm_fd; } void renderer_cleanup() diff --git a/renderer.h b/renderer.h index 8b6dcb4..1998e5b 100644 --- a/renderer.h +++ b/renderer.h @@ -7,12 +7,9 @@ #define MAX_VERTS 8U -typedef struct { - int drm_fd; - float aspect; -} renderer_params_t; +extern float aspect; -renderer_params_t renderer_init(); +int renderer_init(); void renderer_cleanup(); void renderer_handle(); diff --git a/text.c b/text.c index 5ee8d4f..2adcce4 100644 --- a/text.c +++ b/text.c @@ -255,7 +255,7 @@ void text_draw_centre(const char *s) draw_text(s, pos); } -void text_draw_score(float aspect, unsigned score) +void text_draw_score(unsigned score) { char buf[MAX_SCORE_CHARS + 1]; buf[MAX_SCORE_CHARS] = '\0'; diff --git a/text.h b/text.h index 0a9f314..a3b04b6 100644 --- a/text.h +++ b/text.h @@ -2,6 +2,6 @@ #define TEXT_H void text_draw_centre(const char *s); -void text_draw_score(float aspect, unsigned score); +void text_draw_score(unsigned score); #endif