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...)) {// Обработка ошибок}".

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

Другие вопросы по тегам