D3DImage.IsFrontBufferAvailable 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
프런트 버퍼가 있는지 여부를 나타내는 값을 가져옵니다.
public:
property bool IsFrontBufferAvailable { bool get(); };
public bool IsFrontBufferAvailable { get; }
member this.IsFrontBufferAvailable : bool
Public ReadOnly Property IsFrontBufferAvailable As Boolean
속성 값
true프런트 버퍼가 있으면 이고, 그렇지 않으면 . false
예제
다음 코드 예제에서는 컴퍼지션 대상을 IsFrontBufferAvailable 렌더링할 때 속성을 확인하는 방법을 보여 있습니다. `자세한 내용은 WPF에서 Direct3D9 콘텐츠 호스팅 연습를 참조하십시오.`
void CompositionTarget_Rendering(object sender, EventArgs e)
{
RenderingEventArgs args = (RenderingEventArgs)e;
// It's possible for Rendering to call back twice in the same frame
// so only render when we haven't already rendered in this frame.
if (d3dimg.IsFrontBufferAvailable && _lastRender != args.RenderingTime)
{
IntPtr pSurface = IntPtr.Zero;
HRESULT.Check(GetBackBufferNoRef(out pSurface));
if (pSurface != IntPtr.Zero)
{
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();
_lastRender = args.RenderingTime;
}
}
}
설명
경우에 따라 프런트 버퍼를 사용할 수 없게 됩니다. 화면 잠금, 전체 화면을 독점 사용하는 Direct3D 애플리케이션, 사용자 전환, 또는 기타 시스템 활동으로 인해 이러한 가용성 부족이 발생할 수 있습니다. WPF 애플리케이션은 IsFrontBufferAvailableChanged 이벤트를 처리하여 이와 같은 경우에 알림을 받습니다. 애플리케이션이 프런트 버퍼가 사용할 수 없게 되는 상황에 반응하는 방법은 WPF가 소프트웨어 렌더링으로 대체되도록 설정되어 있는지 여부에 따라 달라집니다. SetBackBuffer 메서드에는 WPF가 소프트웨어 렌더링으로 전환할지를 지정하는 매개 변수를 받는 오버로드가 있습니다. 자세한 내용은 D3DImage 클래스의 설명을 참조하세요.
종속성 속성 정보
| Item | Value |
|---|---|
| 식별자 필드 | IsFrontBufferAvailableProperty |
메타데이터 속성이 다음으로 설정됩니다. true |
None |