BFont: allow loading of user fonts from disk or memory
This patch adds an API call to BFont, called LoadFont, that takes a string path to a font file. The user fonts are managed via a new class called AppFontManager that inherits from the base class FontManagerBase but adds the methods to add and remove user fonts from disk or memory. There is also a new method called UnloadFont to remove a user font, but on exit of an app all user fonts should be automatically cleaned up. Global/system fonts are managed by the GlobalFontManager, which is a new class that also inherits from the base class FontManagerBase, replacing the old "FontManager" class. A maximum of 128 user fonts may be loaded, and memory fonts may not exceed 20MB. There's also an overloaded version of LoadFont that accepts an area_id and loads the font from memory. A size and offset may optionally be provided to allow for an area that contains more than just a font. Change-Id: I6add42bdf0c0cefc0e2e2a4984fd848c3e7269e5 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4790 Tested-by: Commit checker robot <[email protected]> Reviewed-by: Adrien Destugues <[email protected]>
This commit is contained in:
committed by
Adrien Destugues
parent
65f096fd08
commit
85b82f8524
@@ -282,6 +282,11 @@ public:
|
||||
|
||||
void PrintToStream() const;
|
||||
|
||||
status_t LoadFont(const char* path);
|
||||
status_t LoadFont(const area_id fontAreaID,
|
||||
uint32 size = 0, uint32 offset = 0);
|
||||
status_t UnloadFont();
|
||||
|
||||
private:
|
||||
friend void _init_global_fonts_();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user