From 9fcb7591e6df784a2cae1e44fea543ba5dc74885 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Tue, 17 Feb 2015 14:52:20 -0800 Subject: [PATCH] don't crash if font load fails --- libraries/render-utils/src/TextRenderer.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libraries/render-utils/src/TextRenderer.cpp b/libraries/render-utils/src/TextRenderer.cpp index fb720b3040..ce694ec835 100644 --- a/libraries/render-utils/src/TextRenderer.cpp +++ b/libraries/render-utils/src/TextRenderer.cpp @@ -511,6 +511,9 @@ TextRenderer::TextRenderer(const char* family, float pointSize, int weight, bool italic, EffectType effect, int effectThickness, const QColor& color) : _effectType(effect), _effectThickness(effectThickness), _pointSize(pointSize), _color(color), _font(loadFont(family)) { + if (!_font) { + qWarning() << "Unable to load font with family " << family; + } if (1 != _effectThickness) { qWarning() << "Effect thickness not current supported"; } @@ -524,7 +527,10 @@ TextRenderer::~TextRenderer() { glm::vec2 TextRenderer::computeExtent(const QString & str) const { float scale = (_pointSize / DEFAULT_POINT_SIZE) * 0.25f; - return _font->computeExtent(str) * scale; + if (_font) { + return _font->computeExtent(str) * scale; + } + return glm::vec2(0.1f,0.1f); } float TextRenderer::draw(float x, float y, const QString & str, @@ -544,7 +550,9 @@ float TextRenderer::draw(float x, float y, const QString & str, // scale at all. mv.translate(glm::vec2(x, y)).scale(glm::vec3(scale, -scale, scale)); // The font does all the OpenGL work - result = _font->drawString(x, y, str, actualColor, _effectType, bounds / scale); + if (_font) { + result = _font->drawString(x, y, str, actualColor, _effectType, bounds / scale); + } }); return result.x; }