如何获取完整的SDL 1.2开发文档及SDL_RWops使用参考?
SDL 1.2 相关资料获取方案
SDL_RWops 接口使用说明
SDL_RWops是SDL 1.2内置的抽象IO层,用来统一对接文件、内存、自定义数据流等不同数据源,所有支持自定义输入源的SDL原生接口、相关扩展库接口都基于这个结构实现,不需要强制依赖本地文件路径加载资源。
- 内置创建函数:
SDL_RWFromFile(const char *file, const char *mode):对接本地文件,参数mode和C标准库fopen的权限字符串规则完全一致,比如读取二进制文件传入"rb"即可SDL_RWFromFP(FILE *fp, int autoclose):对接已经打开的C标准文件指针,autoclose传1时,后续关闭RW流会自动关闭对应的文件指针SDL_RWFromMem(void *mem, int size):对接可读写的内存块作为数据源SDL_RWFromConstMem(const void *mem, int size):对接只读内存块,适合加载已经读入内存的静态资源
- 基础读写操作:结构体内置
seek/read/write/close四个函数指针,SDL也封装了对应宏可以直接调用,参数逻辑和C标准库IO接口基本一致:SDL_RWseek(ctx, offset, whence):移动流的读写指针,whence可选SEEK_SET(从起始位置偏移)、SEEK_CUR(从当前位置偏移)、SEEK_END(从末尾位置偏移),返回当前指针相对于流起始位置的偏移量SDL_RWtell(ctx):返回当前读写指针相对于流起始位置的偏移量SDL_RWread(ctx, ptr, size, n):从流中读取n个长度为size字节的数据块到ptr指向的内存,返回实际读取到的块数量SDL_RWwrite(ctx, ptr, size, n):将ptr指向的内存中n个长度为size字节的数据块写入流,返回实际写入的块数量SDL_RWclose(ctx):关闭RW流,释放对应分配的资源,创建时开启了自动关闭选项的话会同步关闭底层数据源
- 最简使用示例:
// 从本地文件加载BMP图片,加载完成后自动关闭RW流 SDL_Surface *bmp_tex = NULL; SDL_RWops *rw = SDL_RWFromFile("demo.bmp", "rb"); if (rw) { // 第二个参数传入1,告知SDL_LoadBMP_RW加载完成后自动释放RWops bmp_tex = SDL_LoadBMP_RW(rw, 1); }
SDL 1.2 完整官方wiki备份说明
目前社区留存有SDL 2.0正式上线前的SDL 1.2官方wiki完整静态备份,是原wiki下线前由社区用户整站爬取归档的版本,内容和2007年前后官方站点的公开内容完全一致:
- 覆盖全量API文档,包含常见零散资料中缺失的
SDL_RWops、线程操作、平台相关接口等所有条目说明 - 附带原站点所有教程、FAQ、示例代码、版本变更记录,没有混入SDL 2.0的相关内容
- 备份为离线静态文件格式,可以本地直接打开浏览,也可以从中提取出全量man手册页,安装后即可通过man命令直接查询所有SDL 1.2接口,不需要依赖发行版源中不完整的文档包。
内容的提问来源于stack exchange,提问作者not_applicable
相关产品推荐
相关产品推荐

