製作日記

とりあえず、DirectInput関係から関数整理しようと思ったのだが、
IDirectInput8 の初期化にウィンドウのインスタンスが必要な事に気付きどーしようか迷い中。


1.初期化関数の引数に マネージャークラス を受け取る形で実装
マネージャクラス=下位クラスのインスタンスを保持するクラス。シングルトンとかでアプリが保持。
で、そのマネージャクラスに GetWindowHandle() とか関数を作って、それを用いる感じ。
依存性が出るのでいやん。


2.IDirectXXXのインスタンス管理関数を作り、そのクラスはシングルトンで実装し、実体を色んなクラスで取得できるようにする
ResourceManager pResource = ResourceManager::GetInstance();
みたいな感じで各クラス内でインスタンスを取得して、そっからさらに pResource->GetWindowHandle() とか?
1と同じく依存性が出ていやん。


3.派生させて共通のインスタンスを持たせる
staticとかで共通のインスタンスを複数クラスに保持させる。
あんまスマートじゃないというか色々と危険が危ないので却下。


4.初期化関数の引数に HWND を受け取る形で実装
上位にInput以外のクラスも統合したマネージャークラスを作る。
またはラッパ関数を作る。


ラッパ→アプリ毎に管理クラスを作成が今後のことを考える(どうせまた修正入るので)と一番なんだろうけど、個人用でそこまでするのもなんだかなぁ、という気も。


とりあえず、デバッグプリントマクロとかDirectX用リソース検出用処理作りながら考える事にします。