From fad309d96d9dafc0b68f1b80ccba275303260e17 Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Sat, 4 Jan 2025 11:59:13 +0100 Subject: [PATCH] Move FreetypeHelper and cleanup glyph creation --- .../{Scene => Extensions}/FreetypeHelper.hpp | 2 +- openVulkanoCpp/Scene/FontAtlasGeneratorBase.hpp | 2 +- openVulkanoCpp/Scene/TextDrawable.cpp | 16 ++++++---------- 3 files changed, 8 insertions(+), 12 deletions(-) rename openVulkanoCpp/{Scene => Extensions}/FreetypeHelper.hpp (85%) diff --git a/openVulkanoCpp/Scene/FreetypeHelper.hpp b/openVulkanoCpp/Extensions/FreetypeHelper.hpp similarity index 85% rename from openVulkanoCpp/Scene/FreetypeHelper.hpp rename to openVulkanoCpp/Extensions/FreetypeHelper.hpp index 7860f50..3f05c93 100644 --- a/openVulkanoCpp/Scene/FreetypeHelper.hpp +++ b/openVulkanoCpp/Extensions/FreetypeHelper.hpp @@ -6,7 +6,7 @@ #pragma once -#include +#include <../../../cmake-build/debug/_deps/freetype-src/freetype-install/include/freetype2/ft2build.h> #include FT_FREETYPE_H #include diff --git a/openVulkanoCpp/Scene/FontAtlasGeneratorBase.hpp b/openVulkanoCpp/Scene/FontAtlasGeneratorBase.hpp index c4eae22..5561309 100644 --- a/openVulkanoCpp/Scene/FontAtlasGeneratorBase.hpp +++ b/openVulkanoCpp/Scene/FontAtlasGeneratorBase.hpp @@ -8,7 +8,7 @@ #include "IFontAtlasGenerator.hpp" #include "Math/AABB.hpp" -#include "FreetypeHelper.hpp" +#include "Extensions/FreetypeHelper.hpp" #include #include diff --git a/openVulkanoCpp/Scene/TextDrawable.cpp b/openVulkanoCpp/Scene/TextDrawable.cpp index 5c8446e..1dba011 100644 --- a/openVulkanoCpp/Scene/TextDrawable.cpp +++ b/openVulkanoCpp/Scene/TextDrawable.cpp @@ -140,22 +140,18 @@ namespace OpenVulkano::Scene m_text = text; - size_t len = utf8::distance(text.begin(), text.end()); + const size_t len = utf8::distance(text.begin(), text.end()); m_geometry.Close(); m_geometry.Init(len * 4, len * 6); - AtlasMetadata* meta; - std::map* symbols; - symbols = &m_atlasData->glyphs; - meta = &m_atlasData->meta; + std::map* symbols = &m_atlasData->glyphs; + AtlasMetadata* meta = &m_atlasData->meta; double cursorX = pos.x; - auto begin = text.begin(); - auto end = text.end(); const double lineHeight = meta->lineHeight; double posY = pos.y; - int i = 0; Math::Vector3f bmin(pos), bmax(pos); - while (begin != end) + int i = 0; + for (auto begin = text.begin(), end = text.end(); begin != end;) { uint32_t c = utf8::next(begin, end); if (c == '\n') @@ -165,7 +161,7 @@ namespace OpenVulkano::Scene continue; } - if (symbols->find(c) == symbols->end()) + if (!symbols->contains(c)) { Logger::RENDER->warn("Could not find glyph for character {}, using fallback", c); c = fallbackGlyph;