SDL
クロスプラットフォームのマルチメディアライブラリ
From Wikipedia, the free encyclopedia
SDL (Simple DirectMedia Layer) は、C言語で書かれたクロスプラットフォームのマルチメディアライブラリである。グラフィックの描画やサウンドの再生などのAPIを提供する。オーディオ、キーボード、マウス、ジョイスティック、そしてOpenGLおよびDirect3Dを経由したグラフィックスハードウェアへのローレベルなアクセスを提供するよう設計されている。Windows、macOS、Linux、iOS、Androidを公式にサポートしている。SDLそのものはOS間の違いを吸収するための最低限の抽象化しか提供しないが、SDLで使えるフォントやネットワーク、スプライトなどの多数の補助ライブラリ(後述)が公開されている。
| 開発元 | Sam Lantinga |
|---|---|
| 最新版 |
3.2.26
/ 2025年10月31日[1] |
| リポジトリ | |
| プログラミング 言語 | C言語 |
| 対応OS | クロスプラットフォーム |
| 種別 | API |
| ライセンス |
zlib License/ 1.2.15以前はGNU Lesser General Public License |
| 公式サイト | https://www.libsdl.org/ |


言語バインディング
使用例
SDLが使用するAPI
SDLは画面の描画にOSによって異なるAPIを使う。SDL 1.2の場合、WindowsではDirectDrawあるいはGDIが、LinuxではXlibが使用される。ただし、環境変数「SDL_VIDEODRIVER」を変更すれば、プログラムを書き換えることなく別のAPIを使って表示することも可能になっている[4]。利用可能なドライバーはプラットフォームおよびSDLのコンパイル時オプションに依存する。
同様に、音声出力に使うAPIも環境変数SDL_AUDIODRIVERで変更が可能。
SDL 2.0では、ウィンドウ作成時にフラグを指定することで、OpenGLやVulkanを直接利用した3D描画をサポートできる[5]。
2DグラフィックスのレンダラーSDL_Rendererは、SDL_SetHint()とSDL_HINT_RENDER_DRIVERを使用して、優先的に選択させたいバックエンドのヒントを指定することが可能である[6]。