From d010a852e42e111565e696a8c40aec87816a681d Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 18 Jan 2017 22:20:47 +0100 Subject: [PATCH] Call menu_driver_frame once per video_frame call --- gfx/drivers/caca_gfx.c | 11 ++++++++--- gfx/drivers/ctr_gfx.c | 6 ++++-- gfx/drivers/dispmanx_gfx.c | 8 ++++++++ gfx/drivers/drm_gfx.c | 8 ++++++++ gfx/drivers/exynos_gfx.c | 7 +++++++ gfx/drivers/gdi_gfx.c | 9 ++++++++- gfx/drivers/gx_gfx.c | 20 ++++++++++++-------- gfx/drivers/omap_gfx.c | 14 ++++++++++++-- gfx/drivers/psp1_gfx.c | 8 ++++++++ gfx/drivers/sdl_gfx.c | 8 ++++++++ gfx/drivers/sunxi_gfx.c | 8 ++++++++ gfx/drivers/vg.c | 8 ++++++++ gfx/drivers/vita2d_gfx.c | 2 ++ gfx/drivers/wiiu_gfx.c | 19 ++++++++++++++++--- gfx/drivers/xenon360_gfx.c | 4 ++++ gfx/drivers/xshm_gfx.c | 4 ++++ gfx/drivers/xvideo.c | 12 ++++++++++++ 17 files changed, 137 insertions(+), 19 deletions(-) diff --git a/gfx/drivers/caca_gfx.c b/gfx/drivers/caca_gfx.c index 4ac19e03cc..815fcb09af 100644 --- a/gfx/drivers/caca_gfx.c +++ b/gfx/drivers/caca_gfx.c @@ -15,13 +15,18 @@ * If not, see . */ -#include #include +#include + +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#endif + +#include "../common/caca_common.h" + #include "../../driver.h" #include "../../verbosity.h" -#include "../../menu/menu_driver.h" -#include "../common/caca_common.h" static caca_canvas_t *caca_cv = NULL; static caca_dither_t *caca_dither = NULL; diff --git a/gfx/drivers/ctr_gfx.c b/gfx/drivers/ctr_gfx.c index dd0debe44d..ca90959423 100644 --- a/gfx/drivers/ctr_gfx.c +++ b/gfx/drivers/ctr_gfx.c @@ -26,11 +26,13 @@ #include "../../config.h" #endif +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#endif + #include "../../ctr/gpu_old.h" #include "ctr_gu.h" -#include "../../menu/menu_driver.h" - #include "../../configuration.h" #include "../../command.h" #include "../../driver.h" diff --git a/gfx/drivers/dispmanx_gfx.c b/gfx/drivers/dispmanx_gfx.c index 1c27cd26f9..fe3698a47a 100644 --- a/gfx/drivers/dispmanx_gfx.c +++ b/gfx/drivers/dispmanx_gfx.c @@ -21,6 +21,10 @@ #include "../../config.h" #endif +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#endif + #include "../../configuration.h" #include "../../driver.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); } +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif + /* Update main surface: locate free page, blit and flip. */ dispmanx_surface_update(_dispvars, frame, _dispvars->main_surface); return true; diff --git a/gfx/drivers/drm_gfx.c b/gfx/drivers/drm_gfx.c index 62c22f8b55..c3c1e6b021 100644 --- a/gfx/drivers/drm_gfx.c +++ b/gfx/drivers/drm_gfx.c @@ -28,6 +28,10 @@ #include "../../config.h" #endif +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#endif + #include "../font_driver.h" #include "../video_context_driver.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); } +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif + /* Update main surface: locate free page, blit and flip. */ drm_surface_update(_drmvars, frame, _drmvars->main_surface); return true; diff --git a/gfx/drivers/exynos_gfx.c b/gfx/drivers/exynos_gfx.c index 00f0fae394..03b38b86d0 100644 --- a/gfx/drivers/exynos_gfx.c +++ b/gfx/drivers/exynos_gfx.c @@ -35,6 +35,10 @@ #include "../../config.h" #endif +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#endif + #include "../common/drm_common.h" #include "../font_driver.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) goto fail; +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif } if (msg) diff --git a/gfx/drivers/gdi_gfx.c b/gfx/drivers/gdi_gfx.c index 560146c7df..90af988ec4 100644 --- a/gfx/drivers/gdi_gfx.c +++ b/gfx/drivers/gdi_gfx.c @@ -17,10 +17,17 @@ #include +#ifdef HAVE_CONFIG_H +#include "../../config.h" +#endif + +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#endif + #include "../../driver.h" #include "../../configuration.h" #include "../../verbosity.h" -#include "../../menu/menu_driver.h" #include "../common/gdi_common.h" #if defined(_WIN32) && !defined(_XBOX) diff --git a/gfx/drivers/gx_gfx.c b/gfx/drivers/gx_gfx.c index 9b9439cf5f..b131268973 100644 --- a/gfx/drivers/gx_gfx.c +++ b/gfx/drivers/gx_gfx.c @@ -27,6 +27,11 @@ #include "../../config.h" #endif +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#include "../../menu/menu_display.h" +#endif + #ifdef HW_RVL #include "../../memory/wii/mem2_manager.h" #endif @@ -36,8 +41,6 @@ #include "../../configuration.h" #include "../../driver.h" #include "../../runloop.h" -#include "../../menu/menu_driver.h" -#include "../../menu/menu_display.h" extern syssram* __SYS_LockSram(void); 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) { - size_t fb_pitch; - unsigned fb_width, fb_height; - - fb_width = menu_display_get_width(); - fb_height = menu_display_get_height(); - fb_pitch = menu_display_get_framebuffer_pitch(); + unsigned fb_width = menu_display_get_width(); + unsigned fb_height = menu_display_get_height(); + size_t fb_pitch = menu_display_get_framebuffer_pitch(); convert_texture16( gx->menu_data, @@ -1518,6 +1518,10 @@ static bool gx_frame(void *data, const void *frame, fb_width * fb_pitch); } +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif + GX_InvalidateTexAll(); GX_SetCurrentMtx(GX_PNMTX0); diff --git a/gfx/drivers/omap_gfx.c b/gfx/drivers/omap_gfx.c index 1344865ea3..fbc25df83b 100644 --- a/gfx/drivers/omap_gfx.c +++ b/gfx/drivers/omap_gfx.c @@ -25,12 +25,16 @@ #include #include +#include +#include + #ifdef HAVE_CONFIG_H #include "../../config.h" #endif -#include -#include +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#endif #include #include @@ -1008,10 +1012,16 @@ static bool omap_gfx_frame(void *data, const void *frame, unsigned width, omapfb_prepare(vid->omap); omapfb_blit_frame(vid->omap, frame, vid->height, pitch); + +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif + if (vid->menu.active) omapfb_blit_frame(vid->omap, vid->menu.frame, vid->menu.scaler.out_height, vid->menu.scaler.out_stride); + if (msg) omap_render_msg(vid, msg); diff --git a/gfx/drivers/psp1_gfx.c b/gfx/drivers/psp1_gfx.c index 2fbd141fcd..1185064407 100644 --- a/gfx/drivers/psp1_gfx.c +++ b/gfx/drivers/psp1_gfx.c @@ -28,6 +28,10 @@ #include "../../config.h" #endif +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#endif + #include "../../defines/psp_defines.h" #include "../../runloop.h" @@ -561,6 +565,10 @@ static bool psp_frame(void *data, const void *frame, performance_counter_stop(&psp_frame_run); +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif + if(psp->menu.active) { sceGuSendList(GU_TAIL, psp->menu.dList, &(psp->menu.context_storage)); diff --git a/gfx/drivers/sdl_gfx.c b/gfx/drivers/sdl_gfx.c index 787c8d8c58..e79fd926a9 100644 --- a/gfx/drivers/sdl_gfx.c +++ b/gfx/drivers/sdl_gfx.c @@ -27,6 +27,10 @@ #include "../../config.h" #endif +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#endif + #ifdef HAVE_X11 #include "../common/x11_common.h" #endif @@ -358,6 +362,10 @@ static bool sdl_gfx_frame(void *data, const void *frame, unsigned width, pitch); performance_counter_stop(&sdl_scale); +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif + if (vid->menu.active) SDL_BlitSurface(vid->menu.frame, NULL, vid->screen, NULL); diff --git a/gfx/drivers/sunxi_gfx.c b/gfx/drivers/sunxi_gfx.c index c01cb7919b..3c290fa22c 100644 --- a/gfx/drivers/sunxi_gfx.c +++ b/gfx/drivers/sunxi_gfx.c @@ -28,6 +28,10 @@ #include "../../config.h" #endif +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#endif + #include "../../retroarch.h" #include "../../runloop.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); } +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif + if (_dispvars->menu_active) { ioctl(_dispvars->sunxi_disp->fd_fb, FBIO_WAITFORVSYNC, 0); diff --git a/gfx/drivers/vg.c b/gfx/drivers/vg.c index 7791b9b5e3..008e754114 100644 --- a/gfx/drivers/vg.c +++ b/gfx/drivers/vg.c @@ -31,6 +31,10 @@ #include "../../config.h" #endif +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#endif + #include "../video_context_driver.h" #include "../../retroarch.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); performance_counter_stop(&vg_image); +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif + vgDrawImage(vg->mImage); #if 0 diff --git a/gfx/drivers/vita2d_gfx.c b/gfx/drivers/vita2d_gfx.c index e1747e354d..f16d669dcc 100644 --- a/gfx/drivers/vita2d_gfx.c +++ b/gfx/drivers/vita2d_gfx.c @@ -217,7 +217,9 @@ static bool vita2d_gfx_frame(void *data, const void *frame, if (vita->menu.active) { +#ifdef HAVE_MENU menu_driver_frame(video_info); +#endif if(vita->menu.texture){ if (vita->fullscreen) diff --git a/gfx/drivers/wiiu_gfx.c b/gfx/drivers/wiiu_gfx.c index 928993e1e7..c1fb356e5f 100644 --- a/gfx/drivers/wiiu_gfx.c +++ b/gfx/drivers/wiiu_gfx.c @@ -13,14 +13,23 @@ * If not, see . */ +#include +#include +#include + #include "../../driver.h" #include "../../configuration.h" #include "../../verbosity.h" #include "performance_counters.h" -#include -#include -#include +#ifdef HAVE_CONFIG_H +#include "../../config.h" +#endif + +#ifdef HAVE_MENU +#include "../../menu/menu_driver.h" +#endif + #include "gx2.h" #include "system/memory.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); +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif + if (wiiu->menu.enable) { GX2SetAttribBuffer(0, 4 * sizeof(*wiiu->menu.position), sizeof(*wiiu->menu.position), wiiu->menu.position); diff --git a/gfx/drivers/xenon360_gfx.c b/gfx/drivers/xenon360_gfx.c index 97efef1224..da74eac58b 100644 --- a/gfx/drivers/xenon360_gfx.c +++ b/gfx/drivers/xenon360_gfx.c @@ -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_VERTEX, vid->g_pVertexShader, 0); +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif + // Draw Xe_DrawPrimitive(vid->gl_device, XE_PRIMTYPE_TRIANGLELIST, 0, 1); diff --git a/gfx/drivers/xshm_gfx.c b/gfx/drivers/xshm_gfx.c index 1a5704aee5..31bf833df0 100644 --- a/gfx/drivers/xshm_gfx.c +++ b/gfx/drivers/xshm_gfx.c @@ -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, (uint8_t*)frame + pitch*y, pitch); } + +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif XShmPutImage(xshm->display, xshm->wndw, xshm->gc, xshm->image, 0, 0, 0, 0, xshm->width, xshm->height, False); diff --git a/gfx/drivers/xvideo.c b/gfx/drivers/xvideo.c index 782771bda1..ca862d0f60 100644 --- a/gfx/drivers/xvideo.c +++ b/gfx/drivers/xvideo.c @@ -30,6 +30,14 @@ #include +#ifdef HAVE_CONFIG_H +#include "../../config.h" +#endif + +#ifdef HAVE_MENU +#include ".././menu/menu_driver.h" +#endif + #include "../../configuration.h" #include "../../frontend/frontend_driver.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_height = target.height; +#ifdef HAVE_MENU + menu_driver_frame(video_info); +#endif + if (msg) xv_render_msg(xv, msg, width << 1, height << 1);