From f1694fd6e92a95e71869177d7dbc8e8d4a9eb428 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sat, 17 Jan 2015 22:03:04 +0100 Subject: [PATCH] (Font) Added mutable default values for glyph border and minimum step size Former-commit-id: 9b69b591afb95fdea9d686ef9b775f965de40d9f --- include/Nazara/Utility/Font.hpp | 7 +++++ src/Nazara/Utility/Font.cpp | 46 +++++++++++++++++++++++++++------ 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/include/Nazara/Utility/Font.hpp b/include/Nazara/Utility/Font.hpp index 976b6bb14..d28c04df4 100644 --- a/include/Nazara/Utility/Font.hpp +++ b/include/Nazara/Utility/Font.hpp @@ -74,6 +74,11 @@ class NAZARA_API NzFont : public NzResource, NzAbstractAtlas::Listener, NzNonCop void SetGlyphBorder(unsigned int borderSize); void SetMinimumStepSize(unsigned int minimumSizeStep); + static unsigned int GetDefaultGlyphBorder(); + static unsigned int GetDefaultMinimumStepSize(); + static void SetDefaultGlyphBorder(unsigned int borderSize); + static void SetDefaultMinimumStepSize(unsigned int minimumSizeStep); + enum ModicationCode { ModificationCode_AtlasChanged, @@ -121,6 +126,8 @@ class NAZARA_API NzFont : public NzResource, NzAbstractAtlas::Listener, NzNonCop unsigned int m_minimumSizeStep; static NzFontLoader::LoaderList s_loaders; + static unsigned int s_defaultGlyphBorder; + static unsigned int s_defaultMinimumSizeStep; }; #endif // NAZARA_FONT_HPP diff --git a/src/Nazara/Utility/Font.cpp b/src/Nazara/Utility/Font.cpp index 79ce37878..73ea385c7 100644 --- a/src/Nazara/Utility/Font.cpp +++ b/src/Nazara/Utility/Font.cpp @@ -14,15 +14,15 @@ bool NzFontParams::IsValid() const } NzFont::NzFont() : -m_glyphBorder(1), -m_minimumSizeStep(1) +m_glyphBorder(s_defaultGlyphBorder), +m_minimumSizeStep(s_defaultMinimumSizeStep) { } NzFont::~NzFont() { Destroy(); - SetAtlas(nullptr); // On libère l'atlas par la même occasion + SetAtlas(nullptr); // On libère l'atlas proprement } void NzFont::ClearGlyphCache() @@ -302,6 +302,38 @@ void NzFont::SetGlyphBorder(unsigned int borderSize) } void NzFont::SetMinimumStepSize(unsigned int minimumStepSize) +{ + if (m_minimumSizeStep != minimumStepSize) + { + #if NAZARA_UTILITY_SAFE + if (minimumStepSize == 0) + { + NazaraError("Minimum step size cannot be zero as it implies division by zero"); + return; + } + #endif + + m_minimumSizeStep = minimumStepSize; + ClearGlyphCache(); + } +} + +unsigned int NzFont::GetDefaultGlyphBorder() +{ + return s_defaultGlyphBorder; +} + +unsigned int NzFont::GetDefaultMinimumStepSize() +{ + return s_defaultMinimumSizeStep; +} + +void NzFont::SetDefaultGlyphBorder(unsigned int borderSize) +{ + s_defaultGlyphBorder = borderSize; +} + +void NzFont::SetDefaultMinimumStepSize(unsigned int minimumSizeStep) { #if NAZARA_UTILITY_SAFE if (minimumStepSize == 0) @@ -311,11 +343,7 @@ void NzFont::SetMinimumStepSize(unsigned int minimumStepSize) } #endif - if (m_minimumSizeStep != minimumStepSize) - { - m_minimumSizeStep = minimumStepSize; - ClearGlyphCache(); - } + s_defaultMinimumSizeStep = minimumSizeStep; } nzUInt64 NzFont::ComputeKey(unsigned int characterSize, nzUInt32 style) const @@ -482,3 +510,5 @@ const NzFont::Glyph& NzFont::PrecacheGlyph(GlyphMap& glyphMap, unsigned int char } NzFontLoader::LoaderList NzFont::s_loaders; +unsigned int NzFont::s_defaultGlyphBorder = 1; +unsigned int NzFont::s_defaultMinimumSizeStep = 1;