D3DImage.SetBackBuffer メソッド

定義

バック バッファーのソースとして、Direct3D サーフェイスを割り当てます。

オーバーロード

SetBackBuffer(D3DResourceType, IntPtr)

バック バッファーのソースとして、Direct3D サーフェイスを割り当てます。

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

バック バッファーのソースとして、Direct3D サーフェイスを割り当てます。

SetBackBuffer(D3DResourceType, IntPtr)

バック バッファーのソースとして、Direct3D サーフェイスを割り当てます。

public:
 void SetBackBuffer(System::Windows::Interop::D3DResourceType backBufferType, IntPtr backBuffer);
[System.Security.SecurityCritical]
public void SetBackBuffer (System.Windows.Interop.D3DResourceType backBufferType, IntPtr backBuffer);
public void SetBackBuffer (System.Windows.Interop.D3DResourceType backBufferType, IntPtr backBuffer);
[<System.Security.SecurityCritical>]
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint -> unit
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint -> unit
Public Sub SetBackBuffer (backBufferType As D3DResourceType, backBuffer As IntPtr)

パラメーター

backBufferType
D3DResourceType

Direct3D サーフェイスの種類です。 有効な D3DResourceType を指定する必要があります。

backBuffer
IntPtr

nativeint

バック バッファーとして割り当てるための Direct3D サーフェイス。

属性

例外

D3DImageLock() メソッドまたは TryLock(Duration) メソッドへの呼び出しにより、ロックされていません。

backBufferType は有効な D3DResourceType ではありません。

backBuffer の作成パラメーターが backBufferType の要求を満たしていない、または backBuffer デバイスが有効ではありません。

次のコード例は、 メソッドを呼び出 SetBackBuffer して Direct3D サーフェスを割り当てる方法を示しています。 詳細については、「チュートリアル:WPF での Direct3D9 コンテンツのホスト」を参照してください。

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();

注釈

メソッドを SetBackBuffer 呼び出して、Direct3D サーフェスをバック バッファーに割り当てます。

注意

パフォーマンスは、Direct3D サーフェスの設定によって大きく異なります。 詳細については、「Direct3D9 および WPF の相互運用性のパフォーマンスに関する考慮事項」を参照してください。

オーバーロードのSetBackBuffer(D3DResourceType, IntPtr)呼び出しは、 パラメーターが にfalse設定されたSetBackBuffer(D3DResourceType, IntPtr, Boolean)オーバーロードのenableSoftwareFallback呼び出しと同じです。 パラメーターを に設定して をenableSoftwareFallback呼び出すか、 をfalse呼び出SetBackBuffer(D3DResourceType, IntPtr)SetBackBuffer(D3DResourceType, IntPtr, Boolean)すと、フロント バッファーが使用できなくなり、何も表示されないと、レンダリング システムによってバック バッファーへの参照が解放されます。 フロント バッファーを再び使用できるようになると、レンダリング システムによって IsFrontBufferAvailableChanged イベントが発生し、WPF アプリケーションに通知されます。 IsFrontBufferAvailableChanged イベントのイベント ハンドラーを作成し、有効な Direct3D サーフェイスを使用してもう一度レンダリングを再開できます。 レンダリングを再開するには、SetBackBuffer を呼び出す必要があります。

次の一覧は、型に必要なバック バッファー設定を IDirect3DSurface9 示しています。

  • D3DFMT_A8R8G8B8 または D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

マルチサンプリングはサーフェスでのみ使用できます IDirect3DSurface9Ex

こちらもご覧ください

適用対象

SetBackBuffer(D3DResourceType, IntPtr, Boolean)

バック バッファーのソースとして、Direct3D サーフェイスを割り当てます。

public:
 void SetBackBuffer(System::Windows::Interop::D3DResourceType backBufferType, IntPtr backBuffer, bool enableSoftwareFallback);
[System.Security.SecurityCritical]
public void SetBackBuffer (System.Windows.Interop.D3DResourceType backBufferType, IntPtr backBuffer, bool enableSoftwareFallback);
public void SetBackBuffer (System.Windows.Interop.D3DResourceType backBufferType, IntPtr backBuffer, bool enableSoftwareFallback);
[<System.Security.SecurityCritical>]
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint * bool -> unit
member this.SetBackBuffer : System.Windows.Interop.D3DResourceType * nativeint * bool -> unit
Public Sub SetBackBuffer (backBufferType As D3DResourceType, backBuffer As IntPtr, enableSoftwareFallback As Boolean)

パラメーター

backBufferType
D3DResourceType

Direct3D サーフェイスの種類です。 有効な D3DResourceType を指定する必要があります。

backBuffer
IntPtr

nativeint

バック バッファーとして割り当てるための Direct3D サーフェイス。

enableSoftwareFallback
Boolean

ソフトウェア レンダリングでフォールバックする場合は true。それ以外の場合は false

属性

注釈

SetBackBuffer(D3DResourceType, IntPtr) オーバーロードを呼び出すか、enableSoftwareFallback パラメーターを false に設定して SetBackBuffer(D3DResourceType, IntPtr, Boolean) オーバーロードを呼び出すと、フロント バッファーが使用できなくなり、何も表示されなくなったときに、レンダリング システムではバック バッファーへの参照が解放されます。 フロント バッファーを再び使用できるようになると、レンダリング システムによって IsFrontBufferAvailableChanged イベントが発生し、WPF アプリケーションに通知されます。 IsFrontBufferAvailableChanged イベントのイベント ハンドラーを作成し、有効な Direct3D サーフェイスを使用してもう一度レンダリングを再開できます。 レンダリングを再開するには、SetBackBuffer を呼び出す必要があります。

パラメーターを にtrue設定して をenableSoftwareFallback呼び出SetBackBuffer(D3DResourceType, IntPtr, Boolean)すと、フロント バッファーが使用できなくなったときにレンダリング システムはバック バッファーへの参照を保持するため、フロント バッファーが再び使用可能になったときに を呼び出すSetBackBuffer必要はありません。 ユーザーのデバイスが使用できなくなる場合があります。 その場合は、 を呼び出 SetBackBuffer して、WPF のバック バッファーへの参照を解放します。 デバイスをリセットする必要がある場合は、 を に設定して nullを呼び出SetBackBufferbackBufferし、有効な Direct3D サーフェスに設定して もう一度 backBuffer を呼び出SetBackBufferします。

次の一覧は、型に必要なバック バッファー設定を IDirect3DSurface9 示しています。

  • D3DFMT_A8R8G8B8 または D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

マルチサンプリングはサーフェスでのみ使用できます IDirect3DSurface9Ex

適用対象