From 468072a17a20bf584df17f14e329441eebf66776 Mon Sep 17 00:00:00 2001
From: notaz <notasas@gmail.com>
Date: Tue, 5 Feb 2013 00:42:51 +0200
Subject: [PATCH] frontend: do all bpp handling in plugin_lib

---
 frontend/plugin_lib.c    | 7 +++++--
 plugins/gpulib/vout_pl.c | 3 +--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/frontend/plugin_lib.c b/frontend/plugin_lib.c
index fff84010..180ee4aa 100644
--- a/frontend/plugin_lib.c
+++ b/frontend/plugin_lib.c
@@ -240,9 +240,12 @@ static void pl_vout_set_mode(int w, int h, int raw_w, int raw_h, int bpp)
 
 	psx_w = raw_w;
 	psx_h = raw_h;
+	psx_bpp = bpp;
 	vout_w = w;
 	vout_h = h;
-	vout_bpp = psx_bpp = bpp;
+	vout_bpp = bpp;
+	if (pl_rearmed_cbs.only_16bpp)
+		vout_bpp = 16;
 
 	// don't use very low heights
 	if (vout_h < 192) {
@@ -270,7 +273,7 @@ static void pl_vout_set_mode(int w, int h, int raw_w, int raw_h, int bpp)
 	pl_vout_buf = plat_gvideo_set_mode(&vout_w, &vout_h, &vout_bpp);
 	if (pl_vout_buf == NULL && pl_plat_blit == NULL)
 		fprintf(stderr, "failed to set mode %dx%d@%d\n",
-			vout_w, vout_h, psx_bpp);
+			vout_w, vout_h, vout_bpp);
 	else {
 		pl_vout_w = vout_w;
 		pl_vout_h = vout_h;
diff --git a/plugins/gpulib/vout_pl.c b/plugins/gpulib/vout_pl.c
index 5af0762f..7f031feb 100644
--- a/plugins/gpulib/vout_pl.c
+++ b/plugins/gpulib/vout_pl.c
@@ -50,8 +50,7 @@ static void check_mode_change(int force)
     old_status = gpu.status.reg;
     old_h = h;
 
-    cbs->pl_vout_set_mode(w_out, h_out, w, h,
-      (gpu.status.rgb24 && !cbs->only_16bpp) ? 24 : 16);
+    cbs->pl_vout_set_mode(w_out, h_out, w, h, gpu.status.rgb24 ? 24 : 16);
   }
 }
 
-- 
2.39.5