D3DImage.IsFrontBufferAvailable Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera wartość wskazującą, czy istnieje bufor frontu.
public:
property bool IsFrontBufferAvailable { bool get(); };
public bool IsFrontBufferAvailable { get; }
member this.IsFrontBufferAvailable : bool
Public ReadOnly Property IsFrontBufferAvailable As Boolean
Wartość właściwości
true
jeśli istnieje bufor frontu; w przeciwnym razie , false
.
Przykłady
Poniższy przykład kodu pokazuje, jak sprawdzić IsFrontBufferAvailable właściwość podczas renderowania obiektu docelowego kompozycji. Aby uzyskać więcej informacji, zobacz Przewodnik: hostowanie zawartości Direct3D9 w 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;
}
}
}
Uwagi
Czasami bufor frontu staje się niedostępny. Ten brak dostępności może być spowodowany blokowaniem ekranu, wyłącznie na pełnym ekranie aplikacjami Direct3D, przełączaniem użytkowników lub innymi działaniami systemowymi. W takim przypadku aplikacja WPF jest powiadamiana przez obsługę IsFrontBufferAvailableChanged zdarzenia. Sposób, w jaki aplikacja reaguje na bufor frontu staje się niedostępny, zależy od tego, czy platforma WPF jest włączona, aby powrócić do renderowania oprogramowania. Metoda SetBackBuffer ma przeciążenie, które przyjmuje parametr określający, czy WPF powraca do renderowania oprogramowania. Aby uzyskać więcej informacji, zobacz uwagi w D3DImage klasie.
Informacje dotyczące właściwości zależności
Pole identyfikatora | IsFrontBufferAvailableProperty |
Właściwości metadanych ustawione na true |
Brak |