Routinensammlung und Gewusst-wie für Mikrocontroller

Vollgrafik

Mit dem Aufkommen vollgrafischer Displays entsteht der Wunsch nach einer richtigen Grafikausgabe. Aber wie zeichnet man eine schräge Linie, ein Polygon, einen Kreis? Wie werden Figuren gefüllt, ohne dass beim lahmen FloodFill der Stack überläuft? Möglichst mit Schraffur? Wie macht man zweckmäßig Schriften in verschiedenen Größen, Formen und Schreibrichtungen?

Mit einem MSP430 und gcc (Gnu-C-Compiler) habe ich solche Routinen zusammengestellt. [Kommt noch.]

Grundlagen

[zu tun]

Rasteroperationskodes (ROPs)

Für die Verknüpfung von Zeichenfläche und neuen Pixeln wurden die logischen Rasteroperationskodes ersonnen. Die gängigsten Operationen sind CopyPut (Pixel setzen) und XorPut (Pixel setzen, wo keins ist, wegnehmen, wo eins ist). Es gibt jedoch weitaus mehr Verknüpfungsmöglichkeiten (16 an der Zahl).

Die Operationen sind auch auf farbige Displays anwendbar. Dann ergibt ein XorPut eines blauen Pixels auf einer weißen Zeichenfläche ein gelbes Pixel. (Üblicherweise ist Weiß = alle Bits gesetzt, Schwarz = alle Bits gelöscht.) Gelb XOR Blau ergibt wieder Weiß, sodass auch hier eine 2x gezeichnete Grafik verschwindet.

Bei der Verknüpfung von Zeichenfläche (D Destination), Füllmuster (P Pattern) und einem Bitmap-Bild (S Source) kommen sog. ternäre Rasteroperationskodes zum Einsatz, dabei gibt es 256 Kodes.

Oben genannte binäre und ternäre ROPs kommen unter Windows zum Einsatz und sind auch eine solide Basis für Mikrocontroller.

Daneben gibt es noch arithmetische Rasteroperationskodes, die praktisch nur mit True-Color-Farbdisplays anwendbar sind, wie Aufhellung, Kontrastverringerung usw. (jeweils mit Überlauf oder Sättigung). Sie kommen für Mikrocontroller kaum in Betracht.