mirror of
				https://github.com/ciphervance/supercell-wx.git
				synced 2025-10-31 03:50:05 +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
 | 
