/*
 *  VSWR_MODE                                   (C) Digital Design 1990
 *
 *  SET WRITING MODE
 *
 *  Die von den Grafikoperationen erzeugten Zeichnungen werden im Normal-
 *  fall ohne Rcksicht auf bisher auf dem Arbeitsbereich enthaltene
 *  Zeichnungen ausgegeben. Das heit, da Punkte immer dort gesetzt
 *  werden, wo noch keine gesetzt sind. İGEMİ..\..\GEMİ bietet mehrere M”glichkeiten,
 *  beim Ausgeben der Grafik bereits vorhandene Grafik zu bercksichtigen.
 *  Nicht nur die Punkte, auch die Farbe der Punkte spielt hier eine
 *  Rolle. Fr die Beschreibung der Zeichenmodi sollen zun„chst die
 *  Operatoren fr die Bool'schen Formeln beschrieben werden:
 *      obj = Grafikobjekt (Linie, Fllmuster, Kreis usw.)
 *      col = Farbmaske des Objektes
 *      old = Farbe des bereits gesetzten Punktes
 *      new = resultierende Punktfarbe
 *              Replace-Modus:
 *  Der Replace-Modus setzt die Punkte ohne Rcksicht auf die vorhandene
 *  Grafik. Diese ist der normale Zeichenmodus.
 *      new = col AND obj
 *              Transparent-Modus:
 *  Im Transparent-Modus werden die Punkte nur dort gesetzt, wo noch keine
 *  Punkte vorhanden sind. Weiterhin werden die Punkte der Grafik gel”scht,
 *  an die Punkte ohne Farbe gesetzt werden sollen. Dies l„t sich an einem
 *  Beispiel besser erkl„ren: Eine ausgefllte Fl„che soll gezeichnet wer-
 *  den. Ist der Bildschirmbereich leer, so besteht kein Unterschied zwi-
 *  schen Replace- und Transparent-Modus. Ist der Bildschirmbereich jedoch
 *  bereits mit Grafik belegt, so wrde das Fllmuster im Replace-Modus
 *  nicht zu erkennen sein. Ein Fllmuster auf einem Bildschirm, der die
 *  Farbe des Fllmusters hat, ist so im Replace-Modus nicht zu erkennen.
 *      new = (col AND obj) OR (old AND NOT obj)
 *              XOR-Modus:
 *  Im XOR-Modus werden nur dort Punkte gesetzt, wo in der vorhandenen
 *  Grafik keine enthalten sind. Alle bereits gesetzten Punkte an den neuen
 *  Positionen werden gel”scht. Die Schnittpunkte einer alten und einer
 *  neuen Linie werden demnach gel”scht.
 *      new = obj XOR old
 *              REVERSE TRANSPARENT-MODUS
 *  In diesem Modus bleiben alle berschneidenden Punkte erhalten, fr die
 *  im Objekt keine Farbe zugeordnet ist (z.B. die Lcken einer gestrichel-
 *  ten Linie). Die berschneidenden Punkte, fr die im Objekt eine Farbe
 *  zugeordnet wurde, werden gel”scht. Ein auf eine schwarze Fl„che ge-
 *  zeichnetes Fllmuster im Reverse-Transparent-Modus ist demnach das
 *  Negativ vom entsprechenden Fllmuster im Transparent-Modus.
 *      new = (old AND obj) OR (col AND NOT obj)
 */
#include <gemdefs.h>

int vswr_mode( int handle, int mode )
{
  intin[0] = mode; /* Zeichenmodus:  1 = Replace                        *
                    *                2 = Transparent                    *
                    *                3 = XOR                            *
                    *                4 = Reverse Transparent            */
  VDI( 32, 0, 1, handle );

  return intout[0]; /* = set_mode: Ausgew„hlter Zeichenmodus            */
}

