下面是一个使用C++的SDL2的Hello World程序,展示了一个简单的SDL2程序。
1 |
|
解释
此处只对代码在干什么进行一个大致的描述,详细的解释分别在后面的笔记中说明。
这段代码会生成一个标题为"Hellow, world!"的窗口。
注意在使用SDL2官方提供的预编译库时主函数一定要加上int, char*
两参数,否则会与库中主函数定义不一致无法正常链接。
首先,我们需要对SDL2进行初始化,即调用SDL_Init()
并传入所需的功能模块的flag。
然后,任何一个SDL程序都需要一个窗口才能显示/运行,而这里的SDL_Window
就是对"窗口"的一个抽象。
创建窗体时我们使用了SDL_CreateWindow()
函数,其中各个参数分别代表窗体标题、窗体的坐标(以左上角为基准)、窗体的宽度与长度以及窗体flag。
这里SDL_WINDOW_SHOWN
表示创建窗体后立即显示,其他另有一系列flag,此处不作过多介绍。
创建了窗体以后,我们需要通过一定的方法绘制我们需要的内容,在SDL2中有通过surface
和通过renderer
两种方法(renderer
为SDL2新增)。
这里我们采用后者,于是调用函数新建一个renderer
,-1
表示初始化第一个支持后面所传入的渲染flag的渲染器(现在不用管它),而后面的flag表示启用加速。
然后,我们用白色填充了整个窗体,并在上面用黑色在(100, 100)的位置画了个边长300px的正方形。
而这些渲染都是在一个看不见的缓冲区上进行的,最后,我们调用SDL_RenderPresent()
来把这些东西显示到屏幕上。
最后,我们通过一个循环获取事件,来使窗口保持显示并在接收到退出信号时正常退出。
相关代码也可以访问我的Gtihub仓库。