From 7fee649b49bd4320152d4caf06c5fdbbc6d2b831 Mon Sep 17 00:00:00 2001 From: Lynix Date: Sat, 17 Jan 2015 22:42:33 +0100 Subject: [PATCH] (Font) Added default atlas Former-commit-id: 876f42110d4053b09abf86c6158b3ba79fdea201 --- include/Nazara/Utility/Font.hpp | 3 +++ src/Nazara/Graphics/Graphics.cpp | 3 +++ src/Nazara/Utility/Font.cpp | 16 +++++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/include/Nazara/Utility/Font.hpp b/include/Nazara/Utility/Font.hpp index c0bc61a40..37b2d5ab5 100644 --- a/include/Nazara/Utility/Font.hpp +++ b/include/Nazara/Utility/Font.hpp @@ -74,11 +74,13 @@ class NAZARA_API NzFont : public NzResource, NzAbstractAtlas::Listener, NzNonCop void SetGlyphBorder(unsigned int borderSize); void SetMinimumStepSize(unsigned int minimumSizeStep); + static std::shared_ptr GetDefaultAtlas(); static unsigned int GetDefaultGlyphBorder(); static unsigned int GetDefaultMinimumStepSize(); static bool Initialize(); + static void SetDefaultAtlas(const std::shared_ptr& atlas); static void SetDefaultGlyphBorder(unsigned int borderSize); static void SetDefaultMinimumStepSize(unsigned int minimumSizeStep); @@ -130,6 +132,7 @@ class NAZARA_API NzFont : public NzResource, NzAbstractAtlas::Listener, NzNonCop unsigned int m_glyphBorder; unsigned int m_minimumSizeStep; + static std::shared_ptr s_defaultAtlas; static NzFontLoader::LoaderList s_loaders; static unsigned int s_defaultGlyphBorder; static unsigned int s_defaultMinimumSizeStep; diff --git a/src/Nazara/Graphics/Graphics.cpp b/src/Nazara/Graphics/Graphics.cpp index db8e9c619..9c99f11f7 100644 --- a/src/Nazara/Graphics/Graphics.cpp +++ b/src/Nazara/Graphics/Graphics.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -66,6 +67,8 @@ bool NzGraphics::Initialize() NzRenderTechniques::Register(NzRenderTechniques::ToString(nzRenderTechniqueType_DeferredShading), 20, []() -> NzAbstractRenderTechnique* { return new NzDeferredRenderTechnique; }); } + NzFont::SetDefaultAtlas(new NzGuillotineTextureAtlas); + onExit.Reset(); NazaraNotice("Initialized: Graphics module"); diff --git a/src/Nazara/Utility/Font.cpp b/src/Nazara/Utility/Font.cpp index f896c8674..e6498a2be 100644 --- a/src/Nazara/Utility/Font.cpp +++ b/src/Nazara/Utility/Font.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include bool NzFontParams::IsValid() const @@ -14,6 +15,7 @@ bool NzFontParams::IsValid() const } NzFont::NzFont() : +m_atlas(s_defaultAtlas), m_glyphBorder(s_defaultGlyphBorder), m_minimumSizeStep(s_defaultMinimumSizeStep) { @@ -318,6 +320,11 @@ void NzFont::SetMinimumStepSize(unsigned int minimumStepSize) } } +std::shared_ptr NzFont::GetDefaultAtlas() +{ + return s_defaultAtlas; +} + unsigned int NzFont::GetDefaultGlyphBorder() { return s_defaultGlyphBorder; @@ -330,12 +337,18 @@ unsigned int NzFont::GetDefaultMinimumStepSize() bool NzFont::Initialize() { + s_defaultAtlas.reset(new NzGuillotineImageAtlas); s_defaultGlyphBorder = 1; s_defaultMinimumSizeStep = 1; return true; } +void NzFont::SetDefaultAtlas(const std::shared_ptr& atlas) +{ + s_defaultAtlas = atlas; +} + void NzFont::SetDefaultGlyphBorder(unsigned int borderSize) { s_defaultGlyphBorder = borderSize; @@ -356,7 +369,7 @@ void NzFont::SetDefaultMinimumStepSize(unsigned int minimumSizeStep) void NzFont::Uninitialize() { - + s_defaultAtlas.reset(); } nzUInt64 NzFont::ComputeKey(unsigned int characterSize, nzUInt32 style) const @@ -531,6 +544,7 @@ const NzFont::Glyph& NzFont::PrecacheGlyph(GlyphMap& glyphMap, unsigned int char return glyph; } +std::shared_ptr NzFont::s_defaultAtlas; NzFontLoader::LoaderList NzFont::s_loaders; unsigned int NzFont::s_defaultGlyphBorder; unsigned int NzFont::s_defaultMinimumSizeStep;