SDL入门学习一.装载和退出

1.装载:

   SDL的其他函数必须在这个函数将SDL装载之后才能够正常调用。

   int SDL_Init (Uint32 flags);

    falgs定义在sdl.h文件中,有如下几种:    

#define    SDL_INIT_TIMER        0x00000001
#define SDL_INIT_AUDIO        0x00000010
#define SDL_INIT_VIDEO        0x00000020
#define SDL_INIT_CDROM        0x00000100
#define SDL_INIT_JOYSTICK    0x00000200
#define SDL_INIT_NOPARACHUTE    0x00100000    /* Don't catch fatal signals */
#define SDL_INIT_EVENTTHREAD    0x01000000    /* Not supported on all OS's */
#define SDL_INIT_EVERYTHING    0x0000FFFF

SDL_INIT_TIMER Initializes the timer subsystem.
SDL_INIT_AUDIO Initializes the audio subsystem.
SDL_INIT_VIDEO Initializes the video subsystem.
SDL_INIT_CDROM Initializes the cdrom subsystem.
SDL_INIT_JOYSTICK Initializes the joystick subsystem.
SDL_INIT_EVERYTHING Initialize all of the above.
SDL_INIT_NOPARACHUTE Prevents SDL from catching fatal signals.
SDL_INIT_EVENTTHREAD  

Returns -1 on an error or 0 on success.

 

2.检测装载了哪些flags:

   Uint32 SDL_WasInit (Uint32 flags);

   在检测多个flags或者SDL_INIT_EVERYTHING时,返回存在的flag,都不存在则返回0。

   在检测某个flag时,如果存在返回flag本身,不存在则返回0。

 

3.退出:

   void SDL_Quit (void);

   通常,我们在可以预测程序结束的时候直接使用语句:SDL_Quit();

   更多的时候,以及SDL官方文档里面,也推荐使用:atexit(SDL_Quit);

   atexit()函数的形参为函数指针,这个形参函数需要满足:返回类型为void,并且没有形参,atexit(function)在main()正常结束以及异常结束的时候,都会自动调用function()函数,所以,在我们不可预知程序是否会异常,或者不清楚程序什么时候结束的时候,需要做某些善后,atexit()是个很好的选择。

 

4.SDL flags的中途装载:

    int SDL_InitSubSystem (Uint32 flags);

    返回值为0则成功装载,-1则失败.

 

5.SDL某些flags的中途退出:

    void SDL_QuitSubSystem (Uint32 flags);

 

  NOTE:

     在没有使用SDL_Init()时,可以使用SDL_WasInit()进行检测,也可以使用SDL_Quit().

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值