From 0dfe9cb09717d84ecc24f7fba90742b503267bfd Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Sun, 12 Jul 2020 20:17:57 +0300 Subject: [PATCH] glut version: make the loading screen fullscreen if demo is going to run fullscreen --- src/demo.c | 19 +++++++++++++++++-- src/demo.h | 2 ++ src/glut/main.c | 13 +++++++++---- 3 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/demo.c b/src/demo.c index f9d4900..f7a2463 100644 --- a/src/demo.c +++ b/src/demo.c @@ -42,10 +42,21 @@ static int con_active; extern uint16_t loading_pixels[]; /* data.asm */ - int demo_init(int argc, char **argv) { - struct screen *scr; + if(demo_init1(argc, argv) == -1) { + return -1; + } + if(demo_init2() == -1) { + return -1; + } + return 0; +} + +static struct screen *scr; + +int demo_init1(int argc, char **argv) +{ char *env; if(load_config("demo.cfg") == -1) { @@ -57,7 +68,11 @@ int demo_init(int argc, char **argv) if(parse_args(argc, argv) == -1) { return -1; } + return 0; +} +int demo_init2(void) +{ /* reuse the loading image as our back buffer. * adjust fb_pixels to leave 4 pixels guard band top/bottom. We have enough * space since the loading image is 8 pixels taller. diff --git a/src/demo.h b/src/demo.h index de0654b..68cb967 100644 --- a/src/demo.h +++ b/src/demo.h @@ -54,6 +54,8 @@ enum { extern float sball_matrix[16]; int demo_init(int argc, char **argv); +int demo_init1(int argc, char **argv); +int demo_init2(void); void demo_cleanup(void); int demo_resizefb(int width, int height, int bpp); diff --git a/src/glut/main.c b/src/glut/main.c index abe25cc..824837e 100644 --- a/src/glut/main.c +++ b/src/glut/main.c @@ -118,21 +118,26 @@ int main(int argc, char **argv) wgl_swap_interval_ext = wglGetProcAddress("wglSwapIntervalEXT"); #endif - reshape(glutGet(GLUT_WINDOW_WIDTH), glutGet(GLUT_WINDOW_HEIGHT)); - if(au_init() == -1) { return 1; } time_msec = 0; - if(demo_init(argc, argv) == -1) { + if(demo_init1(argc, argv) == -1) { return 1; } - atexit(demo_cleanup); if(opt.fullscreen) { set_fullscreen(opt.fullscreen); + reshape(glutGet(GLUT_SCREEN_WIDTH), glutGet(GLUT_SCREEN_HEIGHT)); + } else { + reshape(glutGet(GLUT_WINDOW_WIDTH), glutGet(GLUT_WINDOW_HEIGHT)); } + if(demo_init2() == -1) { + return 1; + } + atexit(demo_cleanup); + reset_timer(); glutMainLoop(); -- 1.7.10.4