다음을 통해 공유


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) 메서드를 호출하여 비트맵을 잠그지 않은 경우

또는 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 호출하기 전에 메서드 및 Lock 메서드를 호출합니다 AddDirtyRect .

메서드를 Unlock 호출하여 변경된 영역을 전면 버퍼에 복사합니다.

참고

메서드를 AddDirtyRect 몇 차례 호출하면 변경된 영역이 단일 영역으로 병합됩니다. 즉, 변경된 영역 외부에 유효한 데이터가 있어야 합니다.

적용 대상

추가 정보