D3DImage.AddDirtyRect(Int32Rect) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
변경된 백 버퍼 영역을 지정합니다.
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) 메서드를 호출하여 백 버퍼를 할당하지 않은 경우
다음 조건 중 하나 이상이 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 몇 차례 호출하면 변경된 영역이 단일 영역으로 병합됩니다. 즉, 변경된 영역 외부에 유효한 데이터가 있어야 합니다.