Share via


D3DImage.IsFrontBufferAvailable Propiedad

Definición

Obtiene un valor que indica si existe un búfer frontal.

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

Valor de propiedad

Es true si existe un búfer frontal; en caso contrario, es false.

Ejemplos

En el ejemplo de código siguiente se muestra cómo comprobar la IsFrontBufferAvailable propiedad al representar el destino de composición. Para obtener más información, consulte Tutorial: Hospedar contenido Direct3D9 en 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;
        }
    }
}

Comentarios

En ocasiones, el búfer frontal deja de estar disponible. Esta falta de disponibilidad puede deberse a bloqueos de pantalla, aplicaciones Direct3D exclusivas de pantalla completa, cambio de usuario u otras actividades del sistema. Cuando esto ocurre, se notifica a la aplicación WPF al controlar el evento IsFrontBufferAvailableChanged. La forma en que la aplicación responde al búfer frontal que no está disponible depende de si WPF está habilitado para revertir a la representación de software. El método SetBackBuffer tiene una sobrecarga que toma un parámetro que especifica si WPF revierte a la representación de software. Para obtener más información, vea los comentarios en la clase D3DImage.

Información sobre propiedades de dependencia

Campo identificador IsFrontBufferAvailableProperty
Propiedades de metadatos establecidas en true None

Se aplica a

Consulte también