Sdílet prostřednictvím


D3DImage.IsFrontBufferAvailable Vlastnost

Definice

Získá hodnotu, která označuje, zda front vyrovnávací paměť existuje.

public:
 property bool IsFrontBufferAvailable { bool get(); };
public bool IsFrontBufferAvailable { get; }
member this.IsFrontBufferAvailable : bool
Public ReadOnly Property IsFrontBufferAvailable As Boolean

Hodnota vlastnosti

truepokud existuje přední vyrovnávací paměť; v opačném případě . false

Příklady

Následující příklad kódu ukazuje, jak zkontrolovat IsFrontBufferAvailable vlastnost při vykreslování cíle složení. Další informace naleznete v tématu Návod: Hostování obsahu Direct3D9 ve WPF.

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;
        }
    }
}

Poznámky

Občas se front buffer stane nedostupnou. Příčinou tohoto nedostatku dostupnosti může být uzamčení obrazovky, exkluzivní aplikace Direct3D na celé obrazovce, přepínání uživatelů nebo jiné systémové aktivity. Pokud k tomu dojde, aplikace WPF bude upozorněna zpracováním IsFrontBufferAvailableChanged události. Způsob, jakým vaše aplikace reaguje na nedostupnou frontovou vyrovnávací paměť, závisí na tom, jestli je povoleno vrátit se do softwarového vykreslování. Metoda SetBackBuffer má přetížení, které přebírá parametr, který určuje, zda WPF spadá zpět do softwarového vykreslování. Další informace najdete v poznámkách ve třídě D3DImage.

Informace o vlastnosti závislosti

Položka Hodnota
Pole Identifikátor IsFrontBufferAvailableProperty
Vlastnosti metadat nastavené na true None

Platí pro

Viz také