summaryrefslogtreecommitdiff
path: root/Widgets/Font.h
blob: 3c9158f761a72675da1efb3bfa9296143a3d503e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#pragma once

#include "CharacterBitmap.h"
#include <AK/Retainable.h>
#include <AK/RetainPtr.h>
#include <AK/Types.h>

class Font : public Retainable<Font> {
public:
    static Font& defaultFont();

    ~Font();

    const CharacterBitmap* glyphBitmap(byte) const;

    byte glyphWidth() const { return m_glyphWidth; }
    byte glyphHeight() const { return m_glyphHeight; }

    static void initialize();

private:
    Font(const char* const* glyphs, byte glyphWidth, byte glyphHeight, byte firstGlyph, byte lastGlyph);

    const char* const* m_glyphs { nullptr };
    mutable RetainPtr<CharacterBitmap> m_bitmaps[256];

    byte m_glyphWidth { 0 };
    byte m_glyphHeight { 0 };

    byte m_firstGlyph { 0 };
    byte m_lastGlyph { 0 };
};