3.3 Zeichnen von Grafiken

Um eine optimale Leistung zu erzielen, müssen Sie beim Zeichnen Ihrer Grafiken sehr vorsichtig sein. Die meisten von Hollywoods Zeichenbefehlen sind nur in 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 wissen, welche Zeichenfunktionen hardwarebeschleunigt sind und welche nicht und schreiben Ihre Skripte entsprechend.

Die folgenden Hollywood-Befehle werden hardwarebeschleunigt, wenn RebelSDL aktiv ist und sie in einem Hardware-Doppelpuffer verwendet werden:

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

DisplayBrush() wird die Hardwarebeschleunigung nur verwenden, wenn er mit einem Hardwarepinsel aufgerufen wird. Siehe Verwendung 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 CPU, die viel langsamer ist.

Box(), Line() und WritePixel() werden nur Hardwarebeschleunigung verwenden, 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 ihr Software-Pendant zurück und sind daher sehr langsam. Sie können dieses Problem umgehen, indem Sie zuerst die Grafiken in einem Hardwarepinsel gestalten und dann nur diesen Hardwarepinsel zeichnen. Dies ist eine gute Strategie, da Hollywoods Software-Wiedergabe nur einmal verwendet wird, d.h. wenn die Grafiken in einen Hardwarepinsel gezeichnet werden. Danach profitieren Sie immer von der Hardwarebeschleunigung, da Hardwarepinsel wirklich schnell gezeichnet werden können.

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


Navigation zeigen