0

当我尝试在 direct3D 10 中创建顶点布局时,我的应用程序一直无法编译。代码如下:

// 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 回答