zoukankan      html  css  js  c++  java
  • SDL库

    |--SDL (SDL游戏库)

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

    |--简介

    SDL(Simple DirectMedia Layer)被广泛的用于许多著名的游戏。
    最著名的游戏是赢得Linux组游戏开发大奖:
    权利的召唤(Civilization: Call To Power)。
    SDL的作者是Sam Lantinga,
    Loki Entertainment Software的主力程序员(Lead Programmer)

    |--功能介绍

      ·视频

    设置8bpp或更高的任意色彩深度的视频模式。
    如果某个模式硬件不支持,可以选择转化为另一模式。
    直接写入线性的图像帧缓冲(framebuffer)。
    用颜色键值(colorkey)或者alpha混合属性创建surface。
    Surface的blit能自动的转化为目标格式。blit是优化过的,并能使用硬件加速。
    x86平台上有针对MMX优化过的blit。
    硬件加速的blit和fill(填充)操作,如果硬件支持的话。

    ·事件

    提供以下事件:
    应用程序的visibility发生改变
    键盘输入
    鼠标输入
    用户要求的退出
    每种事件都能通过SDL_EventState()关闭或者打开。
    事件经由用户指定的过滤函数再被加入到内部的事件队列。
    线程安全的事件队列。

    ·音频

      设置8位和16位的音频,单声道或者立体声,如果格式硬件不支持,可以选择转换。
      由独立的线程执行音频部分,并提供用户回调(callback)机制。
      设计上考虑到了客户定制的软混音器,
      但实际上在例程中就包含了一个完整的音频/音乐输出库。

    ·CD音频

         完整的CD音频控制API
       ·线程

          简单的线程创建API
          用于同步的简单的二进制信号量(semaphores)
      ·定时器

        读取已流逝的毫秒数。
        等待指定的毫秒数。
         设置一个10毫秒精度的周期性定时器。
      ·字节序无关

        侦测当前系统的字节序
        快速转换数据的函数
        读写指定字节序的数据
    |--支持系统

     ·Linux
        视频显示使用X11,利用XFree86 DGA扩展的优势,全屏显示使用新的w MTRR加速。
        声音使用OSS API。
        使用clone()系统调用和SysV IPC,或者glibc-2.1的pthreads实现线程。
      ·Win32
        有两个版本,一个是适合所有基于Win32的系统的安全版本,
        另一个是基于DirectX的高性能版本。
        安全版本的视频显示采用GDI。高性能版本采用DirectDraw,并支持硬件加速。
        安全版本的音频回放采用waveOut API。高性能版本采用DirectSound
      ·BeOS
        视频显示采用BWindow。
        音频回放采用BSoundPlayer API。
      ·非正式的移植版本,进展中Solaris, IRIX, FreeBSD MacOS
    |--其它

    SDL内置了调用OpenGL的函数。
    通过使用SDL_image、SDL_ttf、SDL_mixer、SDL_net等外部扩展库,
    可以轻松实现JPG、PNG、TIFF图像的加载使用,TrueType字体的使用,MP3文件的使用、网络相关的使用等。
    SDL也有其他语言的包装,可以在这里查看 SDL用C语言写成,
    但是可以很容易在C++下面工作,并且SDL绑定了许多其它的语言,
    这其中就包括Ada, C#, Eiffel, Erlang, Euphoria, Guile, Haskell,
    Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP, Pike,
    Pliant, Python, Ruby, and Smalltalk。
    包装得比较好的是python语言的pygame。
    不过仍然建议你熟悉c/c++环境下的SDL后再使用,会得心应手许多。

    |--SDL版权

       SDL在GNU LGPL 2(一个国际上的开源组织)下发布,
      这个版本允许你将SDL以动态链接库(dynamic link library)的形式免费地用于商业游戏软件的开发。

  • 相关阅读:
    Chp18: Hard
    内存泄漏 和 内存溢出
    Chp4: Trees and Graphs
    trie树--详解
    Tries
    Comparable & Comparator
    memory leak
    8个月从CS菜鸟到拿到Google Offer的经历+内推
    Word Ladder II
    Java垃圾回收机制
  • 原文地址:https://www.cnblogs.com/xzpin/p/11072774.html
Copyright © 2011-2022 走看看