Verwendet Direct2D Backpuffer?

  • Lesen http://blogs.msdn.com/b/directx/archive/2009/09/29/comparing-direct2d-and-gdi.aspx :

    < blockquote>

    Präsentationsmodell

    Als Windows zum ersten Mal entworfen wurde, war nicht genügend Arbeitsspeicher vorhanden, um jedes Fenster speichern zu können eine eigene Bitmap. Daher wurde GDI immer logisch direkt auf dem Bildschirm gerendert. Verschiedene Clipping-Bereiche wurden angewendet, um sicherzustellen, dass nicht außerhalb des Fensters gerendert wurde. Im Vertrag folgt Direct2D einem Modell , bei dem die Anwendung in einem Back-Puffer dargestellt wird und das Ergebnis atomar "umgedreht" wird, wenn die Anwendung fertig gezeichnet ist. Mit diesem kann Direct2D Animationsszenarien viel fließender verarbeiten als GDI .

    Der Autor sagt, Direct2D verwendet back2. Puffer und mit "Flips" meinte er wohl Swap-Chain. Ich habe eine einfache Demo erstellt, die per Mausklick ein Rechteck an einer beliebigen Stelle zeichnet. Vorherige Rechtecke werden jedoch nicht gelöscht, so dass sie direkt auf den Bildschirm gezeichnet werden und keinen Back-Buffer verwenden.

    20 June 2011
    Alice
3 answers
  • Wenn Sie das RenderTarget für Ihre Direct2D-Vorgänge initialisieren, können Sie im zweiten Parameter die Option D2D1_PRESENT_OPTIONS angeben.

    Ich denke, was Sie verwirrt, ist der D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS und die Tatsache, dass der Puffer nicht vertauscht, sondern kopiert wird.

    11 February 2012
    Lothar
  • Direct2D verwendet in der Tat Backpuffer.

    Möglicherweise haben Sie vergessen, Ihr Renderziel zu löschen, bei dem es sich um den Backpuffer handelt dort geblieben?

    29 July 2011
    Zee
  • Das widerlegt nicht das Vorhandensein von Backpuffern, es bedeutet nur, dass der Backpuffer zwischen Neuzeichnungen nicht gelöscht wird. Richtige Beobachtung, falsche Schlussfolgerung!

    Wenn Sie die Anzahl der Back-Puffer in der Kette erhöhen, werden Sie flackernde Rechtecke bemerken, wenn Sie mit der Maus klicken, und Sie sollten daher immer die Option löschen Backpuffer zwischen Neuzeichnen.

    20 June 2011
    Blindy