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 フロント バッファーにコピーするまで、メソッド ブロックへの追加の呼び出しが行われます。 この同期により、ティアリングなどの表示アーティファクトが回避されます。
注意
ロックが解除されている間は Direct3D サーフェスを D3DImage 更新しないでください。