D3DImage.Unlock 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
D3DImage의 잠금 횟수를 줄입니다.
public:
void Unlock();
public void Unlock ();
member this.Unlock : unit -> unit
Public Sub Unlock ()
예제
다음 코드 예제에서는 메서드를 호출 Unlock 하여 업데이트된 백 버퍼를 프런트 버퍼에 복사하는 방법을 보여줍니다. 자세한 내용은 연습: 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();
설명
잠금 수가 0에 D3DImage 도달하면 잠금이 D3DImage 완전히 해제됩니다. D3DImage 이미지가 메서드에 대한 이전 호출로 지정된 영역을 변경한 경우 렌더링을 위해 AddDirtyRect 표시됩니다.
변경 내용이 커밋되고 렌더링이 발생하면 렌더링 스레드가 백 버퍼의 내용을 전면 버퍼에 복사할 때까지 메서드 블록에 대한 추가 호출 Lock 이 발생합니다. 이 동기화는 찢어짐과 같은 표시 아티팩트가 방지됩니다.
참고
잠금이 해제된 동안 D3DImage 에는 Direct3D 화면을 업데이트하지 마세요.