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 サーフェスをバック バッファーに割り当てます。
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_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_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 のバック バッファーへの参照を解放します。 デバイスをリセットする必要がある場合は、backBufferを null に設定してSetBackBufferを呼び出し、backBuffer有効な Direct3D サーフェスに設定してSetBackBufferをもう一度呼び出します。
次の一覧は、 IDirect3DSurface9 型に必要なバック バッファー設定を示しています。
D3DFMT_A8R8G8B8またはD3DFMT_X8R8G8B8D3DUSAGE_RENDERTARGETD3DPOOL_DEFAULT
マルチサンプリングは、 IDirect3DSurface9Ex サーフェスでのみ使用できます。