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:
parent
76e2c08fbf
commit
60be51f908
4 changed files with 63 additions and 0 deletions
21
Libraries/LibHTML/FontCache.cpp
Normal file
21
Libraries/LibHTML/FontCache.cpp
Normal 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));
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue