| Zeile 118: | Zeile 118: | ||
</c> | </c> | ||
| − | == Kopieren von Teilen des Bildschirms und des Offscreen Buffers == | + | === Kopieren von Teilen des Bildschirms und des Offscreen Buffers === |
<c> | <c> | ||
| Zeile 170: | Zeile 170: | ||
</c> | </c> | ||
| + | |||
| + | === Text zeichnen === | ||
| + | Zur Anwendung der verschiedenen Raster Ops noch ein kleines Beispiel: Wir wollen einen Buchstaben auf den Bildschirm zeichnen, dabei wollen wir *nicht* die Grafik zerstören, die unter dem Buchstaben liegt, sondern ihn mit Transparenz zeichnen. Dazu erstellen wir eine invertierte Maske (Buchstabe schwarz) und ein Bitmap mit dem Buchstaben in der gewünschten Farbe. | ||
| + | |||
| + | Dann zeichnen wir zuerst die Maske mit dem Rop "and", sodass die schwarzen Bereiche (der Buchstabe selbst) im Framebuffer ebenfalls schwarz werden. | ||
| + | Im zweiten Schritt zeichnen wir das farbige Bitmap mit dem Rop "or", sodass die vorher geschwärzten Bereiche mit der Farbe gefüllt werden. Wichtig ist, dass Maske und Bitmap von der Form her natürlich übereinstimmen. ^^ | ||
== Hardware-Cursor == | == Hardware-Cursor == | ||
== Links == | == Links == | ||
| − | http://www.koders.com/c/fidC2D0E7B95D33763B17521DF3EA7B68C81D500CAD.aspx Code aus Qemu | + | * http://www.koders.com/c/fidC2D0E7B95D33763B17521DF3EA7B68C81D500CAD.aspx Code aus Qemu |
| − | http://cgit.freedesktop.org/xorg/driver/xf86-video-cirrus/ Xorg-Treiber | + | * http://cgit.freedesktop.org/xorg/driver/xf86-video-cirrus/ Xorg-Treiber |
[[Category:Hardware]] | [[Category:Hardware]] | ||