基本的SDL的使用思路,基本分为三部分:初始化 —> 循环渲染 —> 销毁释放资源。
SDL 初始化相关方法 :
- SDL_Init(): 初始化SDL
- SDL_CreateWindow(): 创建窗口(Window)
- SDL_CreateRenderer(): 基于窗口创建渲染器(Render)
- SDL_CreateTexture(): 创建纹理(Texture)
SDL 渲染数据相关方法:
- SDL_UpdateTexture(): 设置纹理的数据
- SDL_RenderCopy(): 纹理复制给渲染器
- SDL_RenderPresent(): 显示
SDL 销毁释放资源相关方法:
- SDL_DestroyTexture(tex) : 释放纹理资源
- SDL_DestroyRenderer(ren) : 释放渲染器
- SDL_DestroyWindow(win) : 释放窗口
- SDL_Quit() : 关闭所有SDL子系统
下面我们就按照这个顺序对核心的API进行讲解。
一、初始化函数 SDL_Init()
该初始化函数可以确定希望激活的子系统。函数原型如下:
int SDLCALL SDL_Init(Uint32 flags)
其中Uint32 flags参数为要启动的子系统的flag值,具体可以传入的内容如下:
- 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:包含上述所有选项
SDL_Init() 的实现位于SDL.c中。定义如下:
int SDL_Init(Uint32 flags