目次 - 概要
SDL 2.0の概要
1. SDLの概要
1.1 SDLとは何か?
Simple DirectMedia Layer (SDL) はオーディオ, キーボード, マウス, ジョイスティック, OpenGLやDirect3D経由のグラフィックハードウェアへの低レベルアクセスを提供する開発ライブラリである.
動画再生, エミュレータ, そしてValveの入賞作やHumble Bundleの数多くの作品を含む有名なゲームでも使われている.
SDLはWindows, Mac OS X, Linux, iOS, そしてAndroidに公式に対応している.
他の環境に対応したソースコードも存在する.
最新の対応環境についてはインストールのページを確認すること.
SDLはCで書かれていて, ネイティブのC++で使うことができる. そしてC#やPythonなどの他の言語のバインドも存在する.
最新の対応言語はhttp://www.libsdl.org/languages.phpを確認すること.
SDL 2.0 はzlib licenseの下で配布される.
このライセンスの下でSDLはあらゆるソフトウェアで自由に使える.
1.2 SDLで何ができるか?
以下がSDLが可能なことの一覧である. 1.2から2.0への変更点を知りたいならばSDL 1.2から2.0への移行を参照すること.
ビデオ
- 3Dグラフィック:
SDLは3DグラフィックとしてOpenGL APIやDirect3D APIと混合で使うことができる
- アクセラレータを使用する2DレンダラーAPI:
- 簡単な回転, 拡大縮小, アルファブレンディングを行える. これらは全て現在の3D APIによるアクセラレーションを使っている
- アクセラレーションはOpenGLとDirect3Dに対応している. これらが使えない場合はソフトウェアで行われる
- 複数のウィンドウの生成と管理
入力イベント
- 以下の処理のためのイベントとAPI:
- アプリケーションとウィンドウの状態の変化
- マウス入力
- キーボード入力
- ジョイスティックとゲームコントローラー入力
- マルチタッチ ジェスチャー
- イベントは全てSDL_EventState()で有効化/無効化できる
- イベントは全て内部キューに送られる前にユーザが生成したフィルタ関数を通すことができる
- イベントキューはスレッドセーフである
力覚フィードバック
- Windows, Mac OS X, Linuxでは力覚フィードバックに対応している
オーディオ
- 8bitと16bit, モノラル/ステレオ/5.1サラウンドの音声再生をハードウェアが対応していなければ最適に変換して行う
- 音声は独立したスレッドでコールバックとして処理する
- ソフトウェアオーディオミキサーを生成するために設計されているが, SDL_mixerライブラリを使えば完全な音声/音楽の出力を行える
抽象化されたファイルI/O
- 汎用的な抽象化されたオープン, データの読み込みと書き込み
- ファイルとメモリが組み込まれている
共有ライブラリ
- 共有ライブラリ(WindowsならばDLL, Mac OS Xならば.dylib, Linuxならば.so)の読み込み
- 共有ライブラリの関数の探索
スレッド
- シンプルなスレッド生成API
- シンプルなスレッドローカル領域API
- 相互排他(mutex), セマフォ, 条件変数
- ロックしないプログラミングのためのアトミック操作
タイマ
- ミリ秒単位の経過時間の獲得
- ミリ秒単位のウェイト
- 別スレッドで定期的にコードを動作させるタイマの生成
- プロファイリングのための高分解能カウンタ
CPU仕様の検査
エンディアン非依存
- システムのエンディアンの検査
- データの高速スワップルーチン
- 指定のエンディアンでのデータの読み書き
電源管理
1.3 SDLが使える環境は?
Windows
- 表示にWin32 APIとハードウェアアクセラレーションのためにDirect3Dを使用する
- 音声にDirectSoundとXAudio2を使用する
Mac OS X
- 表示にCocoaとハードウェアアクセラレーションのためにOpenGLを使用する
- 音声にCore Audioを使用する
Linux
- 表示にX11とハードウェアアクセラレーションのためにOpenGLを使用する
- 音声にALSA, OSS, PulseAudio APIを使用する
iOS
- 表示にUIKitとハードウェアアクセラレーションのためにOpenGL ES 2.0を使用する
- 音声にCore Audioを使用する
Android
- 表示にJNIインターフェースとハードウェアアクセラレーションのためにOpenGL ES 1.1と2.0を使用する
- 音声にJNIオーディオコールバックを使用する
- Androidを参照すること
2. SDLの入手とインストール
ここでソースコードの入手とビルド・インストールを行える.
3. SDL 1.2から2.0への移行
以前SDL 1.2を使っていて, SDL 2.0を使いたいならば, あなたのコードのいくつかのAPIを合うように変更する必要がある.
「SDL 1.2から2.0への移行」には異なる機能の一覧や古いコードをSDL 2.0に合わせる方法がある.
SDL Wikiへのリンク
Introduction to SDL 2.0 - SDL Wiki