3.5 Offscreen-Wiedergabe

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, 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.


Navigation zeigen