SelectBrush(id[, mode, combomode])
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().
#SELMODE_NORMAL
oder #SELMODE_COMBO
sein; voreingestellt
ist #SELMODE_NORMAL
(V4.5)#SELMODE_COMBO
aktiv ist, kann
0,1 oder 2 eingesetzt werden (siehe oben); voreingestellt ist 0 (V5.0)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.