Added constant sizeing vs changing label size relatve to font resolution, controlled by --constant-size and --scale-size command line options.
This commit is contained in:
parent
a12a43d352
commit
5ade852172
@ -75,7 +75,8 @@ struct TextSettings
|
|||||||
textColor(1.0f, 1.0f, 1.0f, 1.0f),
|
textColor(1.0f, 1.0f, 1.0f, 1.0f),
|
||||||
backdropType(osgText::Text::NONE),
|
backdropType(osgText::Text::NONE),
|
||||||
backdropOffset(0.04f, 0.04f),
|
backdropOffset(0.04f, 0.04f),
|
||||||
backdropColor(0.0f, 0.0f, 0.0f, 1.0f)
|
backdropColor(0.0f, 0.0f, 0.0f, 1.0f),
|
||||||
|
scaleFontSizeToFontResolution(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,6 +143,9 @@ struct TextSettings
|
|||||||
if (arguments.read("--bd-color", backdropColor.r(), backdropColor.g(), backdropColor.b(), backdropColor.a())) {}
|
if (arguments.read("--bd-color", backdropColor.r(), backdropColor.g(), backdropColor.b(), backdropColor.a())) {}
|
||||||
if (arguments.read("--bg-color", backgroundColor.r(), backgroundColor.g(), backgroundColor.b(), backgroundColor.a())) {}
|
if (arguments.read("--bg-color", backgroundColor.r(), backgroundColor.g(), backgroundColor.b(), backgroundColor.a())) {}
|
||||||
|
|
||||||
|
if (arguments.read("--constant-size")) scaleFontSizeToFontResolution = false;
|
||||||
|
if (arguments.read("--scale-size")) scaleFontSizeToFontResolution = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void setText(osgText::Text& text)
|
void setText(osgText::Text& text)
|
||||||
@ -188,6 +192,7 @@ struct TextSettings
|
|||||||
osg::Vec4 backdropColor;
|
osg::Vec4 backdropColor;
|
||||||
osg::Vec4 backgroundColor;
|
osg::Vec4 backgroundColor;
|
||||||
Sizes sizes;
|
Sizes sizes;
|
||||||
|
bool scaleFontSizeToFontResolution;
|
||||||
};
|
};
|
||||||
|
|
||||||
osgText::Text* createLabel(const std::string& l, TextSettings& settings, unsigned int size)
|
osgText::Text* createLabel(const std::string& l, TextSettings& settings, unsigned int size)
|
||||||
@ -198,7 +203,13 @@ osgText::Text* createLabel(const std::string& l, TextSettings& settings, unsigne
|
|||||||
|
|
||||||
settings.setText(*label);
|
settings.setText(*label);
|
||||||
|
|
||||||
|
|
||||||
|
if (settings.scaleFontSizeToFontResolution)
|
||||||
|
{
|
||||||
label->setCharacterSize(size);
|
label->setCharacterSize(size);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
label->setFontResolution(size, size);
|
label->setFontResolution(size, size);
|
||||||
label->setPosition(pos);
|
label->setPosition(pos);
|
||||||
label->setAlignment(osgText::Text::LEFT_BOTTOM);
|
label->setAlignment(osgText::Text::LEFT_BOTTOM);
|
||||||
@ -210,7 +221,7 @@ osgText::Text* createLabel(const std::string& l, TextSettings& settings, unsigne
|
|||||||
|
|
||||||
// textInfo(label);
|
// textInfo(label);
|
||||||
|
|
||||||
pos.y() += size + 10.0f;
|
pos.y() += label->getCharacterHeight()*2.0;
|
||||||
|
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user