frontend: fix screenshot functionality for pollux
authornotaz <notasas@gmail.com>
Fri, 28 Oct 2011 22:15:39 +0000 (01:15 +0300)
committernotaz <notasas@gmail.com>
Sun, 30 Oct 2011 21:48:09 +0000 (23:48 +0200)
frontend/main.c
frontend/plat.h
frontend/plat_dummy.c
frontend/plat_pollux.c
frontend/plugin_lib.c

index bf5f35f..aaf1bb0 100644 (file)
@@ -20,6 +20,7 @@
 #include "plugin_lib.h"
 #include "pcnt.h"
 #include "menu.h"
+#include "plat.h"
 #include "../libpcsxcore/misc.h"
 #include "../libpcsxcore/new_dynarec/new_dynarec.h"
 #include "../plugins/cdrcimg/cdrcimg.h"
index 4f3ab81..85290cd 100644 (file)
@@ -1,3 +1,4 @@
+void *plat_prepare_screenshot(int *w, int *h, int *bpp);
 int plat_rescan_inputs(void);
 int plat_cpu_clock_get(void);
 int plat_cpu_clock_apply(int cpu_clock);
index 0b5f090..058ef1b 100644 (file)
@@ -48,6 +48,11 @@ void in_update_analogs(void)
 {
 }
 
+void *plat_prepare_screenshot(int *w, int *h, int *bpp)
+{
+       return 0;
+}
+
 int plat_rescan_inputs(void)
 {
        return -1;
index b237110..fd9c325 100644 (file)
@@ -244,6 +244,15 @@ void plat_video_menu_leave(void)
        pollux_changemode(psx_bpp, 1);
 }
 
+void *plat_prepare_screenshot(int *w, int *h, int *bpp)
+{
+       bgr555_to_rgb565(pl_vout_buf, pl_vout_buf, 320*240*2);
+       *w = 320;
+       *h = 240;
+       *bpp = psx_bpp;
+       return pl_vout_buf;
+}
+
 static void pl_vout_set_raw_vram(void *vram)
 {
        int i;
index 0e69743..9003ff8 100644 (file)
@@ -24,6 +24,7 @@
 #include "omap.h"
 #include "menu.h"
 #include "main.h"
+#include "plat.h"
 #include "pcnt.h"
 #include "pl_gun_ts.h"
 #include "../libpcsxcore/new_dynarec/new_dynarec.h"
@@ -209,11 +210,15 @@ static void pl_vout_close(void)
 
 void *pl_prepare_screenshot(int *w, int *h, int *bpp)
 {
+#if defined(VOUT_FBDEV)
        *w = pl_vout_w;
        *h = pl_vout_h;
        *bpp = pl_vout_bpp;
 
        return pl_vout_buf;
+#else
+       return plat_prepare_screenshot(w, h, bpp);
+#endif
 }
 
 static void update_input(void)