diff --git a/include/Nazara/Utility/AbstractTextDrawer.hpp b/include/Nazara/Utility/AbstractTextDrawer.hpp index 2ef500aab..c52051a5c 100644 --- a/include/Nazara/Utility/AbstractTextDrawer.hpp +++ b/include/Nazara/Utility/AbstractTextDrawer.hpp @@ -34,6 +34,7 @@ namespace Nz virtual std::size_t GetGlyphCount() const = 0; virtual const Line& GetLine(std::size_t index) const = 0; virtual std::size_t GetLineCount() const = 0; + inline std::size_t GetLineGlyphCount(std::size_t index) const; struct Glyph { @@ -53,4 +54,6 @@ namespace Nz }; } +#include + #endif // NAZARA_ABSTRACTTEXTDRAWER_HPP diff --git a/include/Nazara/Utility/AbstractTextDrawer.inl b/include/Nazara/Utility/AbstractTextDrawer.inl new file mode 100644 index 000000000..a10a16892 --- /dev/null +++ b/include/Nazara/Utility/AbstractTextDrawer.inl @@ -0,0 +1,23 @@ +// Copyright (C) 2017 Jérôme Leclercq +// This file is part of the "Nazara Engine - Utility module" +// For conditions of distribution and use, see copyright notice in Config.hpp + +#include +#include + +namespace Nz +{ + inline std::size_t AbstractTextDrawer::GetLineGlyphCount(std::size_t index) const + { + std::size_t lineCount = GetLineCount(); + const auto& lineInfo = GetLine(index); + if (index == lineCount - 1) + return GetGlyphCount() - lineInfo.glyphIndex; + + const auto& nextLineInfo = GetLine(index + 1); + + return nextLineInfo.glyphIndex - lineInfo.glyphIndex; + } +} + +#include