ビデオ
- ビデオモードを任意の bpp (8bpp かそれ以上) に設定します。
ハードウェアでサポートされていないビデオモードの場合は
ピクセルフォーマットをコンバートする機能を備えています。
- リニアなグラフィックスフレームバッファへ直接書きます。
- カラーキーやアルファブレンディングの属性を持ったサーフェスを作ります。
- サーフェス転送(blit)は最適化された転送ルーチンを使って
自動的にターゲットのフォーマットに変換され、
可能ならハードウェアアクセラレーションが適用されます。
x86 では MMX に最適化された転送ルーチンが使えます。
- ハードウェアがサポートしている場合は
転送と塗り潰しにはハードウェアアクセラレーションが適用されます。
|
Tip:
SDL_WM_SetCaption() と SDL_WM_SetIcon() を使って
自分のアプリケーションのタイトルバーとアイコンをそれぞれ設定することができます。 |
イベント
- 以下のようなイべントがあります:
- アプリケーションの見え方の変化
- キーボード入力
- マウス入力
- ユーザーからの要求による終了
- それぞれのイベントは SDL_EventState() で有効にしたり無効にしたりできます。
- イベントは内部のイベントキューに入れられる前に
ユーザーが指定したフィルタ関数を通ります。
- マルチスレッドの場合でも安全(thread-safe)なイベントキューです。
|
Tip:
イベントキューの中からある特定のタイプのイベントを探すには
SDL_PeepEvents()を使います。 |
オーディオ
- 8bit/16bit、またモノラル/ステレオのオーディオ再生を設定します。
ハードウェアがサポートしてないフォーマットの場合には
オプションとしてのコンバート機能があります。
- オーディオは別のスレッド上で独立して動き、
コールバックの仕組を通してデータが渡されます。
- 自前のソフトウェアオーディオミキサー用として設計されましたが、
サンプルアーカイブには完成されたオーディオ/ミュージック出力ライブラリがあります。
|
Tip:
オーディオコールバックとプログラムの他の部分によって共有されるデータに
アクセスするときは SDL_LockAudio() と SDL_UnlockAudio() を使いましょう。 |
CD-ROM オーディオ
|
Tip:
CD-ROM API に NULL の CD-ROM のハンドルを渡すと、
最後に開かれた CD-ROM が使われます。 |
スレッド
- 単純なスレッド生成 API
- 同期用の単純な 2 値セマフォ
|
Tip:
I/O やメモリ管理のような C ライブラリ関数は
スレッドから使ってはいけません。
他のスレッドから使われるリソースをロックしてしまうのです。 |
タイマー
- 経過した時間を 1/1000秒単位で取得します。
- 1/1000秒単位で指定された時間だけ待機します。
- 10 ミリ秒単位の定期的なタイマを一つ設定します。
|
Tip:
Win32 の GetTickCount() は SDL_GetTicks() にそのまま置き換えることができます。 |
エンディアン非依存
- 現在のシステムのエンディアンを検出します。
- データの値をエンディアン変換する高速なルーチンがあります。
- 指定されたエンディアンのデータを読み書きします。
|
Tip:
データファイルを読み込むときは、16-bit グラフィックスのバイトを
交換する必要があるかも知れません。 |