DE102007061435A1 - Verfahren zum Erfassen von GDI und DirectX Daten - Google Patents

Verfahren zum Erfassen von GDI und DirectX Daten Download PDF

Info

Publication number
DE102007061435A1
DE102007061435A1 DE102007061435A DE102007061435A DE102007061435A1 DE 102007061435 A1 DE102007061435 A1 DE 102007061435A1 DE 102007061435 A DE102007061435 A DE 102007061435A DE 102007061435 A DE102007061435 A DE 102007061435A DE 102007061435 A1 DE102007061435 A1 DE 102007061435A1
Authority
DE
Germany
Prior art keywords
directx
device interface
data
directdraw
direct3d
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.)
Ceased
Application number
DE102007061435A
Other languages
English (en)
Inventor
Hongwei Li
Chengkun Sun
Yiqiang Yan
Xiaohua Jiang
Shaoping Peng
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.)
Lenovo Beijing Ltd
Legend Holdings Ltd
Original Assignee
Lenovo Beijing Ltd
Legend Holdings Ltd
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 Lenovo Beijing Ltd, Legend Holdings Ltd filed Critical Lenovo Beijing Ltd
Publication of DE102007061435A1 publication Critical patent/DE102007061435A1/de
Ceased 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/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • 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/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers

Abstract

