BishamonのDXライブラリ用ラッパーが完成したので公開する。Bishamonの導入を検討している人も参考にしてほしい。
尚、使用にはDirectX9用のBishamonSDKが必須となる。
※ 基本的に2D用(3Dエフェクトは使用可)
※ Windows Vista以降の場合はSetUseDirect3D9Ex( FALSE ) ;をDxLib_Init()前に呼ばないと止まるらしい。DXライブラリのバージョンは最新(テストバージョン)で。
ファイル
bmsample.zip
※2012/2/09更新
使い方
- プロジェクトに必要なファイルを追加し、インクルードを設定する(readme参照)
- DxBM_Init()を呼び初期化する
- RegistBMEffect()でエフェクトを登録(ロード)する
- UpdateBMEffect()で更新、DrawBMEffect()で描画を行う。この処理は毎フレーム呼び出す。
- AddBMEffect()でエフェクトを追加する。再生が終了すると自動的に破棄される。
- 終了時にDxBM_End()を呼ぶ。
終わり。基本的にDxLibの関数と同じように使える。
上級者向けは以下。
上級者向け
インスタンスを直接管理したい人はDxBMFunc.h及びDxBMFunc.cppは不要となる。直接CDxBishamonのインスタンスを作り、関数を実行する(説明はDxBMFuncに書かれてるものを参照)。
環境依存を避けるため、コンテナはSTLのvectorでスマートポインタは使用していない。適宜好きなコンテナなりスマポなりメモリプールなり使用するように。
- 構造
構造は三層になっており、BMManagerの管理とエフェクトレイヤーの保持・アクセスをするCDxBishamon、エフェクトを内包するCDxBishamonLayer、エフェクト本体であるCDxBMEffectが存在する。いずれのクラスもDxBishamon.hに書かれており、処理はDxBishamon.cppに書かれている。
- レイヤー
レイヤーは幾つでも作ることが出来る。Updateは自動的に全てのレイヤーに所属する全てのエフェクトを更新する。Drawはレイヤー毎に行うことが出来る。
- デバイスロスト
デバイスロストの検知・復旧を自前でやらなければならない。DxBMFunc.cppにサンプルが書かれているが、DXライブラリのコールバック登録関数にDeviceLost、DeviceRestoreをそれぞれ登録する必要がある。