报告 DirectX 8.0 样式 Direct3D 功能

为了响应类型为 D3DGDI2_TYPE_GETD3DCAPS8 的 GetDriverInfo2 查询,驱动程序应将初始化的 D3DCAPS8 结构复制到 DD_GETDRIVERINFODATA 结构的 lpvData 字段中。 此结构是 DirectX 8.0 的新增功能,用于从驱动程序到运行时以及从运行时到应用程序的报告功能。

D3DCAPS8 具有描述 DirectX 8.0 新增功能和 DirectX 7.0 中延续的功能的字段。 D3DCAPS8 不能完全替代现有功能。 尽管从 API 的角度来看,此结构 (以及支持的表面格式) 的信息是设备功能的完整说明,但对于 DDI 来说还不够。 运行时利用驱动程序报告的 DirectDraw 功能获取受支持的 surface 功能 (DDSCAPS) ,即使这些功能不会直接通过 DirectX 8.0 API 公开。

此外,驱动程序需要继续报告旧功能结构 (例如 D3DHAL_D3DEXTENDEDCAPS) 应用程序使用旧版接口 (DirectX 7.0 及更早版本) 继续请求这些功能。 因此,通过 D3DCAPS8 报告 DirectX 8.0 样式上限是一项额外的要求,而不是取代现有功能报告机制。 当应用程序使用 DirectX 8.0 接口时,如果驱动程序使用 D3DCAPS8 报告 DirectX 8.0 功能,则运行时不会查询扩展的 D3D 功能,例如D3DHAL_D3DEXTENDEDCAPS。

DirectX 8.0 SDK 文档中介绍了 D3DCAPS8。 驱动程序不应初始化 DeviceTypeAdapterOrdinal 字段。 这些值由运行时初始化为适当的值。 驱动程序应将这些字段设置为零。