From bf511b72e65ad5a6d873d63d2c95d9cc23e20014 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 18 Jan 2017 21:23:18 +0100 Subject: [PATCH] Create menu_driver_frame --- gfx/drivers/caca_gfx.c | 2 +- gfx/drivers/ctr_gfx.c | 2 +- gfx/drivers/d3d.cpp | 2 +- gfx/drivers/gdi_gfx.c | 2 +- gfx/drivers/gl.c | 2 +- gfx/drivers/sdl2_gfx.c | 2 +- gfx/drivers/vita2d_gfx.c | 2 +- gfx/drivers/vulkan.c | 2 +- menu/drivers/materialui.c | 2 +- menu/drivers/nuklear.c | 2 +- menu/drivers/xmb.c | 2 +- menu/drivers/xui.cpp | 2 +- menu/drivers/zarch.c | 2 +- menu/menu_driver.c | 15 +++++++++------ menu/menu_driver.h | 5 +++-- 15 files changed, 25 insertions(+), 21 deletions(-) diff --git a/gfx/drivers/caca_gfx.c b/gfx/drivers/caca_gfx.c index b55eb5bd40..4ac19e03cc 100644 --- a/gfx/drivers/caca_gfx.c +++ b/gfx/drivers/caca_gfx.c @@ -145,7 +145,7 @@ static bool caca_gfx_frame(void *data, const void *frame, caca_clear_canvas(caca_cv); #ifdef HAVE_MENU - menu_driver_ctl(RARCH_MENU_CTL_FRAME, NULL); + menu_driver_frame(video_info); #endif if (msg) diff --git a/gfx/drivers/ctr_gfx.c b/gfx/drivers/ctr_gfx.c index 67afa4e360..dd0debe44d 100644 --- a/gfx/drivers/ctr_gfx.c +++ b/gfx/drivers/ctr_gfx.c @@ -750,7 +750,7 @@ static bool ctr_frame(void* data, const void* frame, } ctr->msg_rendering_enabled = true; - menu_driver_ctl(RARCH_MENU_CTL_FRAME, NULL); + menu_driver_frame(video_info); ctr->msg_rendering_enabled = false; } diff --git a/gfx/drivers/d3d.cpp b/gfx/drivers/d3d.cpp index abf51ba807..6e796f4548 100644 --- a/gfx/drivers/d3d.cpp +++ b/gfx/drivers/d3d.cpp @@ -1449,7 +1449,7 @@ static bool d3d_frame(void *data, const void *frame, if (d3d->menu && d3d->menu->enabled) { d3d_overlay_render(d3d, d3d->menu); - menu_driver_ctl(RARCH_MENU_CTL_FRAME, NULL); + menu_driver_frame(video_info); } #endif diff --git a/gfx/drivers/gdi_gfx.c b/gfx/drivers/gdi_gfx.c index b0aecc2924..560146c7df 100644 --- a/gfx/drivers/gdi_gfx.c +++ b/gfx/drivers/gdi_gfx.c @@ -162,7 +162,7 @@ static bool gdi_gfx_frame(void *data, const void *frame, return true; #ifdef HAVE_MENU - menu_driver_ctl(RARCH_MENU_CTL_FRAME, NULL); + menu_driver_frame(video_info); #endif if (gdi_video_width != frame_width || gdi_video_height != frame_height || gdi_video_pitch != pitch) diff --git a/gfx/drivers/gl.c b/gfx/drivers/gl.c index 09c0bd7dc4..4ca72da58b 100644 --- a/gfx/drivers/gl.c +++ b/gfx/drivers/gl.c @@ -1279,7 +1279,7 @@ static bool gl_frame(void *data, const void *frame, #if defined(HAVE_MENU) if (gl->menu_texture_enable) { - menu_driver_ctl(RARCH_MENU_CTL_FRAME, NULL); + menu_driver_frame(video_info); if (gl->menu_texture_enable) gl_draw_texture(gl); diff --git a/gfx/drivers/sdl2_gfx.c b/gfx/drivers/sdl2_gfx.c index 438abdeb4c..8dd22ccdcd 100644 --- a/gfx/drivers/sdl2_gfx.c +++ b/gfx/drivers/sdl2_gfx.c @@ -522,7 +522,7 @@ static bool sdl2_gfx_frame(void *data, const void *frame, unsigned width, SDL_RenderCopyEx(vid->renderer, vid->frame.tex, NULL, NULL, vid->rotation, NULL, SDL_FLIP_NONE); #ifdef HAVE_MENU - menu_driver_ctl(RARCH_MENU_CTL_FRAME, NULL); + menu_driver_frame(video_info); #endif if (vid->menu.active) diff --git a/gfx/drivers/vita2d_gfx.c b/gfx/drivers/vita2d_gfx.c index bf784591ea..e1747e354d 100644 --- a/gfx/drivers/vita2d_gfx.c +++ b/gfx/drivers/vita2d_gfx.c @@ -217,7 +217,7 @@ static bool vita2d_gfx_frame(void *data, const void *frame, if (vita->menu.active) { - menu_driver_ctl(RARCH_MENU_CTL_FRAME, NULL); + menu_driver_frame(video_info); if(vita->menu.texture){ if (vita->fullscreen) diff --git a/gfx/drivers/vulkan.c b/gfx/drivers/vulkan.c index a9c2e958a2..0765c9fc9c 100644 --- a/gfx/drivers/vulkan.c +++ b/gfx/drivers/vulkan.c @@ -1738,7 +1738,7 @@ static bool vulkan_frame(void *data, const void *frame, #if defined(HAVE_MENU) if (vk->menu.enable) { - menu_driver_ctl(RARCH_MENU_CTL_FRAME, NULL); + menu_driver_frame(video_info); if (vk->menu.textures[vk->menu.last_index].image != VK_NULL_HANDLE) { diff --git a/menu/drivers/materialui.c b/menu/drivers/materialui.c index 056974cde4..d86d9a7498 100644 --- a/menu/drivers/materialui.c +++ b/menu/drivers/materialui.c @@ -938,7 +938,7 @@ static void mui_draw_bg(menu_display_ctx_draw_t *draw) menu_display_blend_end(); } -static void mui_frame(void *data) +static void mui_frame(void *data, video_frame_info_t *video_info) { float black_bg[16] = { 0, 0, 0, 0.75, diff --git a/menu/drivers/nuklear.c b/menu/drivers/nuklear.c index 78b37184c5..c7dc425ab6 100644 --- a/menu/drivers/nuklear.c +++ b/menu/drivers/nuklear.c @@ -302,7 +302,7 @@ static void nk_menu_main(nk_menu_handle_t *nk) } -static void nk_menu_frame(void *data) +static void nk_menu_frame(void *data, video_frame_info_t *video_info) { float white_bg[16]= { 0.98, 0.98, 0.98, 1, diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 8fe641b054..f017cb0a8d 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -2553,7 +2553,7 @@ static void xmb_draw_dark_layer( menu_display_blend_end(); } -static void xmb_frame(void *data) +static void xmb_frame(void *data, video_frame_info_t *video_info) { size_t selection; size_t percent_width = 0; diff --git a/menu/drivers/xui.cpp b/menu/drivers/xui.cpp index c688ab193a..3c57b9808c 100644 --- a/menu/drivers/xui.cpp +++ b/menu/drivers/xui.cpp @@ -399,7 +399,7 @@ end: string_list_free(list); } -static void xui_frame(void *data) +static void xui_frame(void *data, video_frame_info_t *video_info) { XUIMessage msg; XUIMessageRender msgRender; diff --git a/menu/drivers/zarch.c b/menu/drivers/zarch.c index 34a6d38e81..2eeae2d002 100644 --- a/menu/drivers/zarch.c +++ b/menu/drivers/zarch.c @@ -846,7 +846,7 @@ static int zarch_zui_render_pick_core(zui_t *zui) return 0; } -static void zarch_frame(void *data) +static void zarch_frame(void *data, video_frame_info_t *video_info) { unsigned i; float coord_color[16]; diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 6bd0a55681..73f284c8c1 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -302,6 +302,15 @@ const char *menu_driver_ident(void) return menu_driver_ctx->ident; } +void menu_driver_frame(video_frame_info_t *video_info) +{ + if (!menu_driver_alive) + return; + + if (menu_driver_ctx->frame) + menu_driver_ctx->frame(menu_userdata, video_info); +} + /** * menu_update_libretro_info: * @@ -484,12 +493,6 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data) menu_driver_data->state = 0; break; - case RARCH_MENU_CTL_FRAME: - if (!menu_driver_alive) - return false; - if (menu_driver_ctx->frame) - menu_driver_ctx->frame(menu_userdata); - break; case RARCH_MENU_CTL_SET_PREVENT_POPULATE: menu_driver_prevent_populate = true; break; diff --git a/menu/menu_driver.h b/menu/menu_driver.h index e097fd6a06..3d1b9c6731 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -99,7 +99,6 @@ enum rarch_menu_ctl_state RARCH_MENU_CTL_BLIT_RENDER, RARCH_MENU_CTL_RENDER, RARCH_MENU_CTL_RENDER_MESSAGEBOX, - RARCH_MENU_CTL_FRAME, RARCH_MENU_CTL_SET_PREVENT_POPULATE, RARCH_MENU_CTL_UNSET_PREVENT_POPULATE, RARCH_MENU_CTL_IS_PREVENT_POPULATE, @@ -238,7 +237,7 @@ typedef struct menu_ctx_driver void (*render_messagebox)(void *data, const char *msg); int (*iterate)(void *data, void *userdata, enum menu_action action); void (*render)(void *data); - void (*frame)(void *data); + void (*frame)(void *data, video_frame_info_t *video_info); void* (*init)(void**); void (*free)(void*); void (*context_reset)(void *data); @@ -390,6 +389,8 @@ bool menu_driver_is_binding_state(void); void menu_driver_set_binding_state(bool on); +void menu_driver_frame(video_frame_info_t *video_info); + extern menu_ctx_driver_t menu_ctx_xui; extern menu_ctx_driver_t menu_ctx_rgui; extern menu_ctx_driver_t menu_ctx_mui;