aboutsummaryrefslogtreecommitdiff
path: root/plugins/gpulib/vout_pl.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/gpulib/vout_pl.c')
-rw-r--r--plugins/gpulib/vout_pl.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/plugins/gpulib/vout_pl.c b/plugins/gpulib/vout_pl.c
index 91de057..79b6c3e 100644
--- a/plugins/gpulib/vout_pl.c
+++ b/plugins/gpulib/vout_pl.c
@@ -36,8 +36,8 @@ static void check_mode_change(void)
{
old_status = gpu.status.reg;
old_h = gpu.screen.h;
- screen_buf = cbs->pl_vout_set_mode(gpu.screen.hres,
- gpu.screen.h, gpu.status.rgb24 ? 24 : 16);
+ screen_buf = cbs->pl_vout_set_mode(gpu.screen.hres, gpu.screen.h,
+ (gpu.status.rgb24 && !cbs->only_16bpp) ? 24 : 16);
}
}
@@ -60,21 +60,22 @@ static void blit(void)
if (gpu.status.rgb24)
{
-#ifndef MAEMO
- dest += (doffs / 8) * 24;
- for (; h-- > 0; dest += stride * 3, fb_offs += 1024)
- {
- fb_offs &= 1024*512-1;
- bgr888_to_rgb888(dest, vram + fb_offs, w * 3);
+ if (cbs->only_16bpp) {
+ dest += doffs * 2;
+ for (; h-- > 0; dest += stride * 2, fb_offs += 1024)
+ {
+ fb_offs &= 1024*512-1;
+ bgr888_to_rgb565(dest, vram + fb_offs, w * 3);
+ }
}
-#else
- dest += doffs * 2;
- for (; h-- > 0; dest += stride * 2, fb_offs += 1024)
- {
- fb_offs &= 1024*512-1;
- bgr888_to_rgb565(dest, vram + fb_offs, w * 3);
+ else {
+ dest += (doffs / 8) * 24;
+ for (; h-- > 0; dest += stride * 3, fb_offs += 1024)
+ {
+ fb_offs &= 1024*512-1;
+ bgr888_to_rgb888(dest, vram + fb_offs, w * 3);
+ }
}
-#endif
}
else
{