From afccf5dee0cc8a2b30af7e9f6852eb070936725a Mon Sep 17 00:00:00 2001 From: ohyzha Date: Mon, 5 Aug 2024 18:25:19 +0300 Subject: [PATCH] implement text rendering without msdfgen library --- 3rdParty/msdf/CMakeLists.txt | 166 +++++++++--------- CMakeLists.txt | 3 +- examples/ExampleApps/TextExampleApp.cpp | 22 ++- examples/ExampleSources/atlas_metadata | Bin 0 -> 12876 bytes .../ExampleSources/roboto-regular-atlas.png | Bin 0 -> 166875 bytes openVulkanoCpp/Scene/AtlasMetadata.hpp | 21 +++ openVulkanoCpp/Scene/FontAtlasGenerator.cpp | 66 ++++++- openVulkanoCpp/Scene/FontAtlasGenerator.hpp | 14 +- openVulkanoCpp/Scene/TextDrawable.cpp | 137 +++++++++------ openVulkanoCpp/Scene/TextDrawable.hpp | 23 ++- 10 files changed, 302 insertions(+), 150 deletions(-) create mode 100644 examples/ExampleSources/atlas_metadata create mode 100644 examples/ExampleSources/roboto-regular-atlas.png create mode 100644 openVulkanoCpp/Scene/AtlasMetadata.hpp diff --git a/3rdParty/msdf/CMakeLists.txt b/3rdParty/msdf/CMakeLists.txt index 69bfce0..6de537b 100644 --- a/3rdParty/msdf/CMakeLists.txt +++ b/3rdParty/msdf/CMakeLists.txt @@ -1,96 +1,98 @@ -include(FetchContent) +if(WIN32 OR UNIX OR APPLE OR IOS) + include(FetchContent) -if(NOT DEFINED MSDFGEN_REPO) - set(MSDFGEN_REPO https://github.com/Chlumsky/msdfgen.git) -endif () + if(NOT DEFINED MSDFGEN_REPO) + set(MSDFGEN_REPO https://github.com/Chlumsky/msdfgen.git) + endif () -if(NOT DEFINED MSDFGEN_ATRLAS_REPO) - set(MSDFGEN_ATRLAS_REPO https://github.com/Chlumsky/msdf-atlas-gen.git) -endif() + if(NOT DEFINED MSDFGEN_ATRLAS_REPO) + set(MSDFGEN_ATRLAS_REPO https://github.com/Chlumsky/msdf-atlas-gen.git) + endif() -if(NOT DEFINED VCPKG_REPO) - set(VCPKG_REPO https://github.com/microsoft/vcpkg.git) -endif() + if(NOT DEFINED VCPKG_REPO) + set(VCPKG_REPO https://github.com/microsoft/vcpkg.git) + endif() + + set(VCPKG_SRC_DIR "${CMAKE_BINARY_DIR}/_deps/vcpkg-src" CACHE INTERNAL "vcpkg source dir") + if (NOT EXISTS ${VCPKG_SRC_DIR} OR VCPKG_EXECUTABLE STREQUAL "" OR NOT DEFINED VCPKG_EXECUTABLE) + message("Cloning vcpkg...") + FetchContent_Declare( + vcpkg + EXCLUDE_FROM_ALL + GIT_REPOSITORY ${VCPKG_REPO} + GIT_TAG master + GIT_SHALLOW TRUE + ) + FetchContent_MakeAvailable(vcpkg) + if (WIN32) + execute_process(COMMAND "${VCPKG_SRC_DIR}/bootstrap-vcpkg.bat") + set(VCPKG_EXECUTABLE "${VCPKG_SRC_DIR}/vcpkg.exe" CACHE INTERNAL "vcpkg executable") + else() + execute_process(COMMAND bash "${VCPKG_SRC_DIR}/bootstrap-vcpkg.sh") + set(VCPKG_EXECUTABLE "${VCPKG_SRC_DIR}/vcpkg" CACHE INTERNAL "vcpkg executable") + endif() + endif() + + if (WIN32) + set(TRIPLET x64-windows-static-md-release CACHE INTERNAL "triplet") + elseif(UNIX AND NOT APPLE) + set(TRIPLET x64-linux CACHE INTERNAL "triplet") + elseif(APPLE AND NOT IOS) + set(TRIPLET arm64-osx CACHE INTERNAL "triplet") + elseif(IOS) + set(TRIPLET arm64-ios CACHE INTERNAL "triplet") + endif() + + execute_process(COMMAND ${VCPKG_EXECUTABLE} install freetype:${TRIPLET} libpng:${TRIPLET}) + set(CMAKE_TOOLCHAIN_FILE "${CMAKE_BINARY_DIR}/_deps/vcpkg-src/scripts/buildsystems/vcpkg.cmake" CACHE STRING "cmake toolchain") + include("${VCPKG_SRC_DIR}/scripts/buildsystems/vcpkg.cmake") + list(APPEND CMAKE_PREFIX_PATH "${VCPKG_SRC_DIR}/installed/${TRIPLET}/lib") + list(APPEND CMAKE_PREFIX_PATH "${VCPKG_SRC_DIR}/installed/${TRIPLET}/include") + + set(MSDFGEN_DISABLE_SVG TRUE CACHE INTERNAL "disable msdfgen svg") + set(MSDFGEN_USE_SKIA OFF CACHE BOOL "use skia" FORCE) + set(MSDF_ATLAS_USE_SKIA OFF CACHE BOOL "use skia" FORCE) + set(MSDF_ATLAS_MSDFGEN_EXTERNAL ON CACHE BOOL "do not build msdfgen submodule" FORCE) + set(MSDFGEN_DYNAMIC_RUNTIME ON CACHE BOOL "msvc dynamic runtime" FORCE) + set(MSDF_ATLAS_DYNAMIC_RUNTIME ON CACHE BOOL "msvc dynamic runtime" FORCE) -set(VCPKG_SRC_DIR "${CMAKE_BINARY_DIR}/_deps/vcpkg-src" CACHE INTERNAL "vcpkg source dir") -if (NOT EXISTS ${VCPKG_SRC_DIR} OR VCPKG_EXECUTABLE STREQUAL "" OR NOT DEFINED VCPKG_EXECUTABLE) - message("Cloning vcpkg...") FetchContent_Declare( - vcpkg + msdfgen EXCLUDE_FROM_ALL - GIT_REPOSITORY ${VCPKG_REPO} + GIT_REPOSITORY ${MSDFGEN_REPO} + GIT_TAG v1.12 + GIT_SHALLOW TRUE + ) + FetchContent_MakeAvailable(msdfgen) + + FetchContent_Declare( + msdfgen_atlas + EXCLUDE_FROM_ALL + GIT_REPOSITORY ${MSDFGEN_ATRLAS_REPO} GIT_TAG master GIT_SHALLOW TRUE ) - FetchContent_MakeAvailable(vcpkg) - if (WIN32) - execute_process(COMMAND "${VCPKG_SRC_DIR}/bootstrap-vcpkg.bat") - set(VCPKG_EXECUTABLE "${VCPKG_SRC_DIR}/vcpkg.exe" CACHE INTERNAL "vcpkg executable") - else() - execute_process(COMMAND bash "${VCPKG_SRC_DIR}/bootstrap-vcpkg.sh") - set(VCPKG_EXECUTABLE "${VCPKG_SRC_DIR}/vcpkg" CACHE INTERNAL "vcpkg executable") - endif() + FetchContent_MakeAvailable(msdfgen_atlas) endif() -if (WIN32) - set(TRIPLET x64-windows-static-md-release CACHE INTERNAL "triplet") -elseif(UNIX AND NOT APPLE) - set(TRIPLET x64-linux CACHE INTERNAL "triplet") -elseif(APPLE AND NOT IOS) - set(TRIPLET arm64-osx CACHE INTERNAL "triplet") -elseif(IOS) - set(TRIPLET arm64-ios CACHE INTERNAL "triplet") -else() - message(FATAL_ERROR "Unknown OS, can't build msdfgen") -endif() - -execute_process(COMMAND ${VCPKG_EXECUTABLE} install freetype:${TRIPLET} libpng:${TRIPLET}) -set(CMAKE_TOOLCHAIN_FILE "${CMAKE_BINARY_DIR}/_deps/vcpkg-src/scripts/buildsystems/vcpkg.cmake" CACHE STRING "cmake toolchain") -include("${VCPKG_SRC_DIR}/scripts/buildsystems/vcpkg.cmake") -list(APPEND CMAKE_PREFIX_PATH "${VCPKG_SRC_DIR}/installed/${TRIPLET}/lib") -list(APPEND CMAKE_PREFIX_PATH "${VCPKG_SRC_DIR}/installed/${TRIPLET}/include") - -set(MSDFGEN_DISABLE_SVG TRUE CACHE INTERNAL "disable msdfgen svg") -set(MSDFGEN_USE_SKIA OFF CACHE BOOL "use skia" FORCE) -set(MSDF_ATLAS_USE_SKIA OFF CACHE BOOL "use skia" FORCE) -set(MSDF_ATLAS_MSDFGEN_EXTERNAL ON CACHE BOOL "do not build msdfgen submodule" FORCE) -set(MSDFGEN_DYNAMIC_RUNTIME ON CACHE BOOL "msvc dynamic runtime" FORCE) -set(MSDF_ATLAS_DYNAMIC_RUNTIME ON CACHE BOOL "msvc dynamic runtime" FORCE) - -FetchContent_Declare( - msdfgen - EXCLUDE_FROM_ALL - GIT_REPOSITORY ${MSDFGEN_REPO} - GIT_TAG v1.12 - GIT_SHALLOW TRUE -) -FetchContent_MakeAvailable(msdfgen) - -FetchContent_Declare( - msdfgen_atlas - EXCLUDE_FROM_ALL - GIT_REPOSITORY ${MSDFGEN_ATRLAS_REPO} - GIT_TAG master - GIT_SHALLOW TRUE -) -FetchContent_MakeAvailable(msdfgen_atlas) - function(LinkMsdf TARGET) - if(WIN32) - set(STATIC_LIB_EXT "lib") - set(freetype_lib_name "freetype") - else() - set(STATIC_LIB_EXT "a") - set(freetype_lib_name "libfreetype") - endif() - - # link freetype first to fix linkage issues on linux - target_link_libraries(${TARGET} PUBLIC "${VCPKG_SRC_DIR}/installed/${TRIPLET}/lib/${freetype_lib_name}.${STATIC_LIB_EXT}") - file(GLOB installed_libs "${VCPKG_SRC_DIR}/installed/${TRIPLET}/lib/*.${STATIC_LIB_EXT}") - foreach(lib ${installed_libs}) - get_filename_component(libname ${lib} NAME_WE) - if (NOT ${libname} STREQUAL ${freetype_lib_name}) - target_link_libraries(${TARGET} PUBLIC ${lib}) + if (WIN32 OR UNIX OR APPLE OR IOS) + target_link_libraries(${TARGET} PRIVATE msdfgen::msdfgen msdfgen::msdfgen-ext msdf-atlas-gen) + if(WIN32) + set(STATIC_LIB_EXT "lib") + set(freetype_lib_name "freetype") + else() + set(STATIC_LIB_EXT "a") + set(freetype_lib_name "libfreetype") endif() - endforeach() + # link freetype first to fix linkage issues on linux + target_link_libraries(${TARGET} PUBLIC "${VCPKG_SRC_DIR}/installed/${TRIPLET}/lib/${freetype_lib_name}.${STATIC_LIB_EXT}") + file(GLOB installed_libs "${VCPKG_SRC_DIR}/installed/${TRIPLET}/lib/*.${STATIC_LIB_EXT}") + foreach(lib ${installed_libs}) + get_filename_component(libname ${lib} NAME_WE) + if (NOT ${libname} STREQUAL ${freetype_lib_name}) + target_link_libraries(${TARGET} PUBLIC ${lib}) + endif() + endforeach() + endif() endfunction() diff --git a/CMakeLists.txt b/CMakeLists.txt index f94e957..a0ef361 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -109,6 +109,7 @@ endif () SetupVulkan(openVulkanoCpp) CopyResourcesToExe(openVulkanoCpp "${CMAKE_CURRENT_SOURCE_DIR}/fonts" ".ttf") +CopyResourcesToExe(openVulkanoCpp "${CMAKE_CURRENT_SOURCE_DIR}/examples/ExampleSources" "*") SetShaderDependency(openVulkanoCpp ${CMAKE_CURRENT_SOURCE_DIR}/openVulkanoCpp/Shader ${SHADER_OUTPUT_DEST}) @@ -121,7 +122,7 @@ endif() list(APPEND CMAKE_PREFIX_PATH ${CMAKE_BINARY_DIR}/deps/INSTALL) target_link_libraries(openVulkanoCpp PRIVATE magic_enum yaml-cpp fmt spdlog glm pugixml stb eigen utf8cpp imgui_internal - TracyClient stud-uuid ryml unordered_dense Boost::regex units msdfgen::msdfgen msdfgen::msdfgen-ext msdf-atlas-gen) + TracyClient stud-uuid ryml unordered_dense Boost::regex units) if (NOT IOS) LinkCurl(openVulkanoCpp) endif() diff --git a/examples/ExampleApps/TextExampleApp.cpp b/examples/ExampleApps/TextExampleApp.cpp index bd64add..86a01b0 100644 --- a/examples/ExampleApps/TextExampleApp.cpp +++ b/examples/ExampleApps/TextExampleApp.cpp @@ -62,7 +62,6 @@ namespace OpenVulkano const int N = texts.size(); auto& resourceLoader = ResourceLoader::GetInstance(); const std::string fontPath = resourceLoader.GetResourcePath("Roboto-Regular.ttf"); - const std::string atlasPath = (fs::path(fontPath).parent_path() / "roboto-regular-atlas.png").string(); m_nodesPool.resize(N); m_drawablesPool.resize(N); @@ -72,11 +71,28 @@ namespace OpenVulkano // some unicode values charset.add(c); } + +#ifdef MSDFGEN_AVAILABLE m_atlasGenerator.GenerateAtlas(fontPath, charset); - +#endif + for (int i = 0; i < texts.size(); i++) { +#ifdef MSDFGEN_AVAILABLE TextDrawable* t = new TextDrawable(&m_atlasGenerator, texts[i].second); +#else + auto metadataInfoPath = resourceLoader.GetResourcePath("atlas_metadata"); + auto data = resourceLoader.GetResource("roboto-regular-atlas.png"); + auto metadataInfo = TextDrawable::ReadAtlasMetadataFile(metadataInfoPath); + Image::ImageLoaderPng loader; + static auto image = loader.loadData(reinterpret_cast(data.Data()), data.Size()); + static Texture tex; + tex.resolution = image->resolution; + tex.textureBuffer = image->data.Data(); + tex.format = image->dataFormat; + tex.size = image->data.Size(); // 1 channel + TextDrawable* t = new TextDrawable(metadataInfo, &tex, texts[i].second); +#endif // MSDFGEN_AVAILABLE t->GenerateText(texts[i].first); m_drawablesPool[i] = t; m_nodesPool[i].Init(); @@ -113,7 +129,9 @@ namespace OpenVulkano OpenVulkano::Scene::Scene m_scene; PerspectiveCamera m_cam; OpenVulkano::FreeCamCameraController m_camController; +#ifdef MSDFGEN_AVAILABLE FontAtlasGenerator m_atlasGenerator; +#endif std::vector m_drawablesPool; std::vector m_nodesPool; Vector3f_SIMD m_position = { 0, 0, -10 }; diff --git a/examples/ExampleSources/atlas_metadata b/examples/ExampleSources/atlas_metadata new file mode 100644 index 0000000000000000000000000000000000000000..c130a42ed2a58c9d222790b994ef80b98bf2fcff GIT binary patch literal 12876 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 z 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%0DwxO%qP+ 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 literal 0 HcmV?d00001 diff --git a/openVulkanoCpp/Scene/AtlasMetadata.hpp b/openVulkanoCpp/Scene/AtlasMetadata.hpp new file mode 100644 index 0000000..9a94f5c --- /dev/null +++ b/openVulkanoCpp/Scene/AtlasMetadata.hpp @@ -0,0 +1,21 @@ +/* + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ + +#pragma once + +#include "Math/Math.hpp" + +namespace OpenVulkano::Scene +{ + struct GlyphInfo + { + //GlyphGeometry geometry; + //GlyphBox glyphBox; + Math::Vector3f_SIMD xyz[4] = {}; + Math::Vector2f_SIMD uv[4] = {}; + double advance = 0; + }; +} \ No newline at end of file diff --git a/openVulkanoCpp/Scene/FontAtlasGenerator.cpp b/openVulkanoCpp/Scene/FontAtlasGenerator.cpp index 7a8c4c2..b693367 100644 --- a/openVulkanoCpp/Scene/FontAtlasGenerator.cpp +++ b/openVulkanoCpp/Scene/FontAtlasGenerator.cpp @@ -6,6 +6,8 @@ #include "FontAtlasGenerator.hpp" #include "Base/Logger.hpp" +#include "Scene/AtlasMetadata.hpp" +#include namespace OpenVulkano::Scene { @@ -45,6 +47,21 @@ namespace OpenVulkano::Scene Generate(ft, font, charset, pngOutput); } + void FontAtlasGenerator::SaveAtlasMetadataInfo(const std::string& outputFile) const + { + if (m_symbols.empty()) + { + Logger::DATA->info("No glyphs loaded. Nothing to save."); + return; + } + std::fstream fs(outputFile.c_str(), std::ios_base::out | std::ios_base::binary | std::ios_base::trunc); + for (const auto& [key, val] : m_symbols) + { + fs.write(reinterpret_cast(&key), sizeof(uint32_t)); + fs.write(reinterpret_cast(&val), sizeof(GlyphInfo)); + } + } + void FontAtlasGenerator::Generate(FreetypeHandle* ft, FontHandle* font, const Charset& chset, const std::optional& pngOutput) { @@ -75,12 +92,57 @@ namespace OpenVulkano::Scene m_atlasTex.textureBuffer = (msdfgen::byte*) storage.pixels; m_atlasTex.format = OpenVulkano::DataFormat::R8_UNORM; m_atlasTex.size = storage.width * storage.height * 1; // 1 channel + + struct Bbox + { + double l = 0, r = 0, t = 0, b = 0; + }; + for (const auto& glyph: glyphsGeometry) { GlyphInfo& info = m_symbols[glyph.getCodepoint()]; - info.geometry = glyph; - info.glyphBox = m_generator.getLayout()[idx++]; + const GlyphBox& glyphBox = m_generator.getLayout()[idx++]; + + Bbox glyphBaselineBbox, glyphAtlasBbox; + glyph.getQuadPlaneBounds(glyphBaselineBbox.l, glyphBaselineBbox.b, glyphBaselineBbox.r, + glyphBaselineBbox.t); + glyph.getQuadAtlasBounds(glyphAtlasBbox.l, glyphAtlasBbox.b, glyphAtlasBbox.r, glyphAtlasBbox.t); + double bearingX = glyphBox.bounds.l; + double bearingY = glyphBox.bounds.t; + double w = glyphBaselineBbox.r - glyphBaselineBbox.l; + double h = glyphBaselineBbox.t - glyphBaselineBbox.b; + double l = glyphAtlasBbox.l; + double r = glyphAtlasBbox.r; + double t = glyphAtlasBbox.t; + double b = glyphAtlasBbox.b; + + info.xyz[0].x = bearingX; + info.xyz[0].y = h - bearingY; + info.xyz[0].z = 1; + info.uv[0].x = l / m_atlasTex.resolution.x; + info.uv[0].y = b / m_atlasTex.resolution.y; + + info.xyz[1].x = bearingX + w; + info.xyz[1].y = h - bearingY; + info.xyz[1].z = 1; + info.uv[1].x = r / m_atlasTex.resolution.x; + info.uv[1].y = b / m_atlasTex.resolution.y; + + info.xyz[2].x = bearingX + w; + info.xyz[2].y = bearingY; //h - bearingY + h; + info.xyz[2].z = 1; + info.uv[2].x = r / m_atlasTex.resolution.x; + info.uv[2].y = t / m_atlasTex.resolution.y; + + info.xyz[3].x = bearingX; + info.xyz[3].y = bearingY; + info.xyz[3].z = 1; + info.uv[3].x = l / m_atlasTex.resolution.x; + info.uv[3].y = t / m_atlasTex.resolution.y; + + info.advance = glyphBox.advance; } + if (pngOutput && !pngOutput->empty()) { savePng(m_generator.atlasStorage(), pngOutput->c_str()); diff --git a/openVulkanoCpp/Scene/FontAtlasGenerator.hpp b/openVulkanoCpp/Scene/FontAtlasGenerator.hpp index d7912e4..2cc0173 100644 --- a/openVulkanoCpp/Scene/FontAtlasGenerator.hpp +++ b/openVulkanoCpp/Scene/FontAtlasGenerator.hpp @@ -9,6 +9,7 @@ #include #include #include +#include "Scene/AtlasMetadata.hpp" #include "Scene/Texture.hpp" #include "msdfgen.h" #include "msdfgen-ext.h" @@ -20,12 +21,6 @@ namespace OpenVulkano::Scene using namespace msdf_atlas; using namespace OpenVulkano::Scene; - struct GlyphInfo - { - GlyphGeometry geometry; - GlyphBox glyphBox; - }; - class FontAtlasGenerator { public: @@ -33,14 +28,15 @@ namespace OpenVulkano::Scene const std::optional& pngOutput = std::nullopt); void GenerateAtlas(const msdfgen::byte* fontData, int length, const Charset& charset = Charset::ASCII, const std::optional& pngOutput = std::nullopt); + void SaveAtlasMetadataInfo(const std::string& outputFile) const; const Texture& GetAtlas() const { return m_atlasTex; } - std::map& GetAtlasInfo() { return m_symbols; } + std::map& GetAtlasInfo() { return m_symbols; } private: void Generate(FreetypeHandle* ft, FontHandle* font, const Charset& chset, const std::optional& pngOutput); private: ImmediateAtlasGenerator> m_generator; Texture m_atlasTex; - std::map m_symbols; + std::map m_symbols; }; -} \ No newline at end of file +} diff --git a/openVulkanoCpp/Scene/TextDrawable.cpp b/openVulkanoCpp/Scene/TextDrawable.cpp index c756485..89c653e 100644 --- a/openVulkanoCpp/Scene/TextDrawable.cpp +++ b/openVulkanoCpp/Scene/TextDrawable.cpp @@ -11,12 +11,16 @@ #include "Scene/UniformBuffer.hpp" #include "Scene/FontAtlasGenerator.hpp" #include "Base/Logger.hpp" +#include "Host/ResourceLoader.hpp" +#include #include namespace OpenVulkano::Scene { +#ifdef MSDFGEN_AVAILABLE using namespace msdfgen; using namespace msdf_atlas; +#endif Shader& TextDrawable::GetDefaultShader() { @@ -36,6 +40,42 @@ namespace OpenVulkano::Scene return textDefaultShader; } + std::map TextDrawable::ReadAtlasMetadataFile(const std::string& atlasMetadataFile) + { + OpenVulkano::Array data = OpenVulkano::Utils::ReadFile(atlasMetadataFile); + return ReadAtlasMetadata(data); + } + + std::map TextDrawable::ReadAtlasMetadata(const Array& atlasMetadata) + { + size_t len = atlasMetadata.Size(); + size_t read_bytes = 0; + uint32_t unicode = 0; + GlyphInfo info; + std::map glyphs; + while (read_bytes < len) + { + std::memcpy(&unicode, atlasMetadata.Data() + read_bytes, sizeof(uint32_t)); + read_bytes += sizeof(uint32_t); + std::memcpy(&info, atlasMetadata.Data() + read_bytes, sizeof(GlyphInfo)); + read_bytes += sizeof(GlyphInfo); + glyphs[unicode] = std::move(info); + } + return glyphs; + } + + TextDrawable::TextDrawable(const std::map& glyphData, Texture* atlasTex, + const TextConfig& config) + { + if (!atlasTex) { throw std::runtime_error("Atlas texture is nullptr"); } + if (glyphData.empty()) { throw std::runtime_error("Glyphs are not loaded"); } + m_material.texture = atlasTex; + m_glyphs = glyphData; + m_cfg = config; + m_uniBuffer.Init(sizeof(TextConfig), &m_cfg, 3); + } + +#ifdef MSDFGEN_AVAILABLE TextDrawable::TextDrawable(FontAtlasGenerator* fontAtlasGenerator, const TextConfig& config) { if (!fontAtlasGenerator) { throw std::runtime_error("FontAtlasGenerator is nullptr"); } @@ -45,80 +85,77 @@ namespace OpenVulkano::Scene m_material.texture = const_cast(&m_fontAtlasGenerator->GetAtlas()); m_uniBuffer.Init(sizeof(TextConfig), &m_cfg, 3); } +#endif - void TextDrawable::GenerateText(const std::string& text, const Math::Vector3f& pos) + void TextDrawable::GenerateText(const std::string& text, const Math::Vector3f& pos) { if (text.empty()) { return; } - // just in case if FontAtlasGenerator changed it's atlas - m_material.texture = const_cast(&m_fontAtlasGenerator->GetAtlas()); - std::map& symbols = m_fontAtlasGenerator->GetAtlasInfo(); + m_geometry.Close(); m_geometry.Init(text.size() * 4, text.size() * 6); - const Texture& atlasTex = *m_material.texture; - struct Bbox +#ifdef MSDFGEN_AVAILABLE + // TODO: better implementation to decide what to use: data from atlas generator or data read from file + // we have msdf but loaded glyphs metadata from file before + std::optional>> glyphData; + if (m_fontAtlasGenerator->GetAtlasInfo().empty() && !m_glyphs.empty()) { - double l = 0, r = 0, t = 0, b = 0; - }; - + // texture is set in ctor + glyphData = m_glyphs; + } + else + { + // just in case if FontAtlasGenerator changed it's atlas + m_material.texture = const_cast(&m_fontAtlasGenerator->GetAtlas()); + glyphData = m_fontAtlasGenerator->GetAtlasInfo(); + } + std::map& symbols = glyphData.value(); +#else + std::map& symbols = m_glyphs; +#endif + const Texture& atlasTex = *m_material.texture; double cursorX = pos.x; auto begin = text.begin(); auto end = text.end(); for (size_t i = 0; begin != end; i++) { - unicode_t c = utf8::next(begin, end); + uint32_t c = utf8::next(begin, end); if (symbols.find(c) != symbols.end()) { - Bbox glyphBaselineBbox, glyphAtlasBbox; uint32_t vIdx = i * 4; uint32_t indices[] = { 1 + vIdx, 2 + vIdx, 3 + vIdx, 1 + vIdx, 3 + vIdx, 0 + vIdx }; GlyphInfo& info = symbols.at(c); - info.geometry.getQuadPlaneBounds(glyphBaselineBbox.l, glyphBaselineBbox.b, glyphBaselineBbox.r, - glyphBaselineBbox.t); - info.geometry.getQuadAtlasBounds(glyphAtlasBbox.l, glyphAtlasBbox.b, glyphAtlasBbox.r, - glyphAtlasBbox.t); - double bearingX = info.glyphBox.bounds.l; - double bearingY = info.glyphBox.bounds.t; - double w = glyphBaselineBbox.r - glyphBaselineBbox.l; - double h = glyphBaselineBbox.t - glyphBaselineBbox.b; - double l = glyphAtlasBbox.l; - double r = glyphAtlasBbox.r; - double t = glyphAtlasBbox.t; - double b = glyphAtlasBbox.b; - double ax = cursorX + bearingX; - double ay = pos.y - (h - bearingY); - m_geometry.vertices[vIdx].position.x = ax; - m_geometry.vertices[vIdx].position.y = ay; - m_geometry.vertices[vIdx].position.z = 1; - m_geometry.vertices[vIdx].textureCoordinates.x = l / atlasTex.resolution.x; - m_geometry.vertices[vIdx].textureCoordinates.y = b / atlasTex.resolution.y; - - m_geometry.vertices[vIdx + 1].position.x = ax + w; - m_geometry.vertices[vIdx + 1].position.y = ay; - m_geometry.vertices[vIdx + 1].position.z = 1; - m_geometry.vertices[vIdx + 1].textureCoordinates.x = r / atlasTex.resolution.x; - m_geometry.vertices[vIdx + 1].textureCoordinates.y = b / atlasTex.resolution.y; - - m_geometry.vertices[vIdx + 2].position.x = ax + w; - m_geometry.vertices[vIdx + 2].position.y = ay + h; - m_geometry.vertices[vIdx + 2].position.z = 1; - m_geometry.vertices[vIdx + 2].textureCoordinates.x = r / atlasTex.resolution.x; - m_geometry.vertices[vIdx + 2].textureCoordinates.y = t / atlasTex.resolution.y; - - m_geometry.vertices[vIdx + 3].position.x = ax; - m_geometry.vertices[vIdx + 3].position.y = ay + h; - m_geometry.vertices[vIdx + 3].position.z = 1; - m_geometry.vertices[vIdx + 3].textureCoordinates.x = l / atlasTex.resolution.x; - m_geometry.vertices[vIdx + 3].textureCoordinates.y = t / atlasTex.resolution.y; - + // left bottom + m_geometry.vertices[vIdx].position.x = info.xyz[0].x + cursorX; + m_geometry.vertices[vIdx].position.y = pos.y - info.xyz[0].y; + m_geometry.vertices[vIdx].position.z = info.xyz[0].z; + m_geometry.vertices[vIdx].textureCoordinates = Math::Vector3f(info.uv[0], 0); + + // right bottom + m_geometry.vertices[vIdx + 1].position.x = info.xyz[1].x + cursorX; + m_geometry.vertices[vIdx + 1].position.y = pos.y - info.xyz[1].y; + m_geometry.vertices[vIdx + 1].position.z = info.xyz[1].z; + m_geometry.vertices[vIdx + 1].textureCoordinates = Math::Vector3f(info.uv[1], 0); + + // top right + m_geometry.vertices[vIdx + 2].position.x = info.xyz[2].x + cursorX; + m_geometry.vertices[vIdx + 2].position.y = pos.y + info.xyz[2].y; + m_geometry.vertices[vIdx + 2].position.z = info.xyz[2].z; + m_geometry.vertices[vIdx + 2].textureCoordinates = Math::Vector3f(info.uv[2], 0); + + // top left + m_geometry.vertices[vIdx + 3].position.x = info.xyz[3].x + cursorX; + m_geometry.vertices[vIdx + 3].position.y = pos.y + info.xyz[3].y; + m_geometry.vertices[vIdx + 3].position.z = info.xyz[3].z; + m_geometry.vertices[vIdx + 3].textureCoordinates = Math::Vector3f(info.uv[3], 0); m_geometry.SetIndices(indices, 6, 6 * i); // TODO: change to lower value(or ideally remove completely) to avoid overlapping and make less space between symbols // when setting for depth comparison operator will be available( <= ) - cursorX += info.glyphBox.advance + 0.08; + cursorX += info.advance + 0.08; } else { diff --git a/openVulkanoCpp/Scene/TextDrawable.hpp b/openVulkanoCpp/Scene/TextDrawable.hpp index 20453b0..18634cb 100644 --- a/openVulkanoCpp/Scene/TextDrawable.hpp +++ b/openVulkanoCpp/Scene/TextDrawable.hpp @@ -17,14 +17,20 @@ #include "Geometry.hpp" #include "UniformBuffer.hpp" #include "Base/Logger.hpp" -#include "msdfgen.h" -#include "msdfgen-ext.h" -#include "msdf-atlas-gen/msdf-atlas-gen.h" +#include "AtlasMetadata.hpp" +#if __has_include("msdfgen.h") + #include "msdfgen.h" + #include "msdfgen-ext.h" + #include "msdf-atlas-gen/msdf-atlas-gen.h" + #define MSDFGEN_AVAILABLE 1 +#endif namespace OpenVulkano::Scene { +#ifdef MSDFGEN_AVAILABLE using namespace msdfgen; using namespace msdf_atlas; +#endif // MSDFGEN_AVAILABLE struct TextConfig { @@ -42,12 +48,18 @@ namespace OpenVulkano::Scene { public: static Shader& GetDefaultShader(); + static std::map ReadAtlasMetadataFile(const std::string& atlasMetadataFile); + static std::map ReadAtlasMetadata(const Array& atlasMetadata); + TextDrawable(const std::map& glyphData, Texture* atlasTex, const TextConfig& config = TextConfig()); +#ifdef MSDFGEN_AVAILABLE TextDrawable(FontAtlasGenerator* fontAtlasGenerator, const TextConfig& config = TextConfig()); +#endif void GenerateText(const std::string& text, const Math::Vector3f& pos = Math::Vector3f(0.f)); void SetConfig(const TextConfig& cfg) { m_cfg = cfg; } void SetShader(Shader* shader) { m_shader = shader; } TextConfig& GetConfig() { return m_cfg; } Shader* GetShader() { return m_shader; } +#ifdef MSDFGEN_AVAILABLE void SetFontAtlasGenerator(FontAtlasGenerator* fontAtlasGenerator) { if (!fontAtlasGenerator || fontAtlasGenerator->GetAtlasInfo().empty()) @@ -56,14 +68,17 @@ namespace OpenVulkano::Scene return; } m_fontAtlasGenerator = fontAtlasGenerator; - m_material.texture = const_cast(&m_fontAtlasGenerator->GetAtlas()); } FontAtlasGenerator* GetFontAtlasGenerator() { return m_fontAtlasGenerator; } +#endif private: Geometry m_geometry; Material m_material; UniformBuffer m_uniBuffer; + std::map m_glyphs; +#ifdef MSDFGEN_AVAILABLE FontAtlasGenerator* m_fontAtlasGenerator = nullptr; +#endif Shader* m_shader = &GetDefaultShader(); TextConfig m_cfg; };