渲染目标要求

颜色缓冲区和深度缓冲区的要求如下:

颜色缓冲区

如果硬件不支持还将用作纹理的呈现目标 (也就是说,设备无法 "呈现为纹理" ) ,则设备必须无法对 IDirect3DDevice7:: SetRenderTargetIDirect3D7:: CreateDevice 方法进行调用。 Direct3D SDK 文档中介绍了这些方法。 呈现器目标要用作纹理的事实是,在表面说明中出现 DDSCAPS_TEXTURE 标志后 (查看DDSCAPS结构) 的dwCaps成员。

深度缓冲区

如果硬件不支持呈现目标和深度缓冲区的特定组合,则在检测到此类不匹配(例如,在调用 IDirect3D7:: CreateDeviceIDirectDrawSurface7:: AddAttachedSurface 方法)的情况下,设备必须失败导致此情况的 API 调用失败。 Direct3D 和 DirectDraw SDK 文档集中分别介绍了这些方法。 这种不匹配的一个示例可能是呈现目标和深度缓冲区的深度不同。 不要以透明方式更改呈现器目标或深度缓冲区的格式,以使无效的组合能够正常工作。 改为在不通知 DirectX 运行时的情况下分配较高精度的深度缓冲区。