Frostbite2D/Fostbite2D/include/fostbite2D/config/app_config.h

40 lines
1.1 KiB
C++

#pragma once
#include <fostbite2D/config/platform_config.h>
#include <fostbite2D/platform/window.h>
#include <string>
namespace frostbite2D {
/**
* @file app_config.h
* @brief 应用级别配置
*
* 本文件仅包含应用级别的配置项,不包含任何模块特定配置。
* 各模块应该在自己的模块文件中定义配置结构,并实现 IModuleConfig 接口。
*
* 模块配置通过 ModuleRegistry 注册,由 ConfigManager 统一管理。
* 这种设计遵循开闭原则,新增模块无需修改引擎核心代码。
*/
/**
* @brief 应用配置结构体
* 仅包含应用级别的配置项,模块配置由各模块自行管理
*/
struct AppConfig {
std::string appName = "frostbite2D App";
std::string appVersion = "1.0.0";
std::string organization = "";
std::string configFile = "config.json";
WindowConfig windowConfig;
PlatformType targetPlatform = PlatformType::Auto;
/**
* @brief 创建默认配置
* @return 默认的应用配置实例
*/
static AppConfig createDefault();
};
} // namespace frostbite2D