From 2dd1187ff24ac9b680b72dc5b1c6ad7f083a3022 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 5 Jan 2020 23:40:25 +0100 Subject: [PATCH] Font: move Glyph to it's own header. --- include/Spectre/Graphics/Font.h | 12 +---------- include/Spectre/Graphics/Font/Glyph.h | 21 +++++++++++++++++++ source/Graphics/Font.cpp | 4 ++-- source/Graphics/Font/Engine/FontEngine.h | 3 ++- .../Graphics/Font/Engine/FreeTypeEngine.cpp | 4 ++-- source/Graphics/Font/Engine/FreeTypeEngine.h | 2 +- source/Graphics/Text.cpp | 4 ++-- 7 files changed, 31 insertions(+), 19 deletions(-) create mode 100644 include/Spectre/Graphics/Font/Glyph.h diff --git a/include/Spectre/Graphics/Font.h b/include/Spectre/Graphics/Font.h index 8a33b50..f593801 100644 --- a/include/Spectre/Graphics/Font.h +++ b/include/Spectre/Graphics/Font.h @@ -6,9 +6,9 @@ #include #include -#include #include #include +#include namespace sp { @@ -24,16 +24,6 @@ public : std::string name; }; - struct Glyph { - vec2b size; // Width, Height of bounding box. - vec2b offset; // Offset from cursor where the box begins. - unsigned char advance; - - //vec4u tex_coords; - vec2u texture_origin; - const Texture* texture; // Texture atlas. - }; - Font(); ~Font(); diff --git a/include/Spectre/Graphics/Font/Glyph.h b/include/Spectre/Graphics/Font/Glyph.h new file mode 100644 index 0000000..d8f2b7a --- /dev/null +++ b/include/Spectre/Graphics/Font/Glyph.h @@ -0,0 +1,21 @@ + +#ifndef SPECTRE_GRAPHICS_FONT_GLYPH_H +#define SPECTRE_GRAPHICS_FONT_GLYPH_H + +#include +#include + +namespace sp { + +struct Glyph { + vec2b size; // Width, Height of bounding box. + vec2b offset; // Offset from cursor where the box begins. + unsigned char advance; + + vec2u texture_origin; + const Texture* texture; // Texture atlas. +}; + +} // namespace sp + +#endif // SPECTRE_GRAPHICS_FONT_GLYPH_H diff --git a/source/Graphics/Font.cpp b/source/Graphics/Font.cpp index a2ca857..722866d 100644 --- a/source/Graphics/Font.cpp +++ b/source/Graphics/Font.cpp @@ -42,7 +42,7 @@ bool Font::loadFromMemory(const void *data) return false; } -Font::Glyph Font::getGlyph(unsigned int code) const +Glyph Font::getGlyph(unsigned int code) const { if (m_charset.find(code) == m_charset.end()) { @@ -54,7 +54,7 @@ Font::Glyph Font::getGlyph(unsigned int code) const void Font::loadChar(unsigned char code) const { Image img; - Font::Glyph glyph; + Glyph glyph; if (!m_engine) { return; diff --git a/source/Graphics/Font/Engine/FontEngine.h b/source/Graphics/Font/Engine/FontEngine.h index c17773c..8c03b12 100644 --- a/source/Graphics/Font/Engine/FontEngine.h +++ b/source/Graphics/Font/Engine/FontEngine.h @@ -4,6 +4,7 @@ #include #include +#include #include namespace sp { @@ -20,7 +21,7 @@ public : virtual bool loadFromFile(const std::string& filename) = 0; - virtual Font::Glyph loadGlyph(unsigned int codepoint, Image& img, unsigned int outlineSize = 0) = 0; + virtual Glyph loadGlyph(unsigned int codepoint, Image& img, unsigned int outlineSize = 0) = 0; virtual std::string getName() = 0; diff --git a/source/Graphics/Font/Engine/FreeTypeEngine.cpp b/source/Graphics/Font/Engine/FreeTypeEngine.cpp index f5b857e..1ed4e34 100644 --- a/source/Graphics/Font/Engine/FreeTypeEngine.cpp +++ b/source/Graphics/Font/Engine/FreeTypeEngine.cpp @@ -103,9 +103,9 @@ bool FreeTypeEngine::loadFromFile(const std::string& filename) return true; } -Font::Glyph FreeTypeEngine::loadGlyph(unsigned int codepoint, Image& img, unsigned int outlineSize) +Glyph FreeTypeEngine::loadGlyph(unsigned int codepoint, Image& img, unsigned int outlineSize) { - Font::Glyph glyph; + Glyph glyph; FT_Glyph glyph_info; FT_Int32 flags = FT_LOAD_TARGET_NORMAL; diff --git a/source/Graphics/Font/Engine/FreeTypeEngine.h b/source/Graphics/Font/Engine/FreeTypeEngine.h index fa90b26..6a8403e 100644 --- a/source/Graphics/Font/Engine/FreeTypeEngine.h +++ b/source/Graphics/Font/Engine/FreeTypeEngine.h @@ -20,7 +20,7 @@ public: virtual bool loadFromFile(const std::string& filename); - virtual Font::Glyph loadGlyph(unsigned int codepoint, Image& img, unsigned int outlineSize = 0); + virtual Glyph loadGlyph(unsigned int codepoint, Image& img, unsigned int outlineSize = 0); virtual std::string getName(); diff --git a/source/Graphics/Text.cpp b/source/Graphics/Text.cpp index c28d209..f8b2a40 100644 --- a/source/Graphics/Text.cpp +++ b/source/Graphics/Text.cpp @@ -94,7 +94,7 @@ Vector2f Text::getSize() const for(size_t i = 0; i < m_string.size(); i++) { - Font::Glyph glyph = m_font->getGlyph(m_string[i]); + Glyph glyph = m_font->getGlyph(m_string[i]); float h = glyph.size.y; float w = glyph.advance; @@ -142,7 +142,7 @@ void Text::updateGeometry() const Vertex2D v1, v2, v3, v4; - Font::Glyph glyph = m_font->getGlyph(m_string[i]); + Glyph glyph = m_font->getGlyph(m_string[i]); if (glyph.texture) {