Bishamon for DXライブラリ

BishamonのDXライブラリ用ラッパーが完成したので公開する。Bishamonの導入を検討している人も参考にしてほしい。
尚、使用にはDirectX9用のBishamonSDKが必須となる。

ソースコードのライセンスはこちら

※ 基本的に2D用(3Dエフェクトは使用可)
Windows Vista以降の場合はSetUseDirect3D9Ex( FALSE ) ;をDxLib_Init()前に呼ばないと止まるらしい。DXライブラリのバージョンは最新(テストバージョン)で。

ファイル

bmsample.zip
※2012/2/09更新

使い方

  1. プロジェクトに必要なファイルを追加し、インクルードを設定する(readme参照)
  2. DxBM_Init()を呼び初期化する
  3. RegistBMEffect()でエフェクトを登録(ロード)する
  4. UpdateBMEffect()で更新、DrawBMEffect()で描画を行う。この処理は毎フレーム呼び出す。
  5. AddBMEffect()でエフェクトを追加する。再生が終了すると自動的に破棄される。
  6. 終了時にDxBM_End()を呼ぶ。

終わり。基本的にDxLibの関数と同じように使える。
上級者向けは以下。

上級者向け

インスタンスを直接管理したい人はDxBMFunc.h及びDxBMFunc.cppは不要となる。直接CDxBishamonのインスタンスを作り、関数を実行する(説明はDxBMFuncに書かれてるものを参照)。
環境依存を避けるため、コンテナはSTLvectorでスマートポインタは使用していない。適宜好きなコンテナなりスマポなりメモリプールなり使用するように。

  • 構造

構造は三層になっており、BMManagerの管理とエフェクトレイヤーの保持・アクセスをするCDxBishamon、エフェクトを内包するCDxBishamonLayer、エフェクト本体であるCDxBMEffectが存在する。いずれのクラスもDxBishamon.hに書かれており、処理はDxBishamon.cppに書かれている。

  • レイヤー

レイヤーは幾つでも作ることが出来る。Updateは自動的に全てのレイヤーに所属する全てのエフェクトを更新する。Drawはレイヤー毎に行うことが出来る。

バイスロストの検知・復旧を自前でやらなければならない。DxBMFunc.cppにサンプルが書かれているが、DXライブラリのコールバック登録関数にDeviceLost、DeviceRestoreをそれぞれ登録する必要がある。