RebelSDL unterstützt die Erstellung von Hardwarepinseln. Hardwarepinsel
befinden sich im GPU-Speicher und können somit in kürzester Zeit gezeichnet
werden. Auf den meisten Grafikkarten können sie auch sehr effizient von der
GPU skaliert und transformiert werden. Damit Hollywood einen Hardwarepinsel
erstellt, müssen Sie lediglich den optionalen Hardware-Tag
auf True
setzen.
Dieser Tag wird von den meisten Hollywood-Befehlen unterstützt, die Pinsel
erstellen.
Hier ist ein Beispiel:
@REQUIRE "rebelsdl" ; Muss die erste Zeile sein @BRUSH 1, "sprites.png", {Hardware = True} |
Im obigen Code erstellt RebelSDL den Pinsel 1 im Videospeicher. Er kann dann fast ohne Aufwand mit der GPU gezeichnet werden. Beachten Sie jedoch, dass Hardwarepinsel nur auf Hardware-Doppelpuffer gezeichnet werden können. Siehe Verwendung eines Hardware-Doppelpuffers für Details.
Um einen Hardwarepinsel zu transformieren, können Sie die Befehle
ScaleBrush()
, RotateBrush()
und TransformBrush()
verwenden.
Transformationen von Hardwarepinseln sind in der Regel auch
GPU-beschleunigt und damit um ein Vielfaches schneller als die
von der CPU durchgeführten Transformationen.
Beachten Sie, dass Hardwarepinsel nur auf dem Display gezeichnet werden kann, welches bei der Zuweisung angegeben wurde. Wenn Ihr Skript also mehrere Displays verwendet, müssen Sie Hollywood den Identifikator des Displays mitteilen, mit dem Sie diesen Hardwarepinsel verwenden möchten. Dies kann durch Angabe des Tags "Display" nach dem Tag "Hardware" erfolgen. Hier ist ein Beispiel:
@REQUIRE "rebelsdl" ; Muss die erste Zeile sein @DISPLAY 1, {Title = "First display"} @DISPLAY 2, {Title = "Second display"} @BRUSH 1, "sprites.png", {Hardware = True, Display = 1} @BRUSH 2, "sprites.png", {Hardware = True, Display = 2} |
Der obige Code wird den Pinsel 1 so zuweisen, dass er auf dem Display 1 gezeichnet werden kann und er wird den Pinsel 2 so zuweisen, dass er auf dem Display 2 gezeichnet werden kann. Es ist jedoch nicht möglich, den Pinsel 2 auf dem Display 1 zu zeichnen oder Pinsel 1 auf dem Display 2 anzuzeigen! RebelSDL-Hardwarepinsel sind immer Displayabhängig und können nur auf dem Display gezeichnet werden, für den sie zugewiesen wurden.
Weitere Informationen zu Hardwarepinseln und Hardware-Doppelpuffern finden Sie im Hollywood-Handbuch.
Sie können RebelSDL auch als Hilfs-Plugin verwenden, um unter Windows, macOS und Linux Hardwarepinsel-Unterstützung für Hollywood hinzuzufügen. Standardmäßig unterstützt Hollywood keine Hardwarepinsel auf diesen Systemen, aber RebelSDL kann diese Funktion zu Hollywood hinzufügen. Siehe RebelSDL als Hilfs-Plugin für Details.
Das Beispielskript SmoothScroll.hws
, das mit RebelSDL ausgeliefert
wird, demonstriert die Verwendung von Hardwarepinseln und einem
Hardware-Doppelpuffer, um ein butterweiches Scrollen zu erreichen, welches
vollständig mit der vertikalen Aktualisierung des Monitors synchronisiert ist.