Multiple Render Targets

Many implementations support a less restrictive form of multiple render targets. The biggest relaxation is the ability to have multiple render targets that can be created independently. These render targets must be of identical dimensions but can have different formats. The pipeline supports a single render target that can be set using IDirect3DDevice9::SetRenderTarget. This has been extended to allow multiple render targets to be simultaneously present in the device. A new cap expresses this ability.

Multiple render targets have the following restrictions:

Note    In the past, this API was used to set the depth stencil as well. In Direct3D 9 however, this API has been split up as documented in the IDirect3DDevice9::SetRenderTarget and IDirect3DDevice9::SetDepthStencilSurface sections.

New hardware caps:

D3DCAPS9.NumSimultaneousRTs			
// The value is 1 for all hardware except those that  
//   can support this feature. It is never 0.
D3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS - True if the hardware can support it
D3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING - True if the hardware can support it