D3DImage.AddDirtyRect(Int32Rect) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指定所變更之背景緩衝區的區域。
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)
參數
- 屬性
例外狀況
尚未呼叫 Lock() 或 TryLock(Duration) 方法鎖定點陣圖。
-或- 尚未呼叫 SetBackBuffer(D3DResourceType, IntPtr) 方法指派背景緩衝區。
下列一或多個條件為 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呼叫 方法之前,請先呼叫 AddDirtyRect 和 Lock 方法。
Unlock呼叫 方法,將變更的區域複製到前端緩衝區。
注意
在對 方法進行一些呼叫 AddDirtyRect 之後,變更的區域會合並成單一區域。 這表示您必須在變更的區域之外擁有有效的資料。