Поделиться через


D3DImage.IsFrontBufferAvailable Свойство

Определение

Возвращает значение, указывающее, существует ли передний буфер.

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

Значение свойства

true Значение , если существует передний буфер; falseв противном случае .

Примеры

В следующем примере кода показано, как проверить IsFrontBufferAvailable свойство при отрисовке целевого объекта композиции. Дополнительные сведения см. в пошаговом руководстве. Размещение содержимого Direct3D9 в 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;
        }
    }
}

Комментарии

Иногда передний буфер становится недоступным. Это отсутствие доступности может быть вызвано блокировкой экрана, полноэкранными эксклюзивными приложениями Direct3D, переключением пользователей или другими системными действиями. При этом приложение WPF уведомляется об этом событии IsFrontBufferAvailableChanged . Как приложение реагирует на внешний буфер, становится недоступным, зависит от того, включен ли WPF, чтобы вернуться к отрисовке программного обеспечения. Метод SetBackBuffer имеет перегрузку, которая принимает параметр, указывающий, возвращается ли WPF к отрисовке программного обеспечения. Дополнительные сведения см. в примечаниях в D3DImage классе.

Сведения о свойстве зависимостей

Элемент Ценность
Поле идентификатора IsFrontBufferAvailableProperty
Свойства метаданных, равные свойству true Нет

Применяется к

См. также раздел