D3DImage.SetBackBuffer メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バック バッファーのソースとして、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 サーフェスをバック バッファーに割り当てます。
注意
パフォーマンスは、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
。
適用対象
.NET