D3DImage.Unlock メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
D3DImageのロック数をデクリメントします。
public:
void Unlock();
public void Unlock();
member this.Unlock : unit -> unit
Public Sub Unlock ()
例
次のコード例は、 Unlock メソッドを呼び出して、更新されたバック バッファーをフロント バッファーにコピーする方法を示しています。 詳細については、「チュートリアル: 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();
注釈
D3DImageのロック数が 0 に達すると、D3DImageは完全にロック解除されます。 D3DImageは、AddDirtyRect メソッドの以前の呼び出しで指定された領域がイメージによって変更された場合にレンダリング用にマークされます。
変更がコミットされ、レンダリングが行われると、レンダリング スレッドがバック バッファーの内容をフロント バッファーにコピーするまで、 Lock メソッド ブロックへの追加の呼び出しが行われます。 この同期により、破棄などの表示アーティファクトが回避されます。
Note
D3DImageのロックが解除されている間は Direct3D サーフェスを更新しないでください。