Ein Verfahren zum Erfassen von Graphikvorrichtungsschnittstellendaten und DirectX Daten unter Benutzung eines Filtertreibers, der für eine Graphikvorrichtungsschnittstellenmaschine, einen DirectX Kernel und einen echten Bildschirmtreiber transparent ist, wird offenbart. Das Verfahren weist die Schritte auf: Aktualisieren der Graphikvorrichtungsschnittstelle, und Erfassen der Graphikvorrichtungsschnittstellendaten unter Benutzung einer entsprechenden Graphikvorrichtungsschnittstellenfunktion in dem Filtertreiber; Erfassen, für DirectDraw in DirectX, von DirectDraw Anwendungs- und Videoaktualisierungsdaten durch Abfangen von Seitenumschaltungs- und Bitblocktransfer-Funktionen des DirectDraw Teils; Erfassen, für Direct3D in DirectX, von Daten von Direct3D Anwendungen durch Abfangen der Aktualisierungsschnittstelle des Direct3D Teils. Mit Hilfe des Verfahrens gemäß der vorliegenden Erfindung kann ein ganzheitliches Erfassen von Windows GDI und DirectX Daten erreicht werden, während DirectX Funktionen verfügbar bleiben.

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft das Gebiet der Computergraphik und Bildverarbeitung, und insbesondere ein Verfahren zum Erfassen von Windows Graphikvorrichtungsschnittstellen (GDI – Graphics Device Interface) und DirectX Daten, wobei DirectX Funktionen verfügbar bleiben.
  • 2. Beschreibung des Standes der Technik
  • Nachdem 3D und Videoverarbeitung in gewöhnliche Rechenarbeitsvorgänge von Computern aufgenommen wurden taucht die Notwendigkeit auf, dass GDI Daten und DirectX Daten, sowie 3D und Video, gleichzeitig in Echtzeitfernanwendungen abgefangen werden. Existierende Verfahren zum Erfassen von Daten eines Computerbildschirms werden nachfolgend erläutert:
    • (1) Bei dem ersten Verfahren wird in einem Nutzermodus jede in einem System vorhandene Anwendung mit Hilfe eines Zuschalters zugeschaltet, und jede Funktion hinsichtlich eines Bildwechsels gefiltert und verarbeitet. Unglücklicherweise macht bei dem Betrieb eines Graphiksystems die große Menge von Daten dieses Verfahren relativ ineffektiv und bei synchronem und schnellem Erfassen von Graphikausgaben schwierig. Auch die Synchronisation ist aufgrund des Zuschaltens zu jedem Prozess schwierig. Dieses Verfahren wird bei einer frühen Version des Fernhilfsprogramms wie VNC (Virtual Network Computing) verwendet.
    • (2) Das zweite Verfahren benutzt das in Windows definierte Mirrorsystem (Spiegelsystem) und kann somit jede synchrone Änderung auf eine effiziente Weise erfassen. Dieses Verfahren hat jedoch den Nachteil, dass DirectX Anwendungen automatisch von dem System verhindert werden und somit keine DirectX Daten erfasst werden können.
    • (3) Das dritte Verfahren umfasst das Erfassen von DirectX Daten auf eine solche Weise, dass die DirectX COM Schnittstelle in einem Nutzermodus abgefangen wird. Dieses Verfahren kann aber keine GDI Daten verarbeiten.
    • (4) Das vierte Verfahren umfasst das Erfassen von GDI Daten mit Hilfe eines Filtertreibers. Bei diesem Verfahren kann die Verfügbarkeit der DirectX Schnittstelle beibehalten werden, und die GDI und DirectX Daten können auch komplett in Zusammenarbeit mit dem dritten Verfahren abgefangen werden. Obwohl sowohl GDI als auch DirectX Daten durch eine Kombination des dritten und vierten Verfahrens abgefangen werden können, ist ein solcher Ansatz mühevoll zu verwenden. Darüber hinaus, da das dritte Verfahren an einer komplexen DirectX COM Schnittstelle arbeitet ist es schwierig, das direkt durch DirectX ausgeführte Bildschirmspeicherabfangen zu bestimmen.
  • Aus diesem Grund ist eine Technik zum Erfassen von Windows GDI und DirectX Daten, während DirectX Funktionen verfügbar bleiben, erwünscht.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung wurde hinsichtlich der oben genannten Probleme erdacht. Die Aufgabe der vorliegenden Erfindung ist es, ein Verfahren zum Erfassen von Windows GDI und DirectX Daten, während DirectX Funktionen verfügbar bleiben, bereitzustellen.
  • Gemäß eines Gesichtspunktes der vorliegenden Erfindung wird ein Verfahren zum Erfassen von Graphikvorrichtungsschnittstellendaten und DirectX Daten unter Benutzung eines Filtertreibers, der für eine Graphikvorrichtungsschnittstellenmaschine, einen DirectX Kernel (Kern) und einen echten Bildschirmtreiber transparent ist, bereitgestellt, aufweisend die Schritte: Aktualisieren der Graphikvorrichtungsschnittstelle und Erfassen der Graphikvorrichtungsschnittstellendaten unter Benutzung einer entsprechenden Graphikvorrichtungsschnittstellenfunktion in dem Filtertreiber; Erfassen, für DirectDraw in DirectX, von DirectDraw Anwendungs- und Videoaktualisierungsdaten durch Abfangen von Seitenumschalt- und Bitblocktransfer-Funktionen des DirectDraw-Teils; Erfassen, für Direct3D in DirectX, von Daten von Direct3D Anwendungen durch Abfangen der Aktualisierungsschnittstelle des Direct3D Teils.
  • Bevorzugt umfasst das Verfahren des weiteren Laden eines Bildschirmfiltertreibers auf eine statische oder dynamische Weise vor dem obigen Erfassen.
  • Bevorzugt wird der DirectDraw Teil in DirectX an einer Stelle vor einem Bildschirmpuffer und nach dem Dekodieren von Daten/einem Transformationspuffer abgefangen.
  • Bevorzugt wird der Direkt3D Teil in DirectX an einer Stelle vor einem Bildschirmpuffer und nach einem Transformationspuffer abgefangen.
  • Bevorzugt wird das Abfangen des DirectDraw Teils in DirectX durch Abfangen der Aktualisierungsschnittstellen von Flip und Blit (Block Image Transfer-Blockbildverschiebung) ausgeführt.
  • Bevorzugt wird das Abfangen des Direct3D Teils in DirectX durch Abfangen der Aktualisierungsschnittstellen von DDFlip und DDBlit ausgeführt.
  • Bevorzugt weist das Verfahren des weiteren auf, Speichern in einem Aktualisierungspufferbereich von Aktualisierungen der Graphikvorrichtungsschnittstelle, Aktualisierungen des DirectDraw Teils in DirectX und Aktualisierungen des Direct3D Teils in Direct).
  • Bevorzugt wird eine verlustfreie Komprimierung der Aktualisierungen der Graphikvorrichtungsschnittstelle ausgeführt, während eine verlustbehaftete Komprimierung der Aktualisierungen des DirectDraw Teils in DirectX und der Aktualisierung des Direct3D Teils in DirectX ausgeführt wird.
  • Mit dem Verfahren gemäß der vorliegenden Erfindung wird ein virtueller Graphiktreiber definiert. Dieser Bildschirmfiltertreiber stellt GDI und DirectX Funktionen für ein Graphiksystem bereit und fängt jede Schnittstelle, die in eine lokale Bildschirmaktualisierung eingebunden ist, ab. Wenn die abgefangene Schnittstelle aufgerufen wird, wird basierend darauf, ob eine lokale Anzeige benötigt wird, ein echter Treiber aufgerufen, um zuerst eine lokale Aktualisierung auszuführen. Anschließend wird die Aktualisierung in einer Aktualisierungsliste zur Nachverarbeitung gespeichert. Dieses Schema behält die DirectX Funktion einer Videokarte bei und ermöglicht, dass DirectX Anwendungen des Systems normal arbeiten.
  • Darüber hinaus werden GDI Funktionen über Schnittstellen wie Bitblocktransfer und Bitblockverdoppelung abgefangen und DirectX wird über Schnittstellen wie Seitenumschaltung und Seitenwiedergabe abgefangen. Da eine lokale Aktualisierung des Graphiksystems unter Benutzung dieser Schnittstellen fertiggestellt wird, können GDI und DirectX Aktualisierungen zu der selben Zeit nach dem Abfangen der zwei Arten von Schnittstellen abgefangen werden. Außerdem befinden sich alle abgefangenen Schnittstellen in dem selben Modul und deshalb ist es möglich, ein ganzheitliches Abfangen und eine einfache Verarbeitung zu realisieren. Darüber hinaus wird die Synchronisation zwischen GDI und DirectX Teilen mit einer hohen Effizienz verbessert.
  • Kurze Beschreibung der Zeichnungen
  • Die obigen Merkmale und Vorteile der vorliegenden Erfindung werden durch die nachfolgende detaillierte Beschreibung unter Bezugnahme auf die Zeichnungen offenkundiger, in denen:
  • 1 zeigt ein logisches Verhältnis zwischen einem Bildschirmfiltertreiber und einer GDI Maschine, einem echten Bildschirmtreiber und einem DirectX Kernel, die in dem Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung verwendet werden;
  • 2 zeigt ein Gesamtflussdiagramm des Verfahrens der vorliegenden Erfindung;
  • 3 zeigt ein schematisches Diagramm, welches erklärt, wie Bildschirmdaten in dem Fall von DirectDraw abgefangen werden können;
  • 4 zeigt ein schematisches Diagramm, welches erklärt, wie Bildschirmdaten in dem Fall von Direct3D abgefangen werden können; und
  • 5 zeigt ein Verarbeitungsflussdiagramm, welches DDBlit als ein Beispiel in dem Fall von DDI zeigt.
  • Ausführliche Beschreibung der bevorzugten Ausführungsformen
  • Nachfolgend werden spezielle Ausführungsformen der vorliegenden Erfindung unter Bezugnahme auf die Figuren näher erläutert. In der folgenden Darstellung werden Details mancher aus dem Stand der Technik bekannter Techniken weggelassen, da ansonsten eine solche konkrete Beschreibung wohlbekannter Techniken die Merkmale und Vorteile der vorliegenden Erfindung unklar macht.
  • 1 zeigt ein logisches Verhältnis zwischen einem Bildschirmfiltertreiber 150 und einer GDI Maschine 100, einem echten Bildschirmtreiber 200 und einem DirectX Kernel 500, die in dem Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung verwendet werden.
  • Wie in 1 gezeigt, wird bei der Ausführungsform der vorliegenden Erfindung eine Filterschicht, auf die als Bildschirmfiltertreiber 150 Bezug genommen wird, zwischen GDI Maschine 100 und DirectX Kernel 500, sowie dem echten Bildschirmtreiber 200 hinzugefügt. Dieser Filtertreiber fungiert als zwei Arten von Schnittstellen, d. h. zum Anzeigen der Bildschirmtreiberschnittstelle (DDI – Display Driver Interface) und von DirectX, die von dem existierenden Benutzeroberflächenanzeigesystem unterstützt werden. Durch die Installation des Bildschirmtreibers 150 und die Initialisierung des Systems verhält sich die Filterschicht hinsichtlich der Windows GDI Maschine 100 und dem DirectX Kernel 500 wie ein echter Bildschirmtreiber 200, während er sich hinsichtlich des echten Bildschirmtreibers 200 wie eine Windows GDI Maschine 100 und ein DirectX Kernel 500 verhält. In anderen Worten, der Bildschirmfiltertreiber 150 ist hier für die GDI Maschine 100 und den DirectX Kernel 500 transparent.
  • 2 zeigt ein Gesamtflussdiagramm des Verfahrens gemäß der vorliegenden Erfindung. Wie in 2 gezeigt, wird der Bildschirmfiltertreiber 150 zuerst geladen (S110). Anschließend werden die Bildschirmdaten unter DDI, DirectDraw und Direct3D auf eine Echtzeitweise während des Betriebs des Betriebssystems abgefangen (S120), und Aktualisierungsverarbeitung wird ausgeführt (S130).
  • Zum Zeitpunkt der Installation wird der Bildschirmfiltertreiber 150 in der Systemkonfiguration als der gegenwärtige Treiber für eine physikalische Videokarte gesetzt, oder ein Modulladeeingang des Systems wird abgefangen. Falls während der Laufzeit herausgefunden wird, dass das Lademodul der Treiber für eine physikalische Videokarte ist, so wird der Bildschirmfiltertreiber 150 zuerst geladen, und dann fängt das System die Schnittstelle des echten Treibers nach dem Laden des Bildschirmfiltertreibers 150 ab. Insbesondere fängt der Bildschirmfiltertreiber 150 Aktualisierungen der Windows GDI unter Benutzung einer entsprechenden DDI ab. Für DirectDraw in DirectX fängt der Bildschirmfiltertreiber 150 DirectDraw Anwendungs- und Videoak tualisierungs-Daten durch Abfangen von Seitenumschalt- und Bitblocktransferfunktionen des DirectDraw Teils des Bildschirmtreiberkerns ab. Für Direct3D in DirectX fängt der Bildschirmfiltertreiber 150 die Daten für Direct3D Anwendungen durch Abfangen solcher Aktualisierungsschnittstellen, wie Present in Direct3D des Bildschirmtreiberkerns, ab.
  • Während des Systemkonfigurationsprozesses, bei dem das System Bildschirmfiltertreiber 150 für die gegenwärtige Videokarte lädt, können zwei Verfahren, nämlich ein statisches und ein dynamisches Verfahren, für die Systemkonfiguration verwendet werden.
  • Statischer Ansatz
  • Das Installationsprogramm erfasst die sofort anzeigebereite Vorrichtungsidentifikation (PND DeviceID – Plug-and-Display Device Identification) der Hauptanzeigevorrichtung in dem gegenwärtigen System, und zählt auf und gleicht ab die Vorrichtungsidentifikation (DeviceID) jeder Registereinheit der Videokartenregistereinheit {4d36e968-e325-11ce-bfc1-08002be10318}. Für eine abgeglichene Registereinheit wird die Registereinheit des installierten Bildschirmtreibers (InstalledDisplayDrivers) unter seinem Schlüssel von Settings (Einstellungen) modifiziert und der Wert des Schlüssels wird in den Namen des Bildschirmfiltertreibers 150 geändert. Das Betriebssystem erhält den Modulnamen des Videokartentreibers von dem obigen Namen und lädt das Modul in das System. Auf diese Weise wird der Bildschirmfiltertreiber 150 in das System geladen.
  • Dynamischer Ansatz
  • Die Modulladefunktion des Systems wird abgefangen. Wenn herausgefunden wird, dass das geladene Modul der Videokartentreiber ist, wird der Bildschirmfiltertreiber 150 zuerst geladen, und dann wird der Videokartentreiber von dem Bildschirmfiltertreiber 150 geladen.
  • Nun wird erläutert, wie Bildschirmdaten unter DDI, DirectDraw und Direct3D abgefangen werden.
  • Nachdem das System den Bildschirmfiltertreiber 150 geladen hat, lädt der Bildschirmfiltertreiber 150 einen echten Treiber in einen DrvEnableDriver (Treibereingabetreiber) und erstellt eine Kopie der von dem echten Treiber zurückgesandten DDI Schnittstellenfunktionstabelle. Hinsichtlich der für das Abfangen der Bildschirmaktualisierung benötigten DDI Funktion wird ihr Wert in der Funktionstabelle auf einen Zeiger, der auf eine entsprechende Funktion des Filtertreibers zeigt, modifiziert. Währenddessen wird der ursprüngliche Funktionszeiger gespeichert. Als solche stellt der Bildschirmfiltertreiber 150 die Filterfunktion bei dem Aufruf des echten Bildschirmtreibers 200 fertig.
  • 3 zeigt ein schematisches Diagramm, welches erklärt, wie Bildschirmdaten in dem Fall von DirectDraw abgefangen werden. Wie in 3 gezeigt, ist der Abfangpunkt, bei dem das Verfahren der vorliegenden Erfindung einen Abfangvorgang auslöst, bei dem gemeinsamen Verarbeiten von Videos und Spielen vor einem Bildschirmpuffer und nach dem Dekodieren von Daten/einem Transformationspuffer angeordnet. Die Daten beim Dekodieren von Daten/dem Transformationspuffer sind Videodaten und/oder Spielszenen.
  • Für DirectDraw wird das Abfangen von Bildschirmdaten durch Modifizieren des Zeigers der DirectDraw Funktionstabelle ausgeführt. Bei DirectDraw handelt es sich um einen erweiterten Satz, da DrvEnableDirectDraw in der DDI Funktionstabelle eine Erweiterung der DirectDraw Funktion ist. Während des Aufrufs von DrvEnableDirectDraw werden die Zeiger der Rückruffunktionen in den Strukturen von DD_CALLBACKS, DD_SURFACECALLBACKS und DD_PALETTECALLBACKS so ausgerichtet, dass sie auf die in der vorliegenden Erfindung bereitgestellten Funktionen zeigen, so dass der Aufruf der Funktionen an den entsprechenden Schnittstellen der Surface-(Oberflächen)Erzeugung, Anzeige und Verwaltung erreicht werden, wobei der Aufruf der Funktionen auch erreicht werden kann, wenn Palettenänderungen auftreten. Zwei besonders kritische, abzufangende Aktualisierungsschnittstellen sind Flip und Blit. Die entsprechenden Namen der DDI Schnittstellen sind DDFlip und DDBlit.
  • In 3 werden anzuzeigende Video- und Spielprogrammverarbeitungsinhalte, so wie Dekodieren komprimierter Videodaten, oder berechnen einer nächsten Szene in einem Spiel, und Platzieren der erzeugten Daten in einen Puffer, gezeigt. Falls das gegenwärtige Spiel oder Video in einem Vollbildschirmmodus läuft, so wird eine Flipfunktionen von DirectX zum Aktualisieren der Bildschirmdaten aufgerufen. Andererseits wird Blit zum Aktualisieren aufgerufen, falls das Spiel oder das Video in einem Fenstermodus läuft. Die Ausgangsverarbeitung der zwei Nutzerprogramme wird möglicherweise in von dem Bildschirmtreiber bereitgestellten DDFlip und DDBlit Schnittstellen aufgerufen, und der Filtertreiber kann solche Aufrufe in diesem Mo ment erhalten. Der Bildschirmfiltertreiber 150 speichert diesen Aktualisierungsaufruf zur Nachverarbeitung 400 in der Aktualisierungsaufrufliste 300.
  • 4 zeigt ein schematisches Diagramm, welches erklärt, wie man Bildschirmdaten in dem Fall von Direct3D erfassen kann. Die in 4 gezeigte Verarbeitung ist ähnlich der von DirectDraw, außer dass das komplexe Verarbeiten an einem 3D Objekt, so wie das Transformieren von Material, Shape (Form) und Texture (Textur), schließlich als ein Ausgangspuffer, nämlich ein Transformationspuffer erscheint. In diesem Fall ist der Abfangpunkt von Bildschirmdaten vor dem Anzeigepuffer und nach dem Transformationspuffer angeordnet. Das Abfangen von Direct3D kann so lange erreicht werden, wie DDFlip und DDBlit Schnittstellen von DirectDraw abgefangen werden können.
  • Die Verarbeitung von Direct3D ähnelt der obigen Beschreibung. Direct3D erlaubt eine Überlagerung von Material und Textur, welche ein Modell eines 3D Objekts bilden, eine Transformation von Koordinaten, Positionen und dergleichen, sowie Schattenverarbeitung. Das Ergebnis dieser komplexen Arbeitsabläufe erscheint letztendlich als ein Pufferbereich, der auf Anzeige wartet. Der Unterschied zu DirectX Anwendungsschnittstellen (API – Application Programming Interface) ist, dass die Anzeige des Present Schnittstellenpufferbereichs einheitlich in Direct3D Anwendungen benutzt wird, wohingegen solche Present Schnittstellen nicht in dem echten Treiber existieren und somit DDFlip und DDBlit immer noch zum Ausgeben benutzt werden. Solange DDFlip und DDBlit abgefangen wurden kann die Direct3D Ausgabe ohne ein Abfangen irgendeiner anderen Schnittstelle, die sich auf 3D Modelltransformation bezieht, abgefangen werden.
  • Wenn die Aktualisierung verarbeitet wird, so wird die Abfangschnittstelle des Bildschirmfiltertreibers 150 zuerst aufgerufen, falls ein lokaler Bildschirm benötigt wird. Unterschiedliche Arten von Aktualisierungsverarbeitung und Nachverarbeitung werden für GDI und DirectX Daten benötigt, da sie verschieden voneinander sind.
  • Verarbeitung von GDI Aktualisierungen
  • GDI Daten arbeiten mit einem kumulativen Aktualisierungsansatz, bei dem nur der geänderte Teil aktualisiert wird, und somit umfasst der Aktualisierungsmechanismus zum Verarbeiten von GDI Speichern von Bereichen und Funktionen, welche die Änderung des GDI Bilds verursachen, Back-up (eine Sicherungskopie erstellen) von Quelldaten, die von den Funktionen benötigt werden und zusammen Speichern die ser Elemente in einer Aktualisierungsliste. Da GDI insgesamt eine kleine Menge von Aktualisierungen aufweist, können mehrere Änderungen normalerweise kontinuierlich gespeichert werden.
  • Verarbeitung von DirectDraw und Direct3D Aktualisierungen
  • Die Aktualisierung von DirectDraw und Direct3D unterscheidet sich von der GDI Aktualisierung indem bei den ersteren oft die ganze Seite aktualisiert wird, d. h., die gesamten Daten innerhalb eines geänderten Bereichs werden vollständig aktualisiert, obwohl viele Teile in dem Bereich genau gleich denen in der vorangegangenen Seite bleiben. Dies erfolgt, da ein solches aktualisiertes Bild gewöhnlicherweise aus mehreren Teilen besteht, wobei diese Teile, bevor sie auf den Bildschirm ausgegeben werden, um gewisse spezielle Effekte auszuführen, transformiert und synthetisiert werden müssen. Deshalb weisen die Daten für die obigen Anwendungen gewöhnlicherweise eine Aktualisierung des gesamten Bildschirms eines Videos oder eines 3D Spiels auf der Basis der Seite auf. Diese Art von Aktualisierung wird auch in der Aktualisierungsliste 300 gespeichert. Nur die letzte oder mehrere Aktualisierungen werden aufgrund der Grenzen der Systemressourcen und Bandbreite gespeichert, und die vorangegangene Aktualisierung wird von nachfolgenden überschrieben, falls die Verarbeitung nicht rechtzeitig ausgeführt werden kann.
  • Gemäß einer Ausführungsform werden die gespeicherte GDI Aktualisierung und DirectX Aktualisierung synchron in der Aktualisierungsliste gespeichert, und jede von Ihnen wird in einer zeitlichen Reihenfolge nummeriert. Verlustfreie Komprimierung wird an der GDI Aktualisierung ausgeführt, während eine schnelle verlustbehaftete Komprimierung für die DirectX Aktualisierung ausgeführt wird. In einem Beispiel werden die komprimierten Daten an eines oder mehrere entfernte Endgeräte gesendet, und die Mausfunktion der entfernten Endgeräte wird zurückgeführt, um eine Fernprojektion oder eine Fernsteuerung durchzuführen.
  • 5 zeigt ein Verarbeitungsflussdiagramm, welches DDBlit als ein Beispiel im Fall von DDI zeigt.
  • Als erstes wird die DDBlit Funktion aufgerufen (S210). Anschließend wird bestimmt, ob der Betriebsmodus ein lokales Anzeigen benötigt (S220).
  • Die Aktualisierungsfunktion des echten Treibers wird aufgerufen, falls der gegenwärtige Betriebsmodus lokales Anzeigen benötigt (S220: JA). Ansonsten kann das lokale Anzeigen in manchen Anwendungen nicht notwendig sein (S220: NEIN), so dass das Verfahren des Aufrufens von DDBlit des echten Treibers übersprungen wird.
  • Als nächstes wird bestimmt, ob es sich bei dem Ziel des Aktualisierungspufferbereichs 300 um einen physikalischen Anzeigebereich handelt (S240). Falls es sich nicht um einen physikalischen Anzeigebereich handelt (S240: NEIN), so muss es sich bei der gegenwärtigen Funktion um einen Zwischenschritt handeln, und der Fluss kehrt zurück. Andererseits, falls es sich bei dem Ziel um einen physikalischen Anzeigebereich handelt (S240: JA), so werden Gitterdaten in den Aktualisierungspufferbereich kopiert (S250) und in der Aktualisierungsliste gespeichert.
  • Zum Schluss werden die erhaltenen Gitterdaten einer Nachverarbeitung 400 unterzogen (S260), wobei der Schritt synchron mit dem Aufruf von DDBlit oder auf eine asynchrone Weise, wie benötigt, ausgeführt werden kann.
  • Es ist beabsichtigt, dass die vorangegangene Beschreibung nur die Ausführungsformen der vorliegenden Erfindung veranschaulicht. Fachleute werden verstehen, dass jegliche Modifikation und teilweise Ersetzung, die innerhalb des Umfangs der vorliegenden Erfindung gemacht wurde, von dem Schutzbereich der vorliegenden Erfindung gemäß den Ansprüchen umfasst sein soll. Folglich soll der Schutzbereich der vorliegenden Erfindung durch die beigefügten Ansprüche definiert werden.

