break;
}
- g_layer_x = g_menuscreen_w / 2 - g_layer_w / 2;
- g_layer_y = g_menuscreen_h / 2 - g_layer_h / 2;
- if (g_layer_x < 0) g_layer_x = 0;
- if (g_layer_y < 0) g_layer_y = 0;
- if (g_layer_w > g_menuscreen_w) g_layer_w = g_menuscreen_w;
- if (g_layer_h > g_menuscreen_h) g_layer_h = g_menuscreen_h;
+ if (g_scaler != SCALE_CUSTOM) {
+ g_layer_x = g_menuscreen_w / 2 - g_layer_w / 2;
+ g_layer_y = g_menuscreen_h / 2 - g_layer_h / 2;
+ }
+ if (g_layer_w > g_menuscreen_w * 2) g_layer_w = g_menuscreen_w * 2;
+ if (g_layer_h > g_menuscreen_h * 2) g_layer_h = g_menuscreen_h * 2;
}
// XXX: this is platform specific really
doffs = xoffs + y * dstride;
if (dims_changed)
- flip_clear_counter = 2;
+ flip_clear_counter = 3;
if (flip_clear_counter > 0) {
if (pl_plat_clear)
}
else if (scanlines != 0 && scanline_level != 100)
{
- int l = scanline_level * 2048 / 100;
+ int h2, l = scanline_level * 2048 / 100;
int stride_0 = pl_vout_scale_h >= 2 ? 0 : stride;
h1 *= pl_vout_scale_h;
- for (; h1 >= 2; h1 -= 2)
+ while (h1 > 0)
{
- bgr555_to_rgb565(dest, src, w * 2);
- dest += dstride * 2, src += stride_0;
+ for (h2 = scanlines; h2 > 0 && h1 > 0; h2--, h1--) {
+ bgr555_to_rgb565(dest, src, w * 2);
+ dest += dstride * 2, src += stride_0;
+ }
- bgr555_to_rgb565_b(dest, src, w * 2, l);
- dest += dstride * 2, src += stride;
+ for (h2 = scanlines; h2 > 0 && h1 > 0; h2--, h1--) {
+ bgr555_to_rgb565_b(dest, src, w * 2, l);
+ dest += dstride * 2, src += stride;
+ }
}
}
#endif