OpenTTD Source 20250830-master-g011fca6e21
font_unix.cpp File Reference

Functions related to font handling on Unix/Fontconfig. More...

#include "../../stdafx.h"
#include "../../misc/autorelease.hpp"
#include "../../debug.h"
#include "../../fontcache.h"
#include "../../string_func.h"
#include "../../strings_func.h"
#include "font_unix.h"
#include <fontconfig/fontconfig.h>
#include <ft2build.h>
#include <FT_FREETYPE_H>
#include "../../safeguards.h"

Go to the source code of this file.

Functions

static const FcChar8 * ToFcString (const std::string &str)
 Get a FontConfig-style string from a std::string.
 
static const char * FromFcString (const FcChar8 *str)
 Get a C-style string from a FontConfig-style string.
 
static std::tuple< std::string, std::string > SplitFontFamilyAndStyle (std::string_view font_name)
 Split the font name into the font family and style.
 
FT_Error GetFontByFaceName (std::string_view font_name, FT_Face *face)
 Load a freetype font face with the given font name.
 
bool FontConfigFindFallbackFont (FontCacheSettings *settings, const std::string &language_isocode, MissingGlyphSearcher *callback)
 

Variables

FT_Library _ft_library
 

Detailed Description

Functions related to font handling on Unix/Fontconfig.

Definition in file font_unix.cpp.

Function Documentation

◆ FontConfigFindFallbackFont()

bool FontConfigFindFallbackFont ( FontCacheSettings settings,
const std::string &  language_isocode,
MissingGlyphSearcher callback 
)

Definition at line 126 of file font_unix.cpp.

◆ FromFcString()

static const char * FromFcString ( const FcChar8 *  str)
static

Get a C-style string from a FontConfig-style string.

Parameters
strString from FontConfig.
Returns
C-style string.

Definition at line 42 of file font_unix.cpp.

Referenced by GetFontByFaceName().

◆ GetFontByFaceName()

FT_Error GetFontByFaceName ( std::string_view  font_name,
FT_Face *  face 
)

Load a freetype font face with the given font name.

Parameters
font_nameThe name of the font to load.
faceThe face that has been found.
Returns
The error we encountered.

Definition at line 70 of file font_unix.cpp.

References FromFcString(), SplitFontFamilyAndStyle(), StrEqualsIgnoreCase(), and ToFcString().

Referenced by FreeTypeFontCacheFactory::LoadFont().

◆ SplitFontFamilyAndStyle()

static std::tuple< std::string, std::string > SplitFontFamilyAndStyle ( std::string_view  font_name)
static

Split the font name into the font family and style.

These fields are separated by a comma, but the style does not necessarily need to exist.

Parameters
font_nameThe font name.
Returns
The font family and style.

Definition at line 53 of file font_unix.cpp.

Referenced by GetFontByFaceName().

◆ ToFcString()

static const FcChar8 * ToFcString ( const std::string &  str)
static

Get a FontConfig-style string from a std::string.

Parameters
strString to be passed to FontConfig.
Returns
FontConfig-style string.

Definition at line 32 of file font_unix.cpp.

Referenced by GetFontByFaceName().

Variable Documentation

◆ _ft_library

FT_Library _ft_library
extern

Definition at line 209 of file freetypefontcache.cpp.