From 233cb86e864affe3dee8f60503584f1eb7e36287 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Tue, 6 Aug 2019 21:33:13 +0200 Subject: Clean up and fix freetype=false crashes (#8641) A IGUIFont of type bitmap/vector cannot be converted to CGUITTFont Fixes various segfaults in gameplay Shorter font cache code, cleaned up (?) --- src/gui/guiChatConsole.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/gui/guiChatConsole.cpp') diff --git a/src/gui/guiChatConsole.cpp b/src/gui/guiChatConsole.cpp index 42348beb3..e67fae3c6 100644 --- a/src/gui/guiChatConsole.cpp +++ b/src/gui/guiChatConsole.cpp @@ -77,7 +77,7 @@ GUIChatConsole::GUIChatConsole( m_font = g_fontengine->getFont(FONT_SIZE_UNSPECIFIED, FM_Mono); if (!m_font) { - errorstream << "GUIChatConsole: Unable to load mono font "; + errorstream << "GUIChatConsole: Unable to load mono font" << std::endl; } else { core::dimension2d dim = m_font->getDimension(L"M"); m_fontsize = v2u32(dim.Width, dim.Height); @@ -322,9 +322,9 @@ void GUIChatConsole::drawText() core::rect destrect( x, y, x + m_fontsize.X * fragment.text.size(), y + m_fontsize.Y); - - #if USE_FREETYPE - // Draw colored text if FreeType is enabled +#if USE_FREETYPE + if (m_font->getType() == irr::gui::EGFT_CUSTOM) { + // Draw colored text if FreeType is enabled irr::gui::CGUITTFont *tmp = dynamic_cast(m_font); tmp->draw( fragment.text, @@ -333,8 +333,10 @@ void GUIChatConsole::drawText() false, false, &AbsoluteClippingRect); - #else - // Otherwise use standard text + } else +#endif + { + // Otherwise use standard text m_font->draw( fragment.text.c_str(), destrect, @@ -342,7 +344,7 @@ void GUIChatConsole::drawText() false, false, &AbsoluteClippingRect); - #endif + } } } } -- cgit v1.2.3