Manager.CheckDepthStencilMatch Method |
Language: |
Determines whether a depth stencil format is compatible with a render target format in a particular display mode.
public static bool CheckDepthStencilMatch(int, DeviceType, Format, Format, DepthFormat); public static bool CheckDepthStencilMatch(int, DeviceType, Format, Format, DepthFormat, out int);
The CheckDepthStencilMatch method enables applications to work with hardware that requires that certain depth formats work only with certain render-target formats.
The following C# code fragment demonstrates the use of CheckDeviceFormat to validate a depth stencil format.
[C#]
public void TestFunc() { int result; // Test some formats IsDepthFormatOK(DepthFormat.D16, Format.X8R8G8B8, Format.A8R8G8B8, out result); if (result == (int)ResultCode.NotAvailable) System.Windows.Forms.MessageBox.Show(String.Format("The depth stencil format is invalid: {0}", result)); } private bool IsDepthFormatOK (DepthFormat depthFmt, Format adapterFmt, Format backbufferFmt, out int result) { AdapterInformation ai = Manager.Adapters.Default; // Verify that the depth format exists if (Manager.CheckDeviceFormat(ai.Adapter, DeviceType.Hardware, adapterFmt, Usage.DepthStencil, ResourceType.Surface, depthFmt, out result)) { // Verify that the depth format is compatible if (Manager.CheckDepthStencilMatch(ai.Adapter, DeviceType.Hardware, adapterFmt, backbufferFmt, depthFmt, out result)) { return true; // if both calls succeed } } return false; // if either call fails. NOTE: HRESULT passed back in result }The preceding call returns false if depthFmt cannot be used in conjunction with adapterFmt and backbufferFmt.
Send comments about this topic to Microsoft. © Microsoft Corporation. All rights reserved.
Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center