mirror of
https://github.com/libretro/RetroArch
synced 2025-02-20 15:40:44 +00:00
Move font_handle and font_driver ot the driver struct
This commit is contained in:
parent
a79511e27f
commit
44a8b8bcd3
3
driver.h
3
driver.h
@ -29,6 +29,7 @@
|
||||
#include "frontend/frontend_driver.h"
|
||||
#include "ui/ui_companion_driver.h"
|
||||
#include "gfx/video_driver.h"
|
||||
#include "gfx/font_renderer_driver.h"
|
||||
#include "audio/audio_driver.h"
|
||||
|
||||
#include "menu/menu_driver.h"
|
||||
@ -201,7 +202,9 @@ typedef struct driver
|
||||
const rarch_resampler_t *resampler;
|
||||
const record_driver_t *recording;
|
||||
struct retro_callbacks retro_ctx;
|
||||
const struct font_renderer *font_osd_driver;
|
||||
|
||||
void *font_osd_data;
|
||||
void *audio_data;
|
||||
void *video_data;
|
||||
void *video_context_data;
|
||||
|
@ -1478,17 +1478,15 @@ static INLINE void gl_draw_texture(gl_t *gl)
|
||||
static bool gl_frame(void *data, const void *frame,
|
||||
unsigned width, unsigned height, unsigned pitch, const char *msg)
|
||||
{
|
||||
const struct font_renderer *font_driver = NULL;
|
||||
gl_t *gl = (gl_t*)data;
|
||||
runloop_t *runloop = rarch_main_get_ptr();
|
||||
driver_t *driver = driver_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
const struct font_renderer *font_driver = driver ? driver->font_osd_driver : NULL;
|
||||
|
||||
RARCH_PERFORMANCE_INIT(frame_run);
|
||||
RARCH_PERFORMANCE_START(frame_run);
|
||||
|
||||
font_driver = (const struct font_renderer*)gl->font_driver;
|
||||
|
||||
context_bind_hw_render(gl, false);
|
||||
|
||||
#ifndef HAVE_OPENGLES
|
||||
@ -1615,8 +1613,8 @@ static bool gl_frame(void *data, const void *frame,
|
||||
gl_draw_texture(gl);
|
||||
#endif
|
||||
|
||||
if (msg && font_driver && gl->font_handle)
|
||||
font_driver->render_msg(gl->font_handle, msg, NULL);
|
||||
if (msg && driver->font_osd_driver && driver->font_osd_data)
|
||||
font_driver->render_msg(driver->font_osd_data, msg, NULL);
|
||||
|
||||
#ifdef HAVE_OVERLAY
|
||||
if (gl->overlay_enable)
|
||||
@ -1729,12 +1727,13 @@ static void gl_free_overlay(gl_t *gl)
|
||||
static void gl_free(void *data)
|
||||
{
|
||||
gl_t *gl = (gl_t*)data;
|
||||
driver_t *driver = driver_get_ptr();
|
||||
const struct font_renderer *font_driver = NULL;
|
||||
|
||||
if (!gl)
|
||||
return;
|
||||
|
||||
font_driver = (const struct font_renderer*)gl->font_driver;
|
||||
font_driver = (const struct font_renderer*)driver->font_osd_driver;
|
||||
|
||||
context_bind_hw_render(gl, false);
|
||||
|
||||
@ -1753,8 +1752,8 @@ static void gl_free(void *data)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (font_driver && gl->font_handle)
|
||||
font_driver->free(gl->font_handle);
|
||||
if (font_driver && driver->font_osd_data)
|
||||
font_driver->free(driver->font_osd_data);
|
||||
gl_shader_deinit(gl);
|
||||
|
||||
#ifndef NO_GL_FF_VERTEX
|
||||
@ -2419,7 +2418,7 @@ static void *gl_init(const video_info_t *video, const input_driver_t **input, vo
|
||||
|
||||
if (settings->video.font_enable)
|
||||
{
|
||||
if (!font_init_first(&gl->font_driver, &gl->font_handle,
|
||||
if (!font_init_first((const void**)&driver->font_osd_driver, &driver->font_osd_data,
|
||||
gl, *settings->video.font_path
|
||||
? settings->video.font_path : NULL, settings->video.font_size,
|
||||
FONT_DRIVER_RENDER_OPENGL_API))
|
||||
@ -3125,16 +3124,17 @@ static void gl_set_osd_msg(void *data, const char *msg,
|
||||
const struct font_params *params, void *font)
|
||||
{
|
||||
const struct font_renderer *font_driver = NULL;
|
||||
driver_t *driver = driver_get_ptr();
|
||||
gl_t *gl = (gl_t*)data;
|
||||
if (!gl)
|
||||
return;
|
||||
|
||||
font_driver = (const struct font_renderer*)gl->font_driver;
|
||||
font_driver = (const struct font_renderer*)driver->font_osd_driver;
|
||||
|
||||
if (font_driver && gl->font_handle)
|
||||
if (driver->font_osd_driver && driver->font_osd_data)
|
||||
{
|
||||
context_bind_hw_render(gl, false);
|
||||
font_driver->render_msg(font ? font : gl->font_handle, msg, params);
|
||||
font_driver->render_msg(font ? font : driver->font_osd_data, msg, params);
|
||||
context_bind_hw_render(gl, true);
|
||||
}
|
||||
}
|
||||
|
@ -319,10 +319,6 @@ typedef struct gl
|
||||
bool have_es2_compat;
|
||||
#endif
|
||||
|
||||
/* Fonts */
|
||||
const void *font_driver;
|
||||
void *font_handle;
|
||||
|
||||
bool egl_images;
|
||||
video_info_t video_info;
|
||||
|
||||
|
@ -443,6 +443,7 @@ static void glui_frame(void)
|
||||
glui_handle_t *glui = NULL;
|
||||
const char *core_name = NULL;
|
||||
const char *core_version = NULL;
|
||||
driver_t *driver = driver_get_ptr();
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
const uint32_t normal_color = FONT_COLOR_ARGB_TO_RGBA(
|
||||
@ -486,7 +487,7 @@ static void glui_frame(void)
|
||||
menu->navigation.selection_ptr,
|
||||
gl->win_width, glui->line_height, 1, 1, 1, 0.1);
|
||||
|
||||
font_driver = (const struct font_renderer*)gl->font_driver;
|
||||
font_driver = driver->font_osd_driver;
|
||||
|
||||
menu_display_font_bind_block(menu, font_driver, &glui->list_block);
|
||||
|
||||
@ -624,6 +625,7 @@ static void glui_free(void *data)
|
||||
gl_t *gl = NULL;
|
||||
const struct font_renderer *font_driver = NULL;
|
||||
menu_handle_t *menu = (menu_handle_t*)data;
|
||||
driver_t *driver = driver_get_ptr();
|
||||
glui_handle_t *glui = (glui_handle_t*)menu->userdata;
|
||||
|
||||
if (!glui || !menu)
|
||||
@ -633,10 +635,10 @@ static void glui_free(void *data)
|
||||
|
||||
gl = (gl_t*)video_driver_get_ptr(NULL);
|
||||
|
||||
font_driver = gl ? (const struct font_renderer*)gl->font_driver : NULL;
|
||||
font_driver = gl ? (const struct font_renderer*)driver->font_osd_driver : NULL;
|
||||
|
||||
if (font_driver && font_driver->bind_block)
|
||||
font_driver->bind_block(gl->font_handle, NULL);
|
||||
font_driver->bind_block(driver->font_osd_data, NULL);
|
||||
|
||||
if (menu->userdata)
|
||||
free(menu->userdata);
|
||||
@ -753,11 +755,9 @@ static void glui_context_reset(void)
|
||||
{
|
||||
gl_t *gl = NULL;
|
||||
glui_handle_t *glui = NULL;
|
||||
const font_renderer_driver_t *font_drv = NULL;
|
||||
driver_t *driver = driver_get_ptr();
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
|
||||
(void)font_drv;
|
||||
|
||||
if (!menu)
|
||||
return;
|
||||
|
||||
@ -770,10 +770,8 @@ static void glui_context_reset(void)
|
||||
if (!gl)
|
||||
return;
|
||||
|
||||
font_drv = (const font_renderer_driver_t *)gl->font_driver;
|
||||
|
||||
menu_display_font_init_first(
|
||||
&gl->font_driver,
|
||||
(const void**)&driver->font_osd_driver,
|
||||
&menu->font.buf,
|
||||
gl,
|
||||
NULL,
|
||||
|
@ -1571,15 +1571,11 @@ error:
|
||||
|
||||
static void xmb_free(void *data)
|
||||
{
|
||||
menu_handle_t *menu = (menu_handle_t*)data;
|
||||
xmb_handle_t *xmb = NULL;
|
||||
const struct font_renderer *font_driver = NULL;
|
||||
gl_t *gl = (gl_t*)video_driver_get_ptr(NULL);
|
||||
|
||||
if (!gl)
|
||||
return;
|
||||
|
||||
font_driver = (const struct font_renderer*)gl->font_driver;
|
||||
menu_handle_t *menu = (menu_handle_t*)data;
|
||||
driver_t *driver = driver_get_ptr();
|
||||
const struct font_renderer *font_driver =
|
||||
(const struct font_renderer*)driver->font_osd_driver;
|
||||
|
||||
if (menu && menu->userdata)
|
||||
{
|
||||
@ -1595,7 +1591,7 @@ static void xmb_free(void *data)
|
||||
}
|
||||
|
||||
if (font_driver->bind_block)
|
||||
font_driver->bind_block(gl->font_handle, NULL);
|
||||
font_driver->bind_block(driver->font_osd_data, NULL);
|
||||
}
|
||||
|
||||
static bool xmb_load_wallpaper(void *data)
|
||||
@ -1640,6 +1636,7 @@ static void xmb_context_reset(void)
|
||||
menu_handle_t *menu = menu_driver_get_ptr();
|
||||
settings_t *settings = config_get_ptr();
|
||||
global_t *global = global_get_ptr();
|
||||
driver_t *driver = driver_get_ptr();
|
||||
|
||||
if (!menu)
|
||||
return;
|
||||
@ -1666,7 +1663,7 @@ static void xmb_context_reset(void)
|
||||
fill_pathname_join(fontpath, themepath, "font.ttf", sizeof(fontpath));
|
||||
|
||||
menu_display_font_init_first(
|
||||
&gl->font_driver,
|
||||
(const void**)&driver->font_osd_driver,
|
||||
&menu->font.buf,
|
||||
gl,
|
||||
fontpath,
|
||||
|
Loading…
x
Reference in New Issue
Block a user