Bezeichnung
gl.PolygonStipple -- setzt das Polygon-Punktemuster
Übersicht
gl.PolygonStipple(maskArray)
Beschreibung
Das Polygon-Punktieren, wie das Linien-Punktieren (siehe gl.LineStipple()), maskiert bestimmte durch die Rasterung erzeugte Fragmente und erzeugt ein Muster. Das Punktieren ist unabhängig von der Polygon-Antialiasing-Funktion.

maskArray ist eine Tabelle mit einem 32*32 Punktemuster, das als monochrome Bitmap gespeichert ist und nur 1 Bit pro Pixel verwendet. Die Bitmap wird in einer Tabelle übergeben, die aus Teilen von 8 Pixeln besteht, die in ein Byte gepackt sind. Für ein 32*32 Punktemuster müssen Sie also eine Tabelle übergeben, die 128 Byte-Elemente mit jeweils 8 Pixeln enthält. Dies kann entweder eine eindimensionale Tabelle mit 128 Byte-Einträgen oder eine zweidimensionale Tabelle mit 32 Untertabellen mit je 4 Byte-Einträgen sein (diese 4 Byte-Einträge beschreiben eine Zeile von je 32 Pixeln). Die Daten werden in einem zusammenhängenden Speicherblock ohne Ausfüllung oder spezielle Ausrichtungen an GL übergeben, so dass keine exotischen Einstellungen mit gl.PixelStore() vorgenommen werden. Sie sind aktiv, da gl.PolygonStipple() erwartet, dass die Musterdaten im Speicher gespeichert werden, genau wie die Pixeldaten, die an gl.DrawPixels() geliefert werden mit Höhe und Breite gleich 32, einem Pixelformat von #GL_COLOR_INDEX und Datentyp von #GL_BITMAP. Das heißt, das Punktmuster wird als 32x32-Feld von 1-Bit-Farbindizes dargestellt, die in unsignierten Bytes gepackt sind. gl.PixelStore() Parameter wie #GL_UNPACK_SWAP_BYTES und #GL_UNPACK_LSB_FIRST beeinflussen die Zusammensetzung der Bits zu einem Punktmuster. Pixelübertragungsvorgänge (Shift, Versatz, Pixel-Map) werden nicht auf das Punktbild angewendet.

Um das Polygon-Punktieren zu aktivieren und zu deaktivieren, rufen Sie gl.Enable() und gl.Disable() mit dem Argument #GL_POLYGON_STIPPLE auf. Das Punktieren von Polygonen ist zunächst deaktiviert. Wenn es aktiviert ist, wird ein gerastertes Polygonfragment mit den Fensterkoordinaten xw und yw an die nächste Stufe von GL gesendet, wenn und nur wenn das (xw%32)-te Bit in der (yw%32)-ten Zeile des Punktemusters 1 (eins) ist. Wenn das Polygon-Punktieren deaktiviert ist, ist es so, als ob das Punktemuster aus allen 1's besteht.

Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.

Eingaben
maskArray
gibt eine Tabelle an, die ein 32x32-Punktemuster enthält
Fehler
#GL_INVALID_OPERATION wird erzeugt, wenn gl.PolygonStipple() zwischen gl.Begin() und gl.End() ausgeführt wird.

Verbundene get-operationen
gl.GetPolygonStipple()

gl.IsEnabled() mit dem Argument #GL_POLYGON_STIPPLE


Navigation zeigen