Claims (8)

  1. Verfahren zum Erfassen von Graphikvorrichtungsschnittstellendaten und DirectX Daten unter Benutzung eines Filtertreibers, der für eine Graphikvorrichtungsschnittstellenmaschine, einen DirectX Kernel und einen echten Bildschirmtreiber transparent ist, mit den Schritten: Aktualisieren der Graphikvorrichtungsschnittstelle und Erfassen der Graphikvorrichtungsschnittstellendaten unter Benutzung einer entsprechenden Graphikvorrichtungsschnittstellenfunktion in dem Filtertreiber; Erfassen, für DirectDraw in DirectX, von DirectDraw-Anwendungs- und Videoaktualisierungsdaten durch Abfangen von Seitenumschalt- und Bitblocktransfer-Funktionen des DirectDraw-Teils; und Erfassen, für Direct3D in DirectX, von Daten von Direct3D-Anwendungen durch Abfangen der Aktualisierungsschnittstelle des Direct3D-Teils.
  2. Verfahren nach Anspruch 1, des weiteren mit: Laden eines Bildschirmfiltertreibers auf eine statische oder dynamische Weise vor dem Erfassen.
  3. Verfahren nach Anspruch 1, wobei der DirectDraw-Teil in DirectX an einer Stelle vor einem Bildschirmpuffer und nach einem Dekodieren von Daten/einem Transformationspuffer abgefangen wird.
  4. Verfahren nach Anspruch 1, wobei der Direct3D-Teil in DirectX an einer Stelle vor einem Bildschirmpuffer und nach einem Transformationspuffer abgefangen wird.
  5. Verfahren nach Anspruch 3, wobei das Abfangen des DirectDraw-Teils in DirectX durch Abfangen der Aktualisierungsschnittstellen von Flip und Blit ausgeführt wird.
  6. Verfahren nach Anspruch 4, wobei das Abfangen des Direct3D-Teils in DirectX durch Abfangen der Aktualisierungsschnittstellen von DDFlip und DDBlit ausgeführt wird.
  7. Verfahren nach Anspruch 1, des weiteren mit: Speichern in einem Aktualisierungspufferbereich von Aktualisierungen der Graphikvorrichtungsschnittstelle, von Aktualisierungen des DirectDraw-Teils in DirectX und von Aktualisierungen des Direct3D-Teils in DirectX.
  8. Verfahren nach Anspruch 7, wobei eine verlustfreie Komprimierung der Aktualisierungen der Graphikvorrichtungsschnittstelle ausgeführt wird, während eine verlustbehaftete Komprimierung der Aktualisierungen des DirectDraw-Teils in DirectX und der Aktualisierungen des Direct3D-Teils in DirectX ausgeführt wird.
