Compartilhar via


D3DImage.IsFrontBufferAvailable Propriedade

Definição

Obtém um valor que indica se existe um buffer frontal.

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

Valor da propriedade

true se houver um buffer frontal; caso contrário, false.

Exemplos

O exemplo de código a seguir mostra como verificar a IsFrontBufferAvailable propriedade ao renderizar o destino de composição. Para obter mais informações, consulte Passo a passo: hospedagem de conteúdo Direct3D9 no 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;
        }
    }
}

Comentários

Ocasionalmente, o buffer frontal fica indisponível. Essa falta de disponibilidade pode ser causada pelo bloqueio de tela, aplicativos Direct3D exclusivos em tela inteira, alternância de usuário ou outras atividades do sistema. Quando isso ocorre, seu aplicativo WPF é notificado manipulando o IsFrontBufferAvailableChanged evento. A maneira como seu aplicativo responde ao buffer frontal ficando indisponível depende se o WPF está habilitado para fazer fallback para a renderização de software. O SetBackBuffer método tem uma sobrecarga que usa um parâmetro que especifica se o WPF volta à renderização de software. Para obter mais informações, consulte as observações na classe D3DImage.

Informações da propriedade Dependency

Item Valor
Campo identificador IsFrontBufferAvailableProperty
Propriedades de metadados definidas como true Nenhum

Aplica-se a

Confira também