Nanashi-softプログラマ専用DirectX11開発


◇DirectX11プログラミング -DirectX11の動作を分析-

これから書く話は,私の論理的思考によって分析した結果であり,本来の DirectX11の作りとは関係ありません(*'-')

モデルデータを管理するクラスを作る為には,仕組みを分析する必要があります
流れはこういう感じになっていると予想
1.生成
2.設定
3.実行

例えば頂点データは,
1.CreateBufferで生成
2.IASetVertexBuffersで設定
3.Drawで実行(描画)

頂点シェーダーだと,
1.CreateVertexShaderで生成
2.設定なし
3.VSSetShaderで実行
※この 2.設定が無い場合は,実行時にポインタを直接渡しになります

これがわかっていれば,管理しなければならないデータも明確になります
頂点データはDrawで指定する引数,頂点シェーダーはVSSetShaderで指定するシェーダープログラムの関数ポインタ,をそれぞれ管理する必要があります


次に,それらのデータが,メモリ上にどのように配置されているのかを把握する
例えば,頂点データはIASetVertexBuffers後にはメインメモリ上にはデータが存在しません
その証拠に,hpBufferを解放しても描画可能です

逆にシェーダーの場合は,hpPixelShaderを解放するとプログラムは実行されません
ですから,hpPixelShaderは描画時にも保管しておく必要があります


これが DirectX11を操る為の核となる考え方です
この 3.に当たる部分に必要なパラメータを管理するクラスを作る。と言うのが現在の目的です


TOPプログラマ専用DirectX11開発