1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 17:37:37 +00:00

SharedGraphics: Draw an error glyph instead of crashing due to missing glyphs.

This commit is contained in:
Andreas Kling 2019-01-23 08:07:58 +01:00
parent af06d5edc1
commit 7a7fc37ca1
5 changed files with 28 additions and 1 deletions

View file

@ -22,6 +22,7 @@ Font::Font(const char* const* glyphs, byte glyph_width, byte glyph_height, byte
, m_first_glyph(first_glyph)
, m_last_glyph(last_glyph)
{
m_error_bitmap = CharacterBitmap::create_from_ascii(Peanut8x10::error_glyph, m_glyph_width, m_glyph_height);
}
Font::~Font()

View file

@ -12,6 +12,7 @@ public:
~Font();
const CharacterBitmap* glyph_bitmap(byte) const;
const CharacterBitmap* error_bitmap() const { return m_error_bitmap.ptr(); }
byte glyph_width() const { return m_glyph_width; }
byte glyph_height() const { return m_glyph_height; }
@ -23,6 +24,7 @@ private:
const char* const* m_glyphs { nullptr };
mutable RetainPtr<CharacterBitmap> m_bitmaps[256];
RetainPtr<CharacterBitmap> m_error_bitmap;
byte m_glyph_width { 0 };
byte m_glyph_height { 0 };

View file

@ -123,7 +123,7 @@ void Painter::draw_glyph(const Point& point, char ch, Color color)
auto* bitmap = font().glyph_bitmap(ch);
if (!bitmap) {
dbgprintf("Font doesn't have 0x%b ('%c')\n", (byte)ch, ch);
ASSERT_NOT_REACHED();
bitmap = font().error_bitmap();
}
int x = point.x();
int y = point.y();

View file

@ -7,6 +7,19 @@ static constexpr char last_glyph = '~';
static constexpr byte glyph_width = 8;
static constexpr byte glyph_height = 10;
static constexpr const char* error_glyph {
" #### "
" # # "
" # # "
" # ## # "
" # ## # "
" #### "
" ## "
" ###### "
" ## "
" ## ",
};
static constexpr const char* glyphs[] {
" ## "

View file

@ -7,6 +7,17 @@ static constexpr char last_character = '~';
static constexpr byte font_width = 8;
static constexpr byte font_height = 8;
static constexpr const char* error_glyph {
" #### "
" # # "
" # ## # "
" # ## # "
" #### "
" ## "
" ###### "
" ## ",
};
static constexpr const char* font[] {
" ## "