0

direct3D 10 で Vertex Layout を作成しようとすると、アプリケーションのコンパイルに失敗し続けます。コードは次のとおりです。

// Create the vertex input layout.
D3D10_INPUT_ELEMENT_DESC vertexDesc[] =
{
    {"POSITION", 0, DXGI_FORMAT_R32G32B32_FLOAT, 0, 0, D3D10_INPUT_PER_VERTEX_DATA, 0},
    {"COLOR",    0, DXGI_FORMAT_R32G32B32A32_FLOAT, 0, 12, D3D10_INPUT_PER_VERTEX_DATA, 0}
};

// Create the input layout
D3D10_PASS_DESC PassDesc;
mTech->GetPassByIndex(0)->GetDesc(&PassDesc);
HR(md3dDevice->CreateInputLayout(vertexDesc, 2, PassDesc.pIAInputSignature,
    PassDesc.IAInputSignatureSize, &mVertexLayout));

で失敗します。このような問題をキャッチし、これらの場合に提案を行うことを意図しCreateInputLayout()ているという印象も受けましたが、HR()そうではないようです。多くの場合と同様に、私はそれについて完全に間違っているかもしれません. 表示されるプロンプトは次のとおりです。

CourseworkApp.exe の 0x757fd36f で未処理の例外: 0x0000087A: 0x87a。

これは主にポインターのエラーに関連していると思いますが、よくわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

0

カラーフォーマットを「DXGI_FORMAT_R8G8B8A8_UNORM」にし、「HR(md3dDevice->CreateInputLayout...」を「if(FAILED(md3dDevice->CreateInputLayout...)) {//Handle errors}」に変更する必要があります。

問題の解決に役立つ可能性があると思います。

于 2012-01-05T11:22:46.727 に答える