From 9d83f3f474db74cb335e5c63deb1bf771b6a19e3 Mon Sep 17 00:00:00 2001 From: Lynix Date: Fri, 16 Jan 2015 12:42:27 +0100 Subject: [PATCH] (Font) Added spaceAdvance SizeInfo Former-commit-id: 2767915c2554103615918347c6e742cb324092c5 --- include/Nazara/Utility/Font.hpp | 1 + src/Nazara/Utility/Font.cpp | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/include/Nazara/Utility/Font.hpp b/include/Nazara/Utility/Font.hpp index 0c6080429..4605fe975 100644 --- a/include/Nazara/Utility/Font.hpp +++ b/include/Nazara/Utility/Font.hpp @@ -98,6 +98,7 @@ class NAZARA_API NzFont : public NzResource, NzAbstractAtlas::Listener, NzNonCop struct SizeInfo { + int spaceAdvance; unsigned int lineHeight; float underlinePosition; float underlineThickness; diff --git a/src/Nazara/Utility/Font.cpp b/src/Nazara/Utility/Font.cpp index 70122458a..c15756a67 100644 --- a/src/Nazara/Utility/Font.cpp +++ b/src/Nazara/Utility/Font.cpp @@ -202,6 +202,15 @@ const NzFont::SizeInfo& NzFont::GetSizeInfo(unsigned int characterSize) const sizeInfo.underlinePosition = m_data->QueryUnderlinePosition(characterSize); sizeInfo.underlineThickness = m_data->QueryUnderlineThickness(characterSize); + NzFontGlyph glyph; + if (m_data->ExtractGlyph(characterSize, ' ', nzTextStyle_None, &glyph)) + sizeInfo.spaceAdvance = glyph.advance; + else + { + NazaraWarning("Failed to extract space character from font, using half the size"); + sizeInfo.spaceAdvance = characterSize/2; + } + it = m_sizeInfoCache.insert(std::make_pair(characterSize, sizeInfo)).first; }