Call menu_driver_frame once per video_frame call

This commit is contained in:
twinaphex 2017-01-18 22:20:47 +01:00
parent 34da27c36b
commit d010a852e4
17 changed files with 137 additions and 19 deletions

View File

@ -15,13 +15,18 @@
* If not, see <http://www.gnu.org/licenses/>. * If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <retro_miscellaneous.h>
#include <caca.h> #include <caca.h>
#include <retro_miscellaneous.h>
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#endif
#include "../common/caca_common.h"
#include "../../driver.h" #include "../../driver.h"
#include "../../verbosity.h" #include "../../verbosity.h"
#include "../../menu/menu_driver.h"
#include "../common/caca_common.h"
static caca_canvas_t *caca_cv = NULL; static caca_canvas_t *caca_cv = NULL;
static caca_dither_t *caca_dither = NULL; static caca_dither_t *caca_dither = NULL;

View File

@ -26,11 +26,13 @@
#include "../../config.h" #include "../../config.h"
#endif #endif
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#endif
#include "../../ctr/gpu_old.h" #include "../../ctr/gpu_old.h"
#include "ctr_gu.h" #include "ctr_gu.h"
#include "../../menu/menu_driver.h"
#include "../../configuration.h" #include "../../configuration.h"
#include "../../command.h" #include "../../command.h"
#include "../../driver.h" #include "../../driver.h"

View File

@ -21,6 +21,10 @@
#include "../../config.h" #include "../../config.h"
#endif #endif
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#endif
#include "../../configuration.h" #include "../../configuration.h"
#include "../../driver.h" #include "../../driver.h"
#include "../../retroarch.h" #include "../../retroarch.h"
@ -476,6 +480,10 @@ static bool dispmanx_gfx_frame(void *data, const void *frame, unsigned width,
dispmanx_surface_free(_dispvars, &_dispvars->menu_surface); dispmanx_surface_free(_dispvars, &_dispvars->menu_surface);
} }
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
/* Update main surface: locate free page, blit and flip. */ /* Update main surface: locate free page, blit and flip. */
dispmanx_surface_update(_dispvars, frame, _dispvars->main_surface); dispmanx_surface_update(_dispvars, frame, _dispvars->main_surface);
return true; return true;

View File

@ -28,6 +28,10 @@
#include "../../config.h" #include "../../config.h"
#endif #endif
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#endif
#include "../font_driver.h" #include "../font_driver.h"
#include "../video_context_driver.h" #include "../video_context_driver.h"
#include "../../retroarch.h" #include "../../retroarch.h"
@ -779,6 +783,10 @@ static bool drm_gfx_frame(void *data, const void *frame, unsigned width,
drm_plane_setup(_drmvars->main_surface); drm_plane_setup(_drmvars->main_surface);
} }
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
/* Update main surface: locate free page, blit and flip. */ /* Update main surface: locate free page, blit and flip. */
drm_surface_update(_drmvars, frame, _drmvars->main_surface); drm_surface_update(_drmvars, frame, _drmvars->main_surface);
return true; return true;

View File

