Stell Dir vor, Du erzeugst ein grünes Rechteck, welches 10 Pixel breit und 5 Pixel vom linken Rand entfernt ist. Die Hintergrundfarbe ist rot. Dann gilt:
RrrrrGgggggggggRrrrrr....
R = Rot wird gesetzt, r = rot wird gehalten, G = Grün wird gesetzt, g = grün wird gehalten
Wenn man jetzt ein blaues Rechteck der Breite 4 mittig über das grüne Rechteck legt, so daß sowohl links als auch rechts ein grüner Rand entsteht, sieht das so aus:
RrrrrGggBbbbGggRrrrrr....
Jetzt das Problem: Woher weiß die Malroutine, daß am rechten Rand des blauen Rechtecks die Farbe wieder auf Grün gesetzt werden soll?
Hinweis am Rande: Wenn man sich mal Anzeigen von 3d-Spielen anguckt, stellt man fest, daß die meisten Polygone in ihrer horizontalen Breite bezogen auf eine Y-Zeile eher schmal sind (deutlichstes Beispiel: "Virus" oder "Zeewolf"). Wirklich breite Polygone entstehen nur dann, wenn sich Objekte sehr nah an der Kamera (dem Spieler) befinden, was jedoch nicht der Normalfall ist. Nun läßt sich beim Amiga und noch mehr beim AtariST eine kurze horizontale Linie sehr schnell mit dem Prozessor malen, schneller sogar, als wenn man dafür extra den Blitter anschmeißen würde. Bei Deinem System müßte man hingegen pro Zeile so eine Art Liste bereitstellen, die festhält, von welcher X-Koordinate an eine bestimmte Farbe gesetzt wurde. Daraufhin würde das Programm diese Liste durchsuchen, seinen linken X-Wert eintragen und alle X-Koordinaten, die sich zwischen dem linken und rechten Rand befinden, löschen und die zuletzt genannte Farbe zur Bestimmung des neuen rechten Randes nehmen. Dieses Verfahren ist denkbar, aber es dürfte viel mehr Zeit kosten, als eine (kurze) horizontale Linie direkt in die Bitmap zu plotten.