From Romain Ouabdelkader, "This is a fix for osgText to calculate kerning and to load glyph3D with the text's font resolution.
Font::getKerning(...), Font::getGlyph3D(...) doesn't ask for a font resolution so it uses the last font resolution requested by Font:: getGlyph(...). This can leads to different results depending of the precedent call to Font::getGlyph(...). See http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/2016-January/271952.html for more infos. This fix adds a font resolution parameter to Font::getKerning(...), Font::getGlyph3D(...) and to the font implementations. This was made under the base revision r15182."
This commit is contained in:
@@ -104,7 +104,7 @@ void Layout::layout(TextNode& text) const
|
||||
}
|
||||
else
|
||||
{
|
||||
osgText::Glyph3D* glyph = font->getGlyph3D(charcode);
|
||||
osgText::Glyph3D* glyph = font->getGlyph3D(resolution, charcode);
|
||||
OSG_NOTICE<<"pos = "<<pos<<", charcode="<<charcode<<", glyph="<<glyph<< std::endl;
|
||||
if (glyph)
|
||||
{
|
||||
@@ -116,7 +116,7 @@ void Layout::layout(TextNode& text) const
|
||||
|
||||
if (previousCharcode!=0 && charcode!=0)
|
||||
{
|
||||
osg::Vec2 offset = font->getKerning(previousCharcode, charcode, kerningType);
|
||||
osg::Vec2 offset = font->getKerning(resolution, previousCharcode, charcode, kerningType);
|
||||
OSG_NOTICE<<" offset = "<<offset<< std::endl;
|
||||
pos.x() += offset.x();
|
||||
pos.y() += offset.y();
|
||||
|
||||
Reference in New Issue
Block a user