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 サーフェス。

属性

例外

D3DImageは、Lock()メソッドまたは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 サーフェスをバック バッファーに割り当てます。

Note

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

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

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

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

  • D3DFMT_A8R8G8B8 または D3DFMT_X8R8G8B8

  • D3DUSAGE_RENDERTARGET

  • D3DPOOL_DEFAULT

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

適用対象