D3DImage.IsFrontBufferAvailable Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém um valor que indica se existe um front buffer.
public:
property bool IsFrontBufferAvailable { bool get(); };
public bool IsFrontBufferAvailable { get; }
member this.IsFrontBufferAvailable : bool
Public ReadOnly Property IsFrontBufferAvailable As Boolean
Valor de Propriedade
true se existir um buffer frontal; caso contrário, false.
Exemplos
O seguinte exemplo de código mostra como verificar a IsFrontBufferAvailable propriedade ao renderizar o alvo de composição. Para obter mais informações, consulte Passo a passo: Hospedando 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;
}
}
}
Observações
Ocasionalmente, o buffer frontal fica indisponível. Essa falta de disponibilidade pode ser causada por bloqueio de tela, aplicativos Direct3D exclusivos em tela cheia, troca de usuário ou outras atividades do sistema. Quando isso ocorre, a sua aplicação WPF é notificada ao manipular o evento IsFrontBufferAvailableChanged. A forma como seu aplicativo responde à indisponibilidade do buffer frontal depende se o WPF está habilitado para retornar à renderização de software. O SetBackBuffer método tem uma sobrecarga que usa um parâmetro que especifica se o WPF retorna à renderização de software. Para obter mais informações, consulte as observações na classe D3DImage.
Informação de Propriedade de Dependência
| Número | valor |
|---|---|
| Campo identificador | IsFrontBufferAvailableProperty |
Propriedades dos metadados definidas como true |
None |