mirror of
https://github.com/elasota/Aerofoil.git
synced 2025-12-14 20:19:38 +00:00
Font system refactor, use pre-rendered fonts
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "FontHacks.h"
|
||||
#include "FontFamilyID.h"
|
||||
|
||||
struct IGpFont;
|
||||
|
||||
@@ -9,21 +10,46 @@ 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 *GetSystemFont(int fontSize, int variationFlags) const = 0;
|
||||
virtual FontFamily *GetApplicationFont(int fontSize, int variationFlags) const = 0;
|
||||
virtual FontFamily *GetHandwritingFont(int fontSize, int variationFlags) const = 0;
|
||||
virtual FontFamily *GetMonospaceFont(int fontSize, int variationFlags) const = 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(int cacheID, int size, bool aa, int flags) const = 0;
|
||||
virtual void SaveCachedRenderedFont(const RenderedFont *rfont, int cacheID, int size, bool aa, int flags) const = 0;
|
||||
virtual RenderedFont *LoadCachedRenderedFont(FontFamilyID_t familyID, int size, bool aa, int flags) = 0;
|
||||
|
||||
virtual void PurgeCache() = 0;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user