From 58a56560d9962f0ce437d55f21dbb142e723b574 Mon Sep 17 00:00:00 2001 From: ohyzha Date: Sun, 5 Jan 2025 18:14:29 +0200 Subject: [PATCH] rework FontPixelSizeConfig struct --- .../Scene/BitmapFontAtlasGenerator.cpp | 10 +-------- .../Scene/BitmapFontAtlasGenerator.hpp | 21 +++++++++++++++---- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp index a869827..f4a2fcc 100644 --- a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp +++ b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.cpp @@ -33,15 +33,7 @@ namespace OpenVulkano::Scene m_atlasData = std::make_shared(); const auto& [lib, face] = FontAtlasGeneratorBase::InitFreetype(source); - if (m_pixelSizeConfig.isPixelSize) - { - FT_Set_Pixel_Sizes(face.get(), 0, m_pixelSizeConfig.size); - } - else - { - const float pixelSize = (m_pixelSizeConfig.size * m_pixelSizeConfig.dpi) / 72.0f; - FT_Set_Pixel_Sizes(face.get(), 0, pixelSize); - } + FT_Set_Pixel_Sizes(face.get(), 0, m_pixelSizeConfig.CalculatePixelSize()); auto [allGlyphs, area] = InitGlyphsForPacking(chset, face); const double atlasWidth = ceil(sqrt(area)); diff --git a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp index bf61664..93acf7f 100644 --- a/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp +++ b/openVulkanoCpp/Scene/BitmapFontAtlasGenerator.hpp @@ -11,11 +11,24 @@ namespace OpenVulkano::Scene { - struct FontPixelSizeConfig + class FontPixelSizeConfig { - float size = 24.f; - float dpi = 72.f; - bool isPixelSize = true; + public: + FontPixelSizeConfig(float size = 24.f, float dpi = 72.f, bool isPixelSize = true) + : m_size(size), m_dpi(dpi), m_isPixelSize(isPixelSize) + { + } + void SetSize(float size) { m_size = size; } + void SetDpi(float dpi) { m_dpi = dpi; } + void SetIsPixelSize(bool isPixelSize) { m_isPixelSize = isPixelSize; } + [[nodiscard]] float GetSize() const { return m_size; } + [[nodiscard]] float GetDpi() const { return m_dpi; } + [[nodiscard]] bool GetIsPixelSize() const { return m_isPixelSize; } + [[nodiscard]] unsigned CalculatePixelSize() const { return m_isPixelSize ? m_size : (m_size * m_dpi) / 72.0f; } + private: + float m_size; + float m_dpi; + bool m_isPixelSize; }; class BitmapFontAtlasGenerator : public FontAtlasGeneratorBase