D3DImage.SetBackBuffer Method (D3DResourceType, IntPtr, Boolean)

.NET Framework (current version)

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Assigns a Direct3D surface as the source of the back buffer.

Namespace:   System.Windows.Interop
Assembly:  PresentationCore (in PresentationCore.dll)

public void SetBackBuffer(
	D3DResourceType backBufferType,
	IntPtr backBuffer,
	bool enableSoftwareFallback


Type: System.Windows.Interop.D3DResourceType

The type of Direct3D surface. Must be a valid D3DResourceType.

Type: System.IntPtr

The Direct3D surface to assign as the back buffer.

Type: System.Boolean

true to fall back on software rendering; otherwise, false.

When you call the SetBackBuffer(D3DResourceType, IntPtr) overload or call the SetBackBuffer(D3DResourceType, IntPtr, Boolean) overload with the enableSoftwareFallback parameter set to false, the rendering system releases its reference to the back buffer when the front buffer becomes unavailable and nothing is displayed. When the front buffer is available again, the rendering system raises the IsFrontBufferAvailableChanged event to notify your WPF application. You can create an event handler for the IsFrontBufferAvailableChanged event to restart rendering again with a valid Direct3D surface. To restart rendering, you must call SetBackBuffer.

When you call SetBackBuffer(D3DResourceType, IntPtr, Boolean) with the enableSoftwareFallback parameter set to true, the rendering system retains its reference to the back buffer when the front buffer becomes unavailable, so there is no need to call SetBackBuffer when the front buffer is available again. There may be situations where the user’s device becomes unavailable. When that occurs, call SetBackBuffer to release WPF’s reference to the back buffer. If you need to reset your device, call SetBackBuffer with backBuffer set to null, and then call SetBackBuffer again with backBuffer set to a valid Direct3D surface.

The following list shows the required back buffer settings for the IDirect3DSurface9 type.

  • D3DFMT_A8R8G8B8 or D3DFMT_X8R8G8B8



Multisampling is allowed on IDirect3DSurface9Ex surfaces only.

.NET Framework
Available since 4.5
Return to top