D3DImage.IsFrontBufferAvailable Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Ö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 |