1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 06:14:58 +00:00

LibHTML: Add a simple font cache

The FontCache caches the result of font lookups. The cache key is a
simple object called FontSelector which consists of the font family
and font weight (both strings.)

This drastically reduces time spent in font lookup.
This commit is contained in:
Andreas Kling 2019-10-18 23:02:10 +02:00
parent 76e2c08fbf
commit 60be51f908
4 changed files with 63 additions and 0 deletions

View file

@ -0,0 +1,21 @@
#include <LibDraw/Font.h>
#include <LibHTML/FontCache.h>
FontCache& FontCache::the()
{
static FontCache cache;
return cache;
}
RefPtr<Font> FontCache::get(const FontSelector& font_selector) const
{
auto cached_font = m_fonts.get(font_selector);
if (cached_font.has_value())
return cached_font.value();
return nullptr;
}
void FontCache::set(const FontSelector& font_selector, NonnullRefPtr<Font> font)
{
m_fonts.set(font_selector, move(font));
}