Files
RobustToolbox/Robust.Client/Graphics/FontManagement/SystemFontManagerFallback.cs
Pieter-Jan Briers f3a3f564e1 System font API (#5393)
* System font API

This is a new API that allows operating system fonts to be loaded by the engine and used by content.

Fonts are provided in a flat list exposing all the relevant metadata. They are loaded from disk with a Load call.

Initial implementation is only for Windows DirectWrite.

* Load system fonts as memory mapped files if possible.

This allows sharing the font file memory with other processes which is always good.

* Use ArrayPool to reduce char array allocations

* Disable verbose logging

* Implement system font support on Linux via Fontconfig

* Implement macOS support

* Add "FREEDESKTOP" define constant

This is basically LINUX || FREEBSD. Though FreeBSD currently gets detected as LINUX too. Oh well.

* Compile out Fontconfig and CoreText system font backends when not on those platforms

* Don't add Fontconfig package dep on Mac/Windows

* Allow disabling system font support via CVar

Cuz why not.
2025-10-28 22:07:55 +01:00

23 lines
472 B
C#

using System.Collections.Generic;
namespace Robust.Client.Graphics.FontManagement;
/// <summary>
/// A fallback implementation of <see cref="ISystemFontManager"/> that just loads no fonts.
/// </summary>
internal sealed class SystemFontManagerFallback : ISystemFontManagerInternal
{
public void Initialize()
{
}
public void Shutdown()
{
}
public bool IsSupported => false;
public IEnumerable<ISystemFontFace> SystemFontFaces => [];
}