D3DImage.AddDirtyRect(Int32Rect) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje oblast zadní vyrovnávací paměti, která se změnila.
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)
Parametry
- Atributy
Výjimky
Rastrový obrázek nebyl uzamčen voláním Lock() nebo TryLock(Duration) metodami.
-nebo- Zpětná vyrovnávací paměť nebyla přiřazena voláním SetBackBuffer(D3DResourceType, IntPtr) metody.
Jedna nebo více následujících podmínek je pravdivá.
dirtyRect.X
< 0
dirtyRect.Y
< 0
dirtyRect.Width
< 0 nebo dirtyRect.Width
> PixelWidthdirtyRect.Height
< 0 nebo dirtyRect.Height
> PixelHeight
Příklady
Následující příklad kódu ukazuje, jak volat metodu AddDirtyRect pro určení změněné oblasti v back bufferu. Další informace naleznete v tématu Návod: Hostování obsahu Direct3D9 ve WPF.
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();
Poznámky
Zavolejte metodu AddDirtyRect , která označuje změny kódu provedené v back bufferu. Aby bylo možné vykreslit, musí změněná oblast v zadní vyrovnávací paměti obsahovat odpovídající změněnou oblast .D3DImage
SetBackBuffer Před voláním AddDirtyRect metody volejte metody a Lock metody.
Zavolejte metodu Unlock pro zkopírování změněných oblastí do front bufferu.
Poznámka
Po několika voláních AddDirtyRect metody se změněné oblasti sloučí do jedné oblasti. To znamená, že musíte mít platná data mimo změněné oblasti.