zoukankan      html  css  js  c++  java
  • 带你了解SDL

      SDL(英语:Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。当前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。SDL(第一版)使用GNU宽通用公共许可证为许可方式,意指动态链接(dynamic link)其库并不需要开放本身的源代码。因此诸如《雷神之锤4》等商业游戏也使用SDL来开发。而第二版的SDL则改用Zlib授权来许可。

      虽然SDL时常被比较为‘跨平台的DirectX’,然而事实上SDL是定位成以精简的方式来完成基础的功能,它大幅度简化了控制图像、声音、输出入等工作所需撰写的代码。但更高端的绘图功能或是音效功能则需搭配OpenGL和OpenAL等API来达成。另外它本身也没有方便创建图形用户界面的函数。SDL在结构上是将不同操作系统的库再包装成相同的函数,例如SDL在Windows平台上其实是DirectX的再包装,旧版本包装的是DirectX 5,SDL 1.2则是DirectX 7。而在使用X11的平台上(包括Linux),SDL则是与Xlib库沟通来输出图像。

      虽然SDL本身是使用C语言写成,但是它几乎可以被所有的编程语言所使用,例如:C++、Perl、Python(借由pygame库)、Pascal等等,甚至是Euphoria、Pliant这类较不流行的编程语言也都可行。

    SDL库分为 Video、Audio、CD-ROM、Joystick 和 Timer 等若干子系统,除此之外,还有一些单独的官方扩充函数库。这些库由官方网站提供,并包含在官方文档中,共同组成了SDL的“标准库”:

      C语言example:

     1 // Headers
     2 #include "SDL.h"
     3 
     4 // Main function
     5 int main(int argc, char* argv[])
     6 {
     7     // Initialize SDL
     8     if(SDL_Init(SDL_INIT_EVERYTHING) == -1)
     9         return(1);
    10 
    11     // Delay 2 seconds
    12     SDL_Delay(2000);
    13 
    14     // Quit SDL
    15     SDL_Quit();
    16 
    17     // Return
    18     return 0;
    19 }

      参考文档:

    https://zh.wikipedia.org/wiki/SDL

  • 相关阅读:
    Enter passphrase
    laravel扩展包-私有库
    php7中异常
    laravel-admin(自定义表单视图)
    laravel-admin(自定义表单与验证)
    ZJU校赛划水记
    bzoj 4762: 最小集合
    WC2017 颓废记
    bzoj 2337: [HNOI2011]XOR和路径
    bzoj 2870: 最长道路tree
  • 原文地址:https://www.cnblogs.com/dylancao/p/10777673.html
Copyright © 2011-2022 走看看