DE102007061435A 2006-12-28 2007-12-20 Verfahren zum Erfassen von GDI und DirectX Daten Ceased DE102007061435A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2006101697579 2006-12-28
CN200610169757A CN101211258B (zh) 2006-12-28 2006-12-28 完整获取GDI和DirectX数据的方法

Publications (1)

Publication Number Publication Date
DE102007061435A1 true DE102007061435A1 (de) 2008-07-03

Family

ID=39465989

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007061435A Ceased DE102007061435A1 (de) 2006-12-28 2007-12-20 Verfahren zum Erfassen von GDI und DirectX Daten

Country Status (3)

Country Link
US (1) US8327387B2 (de)
CN (1) CN101211258B (de)
DE (1) DE102007061435A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639963B2 (en) * 2008-12-08 2017-05-02 Microsoft Technology Licensing, Llc Command remoting techniques
US20110063309A1 (en) * 2009-09-16 2011-03-17 Nvidia Corporation User interface for co-processing techniques on heterogeneous graphics processing units
US9830889B2 (en) 2009-12-31 2017-11-28 Nvidia Corporation Methods and system for artifically and dynamically limiting the display resolution of an application
GB2478583B (en) * 2010-03-11 2012-05-09 Displaylink Uk Ltd Improvements relating to operating systems
CN101882077B (zh) * 2010-05-19 2013-03-20 广东威创视讯科技股份有限公司 高效率绘制与渲染基本图形的方法及装置
CN103902444B (zh) * 2012-12-27 2016-03-02 腾讯科技(深圳)有限公司 3d引擎兼容性测试方法及装置
CN103905394B (zh) * 2012-12-27 2018-09-07 腾讯科技(深圳)有限公司 一种保护用户信息的方法和装置
CN106354247A (zh) * 2015-07-17 2017-01-25 上海乐相科技有限公司 一种头戴式智能眼镜显示控制方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5485617A (en) * 1993-12-13 1996-01-16 Microsoft Corporation Method and system for dynamically generating object connections
US5860009A (en) * 1994-04-28 1999-01-12 Kabushiki Kaisha Toshiba Programming method for concurrent programs and program supporting apparatus thereof
TW295761B (de) * 1994-06-14 1997-01-11 Ericsson Telefon Ab L M
US6677964B1 (en) * 2000-02-18 2004-01-13 Xsides Corporation Method and system for controlling a complementary user interface on a display surface
US8683024B2 (en) * 2003-11-26 2014-03-25 Riip, Inc. System for video digitization and image correction for use with a computer management system

