mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:37:35 +00:00
SharedGraphics: Draw an error glyph instead of crashing due to missing glyphs.
This commit is contained in:
parent
af06d5edc1
commit
7a7fc37ca1
5 changed files with 28 additions and 1 deletions
|
@ -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()
|
||||
|
|
|
@ -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 };
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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[] {
|
||||
|
||||
" ## "
|
||||
|
|
|
@ -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[] {
|
||||
|
||||
" ## "
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue