Hardware-Pinsel werden für beschleunigte Hardwarezeichnungen in Verbindung mit einem Hardware-Doppelpuffer
verwendet. Um einen Hardware-Pinsel zu erstellen, setzen Sie einfach bei den Befehlen LoadBrush() oder
@BRUSH den Tag Hardware
auf True
. Alternativ können Sie auch von einem normalen Pinsel
einen Hardware-Pinsel erstellen, indem Sie CopyBrush() benutzen und bei diesem Befehl den
Tag Hardware
auf True
setzen. Um herauszufinden, ob ein Hardware-Pinsel erfolgreich erstellt
wurde, können Sie den Befehl GetAttribute() mit dem Attribut #ATTRHARDWARE
aufrufen.
Beachten Sie, dass dieses Attribut False
zurückgeben kann, auch wenn der Tag Hardware
auf True
gesetzt wurde. Nicht alle Systeme unterstützen Hardware-Pinsel. Wenn Hollywood auf
einem System ohne Hardware-Pinsel Unterstützung läuft, wird stattdessen ein Softwarepinsel erstellt.
Der Vorteil der Hardware-Pinsel ist, dass sie vollständig in dem Videospeicher gesichert
sind und können somit sehr schnell dargestellt werden. Allerdings können Hardware-Pinsel
nichts anderes, als nur in den hardwarebeschleunigte Doppelpuffer gezeichnet zu werden.
Deshalb arbeiten fast alle Befehle der Pinsel-Bibliothek nicht mit Hardware-Pinseln.
Wenn Sie einen Hardware-Pinsel ändern möchten, müssen Sie aus ihm zunächst einen Softwarepinsel
erstellen. Diesen Softwarepinsel ändern Sie und wandeln ihn dann wieder in einen Hardware-Pinsel
um. Sie können einen hardwarebeschleunigten Doppelpuffer erstellen, indem Sie beim Befehl
BeginDoubleBuffer() das erste Argument auf True
setzen. Siehe BeginDoubleBuffer für Details.
Denken Sie daran, dass Sie nur unter Verwendung von Hardware-Pinsel auf hardwarebeschleunigte Doppelpuffer zeichnen sollten. Alle anderen Zeichnungsbefehle sind viel langsamer! Nur durch verwenden von Hardware-Pinsel können Sie eine vollständige hardwarebeschleunigte Zeichnung erhalten. Benutzen Sie normale Zeichnungsbefehle mit einem Hardware-Doppelpuffer, kann er sogar langsamer sein, als wenn Sie einen Software-Doppelpuffer gebrauchen. Dies ist insbesondere bei Grafiken der Fall, die einen Alphakanal verwenden, wie z.B. Antialias-Text oder Vektorformen, weil das Lesen der Daten aus dem Videospeicher sehr langsam ist. Daher sollten Sie versuchen, Hardware-Pinsel wo auch immer möglich zu verwenden, wenn Sie mit einem Hardware-Doppelpuffer arbeiten.
Auf einigen Systemen (z.B. AmigaOS 4.1) bieten die Befehle ScaleBrush(), RotateBrush() und TransformBrush()
sowie die Standard-Tags zum Zeichnen für on-the-fly Bildbearbeitung (z.B. ScaleX
und ScaleY
)
beschleunigte Hardwareunterstützung für Hardware-Pinsel. In diesem Fall ist das Skalieren
und Transformieren von Pinseln extrem schneller als im Softwaremodus (insbesondere für
antialiased Transformationen).
Standardmäßig werden die Hardware-Pinsel nur auf AmigaOS und Android unterstützt. Ab Hollywood 6.0 jedoch können Plugins benutzt werden, die ein Display-Adaptermodul für Grafikkarten installieren können und so auch Hardware-Pinsel unterstützen. In diesem Fall können Sie auch Hardware-Pinsel auf anderen Systemen als AmigaOS und Android verwenden. Zum Beispiel können die Plugins GL Galore und RebelSDL Hardware-Pinsel und hardwarebeschleunigte Doppelpuffer unter Windows, macOS und Linux verwenden.
Hardware-Pinsel können auch Display abhängig sein. Dies bedeutet, dass sie nur auf dem Display
dargestellt werden, das verwendet wurde. Dies ist häufig der Fall, wenn Display-Adaptermodule
benutzerdefinierte Displays von Plugins zur Verfügung stellen. Hollywoods eingebaute
Hardware-Pinsel für AmigaOS und Android sind jedoch nicht Display abhängig und können auf jedem Display
gezeichnet werden, die derzeit geöffnet sind. Um einen displayabhängigen Hardware-Pinsel
zuzuweisen, müssen Sie die ID des Displays übergeben, die die Hardware-Pinsel über den Tag
Display
der Befehle LoadBrush(), @BRUSH oder CopyBrush() erhalten. Beachten Sie, dass alle
displayabhängigen Hardware-Pinsel automatisch von Hollywood freigegeben werden, wenn das
zugehörige Display geschlossen wird.