Wenn Sie True
an den Befehl sdl.EnableOffscreenRender() übergeben,
können alle nach diesem Befehl erstellten Hardwarepinsel mit dem Befehl
SelectBrush()
von Hollywood gezeichnet werden. Diese Zeichenoperationen
können auch hardwarebeschleunigt werden, was ihnen einen Vorteil gegenüber
den standardmäßigen Zeichenroutinen von Hollywood gibt, die nur auf Softwarepinsel
zurückgreifen können.
Es gibt jedoch eine wichtige Einschränkung, die Sie beachten sollten:
Hardwarepinsel, die mit SelectBrush()
gezeichnet werden können, verlieren
ihren Inhalt unter Windows, wenn die Fenstergröße oder der Anzeigemodus
des Fensters geändert wird, z.B. vom Vollbild- zum Fenstermodus oder
umgekehrt. Die Verwendung von Hardwarepinseln, die wirklich gezeichnet werden
können, ist daher nur dann sinnvoll, wenn Sie sie bei jedem Bild aktualisieren
und bei jeder Änderung der Fenstergröße oder des Anzeigemodus
neu initialisieren können. Wenn Ihr Skript das nicht kann, werden Sie in
Schwierigkeiten geraten. Wegen dieser Einschränkung ist es auch dringend
ratsam, das Argument bei sdl.EnableOffscreenRender() auf False
zu
setzen, unmittelbar nachdem Sie die Hardwarepinsel erstellt haben, die Sie
für das Offscreen-Zeichnen verwenden möchten. Andernfalls werden alle
Hardwarepinsel, die anschließend erstellt werden, auch für das
Offscreen-Zeichnen vorbereitet und unterliegen daher den oben
beschriebenen Einschränkungen.
Hinweis: Um die Hardwarebeschleunigung beim Offscreen-Zeichnen zu verwenden, müssen Sie die gleichen Regeln befolgen wie beim Zeichnen in einen Hardware-Doppelpuffer. Nur wenige Grafikoperationen werden hardwarebeschleunigt. Siehe Zeichnen von Grafiken für Details.
Es ist auch wichtig zu beachten, dass die verschiedenen von SelectBrush()
unterstützten Kombinationsmodi nicht mit RebelSDL funktionieren. Stattdessen
werden Grafiken immer auf die Farbe und den Alphakanal des Hardwarepinsels
gezeichnet, unabhängig davon, welchen Modus Sie angeben. Außerdem können Sie
SelectMask()
oder SelectAlphaChannel()
nicht mit Hardwarepinseln verwenden.
Es ist nur möglich, mit SelectBrush()
gleichzeitig in
Farb- und Alphakanäle zu zeichnen.