diff --git a/gfx/video_driver.c b/gfx/video_driver.c index da97bbca33..2bb7cbe084 100644 --- a/gfx/video_driver.c +++ b/gfx/video_driver.c @@ -700,3 +700,20 @@ void video_driver_set_texture_enable(bool enable, bool fullscreen) enable, fullscreen); #endif } + +void video_driver_set_texture_frame(const void *frame, bool rgb32, + unsigned width, unsigned height, float alpha) +{ +#ifdef HAVE_MENU + driver_t *driver = driver_get_ptr(); + + if (!driver->video_data) + return; + if (!driver->video_poke) + return; + if (!driver->video_poke->set_texture_frame) + return; + driver->video_poke->set_texture_frame( + driver->video_data, frame, rgb32, width, height, alpha); +#endif +} diff --git a/gfx/video_driver.h b/gfx/video_driver.h index 3de4de4635..d65cf01e8f 100644 --- a/gfx/video_driver.h +++ b/gfx/video_driver.h @@ -293,6 +293,9 @@ void video_driver_set_osd_msg(const char *msg, void video_driver_set_texture_enable(bool enable, bool full_screen); +void video_driver_set_texture_frame(const void *frame, bool rgb32, + unsigned width, unsigned height, float alpha); + #ifdef __cplusplus } #endif diff --git a/menu/drivers/rgui.c b/menu/drivers/rgui.c index 63851c9f19..5021975336 100644 --- a/menu/drivers/rgui.c +++ b/menu/drivers/rgui.c @@ -591,24 +591,17 @@ static void rgui_set_texture(void) { menu_handle_t *menu = menu_driver_get_ptr(); runloop_t *runloop = rarch_main_get_ptr(); - driver_t *driver = driver_get_ptr(); if (!menu) return; - - if (!driver->video_data) - return; - if (!driver->video_poke) - return; - if (!driver->video_poke->set_texture_frame) - return; if (!runloop->frames.video.current.menu.framebuf.dirty) return; runloop->frames.video.current.menu.framebuf.dirty = false; - driver->video_poke->set_texture_frame(driver->video_data, - menu->frame_buf.data, false, menu->frame_buf.width, menu->frame_buf.height, 1.0f); + video_driver_set_texture_frame( + menu->frame_buf.data, false, + menu->frame_buf.width, menu->frame_buf.height, 1.0f); } static void rgui_navigation_clear(bool pending_push) diff --git a/menu/drivers/rmenu.c b/menu/drivers/rmenu.c index ea2be65da7..2d2d56d968 100644 --- a/menu/drivers/rmenu.c +++ b/menu/drivers/rmenu.c @@ -281,27 +281,18 @@ static void rmenu_render(void) static void rmenu_set_texture(void) { menu_handle_t *menu = menu_driver_get_ptr(); - driver_t *driver = driver_get_ptr(); if (!menu) return; if (menu_texture_inited) return; - if (!driver->video_data) - return; - if (!driver->video_poke) - return; - if (!driver->video_poke->set_texture_enable) - return; if (!menu_texture) return; if (!menu_texture->pixels) return; - driver->video_poke->set_texture_frame( - driver->video_data, - menu_texture->pixels, - true, menu->frame_buf.width, menu->frame_buf.height, 1.0f); + video_driver_set_texture_frame(menu_texture.pixels, true, + menu->frame_buf.width, menu->frame_buf.height, 1.0f); menu_texture_inited = true; } diff --git a/menu/drivers/rmenu_xui.cpp b/menu/drivers/rmenu_xui.cpp index afdb3d2a02..ff6109056a 100644 --- a/menu/drivers/rmenu_xui.cpp +++ b/menu/drivers/rmenu_xui.cpp @@ -351,9 +351,7 @@ static void* rmenu_xui_init(void) goto error; } - if (driver->video_data && driver->video_poke - && driver->video_poke->set_texture_enable) - driver->video_poke->set_texture_frame(driver->video_data, NULL, + video_driver_set_texture_frame(NULL, true, 0, 0, 1.0f); xui_msg_queue = msg_queue_new(16);