+ if (g_scaler == SCALE_1_1 || g_scaler == SCALE_2_2) {
+ if (w > g_menuscreen_w)
+ l = r = (w - g_menuscreen_w) / 2;
+ if (h > g_menuscreen_h)
+ t = b = (h - g_menuscreen_h) / 2;
+ }
+ else if (g_scaler == SCALE_CUSTOM) {
+ int right = g_layer_x + g_layer_w;
+ int bottom = g_layer_y + g_layer_h;
+ if (g_layer_x < 0)
+ l = -g_layer_x * w / g_menuscreen_w;
+ if (g_layer_y < 0)
+ t = -g_layer_y * h / g_menuscreen_h;
+ if (right > g_menuscreen_w)
+ r = (right - g_menuscreen_w) * w / g_menuscreen_w;
+ if (bottom > g_menuscreen_h)
+ b = (bottom - g_menuscreen_h) * h / g_menuscreen_h;
+ }
+ w -= l + r;
+ h -= t + b;
+
+ buf = vout_fbdev_resize(layer_fb, w, h, *bpp,
+ l, r, t, b, 3, 1);
+