Aracılığıyla paylaş


D3DImage.IsFrontBufferAvailable Özellik

Tanım

Ön arabelleğin var olup olmadığını gösteren bir değer alır.

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

Özellik Değeri

true ön arabellek varsa; aksi takdirde , false.

Örnekler

Aşağıdaki kod örneği, oluşturma hedefi işlenirken özelliğin IsFrontBufferAvailable nasıl denetleneceklerini gösterir. Daha fazla bilgi için bkz. İzlenecek yol: WPF'de Direct3D9 İçeriği Barındırma.

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

Açıklamalar

Bazen ön arabellek kullanılamaz duruma gelir. Bu kullanılabilirlik eksikliği ekran kilitleme, tam ekrana özel Direct3D uygulamaları, kullanıcı değiştirme veya diğer sistem etkinliklerinden kaynaklanabilir. Bu durumda WPF uygulamanıza olayı işleyerek IsFrontBufferAvailableChanged bildirim gönderilir. Uygulamanızın ön arabelleğin kullanılamaz duruma gelmesine nasıl yanıt verdiği, WPF'nin yazılım işlemeye geri dönmek için etkinleştirilip etkinleştirilmediğine bağlıdır. yönteminin SetBackBuffer , WPF'nin yazılım işlemeye geri dönüp dönmediğini belirten bir parametre alan bir aşırı yüklemesi vardır. Daha fazla bilgi için sınıftaki açıklamalara D3DImage bakın.

Bağımlılık Özelliği Bilgileri

Tanımlayıcı alanı IsFrontBufferAvailableProperty
Meta veri özellikleri olarak ayarlandı true Hiçbiri

Şunlara uygulanır

Ayrıca bkz.