SDL_Init函数:
用来初始化SDL库,必须在使用SDL其它函数之前调用此函数。
int SDL_Init(Uint32 flags)
SDL_INIT_TIMER:定时器
SDL_INIT_AUDIO:音频
SDL_INIT_VIDEO:视频
SDL_INIT_JOYSTICK:摇杆
SDL_INIT_HAPTIC:触摸屏
SDL_INIT_GAMECONTROLLER:游戏控制器
SDL_INIT_EVENTS:事件
SDL_INIT_NOPARACHUTE:不捕获关键信号(这个不理解)
SDL_INIT_EVERYTHING:包含上述所有选项
http://blog.csdn.net/leixiaohua1020/article/details/40680907
#include <exception> #include <string> #include "SDL.h" class InitError: public std::exception { public: InitError(); InitError(const std::string&); virtual ~InitError() throw(); virtual const char* what() const throw(); private: std::string msg; }; InitError::InitError(): exception(), msg(SDL_GetError()) {} InitError::InitError(const std::string& m): exception(), msg(m) {} InitError::~InitError() throw() {} const char* InitError::what() const throw() { return msg.c_str(); } class SDL { public: SDL(Uint32 flags = 0) throw(InitError); virtual ~SDL(); }; SDL::SDL(Uint32 flags) throw(InitError) { if (SDL_Init(flags) != 0) throw InitError(); } SDL::~SDL() { SDL_Quit(); } /* ... */ #include <iostream> int main(int argc, char **argv) { try { SDL sdl(SDL_INIT_VIDEO|SDL_INIT_TIMER); /* ... */ return 0; } catch (const InitError& err) { std::cerr << "Error while initializing SDL: " << err.what() << std::endl; } return 1; }
蔡军生