C++ 経由で DirectX 11 を使用していますが、raserizer 状態を作成するときにエラーが発生します。まず、コードは次のとおりです。
// set up rasterizer
D3D11_RASTERIZER_DESC1 rasterizerStateDescription;
::ZeroMemory(&rasterizerStateDescription, sizeof(D3D11_RASTERIZER_DESC1));
rasterizerStateDescription.FillMode = D3D11_FILL_WIREFRAME;
ID3D11RasterizerState1* rasterizerState;
DX::ThrowIfFailed(m_d3dDevice->CreateRasterizerState1(&rasterizerStateDescription, &rasterizerState));
m_d3dContext->RSSetState(rasterizerState);
そこに FillMode を設定することは実際には問題ではありません。これは、私の使用法を説明するために含まれているだけです。すべてのメンバーを設定しようとしましたが、どれも設定しませんでした。デバッガーでは、他のすべてのメンバーにデフォルト値があることがわかります。
エラーは CreateRaserizerState1 でスローされ、次のとおりです。
First-chance exception at 0x75EC4B32 in my.exe:
Microsoft C++ exception:
Platform::InvalidArgumentException ^ at memory location 0x028DE2CC.
HRESULT:0x80070057
私が知る限り、raserizerStateDescription と rasterizerState は両方とも有効であるため、ここで無効な引数の例外が発生する理由は明確ではありません。
CreateRasterizerState1 および RSSetState 呼び出しをコメント アウトすると、アプリケーションを正常に実行できます。
これを解決する方法について何か提案はありますか?