#pragma once #include "fostbite2D/platform/window.h" #include #include 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(); }; }