Bezeichnung
SelectBrush -- wählt einen Pinsel als Ausgabeziel (V1.5)
Übersicht
SelectBrush(id[, mode, combomode])
Beschreibung
Dieser Befehl selektiert den in id angegebenen Pinsel als aktuelles Ziel für Ausgaben. Das bedeutet, dass alle Grafikdaten, die Hollywood ausgibt, in diesem Pinsel landen.

Das optionale Argument mode ist standardmäßig auf #SELMODE_NORMAL gesetzt, was bedeutet, dass nur die Farbkanäle des Pinsels geändert werden. Der Transparenzkanal des Pinsels (kann entweder eine Maske oder ein Alphakanal sein) wird nie verändert werden. Wenn Sie hingegen beim optionalen Argument mode #SELMODE_COMBO angeben, werden alle Grafikbefehle von Hollywood, welche nach SelectBrush() aufgerufen werden, in den Farb- und Transparenzkanal des Pinsels zeichnen. Wenn der Pinsel keinen Transparenzkanal hat, verhält sich #SELMODE_COMBO gleich wie #SELMODE_NORMAL.

Ab Hollywood 5.0 können Sie das optionale Argument combomode verwenden, um festzulegen, wie sich #SELMODE_COMBO verhalten soll. Wenn combomode auf 0 gesetzt ist, werden die Farb- und Transparenzinformation aller Pixel in dem Quellenbild in jedem Fall zu dem Zielbild kopiert, selbst wenn die Pixel unsichtbar sind. Dies ist auch voreingestellt. Wenn combomode hingegen auf 1 gesetzt ist, werden nur die sichtbaren Pixel in das Zielbild kopiert. Dies bedeutet, dass, wenn der Alphawert eines Pixels in dem Quellenbild 0 ist (unsichtbar), wird es nicht in das Zielbild kopiert werden.

Ab Hollywood 6.0 steht der neue combomode 2 zur Verfügung. Wenn Sie 2 in combomode übergeben, wird Hollywood die Farbkanäle und Alphakanal des Quellbildes mit der Farbe und Alpha der Zielbildkanäle mischen. Wenn Sie später das Zielbild zeichnen, wird es so aussehen, als ob ein Bild hintereinander auf das jeweils andere gezeichnet wurde. Bitte beachten Sie, dass das Argument combomode nur zusammen mit #SELMODE_COMBO unterstützt wird. Es hat keine Wirkung, wenn sie es mit den anderen Modi verwenden.

Ein alternativer Weg in die Transparenzkanäle eines Pinsels zu zeichnen, ist dies separat mit den Befehlen SelectMask() oder SelectAlphaChannel() zu erledigen. Diese beiden Befehle werden jedoch die Schreibdaten nur auf den Transparenzkanal anwenden. Sie werden den Farbkanal nicht ändern. Also, wenn Sie beide Kanäle (Farbe und Transparenz) ändern wollen, müssen Sie SelectBrush() mit mode #SELMODE_COMBO verwenden.

Wenn Sie mit dem ändern des Pinsels fertig sind und möchten, dass Ihr Display wieder das Ausgabeziel wird, rufen Sie einfach den Befehl EndSelect() auf.

Während SelectBrush() aktiv ist, ist es verboten, Befehle aufzurufen, welche die Abmessungen des Pinsels ändern, der derzeit als Ausgabepinsel verwendet wird. Z.B. können Sie Den Befehl ScaleBrush() nicht verwenden, um diesen Pinsel, zu skalieren.

Nur Befehle von Hollywood können verwendet werden, welche Grafiken direkt zeichnen, wenn SelectBrush() aktiv ist. Sie können keine animierten Befehle wie MoveBrush() oder DisplayBrushFX() aufrufen, während SelectBrush() aktiv ist.

Siehe auch EndSelect(), SelectAlphaChannel(), SelectMask(), SelectLayer(), SelectBGPic() und SelectAnim().

Eingaben
id
Pinsel, der als Ausgabeziel verwendet werden soll
mode
optional: Darstellungsmodus (siehe oben); dies kann entweder #SELMODE_NORMAL oder #SELMODE_COMBO sein; voreingestellt ist #SELMODE_NORMAL (V4.5)
combomode
optional: Wenn #SELMODE_COMBO aktiv ist, kann 0,1 oder 2 eingesetzt werden (siehe oben); voreingestellt ist 0 (V5.0)
Beispiel
CreateBrush(1, 320, 256)
SelectBrush(1)
SetFillStyle(#FILLCOLOR)
Box(0, 0, 320, 256, #RED)
EndSelect()
MoveBrush(1, #CENTER, #BOTTOMOUT, #CENTER, #TOPOUT, 10)
Der obige Code erzeugt einen 320x256 großen Pinsel, zieht ein rotes Rechteck hinein und rollt dann das Rechteck auf dem Bildschirm. Dies ist ein sehr abstraktes Beispiel. Sie können natürlich viel mehr mit diesem Befehl bewirken. Werfen Sie einen Blick auf die Beispiele, welche mit der Hollywood-Distribution mitgeliefert werden. Sie nutzen SelectBrush() in fortgeschritteneren Kontexten.

Navigation zeigen