Почему DX12 использует плохие имена, такие как ID3D12XXX, ID3D12XXX1, ID3D12XXXN? - PullRequest
0 голосов
/ 26 февраля 2020

ИМХО Я думаю, что это соглашение о наименовании плохое, потому что оно не говорит вам разницы между собой и не позволяет людям вспомнить, какой из них подходит.

PS: связанная страница https://docs.microsoft.com/en-us/windows/win32/api/d3d12/

1 Ответ

0 голосов
/ 26 февраля 2020

Не обсуждая, что мы предпочитаем в качестве соглашений об именах, как это было бы не так c, я попытаюсь объяснить причины такого выбора дизайна.

Это число является версией структуры / функции в том порядке, в котором она появилась в API при добавлении новых функций, поэтому проще отслеживать версию API, которая поставляется вместе с функцией.

В идеальном мире их будет только одна функция / структура, так как эти функции XXXN являются лишь продолжением предыдущей, но это невозможно из-за постоянного развития технологий рендеринга.

Есть другие подходы, хотя, как вы можете видеть в Vulkan, с возможностью расширения, проверяемой во время выполнения с помощью перечисления VkStructureType, и, хотя это отличный и понятный инструмент для расширений, у него есть свои недостатки, так как он более многословен и просчитан поздно во время выполнения. Вы можете заметить, что Vulkan использует тот же подход, когда функции не расширяемы, как, например, VkPhysicalDeviceProperties2.

...