介绍
本节介绍如何使用SDL2(Simple DirectMedia 2)库。它是一个(相对)易于使用的库,可以在不依赖于特定于操作的功能的情况下添加多媒体功能。
SDL提供的内容:
- 窗口管理
- 软件(CPU)和硬件(GPU)渲染2D图形
- 输入事件系统
- 时间管理
- 音频处理
- 文件IO和库加载
- 穿线
- 用于3D图形的OpenGL API
SDL有扩展,提供更多功能 - 网络,更好的音频系统,图像加载等。
在本节中,我将引用SDL提供的许多功能。这些课程的目的是教你如何使用SDL的功能,而不是参数的细节等。因此,每个对SDL对象的引用都将包含指向其SDL文档页面的链接。如果您对函数的参数,返回类型,副作用或结构成员等有疑问,请阅读文档。这将是一个非常宝贵的资源。
文档提示:
- 如果您对任何事情感到疑惑,请查看文档。
- 示例代码非常有用。
- 始终阅读备注 - 它们可能会显示意外的功能并描述何时应保存/释放内存。
- 每页底部的“相关功能”部分将显示您还可以使用的其他内容。我们不会涵盖每节课的每一项功能。
建立
使用SDL函数或对象时,您必须(当然)包含其头文件。文件SDL.h将自动包含其他所有内容 - 通常这就是您需要的全部内容。但是,许多函数都是在特定文件中进行原型化。如果您不确定需要包含哪些内容,请查看文档。
此外,如果正确设置编译器,则应该能够使用尖括号(例如#include <SDL.h>)。这告诉编译器查看其指定的include目录。
初始化SDL
在做任何其他事情之前,您必须将SDL整体初始化。正如您所料,SDL_Init()就是这样做的。如果要初始化SDL的所有部分,请传递SDL_INIT_EVERYTHING。
SDL还允许您单独初始化库的特定子集(或子系统)。要指定,请指定