Do away with some NULL checks for font rendering backend

This commit is contained in:
libretroadmin 2023-06-03 17:21:19 +02:00
parent 12cbec8d40
commit 51a8150e45
26 changed files with 40 additions and 70 deletions

View File

@ -78,7 +78,7 @@ static void caca_font_free(void *data, bool is_threaded)
if (!font)
return;
if (font->font_driver && font->font_data && font->font_driver->free)
if (font->font_driver && font->font_data)
font->font_driver->free(font->font_data);
free(font);

View File

@ -503,8 +503,7 @@ static void ctr_font_render_message(
return;
/* If font line metrics are not supported just draw as usual */
if (!font->font_driver->get_line_metrics ||
!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
size_t msg_len = strlen(msg);
ctr_font_render_line(ctr, font, msg, msg_len,
@ -618,7 +617,7 @@ static const struct font_glyph* ctr_font_get_glyph(
void* data, uint32_t code)
{
ctr_font_t* font = (ctr_font_t*)data;
if (font && font->font_driver && font->font_driver->ident)
if (font && font->font_driver)
return font->font_driver->get_glyph((void*)font->font_driver, code);
return NULL;
}
@ -1307,7 +1306,8 @@ static void ctr_render_bottom_screen(void *data)
msg_hash_to_str(MSG_3DS_BOTTOM_MENU_ASSET_NOT_FOUND),
&params);
sprintf(str_path, "%s\n/bottom_menu.png", dir_assets);
strlcpy(str_path, dir_assets, sizeof(str_path));
strlcat(str_path, "\n/bottom_menu.png", sizeof(str_path));
params.scale = 1.10f;
params.y -= 0.10f;

View File

@ -618,7 +618,7 @@ static void d3d10_font_free(void* data, bool is_threaded)
if (!font)
return;
if (font->font_driver && font->font_data && font->font_driver->free)
if (font->font_driver && font->font_data)
font->font_driver->free(font->font_data);
Release(font->texture.handle);
@ -789,8 +789,7 @@ static void d3d10_font_render_message(
return;
/* If font line metrics are not supported just draw as usual */
if ( !font->font_driver->get_line_metrics
|| !font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
size_t msg_len = strlen(msg);
if (msg_len <= (unsigned)d3d10->sprites.capacity)
@ -907,7 +906,7 @@ static void d3d10_font_render_msg(
static const struct font_glyph* d3d10_font_get_glyph(void *data, uint32_t code)
{
d3d10_font_t* font = (d3d10_font_t*)data;
if (font && font->font_driver && font->font_driver->ident)
if (font && font->font_driver)
return font->font_driver->get_glyph((void*)font->font_driver, code);
return NULL;
}

View File

@ -667,7 +667,7 @@ static void d3d11_font_free(void* data, bool is_threaded)
if (!font)
return;
if (font->font_driver && font->font_data && font->font_driver->free)
if (font->font_driver && font->font_data)
font->font_driver->free(font->font_data);
Release(font->texture.handle);
@ -844,8 +844,7 @@ static void d3d11_font_render_message(
return;
/* If font line metrics are not supported just draw as usual */
if ( !font->font_driver->get_line_metrics
|| !font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
size_t msg_len = strlen(msg);
if (msg_len <= (unsigned)d3d11->sprites.capacity)
@ -961,7 +960,7 @@ static void d3d11_font_render_msg(
static const struct font_glyph* d3d11_font_get_glyph(void *data, uint32_t code)
{
d3d11_font_t* font = (d3d11_font_t*)data;
if (font && font->font_driver && font->font_driver->ident)
if (font && font->font_driver)
return font->font_driver->get_glyph((void*)font->font_driver, code);
return NULL;
}

View File

@ -791,7 +791,7 @@ static void d3d12_font_free(void* data, bool is_threaded)
if (!font)
return;
if (font->font_driver && font->font_data && font->font_driver->free)
if (font->font_driver && font->font_data)
font->font_driver->free(font->font_data);
d3d12_release_texture(&font->texture);
@ -972,8 +972,7 @@ static void d3d12_font_render_message(
return;
/* If font line metrics are not supported just draw as usual */
if (!font->font_driver->get_line_metrics ||
!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
size_t msg_len = strlen(msg);
if (msg_len <= d3d12->sprites.capacity)
@ -1089,7 +1088,7 @@ static const struct font_glyph* d3d12_font_get_glyph(
void* data, uint32_t code)
{
d3d12_font_t* font = (d3d12_font_t*)data;
if (font && font->font_driver && font->font_driver->ident)
if (font && font->font_driver)
return font->font_driver->get_glyph((void*)font->font_driver, code);
return NULL;
}

View File

@ -28,7 +28,6 @@
#include "../../driver.h"
#include "../../retroarch.h"
#include "../font_driver.h"
struct dispmanx_page
{

View File

@ -35,7 +35,6 @@
#include "../../menu/menu_driver.h"
#endif
#include "../font_driver.h"
#include "../../retroarch.h"
#include "../../verbosity.h"
#include "../common/drm_common.h"

View File

@ -198,7 +198,7 @@ static void gdi_font_free(void *data, bool is_threaded)
if (!font)
return;
if (font->font_driver && font->font_data && font->font_driver->free)
if (font->font_driver && font->font_data)
font->font_driver->free(font->font_data);
free(font);

View File

@ -442,7 +442,6 @@ static int gl1_raster_font_get_message_width(void *data, const char *msg,
if ( !font
|| !font->font_driver
|| !font->font_driver->get_glyph
|| !font->font_data )
return 0;
@ -615,8 +614,7 @@ static void gl1_raster_font_render_message(
float line_height;
/* If font line metrics are not supported just draw as usual */
if (!font->font_driver->get_line_metrics ||
!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
gl1_raster_font_render_line(font->gl, font,
msg, strlen(msg), scale, color, pos_x,
@ -766,7 +764,7 @@ static const struct font_glyph *gl1_raster_font_get_glyph(
void *data, uint32_t code)
{
gl1_raster_t *font = (gl1_raster_t*)data;
if (font && font->font_driver && font->font_driver->ident)
if (font && font->font_driver)
return font->font_driver->get_glyph((void*)font->font_driver, code);
return NULL;
}

View File

@ -790,7 +790,6 @@ static int gl2_raster_font_get_message_width(void *data, const char *msg,
if ( !font
|| !font->font_driver
|| !font->font_driver->get_glyph
|| !font->font_data )
return 0;
@ -925,8 +924,7 @@ static void gl2_raster_font_render_message(
float line_height;
/* If font line metrics are not supported just draw as usual */
if (!font->font_driver->get_line_metrics ||
!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
gl2_raster_font_render_line(font->gl, font,
msg, strlen(msg), scale, color, pos_x,
@ -1080,7 +1078,7 @@ static const struct font_glyph *gl2_raster_font_get_glyph(
void *data, uint32_t code)
{
gl2_raster_t *font = (gl2_raster_t*)data;
if (font && font->font_driver && font->font_driver->ident)
if (font && font->font_driver)
return font->font_driver->get_glyph((void*)font->font_driver, code);
return NULL;
}

View File

@ -504,7 +504,6 @@ static int gl3_raster_font_get_message_width(void *data, const char *msg,
if ( !font
|| !font->font_driver
|| !font->font_driver->get_glyph
|| !font->font_data )
return 0;
@ -657,8 +656,7 @@ static void gl3_raster_font_render_message(
float line_height;
/* If font line metrics are not supported just draw as usual */
if (!font->font_driver->get_line_metrics ||
!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
gl3_raster_font_render_line(font->gl, font,
msg, strlen(msg), scale, color, pos_x,
@ -804,7 +802,7 @@ static const struct font_glyph *gl3_raster_font_get_glyph(
void *data, uint32_t code)
{
gl3_raster_t *font = (gl3_raster_t*)data;
if (font && font->font_driver && font->font_driver->ident)
if (font && font->font_driver)
return font->font_driver->get_glyph((void*)font->font_driver, code);
return NULL;
}

View File

@ -441,8 +441,7 @@ static void gx2_font_free(void* data, bool is_threaded)
if (!font)
return;
if (font->font_driver && font->font_data &&
font->font_driver->free)
if (font->font_driver && font->font_data)
font->font_driver->free(font->font_data);
if (font->texture.surface.image)
@ -597,8 +596,7 @@ static void gx2_font_render_message(
return;
/* If font line metrics are not supported just draw as usual */
if (!font->font_driver->get_line_metrics ||
!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
size_t msg_len = strlen(msg);
if (wiiu->vertex_cache.current + (msg_len * 4) <= wiiu->vertex_cache.size)
@ -709,7 +707,7 @@ static void gx2_font_render_msg(
static const struct font_glyph* gx2_font_get_glyph(void* data, uint32_t code)
{
gx2_font_t* font = (gx2_font_t*)data;
if (font && font->font_driver && font->font_driver->ident)
if (font && font->font_driver)
return font->font_driver->get_glyph((void*)font->font_driver, code);
return NULL;
}

View File

@ -37,10 +37,9 @@
#include "../../memory/wii/mem2_manager.h"
#endif
#include "../font_driver.h"
#include <defines/gx_defines.h>
#include "../drivers_font_renderer/bitmap.h"
#include <defines/gx_defines.h>
#include "../../configuration.h"
#include "../../driver.h"

View File

@ -378,9 +378,6 @@ gfx_display_ctx_driver_t gfx_display_ctx_metal = {
- (const struct font_glyph *)getGlyph:(uint32_t)code
{
if (!_font_driver->ident)
return NULL;
const struct font_glyph *glyph = _font_driver->get_glyph((void *)_font_driver, code);
if (glyph)
[self updateGlyph:glyph];
@ -526,8 +523,7 @@ static INLINE void write_quad6(SpriteVertex *pv,
struct font_line_metrics *line_metrics = NULL;
/* If font line metrics are not supported just draw as usual */
if ( !_font_driver->get_line_metrics
|| !_font_driver->get_line_metrics(_font_data, &line_metrics))
if (!_font_driver->get_line_metrics(_font_data, &line_metrics))
{
[self _renderLine:msg length:strlen(msg) scale:scale color:color posX:posX posY:posY aligned:aligned];
return;

View File

@ -403,7 +403,7 @@ static void *oga_init(const video_info_t *video,
if (settings->bools.video_font_enable)
{
vid->font_driver = &bitmap_font_renderer;
vid->font = vid->font_driver->init("", settings->floats.video_font_size);
vid->font = vid->font_driver->init("", settings->floats.video_font_size);
}
for (i = 0; i < NUM_PAGES; ++i)

View File

@ -296,8 +296,7 @@ static void ps2_font_render_message(
return;
/* If font line metrics are not supported just draw as usual */
if (!font->font_driver->get_line_metrics ||
!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
ps2_font_render_line(ps2, font, msg, strlen(msg),
scale, color, pos_x, pos_y,
@ -409,7 +408,7 @@ static const struct font_glyph* ps2_font_get_glyph(
void* data, uint32_t code)
{
ps2_font_t* font = (ps2_font_t*)data;
if (font && font->font_driver && font->font_driver->ident)
if (font && font->font_driver)
return font->font_driver->get_glyph((void*)font->font_driver, code);
return NULL;
}

View File

@ -32,8 +32,6 @@
#include "../../menu/menu_driver.h"
#endif
#include "../font_driver.h"
#include <defines/psp_defines.h>
#ifndef SCEGU_SCR_WIDTH

View File

@ -484,7 +484,6 @@ static int rsx_font_get_message_width(void *data, const char *msg,
if ( !font
|| !font->font_driver
|| !font->font_driver->get_glyph
|| !font->font_data )
return 0;
@ -661,8 +660,7 @@ static void rsx_font_render_message(
float line_height;
/* If font line metrics are not supported just draw as usual */
if (!font->font_driver->get_line_metrics ||
!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
rsx_font_render_line(font,
msg, strlen(msg), scale, color, pos_x,
@ -818,7 +816,7 @@ static const struct font_glyph *rsx_font_get_glyph(
void *data, uint32_t code)
{
rsx_font_t *font = (rsx_font_t*)data;
if (font && font->font_driver && font->font_driver->ident)
if (font && font->font_driver)
return font->font_driver->get_glyph((void*)font->font_driver, code);
return NULL;
}

View File

@ -511,8 +511,6 @@ struct sunxi_page
struct sunxi_video
{
void *font;
const font_renderer_driver_t *font_driver;
uint8_t font_rgb[4];
/* Sunxi framebuffer information struct */

View File

@ -261,8 +261,7 @@ static void switch_font_render_message(
return;
/* If font line metrics are not supported just draw as usual */
if (!font->font_driver->get_line_metrics ||
!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
size_t msg_len = strlen(msg);
if (msg_len <= AVG_GLPYH_LIMIT)
@ -349,7 +348,7 @@ static const struct font_glyph *switch_font_get_glyph(
void *data, uint32_t code)
{
switch_font_t *font = (switch_font_t *)data;
if (font && font->font_driver && font->font_driver->ident)
if (font && font->font_driver)
return font->font_driver->get_glyph((void *)font->font_driver, code);
return NULL;
}

View File

@ -76,7 +76,7 @@ static void vga_font_render_free(void *data, bool is_threaded)
if (!font)
return;
if (font->font_driver && font->font_data && font->font_driver->free)
if (font->font_driver && font->font_data)
font->font_driver->free(font->font_data);
free(font);

View File

@ -392,8 +392,7 @@ static void vita2d_font_render_message(
return;
/* If font line metrics are not supported just draw as usual */
if (!font->font_driver->get_line_metrics ||
!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
vita2d_font_render_line(font, msg, strlen(msg),
scale, color, pos_x, pos_y, width, height, text_align);
@ -506,7 +505,7 @@ static const struct font_glyph *vita2d_font_get_glyph(
void *data, uint32_t code)
{
vita_font_t *font = (vita_font_t*)data;
if (font && font->font_driver && font->font_driver->ident)
if (font && font->font_driver)
return font->font_driver->get_glyph((void*)font->font_driver, code);
return NULL;
}

View File

@ -1373,7 +1373,6 @@ static int vulkan_get_message_width(void *data, const char *msg,
if ( !font
|| !font->font_driver
|| !font->font_driver->get_glyph
|| !font->font_data )
return 0;
@ -1499,8 +1498,7 @@ static void vulkan_font_render_message(
return;
/* If font line metrics are not supported just draw as usual */
if (!font->font_driver->get_line_metrics ||
!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
if (!font->font_driver->get_line_metrics(font->font_data, &line_metrics))
{
vulkan_font_render_line(font->vk, font, msg, strlen(msg),
scale, color, pos_x, pos_y, text_align);
@ -1709,7 +1707,7 @@ static const struct font_glyph *vulkan_font_get_glyph(
const struct font_glyph* glyph;
vulkan_raster_t *font = (vulkan_raster_t*)data;
if (!font || !font->font_driver || !font->font_driver->ident)
if (!font || !font->font_driver)
return NULL;
glyph = font->font_driver->get_glyph((void*)font->font_driver, code);

View File

@ -26,8 +26,6 @@
#include "../../config.h"
#endif
#include "../font_driver.h"
#include "../../driver.h"
#define XE_W 512

View File

@ -32,7 +32,6 @@
#include "../../menu/menu_driver.h"
#endif
#include "../font_driver.h"
#include "../common/x11_common.h"
#include "../../configuration.h"
#include "../../verbosity.h"

View File

@ -46,6 +46,8 @@ typedef struct font_renderer
bool (*get_line_metrics)(void* data, struct font_line_metrics **metrics);
} font_renderer_t;
/* NOTE: All functions are required to be implemented for font_renderer_driver */
typedef struct font_renderer_driver
{
void *(*init)(const char *font_path, float font_size);