Microsoft DirectX 9.0 SDK Update (October 2004)

Creating a Depth Buffer

Language:

Note: This documentation is preliminary and is subject to change.

A depth buffer is a property of a device. To create a depth buffer that is managed by Microsoft® Direct3D®, set the appropriate members of the PresentParameters class as shown in the following C# code example.

          [C#]
          
PresentParameters presentParams = new PresentParameters(); presentParams.Windowed = true; presentParams.SwapEffect = SwapEffect.Copy; presentParams.EnableAutoDepthStencil = true; presentParams.AutoDepthStencilFormat = DepthFormat.D16;

Setting the PresentParameters.EnableAutoDepthStencil member to true instructs Direct3D to manage depth buffers for the application. Note that PresentParameters.AutoDepthStencilFormat must be set to a valid depth buffer format. The DepthFormat.D16 value specifies a 16-bit depth buffer, provided one is available.

The following C# call to the Device constructor creates a device that in turn creates a depth buffer.

          [C#]
          
Device device; // Create a device using the PresentParameters previously set. device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);

The depth buffer is automatically set as the render target of the device. When the device is reset, the depth buffer is automatically destroyed and re-created in the new size. To create a new depth buffer surface, use the Device.CreateDepthStencilSurface method. To set a new depth-buffer surface for the device, use the Device.DepthStencilSurface method.

To use the depth buffer in an application, the depth buffer must be enabled. For more information, see Enabling Depth Buffering.


© 2004 Microsoft Corporation. All rights reserved. Terms of use.

Feedback? Please provide us with your comments on this topic.
For more help, visit the DirectX Developer Center