Also Published As

Publication number Publication date
CN101211258B (zh) 2010-05-19
CN101211258A (zh) 2008-07-02
US20080163263A1 (en) 2008-07-03
US8327387B2 (en) 2012-12-04

Similar Documents

Publication Publication Date Title
DE102007061435A1 (de) Verfahren zum Erfassen von GDI und DirectX Daten
DE69635403T2 (de) Grafikbibliothek auf geteilten Ebenen
DE60316388T2 (de) Bildanzeigesystem, netzwerkinteraktive Bildanzeigevorrichtung, Terminal und Zugriffskontrollprogramm
DE602005002024T2 (de) Fernkopiersystem und Fernkopierverfahren
DE102005019842B4 (de) System und Verfahren zum sequentiellen Schreiben von Daten in einen Flash-Speicher
DE102007025397B4 (de) System mit mehreren Prozessoren und Verfahren zu seinem Betrieb
DE112010003594B4 (de) Vorrichtung, Verfahren und Computerprogramm zum Betreiben eines verteilten Gruppenspeichernetzes für Schreibvorgänge
DE4417588A1 (de) Verfahren und Vorrichtung zum Erfassen und Weiterleiten von Fensterereignissen zu einer Mehrzahl von bestehenden Anwendungen zur gleichzeitigen Ausführung
DE19800423A1 (de) Rechnerverfahren und -vorrichtung zur Vorabansicht von Dateien außerhalb eines Andwendungsprogramms
DE102013014846A1 (de) Systeme und Verfahren zur teilweisen Rahmenpufferaktualisierung
DE202016107451U1 (de) Systeme zur interaktiven Darstellung eines sichtbaren Teils einer Rendering-Oberfläche auf einem Benutzergerät
DE102007031509A1 (de) Verfahren zum Erfassen eines Graphikvorrichtungsschnittstellenaufrufs unter Verwendung eines Filtertreibers
DE69930352T2 (de) Verfahren und Vorrichtung zur Animierung von Videospezialeffekten
DE3347644A1 (de) Grafikanzeigeeinrichtung
DE102005014761A1 (de) Verfahren zum Anordnen von Objektdaten in elektronischen Karten
DE60302292T2 (de) System zum Bereitstellen von Graphiken unter Benutzung einer Graphischen Maschine
DE112015006860T5 (de) Applikationsausführungsvorrichtung und Applikationsausführungsverfahren
DE112015006856T5 (de) Applikationsausführungsvorrichtung und Applikationsausführungsverfahren
DE60117600T2 (de) Anordnung und verfahren zum vorprogrammieren des speichers eines elektronischen geräts
DE112018007040T5 (de) Bildschirmdarstellungs-Erzeugungsunterstützungsgerät, Anzeigesystem, Bildschirmdarstellungs-Erzeugungsunterstützungsverfahren und Bildschirmdarstellungs-Erzeugungsunterstützungsprogramm
DE112017006918T5 (de) Informationsverarbeitungsvorrichtung und Verfahren zum Steuern einer Informationsverarbeitungsvorrichtung
DE60313465T2 (de) Einheit und verfahren zum verwalten der anzeige eines aktuellen teils eines dokuments auf einem schirm
WO2017050997A1 (de) Verfahren, computerprogramm und system zur übermittlung von daten zur erzeugung eines interaktiven bilds
DE112018002977T5 (de) Verfahren und system für eine transaktionsbasierte anzeige-pipeline zur schnittstellenverbindung mit grafikverarbeitungseinheiten
EP1302080A2 (de) Verfahren und anordnung zur ermittlung von aktuellen projektionsdaten für eine projektion einer räumlich veränderlichen fläche

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R003 Refusal decision now final