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

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

考虑通过调用驱动程序的 CreateResource (D3D10) 函数创建的资源,D3D10DDIARG_CREATERESOURCE 结构的 Format 成员设置为系列DXGI_FORMAT_R8G8B8A8_TYPELESS、DXGI_FORMAT_B8G8R8A8_TYPELESS或DXGI_FORMAT_R10G10B10A2_TYPELESS的格式,并在 D3D10DDIARG_CREATERESOURCE 的BindFlags 成员中设置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强制转换DXGI_FORMAT_B8G8R8A8_UNORM_SRGB后台缓冲区,并重新查看DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM作为DXGI_FORMAT_R10G10B10A2_*进行呈现。