SDL

SDL (Simple DirectMedia Layer) は、C言語で書かれたクロスプラットフォームのマルチメディアライブラリである。グラフィックの描画やサウンドの再生などのAPIを提供する。オーディオ、キーボード、マウス、ジョイスティック、そしてOpenGLおよびDirect3Dを経由したグラフィックスハードウェアへのローレベルなアクセスを提供するよう設計されている。Windows、macOS、Linux、iOS、Androidを公式にサポートしている。SDLそのものはOS間の違いを吸収するための最低限の抽象化しか提供しないが、SDLで使えるフォントやネットワーク、スプライトなどの多数の補助ライブラリ（後述）が公開されている。

2021年2月7日に開発ベースをGitHubに移動するとアナウンスがあった。

言語バインディング 
SDL自身はC言語で書かれており、C/C++向けのインタフェースのみが公式に提供されているが、Ada、C#、Java、Lua、Pascal、Perl、Python、Ruby、Rust、Smalltalkなどの各種プログラミング言語向けのバインディング（ラッパー）もコミュニティによって開発されている。

使用例 
Smalltalk環境であるSqueak, Pharoでは開発環境のWindowを描画する土台としてSDLが使われている。

SDLが使用するAPI 
SDLは画面の描画にOSによって異なるAPIを使う。SDL 1.2の場合、WindowsではDirectDrawあるいはGDIが、LinuxではXlibが使用される。ただし、環境変数「SDL_VIDEODRIVER」を変更すれば、プログラムを書き換えることなく別のAPIを使って表示することも可能になっている。利用可能なドライバーはプラットフォームおよびSDLのコンパイル時オプションに依存する。

同様に、音声出力に使うAPIも環境変数SDL_AUDIODRIVERで変更が可能。

SDL 2.0では、ウィンドウ作成時にフラグを指定することで、OpenGLやVulkanを直接利用した3D描画をサポートできる。

2DグラフィックスのレンダラーSDL_Rendererは、SDL_SetHint()とSDL_HINT_RENDER_DRIVERを使用して、優先的に選択させたいバックエンドのヒントを指定することが可能である。

ギャラリー

補助ライブラリ 
 SDL_image-さまざまな画像形式をサポートする。
 SDL_mixer-さまざまな音声形式をサポートする。
 SDL_net-ネットワークをサポートする。
 SDL_ttf-TrueTypeフォントをサポートする。
 SDL_rtf-Rich Text Format形式の文書をサポートする。
 SDL_gfx-図形を描くための補助ライブラリ。

出典

関連項目 

 allegro - マルチプラットフォーム開発用のライブラリ。
 openFrameworks
 Irrlicht Engine

外部リンク 
 

オープンソースソフトウェア
ソフトウェア開発ツール
ライブラリ (プログラミング)
API
グラフィックライブラリ
マルチメディア