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) 方法的调用未锁定位图。

存在下列一种或多种情况时。

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在调用该方法之前调用AddDirtyRectLock方法。

Unlock调用该方法以将更改的区域复制到前缓冲区。

备注

对该方法的几个调用 AddDirtyRect 后,更改的区域将合并到单个区域。 这意味着必须在更改区域之外拥有有效数据。

适用于

另请参阅