(menu_display.c) Wrap bind_block and flush_block calls

This commit is contained in:
twinaphex 2015-04-24 23:22:47 +02:00
parent b10ce11ad3
commit 86958c4117
4 changed files with 34 additions and 18 deletions

View File

@ -488,8 +488,7 @@ static void glui_frame(void)
font_driver = (const struct font_renderer*)gl->font_driver;
if (font_driver->bind_block)
font_driver->bind_block(menu->font.buf, &glui->list_block);
menu_display_font_bind_block(menu, font_driver, &glui->list_block);
glui_render_menu_list(runloop, gl, glui, menu,
label, normal_color, hover_color);
@ -548,11 +547,8 @@ static void glui_frame(void)
TEXT_ALIGN_RIGHT);
}
if (font_driver->flush)
{
font_driver->flush(menu->font.buf);
font_driver->bind_block(menu->font.buf, NULL);
}
if (menu_display_font_flush_block(menu, font_driver))
menu_display_font_bind_block(menu, font_driver, NULL);
if (menu->keyboard.display)
{

View File

@ -1313,8 +1313,6 @@ static void xmb_frame(void)
if (!menu)
return;
(void)font_driver;
xmb = (xmb_handle_t*)menu->userdata;
if (!xmb)
@ -1325,10 +1323,7 @@ static void xmb_frame(void)
if (!gl)
return;
font_driver = (const struct font_renderer*)gl->font_driver;
if (font_driver->bind_block)
font_driver->bind_block(menu->font.buf, &xmb->raster_block);
menu_display_font_bind_block(menu, font_driver, &xmb->raster_block);
xmb->raster_block.carr.coords.vertices = 0;
@ -1428,11 +1423,8 @@ static void xmb_frame(void)
}
}
if (font_driver->flush)
{
font_driver->flush(menu->font.buf);
font_driver->bind_block(menu->font.buf, NULL);
}
if (menu_display_font_flush_block(menu, font_driver))
menu_display_font_bind_block(menu, font_driver, NULL);
if (menu->keyboard.display)
{

View File

@ -132,3 +132,24 @@ bool menu_display_font_init_first(const void **font_driver,
return font_init_first(font_driver, font_handle, video_data,
font_path, font_size, FONT_DRIVER_RENDER_OPENGL_API);
}
bool menu_display_font_flush_block(menu_handle_t *menu,
const struct font_renderer *font_driver)
{
if (!font_driver || !font_driver->flush)
return false;
font_driver->flush(menu->font.buf);
return true;
}
bool menu_display_font_bind_block(menu_handle_t *menu,
const struct font_renderer *font_driver, void *userdata)
{
if (!font_driver || !font_driver->bind_block)
return false;
font_driver->bind_block(menu->font.buf, userdata);
return true;
}

View File

@ -18,6 +18,7 @@
#include "menu_driver.h"
#include "../gfx/video_thread_wrapper.h"
#include "../gfx/font_renderer_driver.h"
#ifdef __cplusplus
extern "C" {
@ -37,6 +38,12 @@ bool menu_display_font_init_first(const void **font_driver,
void **font_handle, void *video_data, const char *font_path,
float font_size);
bool menu_display_font_bind_block(menu_handle_t *menu,
const struct font_renderer *font_driver, void *userdata);
bool menu_display_font_flush_block(menu_handle_t *menu,
const struct font_renderer *font_driver);
#ifdef __cplusplus
}
#endif