【SDL】SDL简介
生活随笔
收集整理的這篇文章主要介紹了
【SDL】SDL简介
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1. SDL簡介
SDL(Simple DirectMedia Layer)是一套開放源代碼的跨平臺多媒體開發(fā)庫,使用C語言寫成。SDL提供了數(shù)種控制圖像、聲音、輸出入的函數(shù),讓開發(fā)者只要用相同或是相似的代碼就可以開發(fā)出跨多個平臺(Linux、Windows、Mac OS X等)的應(yīng)用軟件。目前SDL多用于開發(fā)游戲、模擬器、媒體播放器等多媒體應(yīng)用領(lǐng)域。
SDL(Simple DirectMedia Layer)被廣泛的用于許多著名的游戲。最著名的游戲是贏得Linux組游戲開發(fā)大獎的 文明:權(quán)利的召喚(Civilization: Call To Power)。
SDL的作者是Sam Lantinga, Loki Entertainment Software的主力程序員(Lead Programmer)。 2. SDL的功能 視頻 設(shè)置8bpp或更高的任意色彩深度的視頻模式。如果某個模式硬件不支持,可以選擇轉(zhuǎn)化為另一模式。 直接寫入線性的圖像幀緩沖(framebuffer)。 用顏色鍵值(colorkey)或者alpha混合屬性創(chuàng)建surface。 Surface的blit能自動的轉(zhuǎn)化為目標(biāo)格式。blit是優(yōu)化過的,并能使用硬件加速。x86平臺上有針對MMX優(yōu)化過的blit。 硬件加速的blit和fill(填充)操作,如果硬件支持的話。 事件 提供以下事件: 應(yīng)用程序的visibility發(fā)生改變 鍵盤輸入 鼠標(biāo)輸入 用戶要求的退出 每種事件都能通過SDL_EventState()關(guān)閉或者打開。 事件經(jīng)由用戶指定的過濾函數(shù)再被加入到內(nèi)部的事件隊列。 線程安全的事件隊列。 音頻 設(shè)置8位和16位的音頻,單聲道或者立體聲,如果格式硬件不支持,可以選擇轉(zhuǎn)換。 由獨立的線程執(zhí)行音頻部分,并提供用戶回調(diào)(callback)機(jī)制。 設(shè)計上考慮到了客戶定制的軟混音器,但實際上在例程中就包含了一個完整的音頻/音樂輸出庫。 CD音頻 完整的CD音頻控制API 線程 簡單的線程創(chuàng)建API 用于同步的簡單的二進(jìn)制信號量(semaphores) 定時器 讀取已流逝的毫秒數(shù)。 等待指定的毫秒數(shù)。 設(shè)置一個10毫秒精度的周期性定時器。 字節(jié)序無關(guān) 偵測當(dāng)前系統(tǒng)的字節(jié)序 快速轉(zhuǎn)換數(shù)據(jù)的函數(shù) 讀寫指定字節(jié)序的數(shù)據(jù)3. 跨平臺性
·Linux 視頻顯示使用X11,利用XFree86 DGA擴(kuò)展的優(yōu)勢,全屏顯示使用新的w MTRR加速。 聲音使用OSS API。 使用clone()系統(tǒng)調(diào)用和SysV IPC,或者glibc-2.1的pthreads實現(xiàn)線程。 ·Win32 有兩個版本,一個是適合所有基于Win32的系統(tǒng)的安全版本,另一個是基于DirectX的高性能版本。 安全版本的視頻顯示采用GDI。高性能版本采用DirectDraw,并支持硬件加速。 安全版本的音頻回放采用waveOut API。高性能版本采用DirectSound ·BeOS 視頻顯示采用BWindow。 音頻回放采用BSoundPlayer API。 ·非正式的移植版本,進(jìn)展中Solaris, IRIX, FreeBSD MacOS4. SDL擴(kuò)展
SDL內(nèi)置了調(diào)用OpenGL的函數(shù)。 通過使用SDL_image、SDL_ttf、SDL_mixer、SDL_net等外部擴(kuò)展庫,可以輕松實現(xiàn)JPG、PNG、TIFF圖像的加載使用,TrueType字體的使用,MP3文件的使用、網(wǎng)絡(luò)相關(guān)的使用等。 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++環(huán)境下的SDL后再使用,會得心應(yīng)手許多。 最后,我們來了解一下SDL的版權(quán)問題,SDL在GNU LGPL 2(一個國際上的開源組織)下發(fā)布,這個版本允許你將SDL以動態(tài)鏈接庫(dynamic link library)的形式免費地用于商業(yè)游戲軟件的開發(fā)。 參考文檔:百度百科總結(jié)
以上是生活随笔為你收集整理的【SDL】SDL简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Linux网络编程】套接字的介绍
- 下一篇: 【SDL】SDL学习笔记二 定时器