mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 16:00:08 +00:00
81 lines
1.9 KiB
C++
81 lines
1.9 KiB
C++
#include <scwx/qt/manager/resource_manager.hpp>
|
|
#include <scwx/qt/config/county_database.hpp>
|
|
#include <scwx/qt/model/imgui_context_model.hpp>
|
|
#include <scwx/qt/util/font.hpp>
|
|
#include <scwx/qt/util/texture_atlas.hpp>
|
|
#include <scwx/util/logger.hpp>
|
|
|
|
#include <imgui.h>
|
|
|
|
#include <QFontDatabase>
|
|
|
|
namespace scwx
|
|
{
|
|
namespace qt
|
|
{
|
|
namespace manager
|
|
{
|
|
namespace ResourceManager
|
|
{
|
|
|
|
static const std::string logPrefix_ = "scwx::qt::manager::resource_manager";
|
|
static const auto logger_ = scwx::util::Logger::Create(logPrefix_);
|
|
|
|
static void LoadFonts();
|
|
static void LoadTextures();
|
|
|
|
static const std::unordered_map<types::Font, std::string> fontNames_ {
|
|
{types::Font::din1451alt, ":/res/fonts/din1451alt.ttf"},
|
|
{types::Font::din1451alt_g, ":/res/fonts/din1451alt_g.ttf"}};
|
|
|
|
static std::unordered_map<types::Font, int> fontIds_ {};
|
|
|
|
void Initialize()
|
|
{
|
|
config::CountyDatabase::Initialize();
|
|
|
|
LoadFonts();
|
|
LoadTextures();
|
|
}
|
|
|
|
void Shutdown() {}
|
|
|
|
int FontId(types::Font font)
|
|
{
|
|
auto it = fontIds_.find(font);
|
|
if (it != fontIds_.cend())
|
|
{
|
|
return it->second;
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
static void LoadFonts()
|
|
{
|
|
for (auto& fontName : fontNames_)
|
|
{
|
|
int fontId = QFontDatabase::addApplicationFont(
|
|
QString::fromStdString(fontName.second));
|
|
fontIds_.emplace(fontName.first, fontId);
|
|
|
|
util::Font::Create(fontName.second);
|
|
}
|
|
|
|
ImFontAtlas* fontAtlas = model::ImGuiContextModel::Instance().font_atlas();
|
|
fontAtlas->AddFontDefault();
|
|
}
|
|
|
|
static void LoadTextures()
|
|
{
|
|
util::TextureAtlas& textureAtlas = util::TextureAtlas::Instance();
|
|
textureAtlas.RegisterTexture("lines/default-1x7",
|
|
":/res/textures/lines/default-1x7.png");
|
|
textureAtlas.RegisterTexture("lines/test-pattern",
|
|
":/res/textures/lines/test-pattern.png");
|
|
textureAtlas.BuildAtlas(8, 8);
|
|
}
|
|
|
|
} // namespace ResourceManager
|
|
} // namespace manager
|
|
} // namespace qt
|
|
} // namespace scwx
|