mirror of
https://github.com/libretro/RetroArch
synced 2025-03-02 19:13:34 +00:00
Do away with some NULL checks for font rendering backend
This commit is contained in:
parent
12cbec8d40
commit
51a8150e45
@ -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);
|
||||
|
@ -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),
|
||||
¶ms);
|
||||
|
||||
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;
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -28,7 +28,6 @@
|
||||
|
||||
#include "../../driver.h"
|
||||
#include "../../retroarch.h"
|
||||
#include "../font_driver.h"
|
||||
|
||||
struct dispmanx_page
|
||||
{
|
||||
|
@ -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"
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -32,8 +32,6 @@
|
||||
#include "../../menu/menu_driver.h"
|
||||
#endif
|
||||
|
||||
#include "../font_driver.h"
|
||||
|
||||
#include <defines/psp_defines.h>
|
||||
|
||||
#ifndef SCEGU_SCR_WIDTH
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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 */
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -26,8 +26,6 @@
|
||||
#include "../../config.h"
|
||||
#endif
|
||||
|
||||
#include "../font_driver.h"
|
||||
|
||||
#include "../../driver.h"
|
||||
|
||||
#define XE_W 512
|
||||
|
@ -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"
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user