DE68922093T2 - Rechner-Anzeigesysteme mit Fenstern. - Google Patents

Rechner-Anzeigesysteme mit Fenstern.

Info

Publication number
DE68922093T2
DE68922093T2 DE68922093T DE68922093T DE68922093T2 DE 68922093 T2 DE68922093 T2 DE 68922093T2 DE 68922093 T DE68922093 T DE 68922093T DE 68922093 T DE68922093 T DE 68922093T DE 68922093 T2 DE68922093 T2 DE 68922093T2
Authority
DE
Germany
Prior art keywords
window
depth
display image
new
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE68922093T
Other languages
English (en)
Other versions
DE68922093D1 (de
Inventor
Larry Keith Loucks
Richard Ormond Simpson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE68922093D1 publication Critical patent/DE68922093D1/de
Publication of DE68922093T2 publication Critical patent/DE68922093T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Digital Computer Display Output (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

  • Die vorliegende Erfindung bezieht sich auf Rechner-Anzeigesysteme mit Fenstern und insbesondere auf Schneidesysteme zur Vewendung in diesen Fenstern.
  • Durch jüngste Entwicklungen in der Technologie der datenprozessorgesteuerten interaktiven Anzeigebildschirme ist es dem Benutzer nunmehr möglich, die Inhalte mehrerer Dokumente oder Aufzeichnungen gleichzeitig auf einem Anzeigebildschirm anzuzeigen. Diese Inhalte werden normalerweise in mehreren, zuweilen sich überlappenden, Fenstern angezeigt, wobei jedes Fenster die Inhalte eines bestimmten Dokuments oder einer bestimmten Datei anzeigt. Die US-Patente U.S.A.-4,586,035 und U.S.A.-4,714,918 beschreiben die Art und Weise, in der sich solche sich überlappende Fenster in Computersystemen verwendet werden.
  • In einem typischen Fensteranzeigesystem wie beispielsweise X- Windows (X-Windows ist ein Warenzeichen der IBM Corporation) wird gemäß dem X-Windows Benutzerhandbuch und der Referenz für den IBM RT-PC, 1987, ein einzelner physikalischer Bildschirm verwendet, um mehrere Fenster auf "räumlich-multiplexierte" Weise (IBM ist ein Warenzeichen der IBM Corporation) anzuzeigen. In den neueren Version dieser Computersysteme können mehrere Anwendungen auf dem Computer gleichzeitig laufen. Jede Anwendung, die auf dem Computer läuft, "besitzt" normalerweise ein oder mehrere Fenster auf dem Anzeigebildschirm. Normalerweise sind die Anwendungen unabhängig voneinander, und entsprechend sind auch die Inhalte auf einem Bildschirm unabhängig von den Inhalten der anderen Bildschirme. Die Fenster können unterschiedliche Größen aufweisen und sich teilweise oder vollständig überlappen.
  • Die Fenster werden normalerweise von einem softwaregestützten Anzeigemanagersystem gesteuert, der die Fenster als einen Stapel betrachtet, so daß die Reihenfolge der Fenster bezüglich ihrer Tiefe berücksichtigt wird. Zu einem beliebigen Zeitpunkt befindet sich beispielsweise ein Fenster ganz oben, ein Fenster ganz unten und die restlichen Fenster irgendwo dazwischen. Da ein Fenster normalerweise nicht den gesamten Anzeigebereich eines Anzeigebildschirms einnimmt und/oder teilweise oder vollständig durch andere Fenster verdeckt sein kann, ist es Anwendungen, die auf Multitasking-Computersystemen mit Fenstern laufen, normalerweise nicht gestattet, direkt in den Anzeigeadapter zu schreiben, um Anzeigen für solche Anwendungen zu erzeugen.
  • Normalerweise müssen die Anwendungen in einem solchen Computersystem einem Fenstermanager befehlen, für das Computersystem Daten auf einen Anzeigebildschirm zu übertragen. Der softwaregestützte Fenstermanager gewährleistet, daß die Ausgabe für eine Anwendung nur in dasjenige oder diejenigen Fenster geschrieben wird, das (die) diese Anwendung besitzt, indem die Ausgabeanforderung "ausgeschnitten" wird und diejenigen Teile der Grafik- oder Textausgabe der Anwendung, die außerhalb oder teilweise außerhalb des für eine Anwendung gebildeten Fensters liegen würden, ignoriert werden. Dieses Ausschneiden erfolgt normalerweise durch ein softwaregestütztes Dienstprogramm, das sehr zeitaufwendig läuft.
  • In jüngster Zeit hat es wesentliche Verbesserungen auf dem Gebiet der interaktiven Computergrafik gegeben, die die zur Erzeugung komplexer computergenerierter Bilder nach dem derzeitigen Technologiestandard erforderliche Datenerarbeitung beschleunigen können. Solche Verfahren werden beispielsweise in J. D. Foley und A. Van Dan in Fundamentals of Interactive Computer Graphics, Addison-Wesley, 1982, beschrieben. Eines der am häufigsten auf dem Gebiet der dreidimensionalen interaktiven Computergrafik verwendeten Verfahren ist die Verwendung eines sogenannten Z-Puffers. Ein Z-Puffer ist eine einfache Hardware-Einrichtung, die zur Beseitigung verborgener Linien und verborgener Flächen verwendet wird, wenn ein computergeneriertes Bild auf einer Raster-Scan-Anzeige dargestellt wird.
  • In der Vergangenheit besaßen interaktive Computergrafiksysteme normalerweise spezielle Computer zur Erzeugung von Modellen dreidimensionaler Objekte, die normalerweise aus einer Vielzahl an Polygonen bestehen. Jedes Polygon besaß seine eigene Position und Ausrichtung im dreidimensionalen Raum und besaß Daten zu seiner speziellen Farbe und Intensität.
  • Die Anzeige eines dreidimensionalen Objekts durch ein Computersystem macht normalerweise die Berechnung eines Farb- /Intensitätswerts für jedes Pixel erforderlich. Für eine gegebene Ausrichtung des auf dem Bildschirm betrachteten Objekts kann ein Pixel auf dem Anzeigebildschirm möglicherweise von mehr als einem Polygon im Objekt stammen. Der auf solchen Systemen angezeigte Pixelwert stammt von demjenigen Polygon, das sich "vor" jedem anderen Polygon in der Sichtlinie des Betrachters durch das in Frage kommende Pixel befindet.
  • Wenn ein Bild eines dreidimensionalen Objekts in einem solchen Computergrafiksystem angezeigt wird, werden die Polygone, die das Objekt bilden, in derselben Reihenfolge verarbeitet. Bei dieser Reinehfolge kann es sich um die natürliche Reihenfolge handeln, in der diese Polygone angetroffen wurden, was natürlich davon abhängig ist, in welcher Art und Weise die Datenstruktur, die das Objekt definiert, aufgebaut ist, oder aber es kann sich um eine Reihenfolge handeln, in der sich der Ausgabeprozeß einfacher gestalten läßt. Beispielsweise können die Polygone nach ihrer Tiefe (Z-Wert) sortiert werden, so daß diejenigen Polygone, die sich vom Betrachter weiter entfernt befinden, zuerst angetroffen werden. Diese Sortierung erfolgt normalerweise in Computergrafiksystemen, so daß jede bestimmte Szene auf einem Bildschirm angezeigt werden kann, indem die Polygone in einer Sortierreihenfolge verarbeitet werden, und indem für jedes Polygon die richtigen Werte in die Pixels eingefügt werden, die durch dieses Polygon abgedeckt sind. Ein Pixel kann mehrmals beschrieben werden, je nach dem, wieviele Polygone in einem gegebenen dreidimensionalen Objekt den Punkt auf dem Bildschirm überlappen, der durch das Pixel definiert ist. Da die Polygone nach ihrer Tiefe sortiert sind, ist der letzte Wert, der in ein beliebiges Pixel geschrieben wurde, der Wert für das näheste Polygon dieses Pixels. In anderen Worten, die sich am nähesten zum Betrachter befinden, verdecken die dahinter befindlichen Polygone.
  • Es wurde festgestellt, daß eine Sortierung von Polygonen nach ihrer Tiefe aufgrund der lange andauernden Verarbeitungszeit und da die Sortierung nicht narrensicher ist, normalerweise nicht wünschenswert ist. Polygone, die sich beispielsweise überschneiden oder sich in komplizierter Weise im dreidimensionalen Raum überlappen, können nicht immer aufgrund eines Z- Werts sortiert werden; die Sortierung muß vielmehr für jedes Pixel erfolgen, wenn sie ganz genau sein soll. Wenn das Objekt rotiert, in bezug auf den Hintergrund oder auf andere Objekte auf dem Bildschirm bewegt wird oder wenn sich der Blickpunkt des Betrachters ändert, dann muß die Sortierung nochmals erfolgen.
  • Es wurde festgestellt, daß in diesen dreidimensionalen Computergrafikanwendungen die Verwendung eines Z-Puffers jede Art der Sortierung überflüssig macht, indem die Tiefeninformation (Z-Wert) für jedes Pixel zusammen mit dem Farb- /Intensitätswert gespeichert wird. Siehe Foley und Van Dam, Seiten 560-561. Die Verwendung eines Z-Puffers macht es somit möglich, daß Polygone, die eine Szene bilden, in jeder beliebigen Reihenfolge verarbeitet werden können, da die Tiefeninformation pro Pixel und nicht pro Polygon festgestellt wird. Entsprechend haben ungewöhnliche Überlappungen von Polygonen und sich überschneidende Polygone keinen entgegenwirkenden Effekt auf die Erzeugung eines Computerbilds.
  • EP-A-0247827 bezieht sich auf ein Computersystem mit einem Mehrfachfenster-Präsentationsmanager und bezieht sich auf das Problem der Vereinfachung der Operation eines Bedieners bei der Auswahl eines bestimmten Fensters, in dem er arbeiten möchte. Der Präsentationsmanager besitzt einen Fenstermanager, der Fensteranzeigeprioritäten festlegt, und eine CPU, die sowohl auf einen Datenspeicher als auch einen Prioritätsspeicher zugreift und vor der Übertragung an einen Auffrischungspuffer das Ausschneiden von Daten ermöglicht.
  • GB-A-2162726 beschreibt ein Anzeigesystem, das in der Lage ist, mit mehreren Fenstern zu arbeiten, und das so eingerichtet ist, daß es die Teile einer anzuzeigenden Grafiklinienprimitiven nach sich überlappenden Fenstern niedrigerer Priorität bestimmen kann. GA-A-2162726 beschreibt die Verwendung eines beliebigen Zugriffsspeichers mit Angaben zur Position und Größe jedes Fensters zusammen mit einer Anzeige der Prioritätsstufe des Fensters.
  • Unter einem ersten Gesichtspunkt betrachtet stellt die vorliegende Erfindung ein Computersystem bereit, das folgendes umfaßt: einen Anzeigeadapter mit einem Auffrischungspuffer; einen interaktiven Anzeigebildschirm mit einer Bildschirmanzeige, auf dem eine Mehrzahl an mindestens teilweise sich überlappenden Fenstern gebildet wird, wobei jedes Fenster Anzeigebilder anzeigt, die durch eine aus einer Mehrzahl an Anwendungen (A bis n) erzeugt wurde, die auf dem Computersystem laufen, und anschließend an den Anzeigeadapter übertragen wurden; ein Mittel zur Anforderung einer Neuanordnung der Tiefen der Mehrzahl an Fenstern bezüglich einer Referenzposition von einer aktuellen Anordnung zu einer neuen Anordnung; ein Managermittel zur Bestimmung der Tiefe des Anzeigebilds, das zu jedem der Fenster gehört, in dem das genannte Managermittel auf die Eingabeanforderung hin die neue Tiefe des Anzeigebilds in jedem der Mehrzahl der Fenster bestimmt, die durch die angeforderte Neuanordnung betroffen sind, und neue Tiefenwerte für das betreffende Anzeigebild ausgibt und jeder Anwendung mit einem Fenster mit betreffendem Anzeigebild befiehlt, mindestens denjenigen Teil des Anzeigebilds erneut zu übertragen, der zu jedem Fenster gehört und der als Ergebnis der Neuanordnung sichtbar wird; und ein Tiefenpuffermittel im Anzeigeadapter zur Speicherung der Tiefenwerte des Anzeigebilds, das zu jedem derjenigen Fenster gehört, die auf dem Bildschirm angezeigt werden, wobei das genannte Tiefenpuffermittel ein Mittel zum Vergleich des Tiefenwerts für das erneut übertragene Anzeigebild mit dem Tiefenwert des angezeigten Anzeigebilds auf die Eingabeanforderung hin umfaßt, und, wenn das erneut übertragene Anzeigebild einen Tiefenwert aufweist, der zum selben Fenster oder zu einem näher am Betrachter liegenden Fenster gehört, wobei das Vergleichsmittel dem Auffrischungspuffer befiehlt, das erneut übertragene Anzeigebild zur Wiederauffrischung des Bildschirms zu speichern.
  • Die Nachteile, die mit dem zeitaufwendigen Software-Clipping (Ausschneiden), das bei der Aktualisierung von Fenstern in Computersystemen mit einer gemeinsam genutzten Anzeigefläche verwendet wird, einhergehen, werden durch die vorliegende Erfindung beseitigt, indem ein hardwaregestützter Tiefenpuffer für Fenster im herkömmlichen Anzeigeadapter hinzugefügt wird. Die vorliegende Erfindung reduziert darüber hinaus die zur Aktualisierung oder Neuanordnung der Fenster benötigen Zeitdauer, indem einer bestimmten Anwendung der direkte Zugriff auf den Anzeigeadapter des Computersystems ermöglicht wird, während die Integrität des Anzeigebilds auf Fenstern, die zu anderen auf dem Computersystem laufenden Anwendungen gehören, gewährleistet bleibt.
  • In bevorzugten Ausführungsbeispielen ist das Anzeigebild, das zu jedem der Fenster gehört, definiert als ein Bereich von Pixelwerten mit bestimmten Pixeladressen.
  • Wie an späterer Stelle noch ersichtlich wird, umfaßt das Computersystem einen Tiefenpuffer für den Empfang und die Speicherung der Tiefenwerte des Anzeigebilds, das zu jedem der sich überlappenden Bildschirme gehört, die derzeit auf dem Bildschirm angezeigt werden. Nach der erneuten Übertragung des Anzeigebilds der betreffenden Anwendungen und der Tiefenwerte, die damit auf die eingegebene Aufforderung hin zusammenhängen, vergleicht ein Komparator im Tiefenpuffer die Tiefenwerte für das neu übertragene Themengenbiet mit den Tiefenwerten für das Anzeigebild, das derzeit auf dem Bildschirm angezeigt wird. Wenn das neue Anzeigebild einen Tiefenwert aufweist, der mit demselben Fenster oder einem näher am Betrachter liegenden Fenster zusammenhängt, befiehlt der Puffer dem Auffrischungspuffer, das neue Anzeigebild zu speichern, um den Bildschirm aufzufrischen, und befiehlt dem Tiefenpuffer, die neuen Tiefenwerte zu speichern.
  • Die vorliegende Erfindung läßt sich ebenfalls in mehreren anderen Hardwarekonfigurationen implementieren. In einer ersten Konfiguration ist ein Tiefenwert, der mit dem Anzeigebild in einem Fenster zusammenhängt, eine Aneinanderreihung der Fenstertiefenposition und des Tiefenwerts des Anzeigebilds innerhalb des Fensters. Der Tiefenpuffer vergleicht daraufhin den neuen angefügten Wert mit dem derzeit angefügten Wert, um zu bestimmen, ob der Auffrischungsspeicher und der Tiefenpuffer das neue Anzeigebild bzw. die neuen Tiefenwerte speichern soll.
  • In einem anderen Ausführungsbeispiel umfaßt der Tiefenpuffer eine Fenstertiefentabelle, in der die derzeitigen Tiefenpositionen, die zu jeder Fensteridentifikation gehören, gespeichert sind. Im vorliegenden Ausführungsbeispiel gibt der Fenstermanager auf eine Eingabeanforderung hin neue Pixeltiefenwerte für jede in der Fenstertiefentabelle aufgelistete Fensteridentifikation aus. Der Komparator entnimmt daraufhin aus der Fenstertiefentabelle den Tiefenwert der Fensteridentifikation für jede derzeit im Tiefenpuffer befindliche Pixeldichte und den Tiefenwert für die neue Fensteridentifikation und vergleicht die entsprechenden Tiefenwerte aus der Fenstertiefentabelle.
  • In einem anderen Ausführungsbeispiel der vorliegenden Erfindung umfaßt der Tiefenpuffer einen ersten und einen zweiten Komparator, wobei der erste Komparator die neue Fensteridentifikation mit der derzeitigen Fensteridentifikation vergleicht und der zweite Komparator den Pixeltiefenwert, der mit jeder derzeitigen Fensteridentifikation zusammenhängt, mit dem neuen Pixeltiefenwert, der mit der neuen Fensteridentifikation zusammenhängt, vergleicht. Wenn der erste Komparator feststellt, daß die derzeitige Fensteridentifikation und die neue Fensteridentifikation gleich sind und der zweite Komparator feststellt, daß der neue Pixelwert niedriger oder gleich groß ist wie der derzeitige Pixelwert, dann befiehlt eine logische Einheit, die jeweils an den Ausgang des ersten und des zweiten Komparators gekoppelt ist, dem Auffrischungsspeicher, die neuen Pixelwerte zu speichern, und befiehlt dem Tiefenpuffer, die neue Fensteridentifikation zu speichern.
  • In einem anderen Ausführungsbeispiel umfaßt der Tiefenpuffer einen ersten Pufferbereich und einen zweiten Pufferbereich, wobei der erste Pufferbereich die derzeitige Fensteridentifikation für das in jedem der sich überlappenden Fenster angezeigte Anzeigebild speichert und der zweite Pufferbereich den derzeitigen Pixeltiefenwert für das in jedem der sich überlappenden Fenster angezeigte Anzeigebild speichert. Der Tiefenpuffer umfaßt außerdem einen ersten Komparator, der an den ersten Pufferbereich gekoppelt ist, um die neue Fensteridentifikation mit der derzeitigen Fensteridentifikation zu vergleichen, wobei der erste Komparator, wenn die derzeitige und die neue Fensteridentifikation gleich sind, ein Aktivierungssignal ausgibt. Der zweite Komparator ist an den zweiten Pufferbereich gekoppelt und vergleicht den derzeitigen Pixeltiefenwert, sobald das Aktivierungssignal vom ersten Komparator empfangen wird. Wenn der neue Pixeltiefenwert niedriger oder gleich groß ist wie der derzeitige Pixeltiefenwert, so gibt der zweite Komparator an den ersten und an den zweiten Pufferbereich ein Signal aus, das dem ersten Pufferbereich befiehlt, die neue Fensteridentifikation zu speichern, und dem zweiten Pufferbereich befiehlt, den neuen Tiefenwert zu speichern.
  • In einem weiteren Ausführungsbeispiel der vorliegenden Erfindung, die auf zweidimensionale Bilder innerhalb jedes einer Mehrzahl an sich überlappenden Fenstern anwendbar ist, umfaßt der Tiefenwert, der mit dem Anzeigebild innerhalb eines Fensters auf einem Bildschirm zusammenhängt, nur eine Fensteridentifikation, in der der Tiefenpuffer nur die derzeitige Fensteridentifikation speichert. Bei einer Eingabeanforderung gibt der Fenstermanager an den Tiefenpuffer eine neue Fensteridentifikation aus, wobei der Komparator im Tiefenpuffer die Fensteridentifikation des neu übertragenen Anzeigebilds mit der Fensteridentifikation des derzeit angezeigten Anzeigebilds vergleicht. Wenn die neue Fensteridentifikation dasselbe Fenster oder ein näher am Betrachter liegendes Fensteridentifiziert, gibt der Komparator Signale an den Auffrischungsspeicher und an den Tiefenpuffer aus, um dem Auffrischungsspeicher zu befehlen, das neue Anzeigebild zu speichern, um die Bildschirmanzeige mit dem neuen Anzeigebild wiederaufzufrischen und um dem Tiefenpuffer zu befehlen, die neuen Fensteridentifikationen zu speichern.
  • Unter einem anderen Gesichtspunkt betrachtet stellt die Erfindung ein Computersystem bereit, das in der Lage ist, eine Mehrzahl an Anwendungen mit einem Anzeigeadapter und einem Auffrischungsspeicher ablaufen zu lassen; des weiteren einen interaktiven Anzeigebildschirm mit einer Bildschirmanzeige, auf der eine Mehrzahl an zumindest teilweise sich überlappenden Fenstern gebildet wird, wobei jedes Fenster ein Anzeigebild anzeigt, das sich von dem auf dem übrigen Teil des Bildschirms angezeigten unterscheidet; ein Mittel zur Anforderung einer Neuanordnung der Tiefenpositionen der Mehrzahl an Fenstern bezüglich einer Referenzposition von einer derzeitigen Anordnung zu einer neuen Anordnung; ein Managermittel zur Bestimmung der Tiefenposition jedes aus der Mehrzahl der Fenster und zur Zuordnung eines Tiefenwerts zu einem Anzeigebild, das mit jedem der Fenster zusammenhängt, wobei das genannte Managermittel nach einer Eingabeanforderung die neuen Tiefenpositionen der Mehrzahl an Fenstern bestimmt, einen neuen Tiefenwert zum Anzeigebild zuordnet, das mit jedem betreffenden Fenster zusammenhängt, und die genannten Tiefenwerte ausgibt; und ein Puffermittel zur Speicherung der Tiefenwerte des Anzeigebilds, das mit jedem der auf dem Bildschirm angezeigten Fenster zusammenhängt, wobei das genannte Puffermittel ein Mittel zum Vergleich des Tiefenwerts für das neu übertragene Anzeigebild mit dem Tiefenwert für das angezeigte Anzeigebild umfaßt, was auf die Eingabeanforderung hin geschieht, und, wenn das neue Anzeigebild einen Tiefenwert aufweist, der mit demselben Fenster oder einem näher am Betrachter liegenden Fenster zusammenhängt, der Komparator befiehlt dem Auffrischungsspeicher, das neu übertragene Anzeigebild zur Wiederauffrischung des Bildschirms zu speichern.
  • Unter einem weiteren Gesichtspunkt betrachtet stellt die vorliegende Erfindung eine Grafikadapterkarte bereit, die in einem Computersystem verwendet werden kann, das eine Anzeige erstellt, die eine Mehrzahl an zumindest teilweise sich überlappenden Fenstern umfaßt, wobei diese Karte einen Auffrischungsspeicher umfaßt, der so eingerichtet ist, daß er Pixeldaten speichert, die Pixel der genannten Anzeige darstellen, ein Puffermittel, das so eingerichtet ist, daß es Daten speichert, die angeben, welches der genannten Fenster welche der genannten Pixel steuert, und ein Komparatormittel, das auf die im genannten Puffermittel gespeicherten Daten hin die Aktualisierung des genannten Auffrischungsspeichers mit Pixeldaten, die von der genannten Karte empfangen wurden, wenn die genannten empfangenen Pixeldaten nicht mit dem genannten Fenster zusammenhängen, das das genannte Pixel steuert, verhindert, wobei das Ausschneiden der genannten Fenster durch die genannte Karte erfolgt.
  • Es folgen Ausführungsbeispiele der vorliegenden Erfindung, bei denen auf die folgenden Begleitzeichnungen bezug genommen wird:
  • Figur 1 ist eine allgemeine Diagrammdarstellung eines herkömmlichen Computersystems, das sich an den Aufbau der vorliegenden Erfindung anpassen läßt.
  • Figur 2 ist eine allgemeine Diagrammdarstellung eines interaktiven Anzeigeteils des in Figur 1 dargestellten Computersystems.
  • Figur 3 stellt eine Kombination aus Logikeinheiten dar, die mit der Bildung einer Mehrzahl an zumindest teilweise sich überlappenden Fenstern auf einem interaktiven Anzeigebildschirm zur Verwendung mit der vorliegenden Erfindung zusammenhängen.
  • Figur 4A stellt die anfängliche Position einer Mehrzahl an zumindest teilweise sich überlappenden Fenstern auf einem Anzeigebildschirm dar.
  • Figur 4B stellt die Umordnung der Mehrzahl an zumindest teilweise sich überlappenden Fenstern aus Figur 4A dar, wenn das oberste Fenster nach unten gestellt wird.
  • Figur 5 ist eine Diagrammdarstellung eines Anzeigeadapters, der in der Anwendung der vorliegenden Erfindung verwendet werden kann.
  • Figur 6 ist eine Diagrammdarstellung eines Z-Puffersystems, das in einem Ausführungsbeispiel der vorliegenden Erfindung verwendet werden kann.
  • Figur 7A zeigt die relative Position eines Stapels aus zumindest teilweise sich überlappenden Fenstern zusammen mit einem stylisierten Gitter aus Pixelwerten, das die Tiefe des auf dem Bildschirm dargestellten Anzeigebilds darstellt.
  • Figur 7B zeigt eine Bildschirmanzeige einer Neuanordnung der Fenster aus 7A zusammen mit einem stylisierten Gitter aus Pixelwerten, das die Änderungen in der Tiefe des auf dem Bildschirm dargestellten Anzeigebilds darstellt, das vom Fenstermanager in einem ersten Ausführungsbeispiel der vorliegenden Erfindung erzeugt wird.
  • Figur 8 ist eine Diagrammdarstellung eines zweiten Ausführungsbeispiels eines Z-Puffersystems, das in einer Anwendung der vorliegenden Erfindung verwendet werden kann.
  • Figur 9A zeigt die relative Position einer Mehrzahl zumindest teilweise sich überlappender Fenster auf dem Anzeigebildschirm zusammen mit einem Gitter aus Pixeln, das die Fensteridentifikation des dargestellten Anzeigebilds darstellt.
  • Figur 9B zeigt eine Bildschirmanzeige einer Neuanordnung der Fenster aus Figur 9A zusammen mit einem stylisierten Gitter aus Pixeln, das die Fensteridentifikation des auf dem Bildschirm dargestellten Anzeigebilds darstellt, das vom Fenstermanager im zweiten Ausführungsbeispiel der vorliegenden Erfindung geändert wird.
  • Figur 10 ist eine Diagrammdarstellung eines dritten Ausführungsbeispiels eines Z-Puffersystems, das in einer Anwendung der vorliegenden Erfindung verwendet werden kann.
  • Figur 11A zeigt eine Mehrzahl zumindest teilweise sich überlappender Fenster auf dem Anzeigebildschirm zusammen mit einem stylisierten Gitter aus Pixeln, das die Fensteridentifikation des auf dem Anzeigebildschirm dargestellten Anzeigebilds darstellt.
  • Figur 11B zeigt eine Bildschirmanzeige einer Neuanordnung der Fenster aus Figur 11A zusammen mit einem stylisierten Gitter aus Pixeln, das die Änderungen der Fensteridentifikation des auf dem Bildschirm dargestellten Anzeigebilds darstellt, das vom Fenstermanager im dritten Ausführungsbeispiel der vorliegenden Erfindung geändert wird.
  • Figur 12 ist eine Diagrammdarstellung eines vierten Ausführungsbeispiels eines Z-Puffersystems, das in einer Anwendung der vorliegenden Erfindung verwendet werden kann.
  • Um zu einem besseren Verständnis der vorliegenden Erfindung zu gelangen, verweisen wir nun auf Figur 1, wo die wesentlichen Komponenten des Computersystems der bisherigen Technologie, die so angepaßt werden können, daß die vorliegende Erfindung angewandt werden kann, dargestellt sind. Die CPU 2 des herkömmlichen Computersystems wird vom Systemspeicher 4 unterstützt, in dem die gesamte Anwendungsprogrammierung gespeichert ist. In neueren Computersystemen der bisherigen Technologie kann die CPU 2 gleichzeitig zwei oder mehr Anwendungen laufen lassen. Die CPU 2 steuert zusammen mit dem Speicher 4 eine Anzeigeeinheit 6. Das Computersystem besitzt normalerweise einen zusätzlichen Plattenspeicher 8. Die Eingabe an das System kann über eine Tastatur 10 erfolgen, die dazu verwendet werden kann, einen bestimmten Befehl einzugeben, oder den Cursor auf dem Anzeigebildschirm der Anzeigeeinheit 6 auf einen menügestützten Befehl zu bewegen. Ebenso kann ein Eingabebefehl von einer anderen Eingabeeinheit 12 empfangen werden, beispielsweise einer Maus. Die Elemente in diesem Computersystem sind über einen Systembus 14 miteinander verbunden.
  • Computersysteme, die so angepaßt werden können, daß sie die vorliegende Erfindung miteinschließen, enthalten ein IBM RT mit einer CPU auf der Grundlage einer RISC-Architektur, das von mindestens 2 MB Speicher unterstützt wird und die Version 2.2 oder höher des Betriebssystems AIX voraussetzt. In einigen Ausführungsbeispielen kann ein IBM/PS2 mit einem herkömmlichen Intel 80286 oder 80386 Mikroprozessor, der durch das Betriebssystem OS/2 unterstützt wird, und mindestens 1 MB Speicher verwendet werden (AIX, PS/2 und OS/2 sind Warenzeichen der IBM Corporation; Intel ist ein Warenzeichen der Intel Corporation).
  • Die Systemlogik und die Vorrichtung in den genannten Computersystemen werden ausführlicher in den Figuren 2 und 3 dargestellt. In Figur 3 kann über einen herkömmlichen Eingabeadapter 12, der über einen Eingabetreiber 14, der die erforderliche herkömmliche Vorrichtung und die erforderliche Logik besitzt, um die Eingabeoperationen an das bestimmte Datenverarbeitungssystem, in dem die vorliegende Erfindung implementiert ist, zu leiten, an das Computersystem angeschlossen ist, eine Eingabe bereitgestellt werden. Der Treiber 14 erfüllt die Funktion der Konvertierung der vom Eingabeadapter empfangenen Signale in Daten, die innerhalb der vorliegenden Erfindung verwendet werden können.
  • Routinen und logische Operationen, die für die Durchführung der vorliegenden Erfindung erforderlich sind, werden normalerweise von einer Anwendungsüberwachungseinheit 16 überwacht, die an späterer Stelle ausführlich beschrieben wird. Änderungen auf der Anzeige 6 werden von einem Anzeigemanager 18 gesteuert, der über einen Anzeigeadapter 22 mit einem Anzeigemonitor 20 kommuniziert. Der Anzeigeadapter 22 ändert oder konvertiert die Befehle vom Anzeigemanager in Signale, die einfacher vom Anzeigemonitor verwendet werden können.
  • Die Software zur Implementierung der vorliegenden Erfindung ist im Speicher 4 gespeichert und läuft unter der Steuerung der Anwendungsüberwachungseinheit 16, die normalerweise ebenfalls im Speicher 4 unter der Steuerung der CPU 2 gespeichert ist. Diese Software wird nun ausführlicher in bezug auf Figur 3 beschrieben.
  • In neueren Computersystemen können zahlreiche Anwendungen, die als Anwendung "A", 18, bis Anwendung "n", 20, bezeichnet werden, gleichzeitig betrieben werden. Die Ausgabe jeder dieser verschiedenen Anwendungen kann in unterschiedlichen Fenstern "A, B, C, D, .... n" betrachtet werden, die auf dem interaktiven Anzeigebildschirm 20 gebildet werden und in Figur 4 die Bezeichnungen 28, 30, 32 bzw. 34 tragen. Der Benutzer des Computersystems stellt über den Eingabeadapter 12 und den dazugehörigen Eingabetreiber 14 zu den Anwenderbenutzerschnittstellen 22 und 24 für die Anwendungen A bzw. "n" in jeder Anwendung eine Schnittstelle her. Die Schnittstellen enthalten normalerweise ebenfalls einen herkömmlichen Echo- Manager, der die Eingabebefehle mit den resultierenden Anzeigeänderungen für ein bestimmtes Fenster direkt zum Anzeigemanager 18 über den Bus 20 überträgt. Die Anwendungsüberwachungseinheit 16 koordiniert und multiplexiert diese verschiedenen einzelnen Fensteroperationen und steuert den Anzeigemanager 18 über die Anwendungsschnittstelle 26. Der Anzeigemanager 18 enthält normalerweise einen Fenstermanager zur Steuerung der relativen Position der sich überlappenden Fenster als Ergebnis der über den Bus 20 vom Eingabetreiber 14 empfangenen Eingaben.
  • In den genannten Computersystemen mit einer interaktiven Anzeige 6, die aus einem Anzeigebildschirm 20 und einem Anzeigeadapter 22 besteht, läuft die Mehrzahl der sich überlappenden Fenster A, B, C und D, die auf dem Bildschirm des Monitors gebildet werden (siehe Figur 4), in dem jedes Fenster Anzeigebilder anzeigt, die aus unterschiedlichen Anwendungen, d.h. A, B, C und D, stammen, gleichzeitig auf der CPU 2. Jede Anwendung "besitzt" ein Fenster auf dem Bildschirm. Die Anwendungen sind normalerweise unabhängig voneinander, so daß die Inhalte eines Fensters nichts mit den Inhalten eines anderen Fensters, das zu einer anderen Anwendung gehört, zu tun haben. Die Fenster können unterschiedliche Größen aufweisen und sich gegenseitig überlappen, wie dies in Figur 4 dargestellt ist.
  • Um die relative Position der Fenster zu ändern, gibt der Benutzer über die Eingabeeinheit 12 eine Anforderung ein. Wünscht der Benutzer beispielsweise, das oberste Fenster A nach ganz unten zu stellen, so wird das Fenster B zum neuen obersten Fenster. Das Fenster B ist nun vollständig sichtbar und ein Teil von Fenster C, das bislang durch Fenster A verdeckt war, ist nun ebenfalls sichtbar. Wenn das Fenster vollständig oder teilweise sichtbar oder "exponiert" wird, erhält die Anwendung, die das Fenster besitzt, vom Fenstermanager den Befehl, die im Fenster angezeigten Inhalte teilweise oder vollständig zu regenerieren. Jede Anwendung ist dafür verantwortlich, denjenigen Teil des Fensters neu zu schreiben, der neu exponiert wurde. Jede Anwendung kann optional einfach ihr gesamtes Fenster neu schreiben.
  • Im vorliegenden Beispiel (Figur 4) muß die Anwendung für Fenster B 30 mindestens den oberen linken Teil ihres Fensters B neu schreiben, und die Anwendung für Fenster C muß mit einem kleinen Teil des oberen linken Teils ihres Fensters C dasselbe tun. Da nicht jedes Fenster den gesamten Anzeigebildschirm ausfüllt, kann es teilweise oder vollständig durch andere Fenster verdeckt werden.
  • Nicht jeder Anwendung ist es gestattet, direkt in den Anzeigeadapter 22 zu schreiben, um eine Anzeige zu erzeugen, die mit jeder Anwendung zusammenhängt. Vielmehr muß jede der Anwendungen A, B, C und D dem Fenstermanager befehlen, Daten zum Anzeigeadapter 22 zu übertragen, um ihren Teil des Anzeigebildschirms für die jeweilige Anwendung aufzufrischen. Der softwaregestützte Fenstermanager gewährleistet auf diese Weise, daß die Ausgabe für eine gegebene Anwendung nur in diejenigen Fenster geschrieben wird, die im Besitz der Anwendung sind, indem die Ausgabe für die jeweilige Anwendung, die teilweise oder vollständig durch andere Fenster verdeckt ist, ausgeschnitten wird. Dieses Ausschneiden erfolgte bislang durch Software und ist relativ zeitaufwendig.
  • Das ausgegebene Anzeigebild von jeder der Anwendungen A, B, C und D wird über den Bus 14 an einen speziellen Prozessor 36 im Anzeigeadapter übertragen, der die Operationen des Anzeigeadapters 22 steuert. Der spezielle Prozessor 22 besitzt einen dazugehörigen dedizierten Speicher 38 zur Speicherung von Daten, mit denen er arbeitet. Der Prozessor konvertiert das Anzeigebild, das von der CPU 2 in einen zweidimensionalen Bereich aus Pixelwerten mit speziellen Pixeladressen, die sich auf bestimmte Punkte auf dem Anzeigebildschirm beziehen, übertragen wird, wobei diejenigen Teile des übertragenen Anzeigebilds jeder Anwendung, die durch ein teilweise oder vollständig überlappendes Fenster einer anderen Anwendung verdeckt sind, bereits ausgeschnitten wurden. Der spezielle Prozessor überträgt dann diese ausgeschnittenen Daten in ihrer konvertierten Form über einen Bus 40 zu einem Rahmenpuffer oder Auffrischungsspeicher 42. Der Rahmenpuffer oder Auffrischungsspeicher 42, bei dem es sich normalerweise um einen RAM- Bereich handelt, speichert die Pixelwerte in digitaler Form in der relativen Position, in der sie auf dem tatsächlichen Bildschirm des Monitors 20 erscheinen. Diese Pixelwerte werden dann durch den Anzeigecontroller 44 in Signale konvertiert, die zur Projektion einer Darstellung des Anzeigebilds auf dem Anzeigemonitor 20 verwendet werden. Die Anzeige muß normalerweise durch die erneute Übertragung der Pixelwerte, die sich jede dreißigstel oder sechzigstel Sekunde im Rahmenpuffer 42 befinden, wiederaufgefrischt werden.
  • Im Computersystem der vorliegenden Erfindung wird dem Anzeigeadapter 22 ein neues Z-Puffersubsystem hinzugefügt, das den erforderlichen Aufwand durch Software-Clipping, der vom Fenstermanager ausgeführt werden muß, während eine Computeranwendung direkten Zugriff zum Anzeigeadapter 22 hat, erheblich reduziert. Der softwaregestützte Fenstermanager behandelt jedes der Fenster als ein Polygon im dreidimensionalen Raum. Für die speziellen Fensterzwecke, die durch die vorliegende Erfindung angestrebt werden, ist jedes Polygon parallel zur Ebene des Hintergrunds und orthogonal zur Sichtlinie des Benutzers; somit steht jedem Polygon ein einziger Tiefenwert zur Verfügung. Entsprechend besitzen keine zwei Polygone oder "Fenster" dieselbe Tiefe, das heißt, es gibt bei der Berechnung des Werts eines Pixels niemals einen Zweifel darüber, welches Polygon sich "vorn" befindet. Es wird jedoch darauf hingewiesen, daß diese Erfindung an Fenstersysteme angepaßt werden kann, in denen das in jedem Fenster angezeigte Anzeigebild ein im dreidimensionalen Raum befindliches Anzeigebild darstellt.
  • Nachfolgend werden fünf verschiedene Ausführungsbeispiele eines Z-Puffersystems 46 zur Unterstützung eines Fenstermanagers ausführlich beschrieben. In jedem Ausführungsbeispiel entscheidet der Fenstermanager des Anzeigemanagers 18 über die neue Anordnung (oben bis unten) der Fenster A, B, C und D, führt einige Einstellungen der im Z-Puffersystem im Anzeigeadapter 22 zu speichernden Fenstertiefeneinträge durch und benachrichtigt dann jede betreffende Anwendung, die auf der CPU 2 läuft, daß alle oder einige ihrer Fenster umgesetzt werden müssen. Jede Anwendung, die auf einer CPU 2 läuft, überträgt dann das Anzeigebild durch den Anzeigeadapter 22, so daß die zur Anwendung gehörenden Fenster umgesetzt werden können. Das Z-Puffersystem 46 stellt das Ausschneiden bereit, das in Computersystemen der bisherigen Technologie vom Fenstermanager bereitgestellt wurde.
  • In jedem Ausführungsbeispiel implementiert das Z-Puffersystem 46 einen "Z-Puffer-Algorithmus". Der im Z-Puffersystem 46 implementierte Algorithmus kann folgendermaßen aussehen:
  • (A) Alle Pixelwerte/Intensitätswerte C(X, Y) auf "Hintergrund" initialisieren.
  • (B) Alle Z-Pufferwerte Z(x, y) auf größten darstellbaren (am weitesten entfernten) Z-Wert initialisieren.
  • (C) Für jedes Polygon (Fenster) auf dem Anzeigebildschirm:
  • Für jedes Pixel p(x, y) im Polygon:
  • * CP, den Farb-/Intensitätswert des Pixels berechnen;
  • * ZP, den Z-Wert des Pixels berechnen; und
  • * Wenn ZP niedriger als oder gleich groß wie Z(x, y), dann:
  • * Neuen Farb-/Intensitätswert speichern:
  • C(x, y) CP
  • * Neuen Z-Wert speichern:
  • Z(x, y) ZP
  • Im ersten Ausführungsbeispiel (Figur 6) umfaßt das Z-Puffersystem 46 einen Komparator 50 und einen Z-Pufferbereich 51, der die derzeitigen Z-Puffer-Tiefenwerte für das auf dem Bildschirm befindliche Anzeigebild enthält. Jeder Z-Pufferwert ist einem bestimmten Pixelfarb-/intensitätswert mit einer bestimmten Pixeladresse auf der Grundlage seiner relativen Position in dem durch den Rahmenpuffer 42 gebildeten zweidimensionalen Bereich zugeordnet. Der bestehende gespeicherte Tiefenwert enthält sowohl die Tiefe des relativ zur "Hintergrund"-Referenzposition gebildeten Fensters auf dem Bildschirm, die normalerweise die am weitesten vom Betrachter entfernte Position ist, und die Tiefe des jeweiligen Pixels innerhalb des Fensters, in dem sich das Pixel befindet.
  • Zum Zweck der Speicherung innerhalb des Z-Pufferbereichs 51 wird der Tiefenwert gebildet, indem die Fenstertiefe und die Pixeltiefe innerhalb des Fensters aneinandergehängt werden. In einem Register 48 zur Speicherung eines bestehenden Pixelwerts beispielsweise aus dem Z-Pufferbereich 51 zur Verwendung im Komparator 50 belegt die Fenstertiefe die höheren Bitpositionen 52, und die Pixeltiefe innerhalb des Fensters wird in den niedrigeren Bitpositionen 53 gespeichert, so daß alle Pixel in einem gegebenen Fenster als vor allen Pixeln eines im Stapel niedrigeren Fensters liegend betrachtet werden. Es wird jedoch darauf hingewiesen, daß für die meisten Anwendungen die einzelne Pixeltiefe innerhalb des Fensters eine Konstante ist.
  • Bei einer Anforderung über das Eingabegerät 12 zur Umstellung der Fenster auf dem Anzeigebildschirm bestimmt der Fenstermanager die neuen relativen Tiefenpositionen der Mehrzahl der Fenster A, B, C und D, ordnet jedem Pixel im Rahmenpuffer 42 einen Puffertiefenwert zu und befiehlt jeder Anwendung, deren Anzeige betroffen ist, entweder das gesamte zu ihrer Anzeige gehörende Anzeigebild oder zumindest den durch die vorgeschlagene Bildschirmumstellung betroffenen Teil erneut zu senden.
  • Der Fenstermanager überträgt dann das regenerierte Anzeigebild zur Konversion in Pixelwerte an den Anzeigeadapter 22; diese Pixelwerte können im Pufferregister 56 gespeichert werden; die dazugehörigen Pixeladressen werden im Register 58 gespeichert und der da zugehörige Z-Puffer-Tiefenwert wird im Register 54 gespeichert. Für jede Pixeladresse vergleicht ein herkömmlicher Komparator 60 den neuen Z-Puffer-Tiefenwert aus dem Fensterregister 54 mit dem bestehenden Z-Puffer-Tiefenwert, der aus seiner Position im Z-Pufferbereich 46 in das Register 48 übertragen wurde.
  • Wenn der neue Z-Puffer-Tiefenwert größer ist als der bestehende Z-Puffer-Tiefenwert, befiehlt der Komparator 60 dem Rahmenpuffer 42, den "Schreib"-befehl vom Fenstermanager zu ignorieren. Falls der neue Z-Puffer-Tiefenwert niedriger als oder gleich groß wie der existierende Z-Puffer-Tiefenwert ist, gibt der Komparator 60 an den Rahmenpuffer 42 ein Signal aus, das diesem befiehlt, den neuen Pixelwert an der gegebenen Pixeladresse zu speichern; er gibt außerdem an den Z-Pufferbereich ein Signal aus, das diesem befiehlt, den neuen Z-Puffer- Tiefenwert zu speichern. Dieser Prozeß wird solange fortgeführt, bis jeder existierende Z-Puffer-Tiefenwert, der mit jeder betroffenen Pixeladresse im Rahmenpuffer 42 zusammenhängt, mit einem Z-Puffer-Tiefenwert für diese Adresse verglichen wurde.
  • Auf diese Weise erreicht das Z-Puffersystem 46 des ersten Ausführungsbeispiels das Ziel, daß es dem Z-Puffersystem 46 möglich ist, für den Fenstermanager das Ausschneiden durchzuführen. Solange die "Schreib"-anforderung des Fenstermanagers den für das Fenster im Zusammenhang mit einer bestimmten Anwendung geeigneten Z-Puffer-Tiefenwert enthält, gewährleistet das Z-Puffersystem 46, daß nur die tatsächlich für das Fenster sichtbaren Pixel aktualisiert werden. In diesem Ausführungsbeispiel ist es für den Fenstermanager jedoch sehr zeitaufwendig, die relative Stapelordnung der Fenster zu ändern. Figur 7A zeigt die relative Position der gestapelten Fenster A, B, C und D auf dem Bildschirm des Anzeigemonitors 20 der vorliegenden Erfindung zusammen mit einem stylisierten 9 x 8 Gitter aus Pixeln, die das auf dem Bildschirm angezeigte Anzeigebild darstellen, wobei die zu jeder Pixelposition gehörenden Nummern der Tiefe des dazugehörigen Fensters entsprechen, in dem sich das jeweilige Pixel befindet, das heißt, beispielsweise 0, 1, 2, 3 und 4. Figur 7B zeigt eine Bildschirmanzeige derselben Fenster, mit der Ausnahme, daß Fenster B nach unten gedrückt wurde, was dazu führt, daß die zu allen Pixeln und allen Fenstern gehörenden Tiefenwerte aktualisiert werden müssen, bevor die Fenster für die neue Fensteranordnung zurückgezogen werden können. Ein entsprechendes stylisiertes 9 x 8 Gitter aus Pixeln, die die neuen Fensterpositionen darstellen, wird in Figur 7B unterhalb des Bildschirms gezeigt. Die Pixel, die aktualisiert werden müssen, wenn das Fenster A im Stapel nach unten bewegt wird, sind im stylisierten Gitter von Figur 7B fett dargestellt.
  • Im zweiten Ausführungsbeispiel (Figur 8) enthält der Z-Pufferbereich 66 ebenfalls den derzeitigen Z-Puffer-Tiefenwert für das Anzeigebild auf dem Bildschirm; der existierende gespeicherte Tiefenwert wird jedoch in einem Anzeigebild spezifiziert, das sich von dem im ersten Ausführungsbeispiel spezifizierten unterscheidet. Im zweiten Ausführungsbeispiel enthält der existierende gespeicherte Tiefenwert sowohl eine Fensteridentifikations-Ganzzahl, die das jeweilige Fenster A, B, C oder D identifiziert, als auch einen Pixel-Tiefenwert innerhalb des auf dem Bildschirm gebildeten Fensters. Die Fenstertiefe erhält man dann, indem man die Fensteridentifikations- Ganzzahl als einen Index auf die Fenstertiefentabelle 68 verwendet, die die Tiefe jedes Fensters relativ zur referenzierten Position enthält. Vorzugsweise ist die Fenstertiefentabelle ein herkömmlicher RAM-Bereich.
  • Wir betrachten nun ausführlicher das zweite Ausführungsbeispiel. Der Fenstermanager bestimmt nach einer Anforderung des Eingabegeräts 12 zur Umordnung der Fenster auf dem Anzeigebildschirm die neuen relativen Tiefenpositionen der Mehrzahl der Fenster A, B, C und D, ordnet jedem Fenster einen neuen Fenstertiefenwert zu und überträgt den neuen Fenstertiefenwert in die Fenstertiefentabelle 68. Der Fenstermanager befiehlt außerdem jeder Anwendung, deren Anzeige betroffen ist, entweder das gesamte zu ihrer Anzeige gehörende Anzeigebild oder zumindest den durch die vorgeschlagene Bildschirmumstellung betroffenen Teil erneut zu senden.
  • Das übertragene Anzeigebild wird an den Anzeigeadapter 22 geleitet, wo durch den Prozessor 36 eine Konversion in einen Bereich aus Pixelwerten stattfindet; in diesem Prozessor kann, wie auch im ersten Ausführungsbeispiel, jedes Pixel sequenziell im Register 56 gespeichert werden, wobei die dazugehörige Pixeladresse in Register 58 gespeichert wird. Der Fenstermanager überträgt jedoch an das Register 70 einen Tiefenwert, der sich von dem im ersten Ausführungsbeispiel in das Register 54 übertragenen Tiefenwert darin unterscheidet, daß eine Fensteridentifikations-Ganzzahl und nicht ein richtiger Tiefenwert in den höheren Bitpositionen 72 des Registers 70 gespeichert wird; die zu einem bestimmten Fenster gehörige Pixeltiefe wird in den niedrigeren Bitpositionen 74 gespeichert.
  • In entsprechender Weise empfängt das Register 76 vom Z-Pufferbereich 66 für die jeweilige Pixelposition einen existierenden Tiefenwert, wobei dieser Wert in den höheren Bitpositionen des Registers 76 eine Fensteridentifikationsganzzahl und in den niedrigeren Bitpositionen des Registers 76 eine Pixeltiefe innerhalb des Fensters enthält.
  • Im zweiten Ausführungsbeispiel werden die Z-Puffer-Tiefenwerte, die in den Registern 74 und 76 enthalten sind, durch Ersetzen des entsprechenden Tiefenwerts jeder Fensteridentifikation aus der Fenstertiefentabelle 68 modifiziert, bevor der Z-Pufferwert in den Registern 78 bzw. 80 gespeichert wird. Ein herkömmlicher Komparator 82 vergleicht den neuen Z-Puffer- Tiefenwert in Register 78 mit dem in Register 80 vorhandenen Z-Puffer-Tiefenwert. Ist der neue Wert in Register 78 größer als der existierende Wert in Register 80, befiehlt der Komparator 82 dem Rahmenpuffer 42, den Schreibbefehl aus dem Fenstermanager zu ignorieren, was dazu führt, daß der jeweilige Pixelwert für die jeweilige Pixeladresse nicht aktualisiert wird. Für den Fall, daß der neue Wert in Register 78 kleiner oder gleich groß ist wie der existierende Wert in Register 80, befiehlt der Komparator 82 dem Rahmenpuffer 42, den neuen Pixelwert an der jeweiligen Pixeladresse zu akzeptieren, und befiehlt außerdem dem Z-Puffer 66, den jeweiligen Z-Pufferwert für die jeweilige Pixeladresse zu aktualisieren.
  • Es wird darauf hingewiesen, daß es nicht erforderlich ist, alle Tiefenwerte für alle Pixelpositionen im Z-Puffer 66 zu ändern. In einer 8-Bit-Fensteridentifikation beispielsweise sind höchstens 256 Fenstertiefentabelleneinträge zu ändern. Bedecken die Fenster jedoch den größten Teil der Bildschirmanzeigefläche auf einem 1024x1024-Bildschirm, so müßten im ersten Ausführungsbeispiel ungefähr 1 Million Z-Puffer- Einträge geändert werden. Um jedoch diesen Vorteil zu erzielen, ist die zusätzliche Fensterpuffertabelle 68 erforderlich.
  • Damit die Tabelle 68 keine Verzögerung bei der Aktualisierung des Rahmenpuffers und des Z-Puffers bewirkt, muß die Tabelle 68 in den Registern 70 und 76 die Fensteridentifikationsganzzahlen lesen und sehr schnell entsprechende wahre Tiefenwerte an die Register 78 und 80 übertragen. Die Verarbeitung muß mit derselben Geschwindigkeit erfolgen, mit der die Pixel gezeichnet werden. Wird die Tabelle 68 als eine weitere Phase in der Grafik-Pipeline implementiert, trägt dies in geringem Maße zu der für das Erscheinen des ersten Pixels einer Operation erforderlichen Latenz bei, reduziert jedoch nicht die Geschwindigkeit für das Zeichnen der Pixel.
  • Die Figuren 9A und 9B zeigen, wie sich der Fensteridentifikationsteil des Tiefenwerts für die Pixel ändert, wenn das Fenster A von oben nach unten gedrückt wird. Es wird darauf hingewiesen, daß, obwohl einige Werte sich geändert haben, diese nicht in Fettdarstellung angezeigt werden, da sie nicht vom Fenstermanager geändert wurden, wie dies im ersten Ausführungsbeispiel der Fall war. In diesem Beispiel hat der Fenstermanager nur die wenigen Einträge in der Fenstertiefentabelle (in diesem konkreten Fall 4) geändert. Die Fensteridentifikationsganzzahlen im Z-Puffer werden daraufhin automatisch geändert, wenn die Anwendungen B und C die Fenster infolge der neuen Tiefenwerte in der Fenstertiefentabelle 68 neu zeichnen.
  • Im dritten Ausführungsbeispiel enthält der Z-Pufferbereich 88 außerdem einen Tiefenwert, der aus einer Fensteridentifikationsganzzahl und einer Pixeltiefe innerhalb des Fensters für jedes Pixel besteht. Anstatt einer Fenstertiefentabelle verwendet das dritte Ausführungsbeispiel jedoch einen direkten Vergleich der neuen Fensteridentifikationsganzzahl, die an das Register 90 gesendet wurde, mit der existierenden Fensteridentifikationsganzzahl, die aus dem Z-Pufferbereich 88 an das Register 92 übertragen wurde. Die Fensteridentifikationsganzzahlen für die Register 90 und 92 werden in den Bitpositionen höherer Ordnung gespeichert, und die Pixeltiefenwerte werden in einer Weise, die der in den anderen Ausführungsbeispielen ähnelt, in den niedrigeren Bitpositionen gespeichert. Bei genauerer Betrachtung des dritten Ausführungsbeispiels werden die existierende Fensteridentifikationsganzzahl aus dem Register 92 und die Fensteridentifikationsganzzahl aus dem Register 90 von einem herkömmlichen Komparator 94 gelesen.
  • Wenn der Komparator 94 bestimmt, daß die Fensteridentifikationen gleich sind, gibt er an ein AND-Gatter 96 ein Aktivierungssignal aus. Darüber hinaus wird der existierende Pixeltiefenwert in Register 92 mit dem neuen Pixeltiefenwert aus dem Register 90 in einem herkömmlichen Komparator 98 verglichen. Ist der neue Pixeltiefenwert kleiner als oder gleich groß wie der alte Pixeltiefenwert, gibt der Komparator an das AND-Gatter 96 ein Aktivierungssignal aus. Empfängt das AND- Gatter 96 nicht sowohl vom Komparator 94 als auch vom Komparator 96 ein Aktivierungssignal, befiehlt das AND-Gatter dem Rahmenpuffer 42 und dem Z-Puffer 88, den Schreibbefehl vom Fenstermanager zu ignorieren. Empfängt das AND-Gatter 96 sowohl vom Komparator 94 als auch vom Komparator 98 Aktivierungssignale, befiehlt es dem Z-Puffer, den neuen Z-Pufferwert 100 zu speichern, und befiehlt dem Rahmenpuffer 42, den neuen Pixelwert 102 für die bestimmte Pixelposition zu speichern.
  • Der Z-Puffer des dritten Ausführungsbeispiels weist gegenüber dem Z-Puffer des zweiten Ausführungsbeispiels einen Vorteil auf, der darin besteht, daß keine separate Hochgeschwindigkeits-Fenstertiefentabelle benötigt wird. Es wird darauf hingewiesen, daß die Vergleiche des Komparators 94 und des Komparators 98 parallel laufen können. Der Nachteil dieser Anordnung besteht darin, daß der Fenstermanager den Besitz der Pixel ausdrücklich ändern muß, indem er die neuen Fensteridentifikationsganzzahlen bei der Umordnung der Fenster im Z- Puffer 88 speichert.
  • Die Figuren 11A und 11B zeigen, wie sich die Z-Pufferwerte ändern, wenn das Fenster A von oben nach unten gedrückt wird. Die vom Fenstermanager modifizierten Z-Pufferwerte werden in Fettdruck dargestellt. Es wird jedoch darauf hingewiesen, daß mit dem Z-Puffersystem des dritten Ausführungsbeispiels wesentlich weniger Z-Werte modifiziert werden müssen als im ersten Ausführungsbeispiel, wo für alle Pixel und Fenster eine Aktualisierung erforderlich war, unabhängig davon, ob ein Fenster nun betroffen war oder nicht. In diesem Ausführungs beispiel werden lediglich die Pixel in den sich überlappenden Bereichen der betreffenden Fenster aktualisiert.
  • Im vierten Ausführungsbeispiel überträgt der Fenstermanager Informationen an den Anzeigeadapter auf die gleiche Weise wie im dritten Ausführungsbeispiel, jedoch ist die Art und Weise, wie die Informationen im Anzeigeadapter 22 organisiert sind, unterschiedlich. Bei genauerer Betrachtung des vierten Ausführungsbeispiels sieht man, daß der Anzeigeadapter 22 sowohl einen Z-Pufferbereich 104 zur Speicherung der Tiefeninformationen eines Pixelwerts innerhalb eines Fensters als auch einen separaten W-Pufferbereich 106 zur Speicherung der Fensteridentifikationsganzzahl, die jeder Pixelposition zugeordnet ist, enthält. In diesem Ausführungsbeispiel gibt der Fenstermanager die neue Fensteridentifikation an das Register 108 im Anzeigeadapter aus. Der dazugehörige Pixeltiefenwert innerhalb des Fensters wird vom Fenstermanager in das Register 110 geladen. Für jede Pixelposition in der Sequenz wird die existierende Fensteridentifikationsganzzahl aus dem W-Puffer 106 im Register 112 gespeichert und ein entsprechender Pixeltiefenwert aus Z-Puffer 104 in Register 114 gespeichert. Ein herkömmlicher Komparator 116 vergleicht daraufhin die neue Fensteridentifikationsganzzahl aus dem Register 108 mit der existierenden Fensteridentifikationsganzzahl aus dem Register 112. Sind die Fensteridentifikationen nicht gleich, gibt der Komparator 116 an den Z-Puffer und Rahmenpuffer ein Signal aus, das diesen befiehlt, den Schreibbefehl vom Fenstermanager zu ignorieren. Sind jedoch die Fensteridentifikationsganzzahlen vom Register 108 und vom Register 114 gleich, erzeugt der Komparator 116 ein Aktivierungssignal, das an den herkömmlichen Komparator 118 übertragen wird. Der Komparator 118 vergleicht ebenfalls den existierenden Pixeltiefenwert, der in Register 114 gespeichert ist, mit dem neuen Pixeltiefenwert, der in Register 110 gespeichert ist. Ist der neue Pixeltiefenwert größer als der existierende Pixeltiefenwert, gibt der Komparator 118 an den Z-Puffer und Rahmenpuffer ein Signal aus, das diesen befiehlt, den Schreibbefehl vom Fenstermanager zu ignorieren. Für den Fall, daß der neue Pixeltiefenwert kleiner als oder gleich groß wie der alte Pixeltiefenwert ist und der Komparator 118 vom Komparator 116 ein Aktivierungssignal empfangen hat, gibt der Komparator 118 ein Aktivierungssignal aus, das dem Z-Puffer 104 befiehlt, den neuen Pixeltiefenwert zu speichern, und befiehlt dem Rahmenpuffer 42, den neuen Pixelwert zu speichern.
  • Das vierte Ausführungsbeispiel bietet gegenüber dem dritten Ausführungsbeispiel einen Vorteil, der darin liegt, daß die Fensteridentifikationen nur einmal für jede Gruppe von Grafikoperationen zum Anzeigeadapter 22 übertragen werden müssen. Darüber hinaus kann der Zugriff des Fenstermanagers auf das neue Fensteridentifikationsregister 108 auf dem Anzeigeadapter 22 auf Überwachungsstatusprogramme beschränkt werden, so daß das Register durch Anwendungscode nicht beeinträchtigt werden kann. Sobald der Besitz der entsprechenden Pixel durch den Fenstermanager eingestellt wurde und die geeignete Fensteridentifikation in das Register 108 geladen wurde, ist es möglich, dem Anwendungsprogramm direkten Zugriff auf den Anzeigeadapter 22 zu verschaffen, wissend, daß es Bereiche des Bildschirms außerhalb der Fenster, die es besitzt, beeinträchtigen kann, was zu einer beträchtlichen Einsparung von zusätzlichen Kosten führen kann. In Figur 12 werden die beiden Vergleiche sequenziell dargestellt, jedoch wird darauf hingewiesen, daß die beiden Vergleiche ebenso parallel erfolgen können. Es wird außerdem darauf hingewiesen, daß die Z-Werte, die vom Fenstermanager modifiziert wurden, auf die Pixel begrenzt sind, wie sie für das dritte Ausführungsbeispiel in Figur 11B dargestellt sind.
  • In einem fünften Ausführungsbeispiel, das zur Darstellung zweidimensionaler Gegenstände innerhalb jedes einer Mehrzahl an sich überlappenden Fenstern geeignet sein kann, umfaßt der Tiefenwert, der zum Gegenstand innerhalb eines Fensters auf dem Bildschirm gehört, nur eine Fensteridentifikation. Der Tiefenpufferbereich speichert daher lediglich die existierende Fensteridentifikation und nicht einen zusammengesetzten Tiefenwert bestehend aus einer Fenstertiefe und einer Pixeltiefe innerhalb des Fensters. In diesem Ausführungsbeispiel können der Fenstermanager und das Z-Puffersystem, die für das erste Ausführungsbeispiel beschrieben wurden, mit den folgenden geringfügigen Modifikationen verwendet werden. Der Z- Pufferbereich 51 und das Register 48 speichern lediglich eine Fensteridentifikationsganzzahl als Z-Puffer-Tiefenwert und der Fenstermanager 22 gibt lediglich eine neue Fensteridentifikationsganzzahl an das Register 54 aus. In jeder anderen Hinsicht arbeiten die Operationen des Komparators 50, die für das erste Ausführungsbeispiel beschrieben wurden, im wesentlichen in derselben Weise, wie dies zuvor bereits beschrieben wurde. Zwar ist das fünfte Ausführungsbeispiel möglicherweise nicht zur Anzeige komplexer Gegenstände innerhalb eines Fensters geeignet, doch kann es für viele Arten an Fensteranwendungen eine einfache Lösung sein.
  • Die vorliegende Erfindung wurde insbesondere mit Bezug auf bevorzugte Ausführungsbeispiele dargestellt und beschrieben, jedoch weiß der Fachmann auf diesem Gebiet, daß zahlreiche weitere Änderungen in Form und Detail möglich sind, ohne vom Anwendungsbereich der Erfindung abzuweichen.

Claims (11)

1. Ein Computersystem, das folgendes umfaßt: einen Anzeigeadapter (22) mit einem Auffrischungspuffer (42); einen interaktiven Anzeigebildschirm (20) mit einer Bildschirmanzeige, auf dem eine Mehrzahl an mindestens teilweise sich überlappenden Fenstern (28 bis 34) gebildet wird, wobei jedes Fenster Anzeigebilder anzeigt, die durch eine aus einer Mehrzahl an Anwendungen (A bis n) erzeugt wurden, die auf dem Computersystem laufen, und anschließend an den Anzeigeadapter übertragen wurden; ein Mittel zur Anforderung einer Neuanordnung der Tiefen der Mehrzahl an Fenstern bezüglich einer Referenzposition von einer aktuellen Anordnung zu einer neuen Anordnung; ein Managermittel (18) zur Bestimmung der Tiefe des Anzeigebilds, das zu jedem der Fenster gehört, in dem das genannte Managermittel auf die Eingabeanforderung hin die neue Tiefe des Anzeigebilds in jedem der Mehrzahl der Fenster bestimmt, die durch die angeforderte Neuanordnung betroffen sind, und neue Tiefenwerte für das betreffende Anzeigebild ausgibt und jeder Anwendung mit einem Fenster mit betreffendem Anzeigebild befiehlt, mindestens denjenigen Teil des Anzeigebilds erneut zu übertragen, der zu jedem Fenster gehört und der als Ergebnis der Neuanordnung sichtbar wird; und ein Tiefenpuffermittel (46) im Anzeigeadapter zur Speicherung der Tiefenwerte des Anzeigebilds, das zu jedem derjenigen Fenster gehört, die auf dem Bildschirm angezeigt werden, wobei das genannte Tiefenpuffermittel ein Mittel (50) zum Vergleich des Tiefenwerts für das erneut übertragene Anzeigebild mit dem Tiefenwert des angezeigten Anzeigebilds auf die Eingabeanforderung hin umfaßt, und, wenn das erneut übertragene Anzeigebild einen Tiefenwert aufweist, der zum selben Fenster oder zu einem näher am Betrachter liegenden Fenster gehört, befiehlt das Vergleichsmittel dem Auffrischungspuffer, das erneut übertragene Anzeigebild zur Wiederauffrischung des Bildschirms zu speichern.
2. Ein Computersystem gemäß Anspruch 1, wobei das genannte Komparatormittel dem Tiefenpuffermittel befiehlt, die Tiefenwerte für das erneut übertragene Anzeigebild, das im Auffrischungspuffer gespeichert ist, zu speichern.
3. Ein Computersystem gemäß Anspruch 1 oder Anspruch 2, wobei, wenn das neue Anzeigebild einen Tiefenwert aufweist, das zu einem vom Betrachter weiter entfernt liegenden Fenster gehört, das genannte Komparatormittel den Auffrischungspuffer daran hindert, das erneut übertragene Anzeigebild zu speichern, und der Bildschirm mit dem derzeit im Auffrischungspuffer befindlichen Anzeigebild wieder aufgefrischt wird.
4. Ein Computersystem gemäß Anspruch 1, 2 oder 3, wobei das Anzeigebild, das zu jedem der Fenster gehört, im Auffrischungspuffer als Satz aus Pixelwerten mit spezifischen Pixeladressen gespeichert wird; und wobei das genannte Managermittel jedem Pixelwert in jedem Pixelsatz, der jedem derzeit auf dem Bildschirm befindlichen Fenster zugeordnet ist, einen Tiefenwert zuordnet und auf die Eingabeaufforderung hin der Gruppe von Pixelwerten, die durch die Eingabeaufforderung betroffen sind, neue Tiefenwerte zuordnet und die neuen Tiefenwerte an das genannte Tiefenpuffermittel überträgt.
5. Ein Computersystem gemäß allen vorherigen Ansprüchen, wobei der Tiefenwert für das Anzeigebild eine Verkettung des Fenstertiefenwerts für das Fenster für das Anzeigebild und des Tiefenwerts des Anzeigebilds innerhalb des Fensters für das Anzeigebild umfaßt.
6. Ein Computersystem gemäß Anspruch 1, wobei der Tiefenwert für das Anzeigebild, das zu einem Fenster gehört und das auf dem Bildschirm gebildet wird, eine Fensteridentifikation und einen Pixeltiefenwert umfaßt, die die Tiefe des Anzeigebilds innerhalb des Fensters für das Anzeigebild darstellen; wobei das genannte Puffermittel die aktuellen Fensteridentifikationen für die Mehrzahl sich überlappender Fenster speichert; das genannte Komparatormittel umfaßt eine Fenstertiefentabelle, die den aktuellen Tiefenwert speichert, der zu jeder Fensteridentifikation gehört; das genannte Managermittel gibt auf die Anforderung des genannten Eingabemittels hin für jede in der Fenstertiefentabelle aufgelistete Fensteridentifikation eine neue Tiefenposition sowie die neuen Fensteridentifikationen und Pixeltiefenwerte an das genannte Komparatormittel aus; und das genannte Komparatormittel liest aus der genannten Fenstertiefentabelle den Tiefenwert der derzeit im Puffermittel befindlichen Fensteridentifikation sowie den Tiefenwert für die neue Fensteridentifikation aus und vergleicht die entsprechenden Tiefenwerte für die aus der genannten Fenstertiefentabelle entnommenen Fenster.
7. Ein Computersystem gemäß Anspruch 6, wobei jeder Tiefenwert eine Verkettung der Fensteridentifikation und des Fenstertiefenwerts innerhalb des Fensters umfaßt; und wobei der genannte Komparator den Verkettungswert, der sich derzeit im genannten Puffermittel befindet, mit dem neuen Verkettungswert vergleicht.
8. Ein Computersystem gemäß Anspruch 1, wobei der Tiefenwert für das Anzeigebild innerhalb eines Fensters eine Fensteridentifikation und einen Pixeltiefenwert umfaßt, der repräsentativ für die Tiefe des Anzeigebilds innerhalb des Fensters für das Anzeigebild ist; das genannte Puffermittel speichert die derzeitigen Fensteridentifikationen und dazugehörigen Pixeltiefenwerte für die Mehrzahl sich überlappender Fenster; das genannte Managermittel gibt auf die Anforderung des genannten Eingabemittels hin die neuen Fensteridentifikationen und dazugehörigen Pixeltiefenwerte für die Mehrzahl sich überlappender Fenster an das genannte Komparatormittel aus; das genannte Komparatormittel umfaßt das erste Komparatormittel für den Vergleich der neuen Fensteridentifikation, in dem, wenn die aktuellen Fensteridentifikationen und die neuen Fensteridentifikationen gleich sind, der erste Komparator ein erstes Aktivierungssignal ausgibt; ein zweites Komparatormittel für den Vergleich des derzeitigen Pixeltiefenwerts, der zu jeder derzeitigen Fensteridentifikation, wobei der neue Pixeltiefenwert mit der neuen Fensteridentifikation zusammenhängt, wobei, wenn der neue Pixeltiefenwert niedriger als oder gleich groß wie der aktuelle Pixeltiefenwert ist, der zweite Komparator ein zweites Aktivierungssignal ausgibt; und ein Logikmittel, das an die Ausgaben des genannten ersten und des genannten zweiten Komparators gekoppelt ist, und bei Empfang des ersten und zweiten Aktivierungssignals von den genannten Komparatoren zur Ausgabe eines Aktivierungssignals an den genannten Auffrischungspuffer dient, wobei der Auffrischungspuffer die neuen Pixelwerte aufnimmt und das Puffermittel auf das Aktivierungssignal hin die neue Fensteridentifikation aufnimmt.
9. Ein Computersystem gemäß Anspruch 1, wobei der Tiefenwert, der mit dem Anzeigebild jedes Fensters zusammenhängt, eine Fensteridentifikation und einen Pixeltiefenwert umfaßt, der repräsentativ ist für die Tiefe des Anzeigebilds innerhalb des Fensters für das Anzeigebild; das genannte Puffermittel umfaßt ein erstes Puffermittel zur Speicherung der aktuellen Fensteridentifikation für das Anzeigebild, das auf jedem der sich überlappenden Fenster angezeigt wird; und ein zweites Puffermittel zur Speicherung des aktuellen Pixeltiefenwerts des Anzeigebilds, das auf jedem der sich überlappenden Bildschirme angezeigt wird; das genannte Managermittel gibt bei einer Anforderung vom genannten Eingabemittel die neue Fensteridentifikation und den neuen Pixeltiefenwert an das genannte Komparatormittel sowie eine neue Tiefenposition für jede Fensteridentifikation an die Fensteridenti fikationstabelle aus, wobei das genannte Komparatormittel ein erstes Komparatormittel umfaßt, das an das erste Puffermittel gekoppelt ist und für den Vergleich der neuen Fensteridentifikation mit der derzeitigen Fensteridentifikation dient, wobei, wenn die derzeitige und die neue Fensteridentifikation gleich sind, der erste Komparator an den zweiten Komparator ein Aktivierungssignal ausgibt; und ein zweites Komparatormittel umfaßt, das an das zweite Puffermittel gekoppelt ist und bei Empfang eines Aktivierungssignals vom ersten Komparator für den Vergleich des derzeitigen Pixelwerts mit dem neuen Pixelwert dient, wobei, wenn der neue Pixelwert kleiner als oder gleich groß wie der derzeitige Pixeltiefenwert ist, der genannte zweite Komparator Aktivierungssignale an das erste und an das zweite Puffermittel ausgibt, wobei das genannte erste Puffermittel die neue Fensteridentifikation und das genannte zweite Puffermittel den neuen Tiefenwert speichert.
10. Ein Computersystem gemäß Anspruch 1, wobei der Tiefenwert, der mit dem Anzeigebild innerhalb eines Fensters auf einem Bildschirm zusammenhängt, eine Fensteridentifikation umfaßt; das genannte Puffermittel speichert die derzeitige Fensteridentifikation für das Themengenbiet, das in jedem der sich überlappenden Fenster angezeigt wird; das genannte Managermittel gibt bei einer Anforderung des Eingabemittels eine neue Fensteridentifikation aus; das genannte Komparatormittel vergleicht die Fensteridentifikation des neu übertragenen Anzeigebilds mit der Fensteridentifikation des derzeit angezeigten Anzeigebilds und, wenn die neue Fensteridentifikation dem Betrachter dasselbe Fenster oder ein näher am Betrachter liegendes Fenster identifiziert, der Komparator gibt Aktivierungssignale an den Auffrischungspuffer und an das Puffermittel aus; und bei Empfang der Aktivierungssignale speichert der Auffrischungspuffer das neue Anzeigebild zur Wiederauffrischung der Bildschirmanzeige mit dem neuen Anzeigebild und das Puffermittel speichert die neue Fensteridentifikation.
11. Ein Computersystem gemäß allen vorherigen Ansprüchen, wobei das genannte Tiefenpuffermittel ein RAM-Array ist, das sich im Anzeigeadapter befindet; und das genannte Managermittel befiehlt jeder Anwendung, die durch die Fensterneuanordnung beeinträchtigt ist, das zu jeder Anwendung gehörende Anzeigebild direkt zum Anzeigeadapter zu übertragen.
DE68922093T 1989-02-06 1989-11-30 Rechner-Anzeigesysteme mit Fenstern. Expired - Lifetime DE68922093T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US30612589A 1989-02-06 1989-02-06

Publications (2)

Publication Number Publication Date
DE68922093D1 DE68922093D1 (de) 1995-05-11
DE68922093T2 true DE68922093T2 (de) 1995-10-05

Family

ID=23183938

Family Applications (1)

Application Number Title Priority Date Filing Date
DE68922093T Expired - Lifetime DE68922093T2 (de) 1989-02-06 1989-11-30 Rechner-Anzeigesysteme mit Fenstern.

Country Status (8)

Country Link
EP (1) EP0381892B1 (de)
JP (1) JPH0612518B2 (de)
KR (1) KR920006746B1 (de)
CN (1) CN1016013B (de)
AU (1) AU623468B2 (de)
CA (1) CA1323450C (de)
DE (1) DE68922093T2 (de)
ES (1) ES2070916T3 (de)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE1007551A3 (nl) * 1993-09-24 1995-08-01 Philips Electronics Nv Werkwijze voor het in een rekenmachine automatisch herstellen van consistentie in een hierarchische objektstruktuur na een interaktie door een gebruiker en rekenmachine voorzien van zo een systeem voor automatische consistentieherstelling.
AU7725794A (en) * 1993-12-30 1995-07-17 Taligent, Inc. Object-oriented view hierarchy framework
US5524200A (en) * 1993-12-30 1996-06-04 Taligent, Inc. Object-oriented non-rectilinear viewing framework
JPH09185356A (ja) * 1995-12-29 1997-07-15 Nec Corp マルチウィンドウ表示制御システム
JP2976879B2 (ja) * 1996-03-22 1999-11-10 日本電気株式会社 深さ付きウィンドウ表示方式
KR100681115B1 (ko) * 1999-11-24 2007-02-08 주식회사 케이티 통신시스템에서의 그래픽 화면 처리 속도 향상 방법
ATE532106T1 (de) 2002-09-20 2011-11-15 Fujifilm Corp Verfahren zur herstellung einer flachdruckplatte
JP2006119729A (ja) 2004-10-19 2006-05-11 Sony Corp プログラム、並びに画像表示制御方法および装置
CN1300684C (zh) * 2005-01-31 2007-02-14 浙江大学 确定图形用户界面中窗口剪切关系的方法
CN115220826A (zh) * 2021-04-15 2022-10-21 华为技术有限公司 窗口显示的方法和电子设备
CN114398019B (zh) * 2022-01-24 2024-02-23 广州文石信息科技有限公司 屏幕更新请求的处理方法、装置及电子墨水屏设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4439760A (en) * 1981-05-19 1984-03-27 Bell Telephone Laboratories, Incorporated Method and apparatus for compiling three-dimensional digital image information
WO1985002049A1 (en) * 1983-11-03 1985-05-09 Burroughs Corporation Method of electronically moving portions of several different images on a crt screen
GB2162726A (en) * 1984-07-31 1986-02-05 Ibm Display of overlapping viewport areas
US4710761A (en) * 1985-07-09 1987-12-01 American Telephone And Telegraph Company, At&T Bell Laboratories Window border generation in a bitmapped graphics workstation
GB2180729B (en) * 1985-09-13 1989-10-11 Sun Microsystems Inc Method and apparatus for dma window display
US4987530A (en) * 1985-11-15 1991-01-22 Data General Corp. Input/output controller for a data processing system
JPS62276673A (ja) * 1986-05-26 1987-12-01 Toshiba Corp マルチウインドウ表示装置
JPH0814785B2 (ja) * 1986-09-24 1996-02-14 株式会社日立製作所 表示制御装置
JPS63153627A (ja) * 1986-12-17 1988-06-27 Pfu Ltd 表示順位管理方式
AU617464B2 (en) * 1988-10-31 1991-11-28 Sun Microsystems, Inc. Apparatus for extending windows using z buffer memory

Also Published As

Publication number Publication date
JPH02234219A (ja) 1990-09-17
EP0381892B1 (de) 1995-04-05
CA1323450C (en) 1993-10-19
DE68922093D1 (de) 1995-05-11
JPH0612518B2 (ja) 1994-02-16
KR920006746B1 (ko) 1992-08-17
CN1016013B (zh) 1992-03-25
AU623468B2 (en) 1992-05-14
ES2070916T3 (es) 1995-06-16
EP0381892A3 (de) 1991-03-27
CN1044718A (zh) 1990-08-15
EP0381892A2 (de) 1990-08-16
AU4763690A (en) 1990-08-09
KR900013418A (ko) 1990-09-05

Similar Documents

Publication Publication Date Title
DE69735975T2 (de) System und Verfahren zur Überlagerung von wahlweise in unterschiedlichen nativen Formaten gespeicherten Bildern
DE3787125T2 (de) Mehrfensteranzeigesystem.
DE69211231T2 (de) Verfahren und Vorrichtung zur Verwaltung eines gemeinsam genutzten Speichers ausserhalb des Bildschirms
DE3751075T2 (de) Verfahren und System zur Steuerung einer Multibildschirmanzeige.
DE68923492T2 (de) Verfahren zum Zugriff auf ausgewählte Fenster in einem Mehrprozessbetriebssystem.
DE69635403T2 (de) Grafikbibliothek auf geteilten Ebenen
DE3850955T2 (de) Anzeigesystem mit einem Fenstermechanismus.
DE3787496T2 (de) Verfahren und Einrichtung zum Steuern von Mehrfenstern und Arbeitsstation mit Mehrfensterfunktion.
DE68920147T2 (de) Anzeigesystem.
DE19709220B4 (de) System und Verfahren für eine beschleunigte Verdeckungsauslese
DE69026647T2 (de) Zoommodusbetriebsarten in einem Anzeigegerät
DE3587209T2 (de) Datenanzeigesystem mit Möglichkeit zum Mischen von Anzeigequellen und mit Benutzung eines Anzeigegerätes vom Speichertyp.
DE60008520T2 (de) Darstellung von durchsichtigen schichten
DE69117112T2 (de) Verfahren und Vorrichtung zur Bildwiedergabe
DE69122147T2 (de) Verfahren und Einrichtung zum Abschneiden von Pixeln von Quellen- und Zielfenstern in einem graphischen System
DE3851285T2 (de) Anzeige-Steuersystem.
DE3346816A1 (de) Sichtanzeigeanordnung fuer verschiedenartige zeicheninformationen
DE60015213T2 (de) Paralelle Wiedergabevorrichtung
DE69107602T2 (de) Verfahren und Vorrichtung zum direkten Schreiben in einem Rasterpufferspeicher eines Rechners mit einem Fenstersystem, das den Bildschirm steuert.
DE68922093T2 (de) Rechner-Anzeigesysteme mit Fenstern.
DE69021939T2 (de) Rechnergestützte Erzeugung beweglicher Bilder.
WO2005091131A2 (de) Computersystem zur elektronischen datenverarbeitung
DE60008867T2 (de) Antialiasingverfahren und -anordnung zur effizienten nutzung von wenigen mischeinheiten
DE69127554T2 (de) Interpretation der bildposition in einem graphischen system.
DE102010002288A1 (de) Displaysystem zum gleichzeitigen Darstellen von Fenstern, die durch mehrere Fenstersysteme erzeugt werden, die der gleichen Computerplattform zugeordnet sind

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)