Create video_driver_set_texture_frame

This commit is contained in:
twinaphex 2015-03-22 19:15:34 +01:00
parent e7ba750641
commit 56943ccb40
5 changed files with 26 additions and 24 deletions

View File

@ -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
}

View File

@ -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

View File

@ -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)

View File

@ -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;
}

View File

@ -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);