完全类型化后端缓冲区强制转换

本部分仅适用于 Windows 7 及更高版本的作系统。

请考虑通过调用驱动程序的 CreateResource(D3D10)函数创建的资源,其中 D3D10DDIARG_CREATERESOURCE 结构的 Format 成员被设置为 DXGI_FORMAT_R8G8B8A8_TYPELESS、DXGI_FORMAT_B8G8R8A8_TYPELESS 或 DXGI_FORMAT_R10G10B10A2_TYPELESS 格式,并且在 D3D10DDIARG_CREATERESOURCEBindFlags 成员中设置 D3D10_DDI_BIND_PRESENT 值。 Direct3D 版本 10.1 运行时随即可以使用相应系列的任意完全类型的成员(例如,针对 DXGI_FORMAT_B8G8R8A8_TYPELESS 系列的 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB),在这些资源上创建视图(呈现目标或着色器资源),即使原始资源是作为完全类型创建的。 如果未为资源设置 D3D10_DDI_BIND_PRESENT,则不允许再投射,就像 Direct3D 版本 10 中的所有完全类型化资源一样。

Direct3D 版本 10.1 的此更改允许应用程序重新查看DXGI_FORMAT_R8G8B8A8_UNORM后缓冲区,如DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,反之亦然。 此更改还允许应用程序将 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB 后台缓冲区转换为 DXGI_FORMAT_B8G8R8A8_UNORM,并重新使用 DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM 作为 DXGI_FORMAT_R10G10B10A2_* 进行呈现。