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)
Параметры
- Атрибуты
Исключения
Растровое изображение не было заблокировано вызовом метода Lock() или TryLock(Duration).
-или- Задний буфер не был назначен вызовом метода SetBackBuffer(D3DResourceType, IntPtr).
Одно или несколько из следующих условий истинно.
dirtyRect.X
< 0
dirtyRect.Y
< 0
dirtyRect.Width
< 0 или dirtyRect.Width
> PixelWidthdirtyRect.Height
< 0 или dirtyRect.Height
> PixelHeight
Примеры
В следующем примере кода показано, как вызвать AddDirtyRect метод для указания измененной области в заднем буфере. Дополнительные сведения см. в статье Пошаговое руководство. Размещение содержимого Direct3D9 в 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();
Комментарии
Вызовите AddDirtyRect метод, чтобы указать, что код внес изменения в задний буфер. Для отрисовки измененная область в заднем буфере должна иметь соответствующую измененную область в .D3DImage
Вызовите SetBackBuffer методы и Lock методы перед вызовом AddDirtyRect метода.
Вызовите Unlock метод для копирования измененных областей в передний буфер.
Примечание
После нескольких вызовов AddDirtyRect метода измененные области объединяются в одну область. Это означает, что у вас должны быть допустимые данные за пределами измененных областей.