Added a _fontFallback to TextBase to cache any fallback font (usually DefaultFont) that is used when the Textbase::_font is null.

This commit is contained in:
Robert Osfield 2019-07-31 14:11:59 +01:00
parent 92abaca210
commit 149c04b0df
4 changed files with 6 additions and 7 deletions

View File

@ -4,7 +4,7 @@
SET(OPENSCENEGRAPH_MAJOR_VERSION 3) SET(OPENSCENEGRAPH_MAJOR_VERSION 3)
SET(OPENSCENEGRAPH_MINOR_VERSION 6) SET(OPENSCENEGRAPH_MINOR_VERSION 6)
SET(OPENSCENEGRAPH_PATCH_VERSION 5) SET(OPENSCENEGRAPH_PATCH_VERSION 5)
SET(OPENSCENEGRAPH_SOVERSION 160) SET(OPENSCENEGRAPH_SOVERSION 161)
# set to 0 when not a release candidate, non zero means that any generated # set to 0 when not a release candidate, non zero means that any generated

View File

@ -265,7 +265,6 @@ protected:
virtual osg::StateSet* createStateSet(); virtual osg::StateSet* createStateSet();
Font* getActiveFont(); Font* getActiveFont();
const Font* getActiveFont() const;
String::iterator computeLastCharacterOnLine(osg::Vec2& cursor, String::iterator first,String::iterator last); String::iterator computeLastCharacterOnLine(osg::Vec2& cursor, String::iterator first,String::iterator last);

View File

@ -312,6 +312,7 @@ protected:
// members which have public access. // members which have public access.
osg::Vec4 _color; osg::Vec4 _color;
osg::ref_ptr<Font> _font; osg::ref_ptr<Font> _font;
osg::ref_ptr<Font> _fontFallback;
osg::ref_ptr<Style> _style; osg::ref_ptr<Style> _style;
FontResolution _fontSize; FontResolution _fontSize;
float _characterHeight; float _characterHeight;

View File

@ -249,12 +249,11 @@ osg::StateSet* Text::createStateSet()
Font* Text::getActiveFont() Font* Text::getActiveFont()
{ {
return _font.valid() ? _font.get() : Font::getDefaultFont().get(); if (_font.valid()) return _font.get();
}
const Font* Text::getActiveFont() const if (!_fontFallback) _fontFallback = Font::getDefaultFont();
{
return _font.valid() ? _font.get() : Font::getDefaultFont().get(); return _fontFallback.get();
} }
String::iterator Text::computeLastCharacterOnLine(osg::Vec2& cursor, String::iterator first,String::iterator last) String::iterator Text::computeLastCharacterOnLine(osg::Vec2& cursor, String::iterator first,String::iterator last)