frontend: fix minor glitches on video mode changes
authornotaz <notasas@gmail.com>
Tue, 3 Feb 2015 01:10:06 +0000 (03:10 +0200)
committernotaz <notasas@gmail.com>
Tue, 3 Feb 2015 01:10:06 +0000 (03:10 +0200)
frontend/plat_omap.c
frontend/plugin_lib.c
plugins/gpulib/vout_pl.c

index 4e3ea79..f25f31c 100644 (file)
@@ -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;
index 56da763..ab4d415 100644 (file)
@@ -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;
 
index 541b5e0..a9437cb 100644 (file)
@@ -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);
 }