platform sdl, add config file option for fullscreen
authorkub <derkub@gmail.com>
Tue, 22 Feb 2022 20:40:34 +0000 (20:40 +0000)
committerkub <derkub@gmail.com>
Tue, 22 Feb 2022 20:40:34 +0000 (20:40 +0000)
platform/common/main.c
platform/common/menu_pico.c
platform/common/menu_pico.h
platform/common/plat_sdl.c
platform/gp2x/plat.c

index 3c1998c..571b888 100644 (file)
@@ -84,12 +84,12 @@ int main(int argc, char *argv[])
        //in_probe();\r
 \r
        plat_target_init();\r
-       plat_init();\r
-       menu_init();\r
 \r
        emu_prep_defconfig(); // depends on input\r
        emu_read_config(NULL, 0);\r
 \r
+       plat_init();\r
+       menu_init();\r
        emu_init();\r
 \r
        engineState = PGS_Menu;\r
index 812ea84..8ea8432 100644 (file)
@@ -1316,6 +1316,7 @@ static menu_entry e_menu_hidden[] =
 {
        mee_onoff("Accurate sprites", MA_OPT_ACC_SPRITES, PicoIn.opt, POPT_ACC_SPRITES),
        mee_onoff("autoload savestates", MA_OPT_AUTOLOAD_SAVE, g_autostateld_opt, 1),
+       mee_onoff("SDL fullscreen mode", MA_OPT_VOUT_FULL, plat_target.vout_fullscreen, 1),
        mee_end,
 };
 
index fb1c67d..dc9d6e9 100644 (file)
@@ -40,6 +40,7 @@ typedef enum
        MA_OPT_INTERLACED,      /* giz */
        MA_OPT_TEARING_FIX,     /* wiz */
        MA_OPT_VOUT_MODE,
+       MA_OPT_VOUT_FULL,
        MA_OPT_AUTOLOAD_SAVE,
        MA_OPT_SOUND_FILTER,
        MA_OPT_SOUND_ALPHA,
index 7198136..d66a2ac 100644 (file)
@@ -128,8 +128,6 @@ static int clear_buf_cnt, clear_stat_cnt;
 void plat_video_set_size(int w, int h)
 {
        if (area.w != w || area.h != h) {
-               area = (struct area) { w, h };
-
                if (plat_sdl_change_video_mode(w, h, 0) < 0) {
                        // failed, revert to original resolution
                        plat_sdl_change_video_mode(g_screen_width, g_screen_height, 0);
@@ -141,6 +139,7 @@ void plat_video_set_size(int w, int h)
                        g_screen_ppitch = w;
                        g_screen_ptr = plat_sdl_screen->pixels;
                }
+               area = (struct area) { w, h };
        }
 }
 
@@ -193,7 +192,7 @@ void plat_video_clear_status(void)
 void plat_video_clear_buffers(void)
 {
        if (plat_sdl_overlay != NULL || plat_sdl_gl_active)
-               memset(shadow_fb, 0, plat_sdl_screen->w*plat_sdl_screen->h * 2);
+               memset(shadow_fb, 0, g_menuscreen_w * g_menuscreen_h * 2);
        else {
                memset(g_screen_ptr, 0, plat_sdl_screen->w*plat_sdl_screen->h * 2);
                clear_buf_cnt = 3; // do it thrice in case of triple buffering
index 4fcf76f..b25ce85 100644 (file)
@@ -16,7 +16,7 @@
 #include "warm.h"
 #include "plat.h"
 
-#include <pico/pico.h>
+#include <pico/pico_int.h>
 
 /* GP2X local */
 int gp2x_current_bpp;