Модификация демонстрационной версии Frank Luna's Box для DirectX12 - PullRequest
0 голосов
/ 28 апреля 2020

Я изучаю книгу Фрэнка Луны и в качестве «самостоятельного» упражнения пытаюсь изменить его демонстрационный код Box, чтобы нарисовать двухмерную диаграмму, например, линию, соединяющую несколько точек. Я заменил эту строку:

207    mCommandList->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST);

на эту:

207    mCommandList->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP);

, и я также заменил эту строку:

456    psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE;

на эту:

456    psoDesc.PrimitiveTopologyType = D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE;

Я также создал файл индексов:

std::array<std::uint16_t, 14> indices =
{
    0, 1, 

    1, 2,

    2, 3,

    3, 4,

    4, 5,

    5, 6,

    6, 7

};

Компилятор не выдает ошибок, окно открывается, но остается пустым и через несколько секунд закрывается. Есть подсказка?

Второй вопрос: нужен ли linestrips буфер индексов?

...