Files
Aerofoil/PortabilityLayer/FontManager.h
2021-03-27 03:01:19 -04:00

59 lines
1.1 KiB
C++

#pragma once
#include "FontHacks.h"
#include "FontFamilyID.h"
struct IGpFont;
namespace PortabilityLayer
{
class FontFamily;
class RenderedFont;
namespace FontPresets
{
enum FontPreset
{
kSystem12,
kSystem12Bold,
kApplication8,
kApplication9,
kApplication9Bold,
kApplication10Bold,
kApplication12Bold,
kApplication14,
kApplication14Bold,
kApplication18,
kApplication40,
kMono10,
kHandwriting24,
kHandwriting48,
kCount,
};
}
typedef FontPresets::FontPreset FontPreset_t;
class FontManager
{
public:
virtual void Init() = 0;
virtual void Shutdown() = 0;
virtual FontFamily *GetFont(FontFamilyID_t fontFamilyID) const = 0;
virtual void GetFontPreset(FontPreset_t fontPreset, FontFamilyID_t *outFamilyID, int *outSize, int *outVariationFlags, bool *outAA) const = 0;
virtual RenderedFont *GetRenderedFontFromFamily(FontFamily *fontFamily, int fontSize, bool aa, int flags) = 0;
virtual RenderedFont *LoadCachedRenderedFont(FontFamilyID_t familyID, int size, bool aa, int flags) = 0;
virtual void PurgeCache() = 0;
static FontManager *GetInstance();
};
}