Beginning SDL 2.0(1) SDL功能简介

原文链接为 http://wiki.libsdl.org/Introduction

由于近期整理音视频可视化的技术,发现好久不更新的SDL发布了2.0版本,以前也没有过于关注,这里准备尝试下。了解SDL到底支持哪些功能。

本文部分内容为翻译内容。有任何不当支持请联系我。

SDL全名Simple DirectMedia Layer (SDL)。官网:http://www.libsdl.org/

What can SDL do? SDL功能简介

Read ahead for an overview of what SDL is capable of. If you‘re simply interested in the changes from 1.2 to 2.0, check out theMigration Guide.

Video 视频

  • 3D graphics(3D图像处理):

    • SDL can be used in combination with the OpenGL API or Direct3D API for 3D graphics
    • 在处理三维图形的时候,SDL可以与OpenGL APi或Direct 3D配合使用。
  • Accelerated 2D render API(优化的2D渲染API):
    • Supports easy rotation, scaling and alpha blending, all accelerated using modern 3D APIs
    • 支持简单旋转、缩放和alpha叠加,所有加速都是基于现代的3D API。
    • Acceleration is supported using OpenGL and Direct3D, and there is a software fallback
    • 硬件加速是基于OpenGL和Direct3D的
  • Create and manage multiple windows(支持多窗口管理及创建)

Input Events 输入事件

  • Events and API functions provided for(为下列输入提供了事件及API函数接口):

    • Application and window state changes 应用程序和窗口状态改变
    • Mouse input 鼠标输入
    • Keyboard input 键盘输入
    • Joystick and game controller input 手柄和游戏控制器输入
    • Multitouch gestures 多点触控手势
  • Each event can be enabled or disabled with SDL_EventState()
  • 每个事件都可以使用SDL_EventState()使能或禁用
  • Events are passed through a user-specified filter function before being posted to the internal event queue
  • 在放入事件队列之前,所有事件会首先经过用户自定义的处理函数
  • Thread-safe event queue 线程安全的事件队列

Force Feedback 强制反馈

  • Force feedback is supported under Windows, Mac OS X and Linux

Audio 音频

  • Set audio playback of 8-bit and 16-bit audio, mono stereo or 5.1 surround sound, with optional conversion if the format is not supported by the hardware
  • 支持8位、16位,单声道、立体声或5.1环绕声的播放,同时在硬件不支持特定格式时提供可选的转换。
  • Audio runs independently in a separate thread, filled via a user callback mechanism
  • 音频处理运行在独立的线程中,通过自定义回调函数实现数据填充。
  • Designed for custom software audio mixers, but SDL_mixer provides a complete audio/music output library
  • 为自定义的软件音频混音器设计,但SDL_mixer提供完整的音频/音乐输出接口。

File I/O Abstraction 文件I/O抽象机制

  • General purpose abstraction for opening, reading and writing data
  • 提供打开、读取、写入数据的通用文件抽象框架
  • Built-in support for files and memory 内置支持文件和内存

Shared Object Support 共享对象支持

  • Load shared objects (DLL on Windows, .dylib on Mac OS X, .so on Linux)
  • 支持加载共享对象(windows下的DLL,Mac OS X下的.dylib,Linux下的.so)
  • Lookup functions in shared objects 支持在共享对象中查找函数

Threads 线程机制

  • Simple thread creation API 支持简单的线程创建函数
  • Simple thread local storage API 支持简单的线程局部存储机制
  • Mutexes, semaphores and condition variables 提供互斥量、信号量和条件变量
  • Atomic operations for lockless programming 提供原子操作函数

Timers 定时器

  • Get the number of milliseconds elapsed 支持获取消耗的时间(单位毫秒)
  • Wait a specified number of milliseconds 等待指定长度的时间(精度毫秒)
  • Create timers that run alongside your code in a separate thread
  • 支持创建在独立线程运行的定时器
  • Use high resolution counter for profiling 支持高精度计数器

CPU Feature Detection CPU功能检测

  • Query the number of CPUs 可获取CPU个数
  • Detect CPU features and supported instruction sets 可获取CPU支持的功能及指令集

Endian Independence 大端小端支持

  • Detect the endianness of the current system 可获取系统的是大端还是小端
  • Routines for fast swapping of data values 提供快速数据交换的例程
  • Read and write data of a specified endianness 提供针对特定端的读写数据机制

Power Management 电源管理

  • Querying power management status 支持获取电源管理状态

What platforms does SDL run on? SDL支持的平台

Windows

  • Uses Win32 APIs for display, taking advantage of Direct3D for hardware acceleration
  • 使用Win32 API显示,可充分利用Direct3D提供的硬件加速
  • Uses DirectSound and XAudio2 for sound 使用DirectSound和XAudio2处理音频

Mac OS X

  • Uses Cocoa for video display, taking advantage of OpenGL for hardware acceleration
  • 使用Cocoa进行视频显示,可充分利用OpenGL提供的硬件加速
  • Uses Core Audio for sound 使用Core Audio处理音频

Linux

  • Uses X11 for video display, taking advantage of OpenGL for hardware acceleration
  • 使用X11进行视频显示,可充分利用OpenGL提供的硬件加速
  • Uses the ALSA, OSS and PulseAudio APIs for sound
  • 使用ALSA、OSS、PulseAudio API处理音频

iOS

  • Uses UIKit for video display, taking advantage of OpenGL ES 2.0 for hardware acceleration
  • 使用UIKit进行视频显示,可充分利用OpenGL ES 2.0提供的硬件加速
  • Uses Core Audio for sound 使用Core Audio处理音频

