前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SDL简介

SDL简介

作者头像
arcticfox
发布2020-09-24 15:26:46
2.2K0
发布2020-09-24 15:26:46
举报

SDL

SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。

SDL在结构上是将不同操作系统的库再封装成相同的函数,例如SDL在Windows平台上是DirectX的封装,而在使用X11的平台上(包括Linux),SDL则是与Xlib库沟通来输出图像。虽然SDL本身是使用C语言写成,但是它几乎可以被所有的编程语言所使用,例如:C++、Perl、Python(借由pygame库)、Pascal、Java等等。

简单说,SDL 本身是跨平台的,它是对各个平台特有 API 的抽象。

需要注意,SDL的定位是以精简的方式来完成基础的功能,它大幅度简化了控制图像、声音、输出入等工作所需撰写的代码。但更高级的绘图功能或是音效功能则需搭配OpenGL和OpenAL等API来实现。

SDL 按照 API 的类型可以分为几个部分:

  • Basics ,用于系统初始化、错误处理、日志打印等基本功能。
  • Video,用于窗口管理和显示、像素纹理渲染等功能。
  • Input Events,用于处理各种事件,包括键盘、鼠标、手柄等外设。
  • Force Feedback,主要用于各种“力反馈”的设备支持。
  • Audio,用于音频设备管理,包括播放、录制等操作。
  • Threads,用于多线程、原子操作以及线程管理等功能。
  • Timers,用于定时器的支持。
  • File Abstraction,文件系统相关操作。
  • Shared Object Support,用于动态库的加载以及函数查找等相关操作。
  • Platform and CPU Information,主要用于平台检测、CPU检测、字节序、位运算等功能。
  • Power Management,电源状态管理。
  • Additional Functionaliy,平台相关的附加功能。

除了上述子系统外,SDL 还基于这些功能开发了几个扩展组件:

  • SDL_image 用于支持额外的图片格式,包括常见的 PNG、BMP、WEBP、GIF、JPEG、TIFF 等。
  • SDL_mixer 用于支持额外的音频格式,包括 MP3、OGG、WAV 等。
  • SDL_ttf 用于 TrueType 字体的渲染。
  • SDL_rtf 用于简单的 RTF 渲染支持。
  • SDL_net 用于网络相关的支持。

目前,SDL的最新版本是SDL2,它与SDL1在使用有一些不同,它支持了硬件加速等新的能力,因此我们应学习SDL2的使用。

本系列教程主要包含对国外优秀教程的翻译,同时也会包含博主本人的一些总结文章

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程之路从0到1 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SDL
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档