Direct3D 10, не удалось создать макет ввода
Моему приложению не удается скомпилироваться, когда я пытаюсь создать макет вершины в 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 ответ
Вы должны сделать свой цветовой формат "DXGI_FORMAT_R8G8B8A8_UNORM" и изменить "HR(md3dDevice->CreateInputLayout..." на "if(FAILED(md3dDevice->CreateInputLayout...)) {// Обработка ошибок}".
Я думаю, что это может помочь решить проблему.