D3DImage.AddDirtyRect(Int32Rect) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica a área do buffer traseiro que mudou.
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)
Parâmetros
- Atributos
Exceções
O bitmap não foi bloqueado por uma chamada aos Lock() métodos ou.TryLock(Duration)
-ou-
O back buffer não foi atribuído por uma chamada ao SetBackBuffer(D3DResourceType, IntPtr) método.
Uma ou mais das seguintes condições é verdadeira.
dirtyRect.X
< 0
dirtyRect.Y
< 0
dirtyRect.Width
<0 ou dirtyRect.Width>PixelWidthdirtyRect.Height< 0 oudirtyRect.Height>PixelHeight
Exemplos
O exemplo de código seguinte mostra como chamar o AddDirtyRect método para especificar a região alterada no back buffer. Para obter mais informações, consulte Passo a passo: Hospedando conteúdo Direct3D9 no 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();
Observações
Chame o AddDirtyRect método para indicar alterações que o seu código fez ao back buffer. Para ser renderizado, a área alterada no buffer traseiro deve ter uma área alterada correspondente no D3DImage.
Chame os SetBackBuffer métodos e Lock antes de chamar o AddDirtyRect método.
Chama o Unlock método para copiar as áreas alteradas para o buffer frontal.
Note
Após algumas chamadas ao AddDirtyRect método, as áreas alteradas são fundidas numa única área. Isto significa que deve ter dados válidos fora das áreas alteradas.