3.4 Verwendung von Hardwarepinseln

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.


Navigation zeigen