D3DImage.AddDirtyRect(Int32Rect) メソッド

定義

変更されたバック バッファーの領域を指定します。

public:
 void AddDirtyRect(System::Windows::Int32Rect dirtyRect);
[System.Security.SecurityCritical]
public void AddDirtyRect(System.Windows.Int32Rect dirtyRect);
public void AddDirtyRect(System.Windows.Int32Rect dirtyRect);
[<System.Security.SecurityCritical>]
member this.AddDirtyRect : System.Windows.Int32Rect -> unit
member this.AddDirtyRect : System.Windows.Int32Rect -> unit
Public Sub AddDirtyRect (dirtyRect As Int32Rect)

パラメーター

dirtyRect
Int32Rect

変更された領域を表す Int32Rect

属性

例外

ビットマップは、 Lock() または TryLock(Duration) メソッドの呼び出しによってロックされていません。

-又は-

バック バッファーは、 SetBackBuffer(D3DResourceType, IntPtr) メソッドの呼び出しによって割り当てられません。

次の条件のうち 1 つ以上が当てはまります。

dirtyRect.X < 0

dirtyRect.Y < 0

dirtyRect.Width < 0 または dirtyRect.Width>PixelWidthdirtyRect.Height< 0 または dirtyRect.Height>PixelHeight

次のコード例は、 AddDirtyRect メソッドを呼び出して、バック バッファー内の変更された領域を指定する方法を示しています。 詳細については、「チュートリアル: 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();

注釈

AddDirtyRect メソッドを呼び出して、コードがバック バッファーに加えた変更を示します。 レンダリングするには、バック バッファーの変更された領域に、 D3DImageの対応する変更された領域が必要です。

AddDirtyRect メソッドを呼び出す前に、SetBackBufferメソッドとLock メソッドを呼び出します。

Unlock メソッドを呼び出して、変更された領域をフロント バッファーにコピーします。

Note

AddDirtyRect メソッドを数回呼び出した後、変更された領域は 1 つの領域にマージされます。 つまり、変更された領域の外部に有効なデータが必要です。

適用対象

こちらもご覧ください