40 lines
1.1 KiB
C++
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
|