LibTTF+LibGfx: Make Gfx::Font::bold_variant() work for TTF fonts

There's no need for this to be a virtual, it's just a font database
lookup and can be done in the Font base class.
This commit is contained in:
Andreas Kling 2021-07-20 02:14:29 +02:00
parent 9f601fcbcf
commit f5e914fb9f
Notes: sideshowbarker 2024-07-18 08:43:18 +09:00
5 changed files with 7 additions and 8 deletions

View file

@ -317,11 +317,11 @@ String BitmapFont::qualified_name() const
return String::formatted("{} {} {}", family(), presentation_size(), weight());
}
const Font& BitmapFont::bold_variant() const
Font const& Font::bold_variant() const
{
if (m_bold_variant)
return *m_bold_variant;
m_bold_variant = Gfx::FontDatabase::the().get(m_family, m_presentation_size, 700);
m_bold_variant = Gfx::FontDatabase::the().get(family(), presentation_size(), 700);
if (!m_bold_variant)
m_bold_variant = this;
return *m_bold_variant;

View file

@ -105,8 +105,6 @@ public:
String qualified_name() const override;
Font const& bold_variant() const override;
static size_t glyph_count_by_type(FontTypes type);
static String type_name_by_type(FontTypes type);
@ -143,8 +141,6 @@ private:
bool m_fixed_width { false };
bool m_owns_arrays { false };
mutable RefPtr<Gfx::Font> m_bold_variant;
};
}

View file

@ -121,7 +121,10 @@ public:
virtual String qualified_name() const = 0;
virtual const Font& bold_variant() const = 0;
Font const& bold_variant() const;
private:
mutable RefPtr<Gfx::Font> m_bold_variant;
};
}

View file

@ -10,6 +10,7 @@
#include <AK/Utf32View.h>
#include <AK/Utf8View.h>
#include <LibCore/File.h>
#include <LibGfx/FontDatabase.h>
#include <LibTTF/Cmap.h>
#include <LibTTF/Font.h>
#include <LibTTF/Glyf.h>

View file

@ -144,7 +144,6 @@ public:
virtual String family() const override { return m_font->family(); }
virtual String variant() const override { return m_font->variant(); }
virtual String qualified_name() const override { return String::formatted("{} {} {}", family(), presentation_size(), weight()); }
virtual const Font& bold_variant() const override { return *this; } // FIXME: Perhaps remove this from the Gfx::Font interface
private:
NonnullRefPtr<TTF::Font> m_font;