Direct3d

Direct3D12でimguiを使ってみる

Direct3Dのアプリを書くには、デバッグ描画が必要です。デバッグ描画とは、例えば、画面上にフレームレートや様々な設定を描画するものです。 最終的な商品では使われないものなので、切り離してコンパイルできるように作りたいです。

Direct3D12アプリを書いてみる(3)

Direct3D12は、描画コマンドをコマンドリストにバッファリングして、まとめて実行するという形式となります。 毎フレーム実行する処理を簡易的に書くと以下のようになります。

{
    // コマンドリストの開始
    commandAllocator->Reset();
    commandList->Reset(commandAllocator.Get(), pipelineState.Get());

    // 様々な描画コマンドを実行して、コマンドリストを作成
    ...

    // バッファリングされたコマンドリストを実行
    commandList->Close();
    ID3D12CommandList* commandLists[] = { commandList.Get() };
    commandQueue->ExecuteCommandLists(_countof(commandLists), commandLists);

    // スワップチェーンの表示
    swapChain->Present(1, 0);
}

	

Direct3D12アプリを書いてみる(2)

まず、Direct3D12のプログラムを説明する前に、Windowだけを表示するプログラムを書きます。 基本的には、CreateWindowでWindowを生成し、メインループでメッセージを処理するだけです。

Direct3D12アプリを書いてみる(1)

まず、Direct3D12のアプリをビルドするには、Direct3D12のヘッダファイルをインクルードして、ライブラリファイルをリンクする必要があります。 以前であれば、DirectX SDK というものをダウンロードして、VisualStudioのインクルードとリンクの設定を書けばよかったのですが、 今は、DirectX SDKはなくなってしまい、Windows SDK に含まれているようです。