[] 目次 []

何ができますか?

ビデオ
  • ビデオモードを任意の 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 オーディオ
  • 完全な CD オーディオ制御 API
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 グラフィックスのバイトを 交換する必要があるかも知れません。

[] 目次 []