Direct3D 10, не удалось создать макет ввода - PullRequest
0 голосов
/ 31 декабря 2011

У меня не получается скомпилировать приложение, когда я пытаюсь создать макет вершины в 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() предназначен для выявления таких проблем и внесения предложений в этих случаях, однако, похоже, он этого не делает.Хотя, как и во многих случаях, я могу быть совершенно неправ в этом.Появится следующее приглашение:

Необработанное исключение при 0x757fd36f в CourseworkApp.exe: 0x0000087A: 0x87a.

Я думаю, что это в основном связано с ошибками с указателями, но я не уверен.Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 05 января 2012

Вы должны сделать свой цветовой формат "DXGI_FORMAT_R8G8B8A8_UNORM" и изменить "HR (md3dDevice-> CreateInputLayout ..." на "if (FAILED (md3dDevice-> CreateInputLayout ...)) {// Обработка ошибок}".

Я думаю, что это может помочь решить проблему.

...