X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Fplat_omap.c;h=a4ff846d6d77a80214e922766b10ea01bb05aa13;hb=8c84ba5f4478dd4e7cc48e86f1b023bc6b99ea9c;hp=6126140a8c70f73607b2f00747c14f249e6d167a;hpb=cc56203b76e1fcef2c7e55b460daf07e654a1547;p=pcsx_rearmed.git diff --git a/frontend/plat_omap.c b/frontend/plat_omap.c index 6126140a..a4ff846d 100644 --- a/frontend/plat_omap.c +++ b/frontend/plat_omap.c @@ -94,21 +94,27 @@ void plat_omap_gvideo_open(void) vout_fbdev_wait_vsync(layer_fb); } -void *plat_gvideo_set_mode(int *w, int *h, int *bpp) +void *plat_gvideo_set_mode(int *w_in, int *h_in, int *bpp) { int l = 0, r = 0, t = 0, b = 0; + int w = *w_in, h = *h_in; void *buf; - if (g_scaler == SCALE_1_1) { - if (*w > g_menuscreen_w) - l = r = (*w - g_menuscreen_w) / 2; - if (*h > g_menuscreen_h) - t = b = (*h - g_menuscreen_h) / 2; + if (g_scaler == SCALE_1_1 || g_scaler == SCALE_2_2) { + if (w > g_menuscreen_w) { + l = r = (w - g_menuscreen_w) / 2; + w -= l + r; + } + if (h > g_menuscreen_h) { + t = b = (h - g_menuscreen_h) / 2; + h -= t + b; + } } + buf = vout_fbdev_resize(layer_fb, w, h, *bpp, + l, r, t, b, 3, 1); + vout_fbdev_clear(layer_fb); - buf = vout_fbdev_resize(layer_fb, *w, *h, *bpp, - l, r, t, b, 3); omap_enable_layer(1); @@ -128,9 +134,10 @@ void plat_gvideo_close(void) void plat_video_menu_enter(int is_rom_loaded) { g_menuscreen_ptr = vout_fbdev_resize(main_fb, - g_menuscreen_w, g_menuscreen_h, 16, 0, 0, 0, 0, 3); + g_menuscreen_w, g_menuscreen_h, 16, 0, 0, 0, 0, 3, 0); if (g_menuscreen_ptr == NULL) fprintf(stderr, "warning: vout_fbdev_resize failed\n"); + vout_fbdev_clear(main_fb); xenv_update(NULL, NULL, NULL, NULL); } @@ -148,11 +155,11 @@ void plat_video_menu_leave(void) { /* have to get rid of panning so that plugins that * use fb0 and don't ever pan can work. */ - vout_fbdev_clear(main_fb); g_menuscreen_ptr = vout_fbdev_resize(main_fb, - g_menuscreen_w, g_menuscreen_h, 16, 0, 0, 0, 0, 1); + g_menuscreen_w, g_menuscreen_h, 16, 0, 0, 0, 0, 1, 0); if (g_menuscreen_ptr == NULL) fprintf(stderr, "warning: vout_fbdev_resize failed\n"); + vout_fbdev_clear(main_fb); } void plat_minimize(void) @@ -217,7 +224,7 @@ void plat_omap_init(void) exit(1); } - g_menuscreen_w = w; + g_menuscreen_w = g_menuscreen_pp = w; g_menuscreen_h = h; g_menuscreen_ptr = vout_fbdev_flip(main_fb); pl_rearmed_cbs.screen_w = w;