From 7ecf26ca7c65640e3122d4e3852b205050862351 Mon Sep 17 00:00:00 2001 From: Fierelier Date: Wed, 16 Oct 2024 02:57:43 +0200 Subject: [PATCH] Allow changing resolution --- graphics.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/graphics.c b/graphics.c index 345e539..a481cf5 100644 --- a/graphics.c +++ b/graphics.c @@ -25,6 +25,11 @@ unigi_type_error unigi_window_create(unigi_type_resolution resolution, char * ti #ifndef _EE // if not PS2 SDL_SetHint(SDL_HINT_FRAMEBUFFER_ACCELERATION,"0"); #endif + + if (unigi_platform_window != NULL) { + SDL_DestroyWindow(unigi_platform_window); + } + unigi_platform_window = SDL_CreateWindow(title,SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,resolution.width,resolution.height,0); if (unigi_platform_window == NULL) { printf("[unigi] Could not initialize window: SDL -> %s\n",SDL_GetError()); @@ -40,6 +45,9 @@ unigi_type_error unigi_window_create(unigi_type_resolution resolution, char * ti uint32_t color; uint32_t color_platform; uint8_t * color_platform8 = (uint8_t *)&color_platform; + if (unigi_platform_palette1 != NULL) { + free(unigi_platform_palette1); + } #ifndef unigi_flag_bigcolor unigi_platform_palette1 = malloc(4096 * unigi_platform_info_depth_bytes); #else @@ -86,6 +94,8 @@ unigi_type_error unigi_window_create(unigi_type_resolution resolution, char * ti } unigi_type_error unigi_graphics_init() { + unigi_platform_palette1 = NULL; + unigi_platform_window = NULL; return 0; }