3.4 Grafik zeichnen

Um eine optimale Leistung zu erzielen, müssen Sie beim Zeichnen Ihrer Grafiken sehr vorsichtig sein. Die meisten von Hollywoods Zeichenbefehlen sind nur in der Software implementiert, d.h. Sie zeichnen mit der CPU statt mit der GPU. Dies kann insbesondere bei langsameren CPUs zu einem Engpass werden. Daher sollten Sie direkt und jederzeit mit den von GL Galore angebotenen OpenGL-Befehlen zeichnen.

Dennoch gibt es einige Hollywood-Befehle, die direkt auf OpenGL umgeleitet werden, wenn GL Galore aktiviert wurde. Dies sind die folgenden:

 
Box()
Cls()
Line()
Plot()
DisplayBrush()

Sie können diese Befehle mit OpenGL ohne Leistungseinbußen verwenden. Es gibt jedoch einige Einschränkungen: Box(), Line() und WritePixel() werden nur dann zu OpenGL umgeleitet, wenn der Füllstil entweder #FILLNONE oder #FILLCOLOR ist und keine anderen Formstile wie #EDGE oder #SHADOW aktiv sind. Sobald Sie mit anderen Füll- oder Formstilen zeichnen möchten, greifen diese Befehle auf ihre Software-Gegenstücke zurück und sind daher sehr langsam.

DisplayBrush() verwendet OpenGL nur direkt, wenn es mit einem Hardwarepinsel aufgerufen wird. Siehe Verwenden von Hardwarepinseln für Details. Wenn DisplayBrush() mit einem Software-Pinsel verwendet wird, d.h. einem Pinsel, der sich nicht im Videospeicher befindet, zeichnet er den Pinsel mit der viel langsameren CPU.

Beim Mischen von Hollywood- und OpenGL-Zeichnungsbefehlen gibt es jedoch ein weiteres potenzielles Problem, das Sie beachten müssen: Da OpenGL mit Zuständen arbeitet, können Änderungen am GL-Status, die von einem der Zeichnungsbefehle Hollywoods vorgenommen werden, nachfolgende Aufrufe von OpenGL-Befehlen beeinflussen. So kann es sein, dass Sie nach dem Aufruf eines Hollywood-Befehls, der auf OpenGL umgeleitet wird, bestimmte Zustände wiederherstellen müssen, z.B. die aktuelle Farbe, Transformationsmatrix, Matrixmodus, Texturierung oder Einblendung wieder aktivieren, etc. Dies kann sehr mühsam werden, so dass es oft einfacher ist, nur OpenGL-Befehle zu verwenden, um nicht nach dem Aufruf von Hollywood-Befehlen Zustände wiederherstellen zu müssen.

Vergessen Sie schließlich nicht, dass Sie alle Ihre Zeichnung in einer Hardware-Doppelpufferschleife erstellen sollten. Siehe Verwendung eines Hardware-Doppelpuffers für Details.


Navigation zeigen