Отчеты о возможностях Direct3D в стиле DirectX 8.0

В ответ на запрос GetDriverInfo2 с типом D3DGDI2_TYPE_GETD3DCAPS8 драйвер должен скопировать инициализированную структуру D3DCAPS8 в поле lpvDataструктуры DD_GETDRIVERINFODATA . Эта структура является новой для DirectX 8.0 и используется для создания отчетов как от драйвера к среде выполнения, так и от среды выполнения к приложению.

D3DCAPS8 содержит поля, описывающие как новые возможности DirectX 8.0, так и возможности, перенесенные из DirectX 7.0. D3DCAPS8 не является полной заменой существующих возможностей. Хотя эта структура (наряду со сведениями о поддерживаемых форматах поверхностей) является полным описанием возможностей устройства с точки зрения API, ее недостаточно для DDI. Среда выполнения использует возможности DirectDraw, сообщаемые драйвером, для таких сведений, как поддерживаемые возможности поверхности (DDSCAPS), даже если они не предоставляются напрямую через API DirectX 8.0.

Кроме того, драйвер должен продолжать сообщать о устаревших структурах возможностей (например , D3DHAL_D3DEXTENDEDCAPS), так как приложения, использующие устаревшие интерфейсы (DirectX 7.0 и более ранние версии), продолжают запрашивать эти возможности. Таким образом, создание отчетов о ограничениях стиля DirectX 8.0 с помощью D3DCAPS8 является дополнительным требованием, а не заменой существующих механизмов создания отчетов о возможностях. Если приложение использует интерфейсы DirectX 8.0, среда выполнения не запрашивает расширенные возможности D3D, такие как D3DHAL_D3DEXTENDEDCAPS если драйвер сообщает о возможностях DirectX 8.0 с D3DCAPS8.

D3DCAPS8 описано в документации по пакету SDK для DirectX 8.0. Драйвер не должен инициализировать поля DeviceType или AdapterOrdinal . Среда выполнения инициализирует их соответствующими значениями. Драйвер должен задать для этих полей нулевое значение.