Extra2D/include/platform/sdl2.h

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