From 92a5fe88a86f0a25c3bbc74f80b67b16e18608e7 Mon Sep 17 00:00:00 2001 From: notaz Date: Tue, 3 Feb 2015 03:10:06 +0200 Subject: [PATCH] frontend: fix minor glitches on video mode changes --- frontend/plat_omap.c | 3 ++- frontend/plugin_lib.c | 12 +++++++----- plugins/gpulib/vout_pl.c | 3 ++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/frontend/plat_omap.c b/frontend/plat_omap.c index 4e3ea795..f25f31cc 100644 --- a/frontend/plat_omap.c +++ b/frontend/plat_omap.c @@ -111,10 +111,11 @@ void *plat_gvideo_set_mode(int *w_in, int *h_in, int *bpp) } } - vout_fbdev_clear(layer_fb); buf = vout_fbdev_resize(layer_fb, w, h, *bpp, l, r, t, b, 3); + vout_fbdev_clear(layer_fb); + omap_enable_layer(1); return buf; diff --git a/frontend/plugin_lib.c b/frontend/plugin_lib.c index 56da763e..ab4d4152 100644 --- a/frontend/plugin_lib.c +++ b/frontend/plugin_lib.c @@ -34,6 +34,8 @@ #include "../libpcsxcore/psxmem_map.h" #include "../plugins/dfinput/externals.h" +#define HUD_HEIGHT 10 + int in_type1, in_type2; int in_a1[2] = { 127, 127 }, in_a2[2] = { 127, 127 }; int in_adev[2] = { -1, -1 }, in_adev_axis[2][2] = {{ 0, 1 }, { 0, 1 }}; @@ -101,20 +103,20 @@ static void hud_printf(void *fb, int w, int x, int y, const char *texto, ...) static void print_msg(int h, int border) { - hud_print(pl_vout_buf, pl_vout_w, border + 2, h - 10, hud_msg); + hud_print(pl_vout_buf, pl_vout_w, border + 2, h - HUD_HEIGHT, hud_msg); } static void print_fps(int h, int border) { - hud_printf(pl_vout_buf, pl_vout_w, border + 2, h - 10, + hud_printf(pl_vout_buf, pl_vout_w, border + 2, h - HUD_HEIGHT, "%2d %4.1f", pl_rearmed_cbs.flips_per_sec, pl_rearmed_cbs.vsps_cur); } static void print_cpu_usage(int w, int h, int border) { - hud_printf(pl_vout_buf, pl_vout_w, pl_vout_w - border - 28, h - 10, - "%3d", pl_rearmed_cbs.cpu_usage); + hud_printf(pl_vout_buf, pl_vout_w, pl_vout_w - border - 28, + h - HUD_HEIGHT, "%3d", pl_rearmed_cbs.cpu_usage); } // draw 192x8 status of 24 sound channels @@ -126,7 +128,7 @@ static __attribute__((noinline)) void draw_active_chans(int vout_w, int vout_h) static const unsigned short colors[2] = { 0x1fe3, 0x0700 }; unsigned short *dest = (unsigned short *)pl_vout_buf + - vout_w * (vout_h - 10) + vout_w / 2 - 192/2; + vout_w * (vout_h - HUD_HEIGHT) + vout_w / 2 - 192/2; unsigned short *d, p; int c, x, y; diff --git a/plugins/gpulib/vout_pl.c b/plugins/gpulib/vout_pl.c index 541b5e0b..a9437cb1 100644 --- a/plugins/gpulib/vout_pl.c +++ b/plugins/gpulib/vout_pl.c @@ -89,11 +89,12 @@ void vout_blank(void) { int w = gpu.screen.hres; int h = gpu.screen.h; + + check_mode_change(0); if (gpu.state.enhancement_active) { w *= 2; h *= 2; } - check_mode_change(0); cbs->pl_vout_flip(NULL, 1024, gpu.status.rgb24, w, h); } -- 2.39.2