Die vielen Aufrufe von FillRect machen das ganze natürlich nicht gerade schnell.
Zudem müssen bei der gewählten Vorgehensweise jedes Mal beim Zeichnen die Zeichenobjekte neu erstellt werden. Ich würde hier eher die zweite Variante aus der Dokumentation wählen, das sollte schneller sein:
http://docwiki.embarcadero.com/RADSt...henfl%C3%A4che
Außerdem ist Antialiasing standardmäßig an, wird hier aber gar nicht benötigt. Das zu deaktivieren sollte das ganze mehr als doppelt so schnell machen, je nach Grafikkarte. Dafür reicht vor dem BeginDraw:
Delphi-Quellcode:
Drawer.Canvas.RenderTarget.SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
...