From 786e15771c805e1a41f9ea8b7764891f3d84be71 Mon Sep 17 00:00:00 2001 From: Xiao Qi Date: Tue, 15 Nov 2022 13:44:39 +0800 Subject: [PATCH] Addedo control paths for font compilation and loading --- SHADE_Engine/src/Assets/SHAssetMacros.h | 3 ++- SHADE_Engine/src/Assets/SHAssetManager.cpp | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/SHADE_Engine/src/Assets/SHAssetMacros.h b/SHADE_Engine/src/Assets/SHAssetMacros.h index 6b5e03d5..5ab1945d 100644 --- a/SHADE_Engine/src/Assets/SHAssetMacros.h +++ b/SHADE_Engine/src/Assets/SHAssetMacros.h @@ -67,8 +67,9 @@ constexpr std::string_view ASSET_ROOT {"../../Assets"}; constexpr std::string_view BUILT_IN_ASSET_ROOT{ "../../Built_In" }; #endif -// COMPILER PATHS +// COMPILER EXE constexpr std::string_view MODEL_COMPILER_EXE{ "ModelCompiler.exe" }; +constexpr std::string_view FONT_COMPILER_EXE{ "FontCompiler.exe" }; // INTERNAL ASSET PATHS constexpr std::string_view SCENE_FOLDER{ "/Scenes/" }; diff --git a/SHADE_Engine/src/Assets/SHAssetManager.cpp b/SHADE_Engine/src/Assets/SHAssetManager.cpp index 895de0f9..e6762822 100644 --- a/SHADE_Engine/src/Assets/SHAssetManager.cpp +++ b/SHADE_Engine/src/Assets/SHAssetManager.cpp @@ -20,6 +20,7 @@ #include "Libraries/Loaders/SHTextureLoader.h" #include "Libraries/Loaders/SHShaderSourceLoader.h" #include "Libraries/Loaders/SHTextBasedLoader.h" +#include "Libraries/Loaders/SHFontLoader.h" //#include "Libraries/Compilers/SHMeshCompiler.h" #include "Libraries/Compilers/SHTextureCompiler.h" @@ -398,6 +399,16 @@ namespace SHADE } newPath = pathGen.value(); } + else if (ext == TTF_EXTENSION.data()) + { + std::string command = FONT_COMPILER_EXE.data(); + command += " " + path.string(); + std::system(command.c_str()); + + std::string fontPath = path.string().substr(0, path.string().find_last_of('.')); + fontPath += FONT_EXTENSION; + newPath = fontPath; + } else { SHLOG_WARNING("File Type compilation not yet Implemented: {}", path.string()); @@ -450,6 +461,8 @@ namespace SHADE loaders[static_cast(AssetType::PREFAB)] = loaders[static_cast(AssetType::SCENE)]; loaders[static_cast(AssetType::MATERIAL)] = loaders[static_cast(AssetType::SCENE)]; loaders[static_cast(AssetType::MESH)] = nullptr; + loaders[static_cast(AssetType::SCRIPT)] = nullptr; + loaders[static_cast(AssetType::FONT)] = dynamic_cast(new SHFontLoader()); } /****************************************************************************