SDL ( Simple DirectMedia Layer ) 是一套開放源代碼的 跨平臺多媒體開發庫 ,使用 C 語
言寫成。 SDL 提供了數種控制圖像、聲音、輸出入的函數,讓開發者只要用相同或是相似的
代碼就可以開發出 跨多個平臺( Linux 、 Windows 、 Mac OS X 等) 的應用軟件。目前 SDL 多
用于開發游戲、模擬器、媒體播放器等多媒體應用領域。
SDL 的“標準庫”
SDL_image —支持時下流行的圖像格式: BMP 、 PPM 、 XPM 、 PCX 、 GIF 、 JPEG 、 PNG 、 TGA 。
SDL_mixer —更多的聲音輸出函數以及更多的聲音格式支持。
SDL_net —網絡支持。
SDL_ttf — TrueType 字體渲染支持。
SDL_rtf — 簡單的 RTF 渲染支持。
SDL 可以干什么
視頻
3D 圖形:
????????SDL 可以與 OpenGL API 或 Direct3D API 結合使用,用于 3D 圖形
加速 2D 渲染 API :
????????支持簡單旋轉,縮放和 Alpha 混合,所有這些都使用最新的 3D API 加速
????????使用 OpenGL 和 Direct3D 支持加速
創建和管理多個窗口
輸入事件
提供的事件和 API 方法如下:
????????應用程序和窗口狀態更改
????????鼠標輸入
????????鍵盤輸入
????????操縱桿和游戲控制器輸入
????????多點觸控手勢
可以使用 SDL_EventState ()啟用或禁用每個事件
在發布到內部事件隊列之前,事件將通過用戶指定的過濾器函數傳遞
線程安全事件隊列
音頻
設置 8 位和 16 位音頻,單聲道立體聲或 5.1 環繞聲的音頻播放,如果硬件不支持格式,
可選擇轉換
音頻在單獨的線程中獨立運行,通過用戶回調機制處理
專為自定義軟件音頻混音器而設計,其中 SDL_mixer 提供完整的音頻 / 音樂輸出庫
文件 I / O 抽象
通用抽象開放,讀寫數據
內置支持文件和內存支持
共享對象支持
加載共享對象( Windows 上的 DLL , Mac OS X 上的 .dylib , Linux 上的 .so )
共享對象中的查找方法 , 調用
線程
簡單線程創建 API
簡單 線程本地存儲 API
互斥量,信號量和條件變量
用于無鎖編程的原子操作
計時器
獲取流逝的毫秒數
等待指定的毫秒數
在單獨的線程中創建與代碼并行運行的計時器
使用高分辨率計數器進行分析
CPU 特征檢測
查詢 CPU 數量
檢測 CPU 功能和支持的指令集
支持大小端檢測
檢測當前系統的字節順序
用于快速交換數據值的例程
讀取和寫入指定字節數據的數據
電源管理
查詢電源管理狀態
SDL2.0 知識框架體系

SDL 視頻渲染 主要涉及到 四個對象 :
- SDL_Window
- SDL_Surface
- SDL_Render
- SDL_Texture
- SDL_Event
SDL 視頻渲染 主要涉及到 相關 API :
初始化:
SDL_Init(): 初始化 SDL
SDL_CreateWindow(): 創建窗口( Window )
SDL_CreateRenderer(): 基于窗口創建渲染器( Render )
SDL_CreateTexture(): 創建紋理( Texture )
循環渲染數據:
SDL_UpdateTexture(): 設置紋理的數據
SDL_RenderCopy(): 紋理復制給渲染器
SDL_RenderPresent(): 顯示
退出:
SDL_DestroyWindow()
SDL_DestroyRenderer()
SDL_DestroyTexture()
SDL_Quit()
SDL 主要涉及到 幾個擴展庫 :
- SDL_image
- SDL_mixer
- SDL_ttf