prepare for external gpu plugins
[pcsx_rearmed.git] / frontend / plat_omap.c
index d31fa50..e6a1105 100644 (file)
@@ -91,7 +91,7 @@ static int omap_setup_layer_(int fd, int enabled, int x, int y, int w, int h, in
        }
 
        if (first_call) {
-               mi.size = 640*512*2*3;
+               mi.size = 640*512*3*3;
                ret = ioctl(fd, OMAPFB_SETUP_MEM, &mi);
                if (ret != 0) {
                        perror("SETUP_MEM");
@@ -120,6 +120,14 @@ int omap_enable_layer(int enabled)
                g_layer_x, g_layer_y, g_layer_w, g_layer_h, 0);
 }
 
+void plat_video_menu_enter(int is_rom_loaded)
+{
+       g_menuscreen_ptr = vout_fbdev_resize(main_fb,
+               g_menuscreen_w, g_menuscreen_h, 16, 0, 0, 0, 0, 3);
+       if (g_menuscreen_ptr == NULL)
+               fprintf(stderr, "warning: vout_fbdev_resize failed\n");
+}
+
 void plat_video_menu_begin(void)
 {
 }
@@ -129,6 +137,17 @@ void plat_video_menu_end(void)
        g_menuscreen_ptr = vout_fbdev_flip(main_fb);
 }
 
+void plat_video_menu_leave(void)
+{
+       /* have to get rid of panning so that plugins that
+        * use fb0 and don't ever pan can work. */
+       vout_fbdev_clear(main_fb);
+       g_menuscreen_ptr = vout_fbdev_resize(main_fb,
+               g_menuscreen_w, g_menuscreen_h, 16, 0, 0, 0, 0, 1);
+       if (g_menuscreen_ptr == NULL)
+               fprintf(stderr, "warning: vout_fbdev_resize failed\n");
+}
+
 void plat_init(void)
 {
        const char *main_fb_name, *layer_fb_name;
@@ -151,7 +170,7 @@ void plat_init(void)
                exit(1);
        }
 
-       ret = omap_setup_layer_(fd, 1, g_layer_x, g_layer_y, g_layer_w, g_layer_h, 1);
+       ret = omap_setup_layer_(fd, 0, g_layer_x, g_layer_y, g_layer_w, g_layer_h, 1);
        close(fd);
        if (ret != 0) {
                fprintf(stderr, "failed to set up layer, exiting.\n");