次の方法で共有


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 つ以上が true であること。

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が必要です。

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

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

Note

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

適用対象

こちらもご覧ください