LibTTF: Add option to load font from a byte buffer

This commit is contained in:
Luke 2021-01-01 20:30:59 +00:00 committed by Andreas Kling
parent 84c2be604a
commit ad243ef3aa
Notes: sideshowbarker 2024-07-19 00:13:26 +09:00
2 changed files with 7 additions and 1 deletions

View file

@ -208,6 +208,11 @@ RefPtr<Font> Font::load_from_file(const StringView& path, unsigned index)
return nullptr;
}
auto buffer = file->read_all();
return load_from_memory(buffer, index);
}
RefPtr<Font> Font::load_from_memory(ByteBuffer& buffer, unsigned index)
{
if (buffer.size() < 4) {
dbg() << "Font file too small";
return nullptr;
@ -227,7 +232,7 @@ RefPtr<Font> Font::load_from_file(const StringView& path, unsigned index)
return nullptr;
}
if (tag != 0x00010000) {
dbg() << "Not a valid font";
dbg() << "Not a valid font";
return nullptr;
}
return load_from_offset(move(buffer), 0);

View file

@ -65,6 +65,7 @@ class Font : public RefCounted<Font> {
public:
static RefPtr<Font> load_from_file(const StringView& path, unsigned index = 0);
static RefPtr<Font> load_from_memory(ByteBuffer&, unsigned index = 0);
ScaledFontMetrics metrics(float x_scale, float y_scale) const;
ScaledGlyphMetrics glyph_metrics(u32 glyph_id, float x_scale, float y_scale) const;