#pragma once #include #include namespace extra2d { /** * @brief SDL2 初始化和生命周期管理 * * 提供 SDL2 子系统的统一初始化和清理接口 */ class Sdl2 { public: /** * @brief 初始化 SDL2 核心子系统 * @return true 初始化成功 */ static bool initCore(); /** * @brief 初始化视频子系统 * @return true 初始化成功 */ static bool initVideo(); /** * @brief 初始化音频子系统 * @return true 初始化成功 */ static bool initAudio(); /** * @brief 初始化游戏控制器子系统 * @return true 初始化成功 */ static bool initGamepad(); /** * @brief 初始化所有子系统 * @return true 初始化成功 */ static bool initAll(); /** * @brief 关闭 SDL2 */ static void shutdown(); /** * @brief 检查是否已初始化 */ static bool isInited() { return inited_; } private: static bool inited_; }; } // namespace extra2d