next up previous contents
Next: Attribute für Flächen Up: 7.3 Darstellungsmodul Previous: 7.3.4 Implementation des Tiefensortieralgorithmus

7.3.5 Graphische Gestaltungsmittel

 

Die graphische Ausgabe kann pro Element mittels verschiedener Attribute beeinflußt werden.

Bei der Entscheidung, in welcher Form die Attribute bei der Ausgabe angegeben werden, wurde Rücksicht auf eine optimale Anpassung an den XWindow-Treiber genommen. Das XWindow-System arbeitet mit sogenannten ,, graphics contexts`` (GCs). Jeder solche Graphikmodus stellt einen vollständigen Satz von Zeichenattributen dar. Die Graphikmodi werden idealerweise zu Beginn definiert. Beim Aufruf der XWindow-Zeichenfunktionen wird nur die Bezeichung eines Modus angegeben, um die gewünschten Attribute auszuwählen.

Für den PED konnten diese Modi aus zwei Gründen nicht einfach übernommen werden. Zum ersten sieht er Gestaltungsmittel vor, die in den graphics contexts nicht implementiert sind (Punktform). Zum zweiten muß es möglich sein, zur Laufzeit den Gerätetreiber zu wechseln, ohne die Identifizierungen der Kontexte im Darstellungsmodul zu ändern. Die XWindow-Modi sind aber Zeiger auf geräteabhängige Strukturen.

Die Lösung besteht darin, die Kontexte nicht mittels Zeiger, sondern durch Nummern auszuwählen. Im Treiber wird die Nummer als Index in ein Feld von Kontextbeschreibungen interpretiert. Dies bedeutet nur einen marginalen Laufzeitzuwachs, da kein Suchen nötig ist. Diese Nummern werden Graphikmodi (pen) genannt. In der Verantwortung des Darstellungsmoduls liegt es, den Treibern die benötigte Anzahl an Graphikmodi mitzuteilen und diese nach den Erfordernissen der folgenden Zeichenbefehle zu konfigurieren.

Damit beim Umschalten auf ein anderes Ausgabegerät nicht die an verschiedenen Stellen stattfindenden Graphikmodus-Definitionen wiederholt werden müssen, führt das Darstellungsmodul Buch über ihre aktuellen Einstellungen.

Bei Aufruf einer Zeichenfunktion eines Treibers wird ein Graphikmodus als Argument mitübergeben, um die speziellen Attribute für das jeweilige graphische Element anzugeben. Wenn die Ausgabe auf einen anderen Treiber umgelenkt wird, muß nur dessen Initialisierung als zusätzliche Aktion vorgenommen werden. Die Zeichenroutinen selbst können mit denselben Modi arbeiten. Die häufig benötigten haben daher auch feste Nummern.





Martin Knaipp
Wed Jun 12 15:41:33 MET DST 1996