zoukankan      html  css  js  c++  java
  • SDL

    1. SDL简介

     

    1.1。什么是SDL?

    Simple DirectMedia Layer是一个跨平台开发库,旨在通过OpenGL和Direct3D提供对音频,键盘,鼠标,操纵杆和图形硬件的低级访问。视频播放软件,仿真器以及包括Valve屡获殊荣的目录和许多Humble Bundle游戏在内的流行游戏都使用它

    SDL正式支持Windows,Mac OS X,Linux,iOS和Android在源代码中可以找到对其他平台的支持。

    SDL用C编写,可与C ++一起使用,并且有绑定可用于其他几种语言,包括C#和Python。

    SDL 2.0在zlib许可下分发该许可证允许您在任何软件中自由使用SDL。简单DirectMedia层库(SDL)是一个通用API,可通过OpenGL和跨多个平台的2D帧缓冲区提供对音频,键盘,鼠标,操纵杆,3D硬件的低级访问。

     

    1.2。SDL可以做什么?

    预先阅读以概述SDL的功能。如果您只是对从1.2到2.0的更改感兴趣,请查看《迁移指南》

    视频

    • 3D图形:
      • SDL可以与OpenGL API或Direct3D API结合使用以实现3D图形
    • 加速的2D渲染API:
      • 支持轻松的旋转,缩放和Alpha混合,所有这些均使用现代3D API加速
      • 使用OpenGL和Direct3D支持加速,并且存在软件后备
    • 创建和管理多个窗口

    输入事件

    • 提供的事件和API函数:
      • 应用程序和窗口状态更改
      • 鼠标输入
      • 键盘输入
      • 游戏杆和游戏控制器输入
      • 多点触控手势
    • 可以使用SDL_EventState()启用或禁用每个事件

    • 事件在发布到内部事件队列之前,通过用户指定的过滤器功能传递
    • 线程安全事件队列

    强制反馈

    • Windows,Mac OS X和Linux支持强制反馈

    音讯

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

    文件I / O抽象

    • 用于打开,读取和写入数据的通用抽象
    • 内置对文件和内存的支持

    共享对象支持

    • 加载共享对象(Windows上的DLL,Mac OS X上的.dylib,Linux上的.so)
    • 共享库中的查找功能

    线程数

    • 简单的线程创建API
    • 简单线程本地存储API
    • 互斥量,信号量和条件变量
    • 无锁编程的原子操作

    计时器

    • 获取经过的毫秒数
    • 等待指定的毫秒数
    • 创建在单独的线程中与代码一起运行的计时器
    • 使用高分辨率计数器进行性能分析

    CPU功能检测

    • 查询CPU数量
    • 检测CPU功能和支持的指令集

    Endian独立

    • 检测当前系统的字节序
    • 快速交换数据值的例程
    • 读取和写入指定字节序的数据

    能源管理

    • 查询电源管理状态

     

    1.3。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音频回调获取声音
    • 另请参阅Android

     

    2.如何获取和安装SDL

    您可以获取源代码并进行构建和安装

     

    3.从SDL 1.2过渡到2.0

    如果您以前使用过SDL 1.2,并且想使用SDL 2.0,请注意有一些API更改,并且您的某些代码需要进行修改。

    迁移指南列出了功能差异以及如何使旧代码适应新的SDL 2.0:

  • 相关阅读:
    Docker的ubuntu镜像安装的容器无ifconfig和ping命令的解决
    高德地图api实现地址和经纬度的转换(python)
    数据结构:优先队列 基于堆实现(python版)
    数据结构:优先队列 基于list实现(python版)
    数据结构:堆排序 (python版) 小顶堆实现从大到小排序 | 大顶堆实现从小到大排序
    数据结构:基于list实现二元表达式(python版)
    数据结构:二叉树 基于list实现(python版)
    python之数据库内置方法以及pymysql的使用
    Python之内置函数一
    mysql数据库的安装和基本使用
  • 原文地址:https://www.cnblogs.com/bluebeecoder/p/13659491.html
Copyright © 2011-2022 走看看