60 lines
1.1 KiB
C++
60 lines
1.1 KiB
C++
#pragma once
|
|
|
|
#include <SDL.h>
|
|
#include <SDL_syswm.h>
|
|
|
|
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
|