Android

  • Uses JNI interfaces for video display, taking advantage of OpenGL ES 1.1 and 2.0 for hardware acceleration
  • 使用JNI接口进行硬件加速,可充分利用OpenGL ES 1.1、2.0提供的硬件加速
  • Uses JNI audio callbacks for sound 使用JNI音频回调函数处理音频
  • See also Android 其他详见Android

----------------------------------------------------------------------------------------------------------------------------

本文作者:Tocy  e-mail: [email protected]

版权所有@2015,请勿用于商业用途,转载请注明原文地址。本人保留所有权利

时间: 2024-11-04 07:25:53

Beginning SDL 2.0(1) SDL功能简介的相关文章

Beginning SDL 2.0(3) SDL介绍及BMP渲染

SDL是一个跨平台的多媒体库.为了实现跨平台,SDL提供了一个简单的界面库抽象,比如提供了SDL_Window用于表示窗口句柄,SDL_Surface.SDL_Texture.SDL_Renderer用于处理画面刷新及基本的图形绘制,提供各种事件(鼠标.键盘.游戏手柄等)输入事件.窗口消息事件用于模拟基于消息的事件处理机制.同时也提供了线程创建.销毁以及同步的机制,在此基础上上也提供了文件访问.字体渲染.多格式图片加载.混音器等扩展功能. 正是由于SDL的跨平台特性,如果你仅仅是希望知道SDL的

vue2.0的常用功能简介

路由跳转 当我们想要实现点击链接跳转时,可以使用$router来进行跳转 语法如下: this.$router.push({path:"/www",query:{id:'1222'}}) 这里path是要跳转的路径,query里面是路径跳转时要携带的参数,以对象的形式存在 2 获取路由参数 跳转路由过后,我们可能想要获取路由上的参数,这里我们可以使用 this.$route.query.id (id为想要获取的参数) 3 获取当前页面的路径 想要获取当前文件的路径名称,除了原声的loc

Beginning SDL 2.0(2) TwinklebearDev SDL 2.0 Tutorial

本文整理并简要介绍了TwinklebearDev SDL 2.0 Tutorial相关内容(以下简称TDSDLTutorial). 这是作为我学习并了解SDL2.0功能一篇学习总结. TDSDLTutorial包含7个lesson.lesson 0主要是关于SDL2.0开发环境的配置(visual studio.mingw.linux gcc等). lesson 1和lesson 2介绍了bmp图片的加载.SDL中视频渲染的基本原理以及SDL初始化销毁的方式,其中主要涉及window.rende

第四章 跨平台图像显示库——SDL 第一节 与SDL第一次亲密接触

http://blog.csdn.net/visioncat/article/details/1596576 GCC for Win32 开发环境介绍(5) 第四章 跨平台图像显示库——SDL 第一节 与SDL第一次亲密接触 SDL,也就是 Simple DirectMedia Layer 是一个针对 声音,键盘,鼠标,遥杆,通过OpenGL的3D以及2D处理的底层跨平台函数库.她主要支持的平台有Linux, Windows, Windows CE, BeOS, MacOS, Mac OS X,

Hadoop2.0源码包简介

Hadoop2.0源码包简介 1.解压源码包: 2.目录结构: hadoop-common-project:Hadoop基础库所在目录,如RPC.Metrics.Counter等.包含了其它所有模块可能会用到的基础库. hadoop-mapreduce-project:MapReduce框架的实现,在第一代MR即MRv1中,MapReduce由编程模型(map/reduce).调度系统(JobTracker和TaskTracker)和数据处理引擎(MapTask和ReduceTask)等模块组成

Molten 功能简介以及使用指南

<h1 id="molten">Molten 功能简介以及使用指南</h1> <p>Molten项目地址:https://github.com/chuan-yun/Molten</p> <h2 id="">简介</h2> <p>现今随着应用间调用的复杂化,php 开发者们在复杂调用链路追踪上并没有特别好的工具和方法, 流行的php问题定位工具譬如phptrace,xhprof等并不会

HelloX操作系统网络功能简介及使用和开发指南

HelloX网络功能简介及使用和开发指南 HelloX网络功能简介 作为物联网操作系统,网络功能是必备的核心功能之一.按照规划,HelloX实现了两个不同类型的TCP/IP协议栈,一个面向资源受限的嵌入式应用,移植了业界成熟使用的lwIP协议栈.该协议栈简洁明了,功能相对简单,同时专门面向嵌入式领域进行设计和优化,对硬件资源要求很低.另外一个协议栈来自BSD操作系统的协议栈,面向复杂的网络功能丰富的应用场景,比如家庭网关,物联网网关等.为了适应HelloX本身的机制,对BSD协议栈做了一些更改和

部分GDAL工具功能简介

主要转自http://blog.csdn.net/liminlu0314?viewmode=contents 部分GDAL工具功能简介 gdalinfo.exe 显示GDAL支持的各种栅格文件的信息. gdal_translate.exe 在不同的格式间进行转换.同时,潜在的执行了一些切割.重采样和使像素比例变化的任务. gdalwarp.exe 投影转换和投影绑定.同时也可以进行图像镶嵌.这个程序可以重新投影所支持的投影,而且如果图像("raw" with)控制信息也可以把GCPs

Ext4文件系统的特性和功能简介

Linux kernel 自 2.6.28 开始正式支持新的文件系统 Ext4. Ext4 是 Ext3 的改进版,修改了 Ext3 中部分重要的数据结构,而不仅仅像 Ext3 对 Ext2 那样,只是增加了一个日志功能而已.Ext4 可以提供更佳的性能和可靠性,还有更为丰富的功能: /. 与 Ext3 兼容. 执行若干条命令,就能从 Ext3 在线迁移到 Ext4,而无须重新格式化磁盘或重新安装系统.原有 Ext3 数据结构照样保留,Ext4 作用于新数据,当然,整个文件系统因此也就获得了 E