@ -35,6 +35,10 @@
#include "../../config.h" #include "../../config.h"
#endif #endif
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#endif
#include "../common/drm_common.h" #include "../common/drm_common.h"
#include "../font_driver.h" #include "../font_driver.h"
#include "../../configuration.h" #include "../../configuration.h"
@ -1315,6 +1319,9 @@ static bool exynos_gfx_frame(void *data, const void *frame, unsigned width,
{ {
if (exynos_blend_menu(vid->data, vid->menu_rotation) != 0) if (exynos_blend_menu(vid->data, vid->menu_rotation) != 0)
goto fail; goto fail;
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
} }
if (msg) if (msg)

View File

@ -17,10 +17,17 @@
#include <retro_miscellaneous.h> #include <retro_miscellaneous.h>
#ifdef HAVE_CONFIG_H
#include "../../config.h"
#endif
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#endif
#include "../../driver.h" #include "../../driver.h"
#include "../../configuration.h" #include "../../configuration.h"
#include "../../verbosity.h" #include "../../verbosity.h"
#include "../../menu/menu_driver.h"
#include "../common/gdi_common.h" #include "../common/gdi_common.h"
#if defined(_WIN32) && !defined(_XBOX) #if defined(_WIN32) && !defined(_XBOX)

View File

@ -27,6 +27,11 @@
#include "../../config.h" #include "../../config.h"
#endif #endif
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#include "../../menu/menu_display.h"
#endif
#ifdef HW_RVL #ifdef HW_RVL
#include "../../memory/wii/mem2_manager.h" #include "../../memory/wii/mem2_manager.h"
#endif #endif
@ -36,8 +41,6 @@
#include "../../configuration.h" #include "../../configuration.h"
#include "../../driver.h" #include "../../driver.h"
#include "../../runloop.h" #include "../../runloop.h"
#include "../../menu/menu_driver.h"
#include "../../menu/menu_display.h"
extern syssram* __SYS_LockSram(void); extern syssram* __SYS_LockSram(void);
extern u32 __SYS_UnlockSram(u32 write); extern u32 __SYS_UnlockSram(u32 write);
@ -1500,12 +1503,9 @@ static bool gx_frame(void *data, const void *frame,
if (gx->menu_texture_enable && gx->menu_data) if (gx->menu_texture_enable && gx->menu_data)
{ {
size_t fb_pitch; unsigned fb_width = menu_display_get_width();
unsigned fb_width, fb_height; unsigned fb_height = menu_display_get_height();
size_t fb_pitch = menu_display_get_framebuffer_pitch();
fb_width = menu_display_get_width();
fb_height = menu_display_get_height();
fb_pitch = menu_display_get_framebuffer_pitch();
convert_texture16( convert_texture16(
gx->menu_data, gx->menu_data,
@ -1518,6 +1518,10 @@ static bool gx_frame(void *data, const void *frame,
fb_width * fb_pitch); fb_width * fb_pitch);
} }
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
GX_InvalidateTexAll(); GX_InvalidateTexAll();
GX_SetCurrentMtx(GX_PNMTX0); GX_SetCurrentMtx(GX_PNMTX0);

View File

@ -25,12 +25,16 @@
#include <ctype.h> #include <ctype.h>
#include <assert.h> #include <assert.h>
#include <sys/mman.h>
#include <linux/omapfb.h>
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "../../config.h" #include "../../config.h"
#endif #endif
#include <sys/mman.h> #ifdef HAVE_MENU
#include <linux/omapfb.h> #include "../../menu/menu_driver.h"
#endif
#include <retro_inline.h> #include <retro_inline.h>
#include <retro_assert.h> #include <retro_assert.h>
@ -1008,10 +1012,16 @@ static bool omap_gfx_frame(void *data, const void *frame, unsigned width,
omapfb_prepare(vid->omap); omapfb_prepare(vid->omap);
omapfb_blit_frame(vid->omap, frame, vid->height, pitch); omapfb_blit_frame(vid->omap, frame, vid->height, pitch);
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
if (vid->menu.active) if (vid->menu.active)
omapfb_blit_frame(vid->omap, vid->menu.frame, omapfb_blit_frame(vid->omap, vid->menu.frame,
vid->menu.scaler.out_height, vid->menu.scaler.out_height,
vid->menu.scaler.out_stride); vid->menu.scaler.out_stride);
if (msg) if (msg)
omap_render_msg(vid, msg); omap_render_msg(vid, msg);

View File

@ -28,6 +28,10 @@
#include "../../config.h" #include "../../config.h"
#endif #endif
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#endif
#include "../../defines/psp_defines.h" #include "../../defines/psp_defines.h"
#include "../../runloop.h" #include "../../runloop.h"
@ -561,6 +565,10 @@ static bool psp_frame(void *data, const void *frame,
performance_counter_stop(&psp_frame_run); performance_counter_stop(&psp_frame_run);
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
if(psp->menu.active) if(psp->menu.active)
{ {
sceGuSendList(GU_TAIL, psp->menu.dList, &(psp->menu.context_storage)); sceGuSendList(GU_TAIL, psp->menu.dList, &(psp->menu.context_storage));

View File

@ -27,6 +27,10 @@
#include "../../config.h" #include "../../config.h"
#endif #endif
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#endif
#ifdef HAVE_X11 #ifdef HAVE_X11
#include "../common/x11_common.h" #include "../common/x11_common.h"
#endif #endif
@ -358,6 +362,10 @@ static bool sdl_gfx_frame(void *data, const void *frame, unsigned width,
pitch); pitch);
performance_counter_stop(&sdl_scale); performance_counter_stop(&sdl_scale);
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
if (vid->menu.active) if (vid->menu.active)
SDL_BlitSurface(vid->menu.frame, NULL, vid->screen, NULL); SDL_BlitSurface(vid->menu.frame, NULL, vid->screen, NULL);

View File

@ -28,6 +28,10 @@
#include "../../config.h" #include "../../config.h"
#endif #endif
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#endif
#include "../../retroarch.h" #include "../../retroarch.h"
#include "../../runloop.h" #include "../../runloop.h"
#include "../font_driver.h" #include "../font_driver.h"
@ -779,6 +783,10 @@ static bool sunxi_gfx_frame(void *data, const void *frame, unsigned width,
sunxi_setup_scale(_dispvars, width, height, pitch); sunxi_setup_scale(_dispvars, width, height, pitch);
} }
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
if (_dispvars->menu_active) if (_dispvars->menu_active)
{ {
ioctl(_dispvars->sunxi_disp->fd_fb, FBIO_WAITFORVSYNC, 0); ioctl(_dispvars->sunxi_disp->fd_fb, FBIO_WAITFORVSYNC, 0);

View File

@ -31,6 +31,10 @@
#include "../../config.h" #include "../../config.h"
#endif #endif
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#endif
#include "../video_context_driver.h" #include "../video_context_driver.h"
#include "../../retroarch.h" #include "../../retroarch.h"
#include "../../runloop.h" #include "../../runloop.h"
@ -417,6 +421,10 @@ static bool vg_frame(void *data, const void *frame,
vg_copy_frame(vg, frame, frame_width, frame_height, pitch); vg_copy_frame(vg, frame, frame_width, frame_height, pitch);
performance_counter_stop(&vg_image); performance_counter_stop(&vg_image);
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
vgDrawImage(vg->mImage); vgDrawImage(vg->mImage);
#if 0 #if 0

View File

@ -217,7 +217,9 @@ static bool vita2d_gfx_frame(void *data, const void *frame,
if (vita->menu.active) if (vita->menu.active)
{ {
#ifdef HAVE_MENU
menu_driver_frame(video_info); menu_driver_frame(video_info);
#endif
if(vita->menu.texture){ if(vita->menu.texture){
if (vita->fullscreen) if (vita->fullscreen)

View File

@ -13,14 +13,23 @@
* If not, see <http://www.gnu.org/licenses/>. * If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <string.h>
#include <coreinit/screen.h>
#include <coreinit/cache.h>
#include "../../driver.h" #include "../../driver.h"
#include "../../configuration.h" #include "../../configuration.h"
#include "../../verbosity.h" #include "../../verbosity.h"
#include "performance_counters.h" #include "performance_counters.h"
#include <string.h> #ifdef HAVE_CONFIG_H
#include <coreinit/screen.h> #include "../../config.h"
#include <coreinit/cache.h> #endif
#ifdef HAVE_MENU
#include "../../menu/menu_driver.h"
#endif
#include "gx2.h" #include "gx2.h"
#include "system/memory.h" #include "system/memory.h"
#include "system/wiiu.h" #include "system/wiiu.h"
@ -668,6 +677,10 @@ static bool wiiu_gfx_frame(void* data, const void* frame,
GX2DrawEx(GX2_PRIMITIVE_MODE_QUADS, 4, 0, 1); GX2DrawEx(GX2_PRIMITIVE_MODE_QUADS, 4, 0, 1);
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
if (wiiu->menu.enable) if (wiiu->menu.enable)
{ {
GX2SetAttribBuffer(0, 4 * sizeof(*wiiu->menu.position), sizeof(*wiiu->menu.position), wiiu->menu.position); GX2SetAttribBuffer(0, 4 * sizeof(*wiiu->menu.position), sizeof(*wiiu->menu.position), wiiu->menu.position);

View File

@ -230,6 +230,10 @@ static bool xenon360_gfx_frame(void *data, const void *frame, unsigned width, un
Xe_SetShader(vid->gl_device, SHADER_TYPE_PIXEL, vid->g_pPixelTexturedShader, 0); Xe_SetShader(vid->gl_device, SHADER_TYPE_PIXEL, vid->g_pPixelTexturedShader, 0);
Xe_SetShader(vid->gl_device, SHADER_TYPE_VERTEX, vid->g_pVertexShader, 0); Xe_SetShader(vid->gl_device, SHADER_TYPE_VERTEX, vid->g_pVertexShader, 0);
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
// Draw // Draw
Xe_DrawPrimitive(vid->gl_device, XE_PRIMTYPE_TRIANGLELIST, 0, 1); Xe_DrawPrimitive(vid->gl_device, XE_PRIMTYPE_TRIANGLELIST, 0, 1);

View File

@ -104,6 +104,10 @@ static bool xshm_gfx_frame(void *data, const void *frame, unsigned width,
memcpy((uint8_t*)xshm->shmInfo.shmaddr + sizeof(uint32_t)*xshm->width*y, memcpy((uint8_t*)xshm->shmInfo.shmaddr + sizeof(uint32_t)*xshm->width*y,
(uint8_t*)frame + pitch*y, pitch); (uint8_t*)frame + pitch*y, pitch);
} }
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
XShmPutImage(xshm->display, xshm->wndw, xshm->gc, xshm->image, XShmPutImage(xshm->display, xshm->wndw, xshm->gc, xshm->image,
0, 0, 0, 0, xshm->width, xshm->height, False); 0, 0, 0, 0, xshm->width, xshm->height, False);

View File

@ -30,6 +30,14 @@
#include <retro_inline.h> #include <retro_inline.h>
#ifdef HAVE_CONFIG_H
#include "../../config.h"
#endif
#ifdef HAVE_MENU
#include ".././menu/menu_driver.h"
#endif
#include "../../configuration.h" #include "../../configuration.h"
#include "../../frontend/frontend_driver.h" #include "../../frontend/frontend_driver.h"
#include "../../verbosity.h" #include "../../verbosity.h"
@ -802,6 +810,10 @@ static bool xv_frame(void *data, const void *frame, unsigned width,
xv->vp.full_width = target.width; xv->vp.full_width = target.width;
xv->vp.full_height = target.height; xv->vp.full_height = target.height;
#ifdef HAVE_MENU
menu_driver_frame(video_info);
#endif
if (msg) if (msg)
xv_render_msg(xv, msg, width << 1, height << 1); xv_render_msg(xv, msg, width << 1, height << 1);