帶你瞭解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這類較不流行的編程語言也均可行。ide

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 }

 

  參考文檔:ui

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

相關文章
相關標籤/搜索