mini-sdl2

mini-sdl2

mini-sdl2を作成しました。(ver 0.9)
https://github.com/bis83/mini-sdl2

どういったもの?

mini-sdl2はCommon LispでSDL2を利用するための補助ライブラリです。
SDL系のラッパーライブラリはいくつもありますが、今回もその一つになります。

といっても単純にバインディングしているわけではなく、
機能を厳選、インターフェイスを変更しています。

方針

自分の開発補助のために作成しましたが、
方針として「SDL2の良く使う機能を、簡潔に扱えるようにする」です。
例えば、Windowを出して消せるようにするには以下のコードで済みます。

(with-sdl2 (:video)
  (with-window (win)
    (loop-event-handling
      :quit (leave-event-loop))))

APIが複雑化したり、数が増えすぎないように機能を厳選します。
より細かい設定や最適化を目的としている場合、直接SDL2を利用することを推奨しています。
例えば、以下の機能は導入する予定はないです。

  • 2D描画補助*1
  • ネットワーク関連*2
  • ファイルI/Oなど*3
  • スレッド関連*4

対応状況

  • イベント処理(キーボード, マウス、ジョイスティック)
  • ジョイスティックデバイスの管理
  • Windowの表示とイベント
  • イメージ読み込みとGLテクスチャ化の補助関数
  • 音声ファイルの読み込みと再生
  • TTFフォントのレンダリング

TODO

  • リソース関連(open-close)の簡略化
  • キーシンボルの翻訳
  • エラーハンドリングの整備
  • アプリケーション記述の簡略化マクロ

*1:OpenGLを利用すれば事足りるため

*2:多くのCL処理系が標準でソケット通信をサポートしているため

*3:より高機能でポータブルなファイルI/OライブラリがCLには存在するため

*4:多くのCL処理系がより安全で使いやすいマルチスレッド機能をサポートしているため