Assigns a Direct3D surface as the source of the back buffer.
Assembly: PresentationCore (in PresentationCore.dll)
Public Sub SetBackBuffer ( _
backBufferType As D3DResourceType, _
backBuffer As IntPtr _
)public void SetBackBuffer(
D3DResourceType backBufferType,
IntPtr backBuffer
)public:
void SetBackBuffer(
D3DResourceType backBufferType,
IntPtr backBuffer
)member SetBackBuffer :
backBufferType:D3DResourceType *
backBuffer:IntPtr -> unit
Parameters
- backBufferType
- Type: System.Windows.Interop
. . :: . D3DResourceType
The type of Direct3D surface. Must be a valid D3DResourceType.
- backBuffer
- Type: System
. . :: . IntPtr
The Direct3D surface to assign as the back buffer.
| Exception | Condition |
|---|---|
| InvalidOperationException | The D3DImage has not been locked by a call to the Lock or TryLock methods. |
| ArgumentOutOfRangeException | backBufferType is not a valid D3DResourceType. |
| ArgumentException | The creation parameters for backBuffer do not meet the requirements for the backBufferType -or- The backBuffer device is not valid. |
Call the SetBackBuffer method to assign a Direct3D surface to the back buffer.
Note |
|---|
Performance depends greatly on the settings of the Direct3D surface. For more information, see Performance Considerations for Direct3D9 and WPF Interoperability. |
You must also call the SetBackBuffer method to restart rendering after the Direct3D device has become unavailable. When the Direct3D device is available again, the IsFrontBufferAvailable property changes from false to true. Handle the IsFrontBufferAvailableChanged event to be notified when this property changes.
The following list shows the required back buffer settings for the IDirect3DSurface9 type.
D3DFMT_A8R8G8B8 or D3DFMT_X8R8G8B8
D3DUSAGE_RENDERTARGET
D3DPOOL_DEFAULT
Multisampling is allowed on IDirect3DSurface9Ex surfaces only.
The following code example shows how to call the SetBackBuffer method to assign a Direct3D surface. For more information, see Walkthrough: Hosting Direct3D9 Content in WPF.
d3dimg.Lock();
// Repeatedly calling SetBackBuffer with the same IntPtr is
// a no-op. There is no performance penalty.
d3dimg.SetBackBuffer(D3DResourceType.IDirect3DSurface9, pSurface);
HRESULT.Check(Render());
d3dimg.AddDirtyRect(new Int32Rect(0, 0, d3dimg.PixelWidth, d3dimg.PixelHeight));
d3dimg.Unlock();
- SecurityPermission
for access to unmanaged resources. Security action: Demand. Associated enumeration: SecurityPermissionFlag
. . :: . UnmanagedCode
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Note