首页 > 其他分享 >SDL开发库简介

SDL开发库简介

时间:2022-09-07 09:58:20浏览次数:73  
标签:API OpenGL 简介 音频 开发 使用 SDL 硬件加速

什么是SDL

Simple DirectMedia Layer 是一个跨平台开发库,旨在通过 OpenGL 和 Direct3D 提供对音频、键盘、鼠标、游戏杆和图形硬件的低级访问。 它被视频播放软件、模拟器和流行游戏使用。
SDL 正式支持 Windows、Mac OS X、Linux、iOS 和 Android。 可以在源代码中找到对其他平台的支持。
SDL 是用 C 语言编写的,可与 C++ 一起工作,并且有适用于其他几种语言的绑定,包括 C# 和 Python。
SDL 2.0 在 zlib 许可下分发。 此许可证允许您在任何软件中自由使用 SDL。 简单 DirectMedia 层库 (SDL) 是一个通用 API,它通过 OpenGL 提供对音频、键盘、鼠标、操纵杆、3D 硬件和跨多个平台的 2D 帧缓冲区的低级访问。
SDL 可以做什么?
video

3D图形:
SDL 可以与用于 3D 图形的 OpenGL API 或 Direct3D API 结合使用
加速 2D 渲染 API:
支持简单的旋转、缩放和 alpha 混合,所有这些都使用现代 3D API 加速
使用 OpenGL 和 Direct3D 支持加速,并且有软件回退
创建和管理多个窗口
Input Events

提供的事件和 API 函数用于:
应用程序和窗口状态更改
鼠标输入
键盘输入
操纵杆和游戏控制器输入
多点触控手势
可以使用 SDL_EventState() 启用或禁用每个事件
事件在发布到内部事件队列之前通过用户指定的过滤函数传递
线程安全的事件队列
Force Feedback

在 Windows、Mac OS X 和 Linux 下支持力反馈
Audio

设置 8 位和 16 位音频、单声道立体声或 5.1 环绕声的音频播放,如果硬件不支持格式,可选择转换
音频在单独的线程中独立运行,通过用户回调机制填充
专为定制软件混音器而设计,但 SDL_mixer 提供完整的音频/音乐输出库
File I/O Abstraction

用于打开、读取和写入数据的通用抽象
对文件和内存的内置支持
Shared Object Support

加载共享对象(Windows 上的 DLL、Mac OS X 上的 .dylib、Linux 上的 .so)
共享对象中的查找函数
Threads

简单的线程创建 API
简单的线程本地存储 API
互斥量、信号量和条件变量
无锁编程的原子操作
获取经过的毫秒数
等待指定的毫秒数
在单独的线程中创建与您的代码一起运行的计时器
使用高分辨率计数器进行分析
CPU Feature Detection

查询CPU个数
检测 CPU 特性和支持的指令集
Endian Independence

检测当前系统的字节序
快速交换数据值的例程
读写指定字节序的数据
Power Management

查询电源管理状态
六纳米6nami www.6nami.com
SDL 在哪些平台上运行?

视窗

使用 Win32 API 进行显示,利用 Direct3D 进行硬件加速
使用 DirectSound 和 XAudio2 处理声音

Mac OS X

使用 Cocoa 进行视频显示,利用 OpenGL 进行硬件加速
使用 Core Audio 发声

Linux
使用 X11 进行视频显示,利用 OpenGL 进行硬件加速
使用 ALSA、OSS 和 PulseAudio API 获取声音

iOS
使用 UIKit 进行视频显示,利用 OpenGL ES 2.0 进行硬件加速
使用 Core Audio 发声

安卓

使用 JNI 接口进行视频显示,利用 OpenGL ES 1.1 和 2.0 进行硬件加速
对声音使用 JNI 音频回调

标签:API,OpenGL,简介,音频,开发,使用,SDL,硬件加速
From: https://www.cnblogs.com/6nami/p/16661863.html

相关文章

  • Lambda简介
     1、什么是Lambda?Lambda就是一个匿名函数。 2、为什么要使用Lambda?使用Lambda表达式可以对一个接口进行非常简洁的实现(如下图,分别是三种方式实现接口的对比)。 3......
  • Steamship Packages:面向软件开发人员的全生命周期语言 AI
    SteamshipPackages:面向软件开发人员的全生命周期语言AI今天,我们很高兴推出Steamship包的测试版。SteamshipPackages是全生命周期语言AI​​解决方案,开发人员可以......
  • stm32f103zet红牛开发板STMcubeMX hal库版番外篇:红牛版的开发板原型,及官方stm3210e-ev
    红牛开发板什么都好,就是他的例程直接就是给了代码工程,没有其他厂家那样有教程。这只能让我先看他的代码然后才能按他的思路去用hal库重新。不过我在他的程序里发现了tm3210......
  • 在几个小时内从初级开发人员到高级开发人员
    在几个小时内从初级开发人员到高级开发人员我有25年的专业开发经验,总共有40年的经验。多年来,我一直担任开发主管、项目负责人、首席技术官、项目经理、高级架构师,并担......
  • Safari 对开发者来说变得更好了
    Safari对开发者来说变得更好了单属性平滑滚动终于来了Photoby鲁拜图尔·阿扎德on不飞溅多年来,Apple的Safari浏览器一直顽固地忽略了实现大多数其他主要浏览......
  • 反冲简介
    反冲简介畏缩是Facebook的React实验状态管理系统。它提供了几种开箱即用的功能,这些功能仅靠React⚛️很难实现。Recoil可让您创建一个数据流图,该图流自原子通......
  • DE10-Nano开发板OpenOCD设置
    1#2#AlteracycloneVSoCFamily3#4adapterdriverusb_blaster5usb_blaster_vid_pid0x09fb0x60100x09fb0x68106usb_blaster_lowlevel_driverub......
  • Serverless架构:无服务器单页应用开发 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/100j98AnzlWQ-pXtSG-l9fQ点击这里获取提取码《Serverless架构:无服务器单页应用开发》讲授如何利用Amazon公司的AWSLambda......
  • VSCode插件开发流程
    1.安装脚手架npminstall-gyonpminstall-ggenerator-codeyocode2.配置package.json{"name":"jsx2css-convert-tool","displayName":"jsx2css_conver......
  • Unity2d SunnyLand (一) 开发环境 + Tilemap
    一、开发环境.net6.0+.netframework4.7.1dev +vscode +unity2022.1.15将vscode设置为默认脚本编辑器  二、Tilemap1.导入资源  2.设置属性 ......