Artikel-ID: 262127 - Geändert am: Montag, 12. Februar 2007 - Version: 2.4 INFO: Leistungsoptimierung Windows CE-Video-Treiber: Strichzeichnung Operations
Auf dieser SeiteZusammenfassungDie meisten Windows CE-Grafiktreiber verwenden GPE (Graphics Primitive Engine), um Standardverarbeitung für Anzeige Treiber primitive bereitzustellen. Die GPE::Line-Methode zeichnet Linien auf der Zieloberfläche mit den Parametern in der GPELineParms und EGPEPhase Datenstrukturen zur Verfügung gestellt. Dieser Artikel definiert die GPELineParms und EGPEPhase Datenstrukturen und beschreibt, wie GPE eine Linie zeichnet. Die Standard-Zeichnung GPE bereitgestellten kann in der Bildschirmtreiber durch Software emulierte Beschleunigungen oder systemeigenen Hardware Beschleunigungen ersetzt werden wie in der Windows CE 2.12 Device Driver Kit Kapitel über Bildschirmtreiber beschrieben. Weitere InformationenGPELineParms StrukturGPELineParms ist eine Struktur. GPELineParms ist in diesem Verzeichnis von Platform Builder definiert:Public\Common\Oak\Inc GPELineParms wird durch GPE und der Bildschirmtreiber verwendet, um Strichzeichnung steuern. Einige der Parameter in der Struktur stammen direkt von der Anwendung oder den aktuellen Gerätekontext. Die übrigen werden durch GPE berechnet.GPELineParms Mischung ist der Wert ROP2. Es besteht aus zwei Bytes, eine ROP2 für die Markierung und eine ROP2 für den Speicherplatz. Der Wert der jedes Bit in der Formatvorlage wählt zwischen zwei Bytes in der pParms-> Mix-Wert. GPELineParms iDir ist die Octant-Anzahl für die Zeile (eine der acht Werte pro der Bresenham-Algorithmus). Octant Achse Dir X-Y-Dir 0 X-Haupt + 1 + 1 1 Y-Haupt + 1 + 1 2 Y-Haupt-1 + 1 3 X-Haupt-1 + 1 4 X-Haupt-1-1 5 Y-Haupt-1-1 6 Y-Haupt + 1-1 7 X-Hauptversion + 1 (-1) EGPEPHASE aufgezählte TypEGPEPHASE ist ein aufgezählter Typ. EGPEPHASE wird im folgenden Verzeichnis von Platform Builder definiert:Public\Common\Oak\Inc Strichzeichnung VerarbeitungVorbereiten der PhaseStrichzeichnung beginnt, wenn eine Anwendung die Polylinie-Methode aufruft. GDI verarbeitet den Aufruf der Methode Polylinie. GDI überprüft, dass mindestens zwei Vertices vorhanden sind und dass die Linienart nicht null ist. GDI ruft dann die GPE- DrvStrokePath -Funktion auf, oder für einen breiten Stift die DrvFillPath -Funktion. Wenn GDI GPE-Memberfunktion aufruft, übergibt es aus dem Gerätekontext sowie Informationen:
GPE ruft dann den Grafiktreiber Zeile -Funktion, in die GPELineParms übergeben und in einer EGPEPHASE von GpePrepare übergeben. Der Treiber überprüft die Eigenschaften der Zeile, die gezeichnet werden soll. Der Treiber wählt anschließend, ob es die GPE- EmulatedLine -Funktion verwenden oder behandeln die Zeile mit eigenen beschleunigte Funktion möchte. Bevor Sie eine beschleunigte Funktion auswählen, muss der Treiber überprüfen, ob die Hardware die Linienart und ROP verarbeiten kann. In der S3Trio64-Bildschirmtreiber (im Platform Builder-Verzeichnis, Platform\Cepc\Drivers\Display\S3trio64) der Treiber legt den Funktionszeiger standardmäßig zu EmulatedLine fest, aber wählt Hardwarebeschleunigung für Zeilen, die beide im Videospeicher und ROP 0x0D0D verwenden. Das folgende Codebeispiel veranschaulicht dies: DrvStrokePath verwaltet Zeichnen der einzelnen SegmenteNach der Ermittlung des Treibers Strichzeichnung Funktion, führt die folgenden Schleifen die DrvStrokePath -Funktion. Die Reihenfolge der folgenden Schleifen soll Clipping Hardware zu maximieren. Normalerweise fällt ein Pfad nur eine Clipping Rechtecke.
Es ist wichtig für diagonalen Linien, die Werte in der dM -Parameter, dN -Parameter beachten und Fehler Begriff Llgamma Felder des GPELineParms Sub-pixel Informationen enthalten. Diese Informationen sollten verwendet werden, wenn beim Initialisieren der Hardware Strichzeichnung registriert. Andernfalls werden diagonale Linien, die abgeschnitten werden nicht korrekt gezeichnet. Dieser Effekt kann ziemlich erkennbar sein, wenn ein Fenster über ein anderes Fenster zu verschieben, der eine diagonale Linie enthält. In der Vorbereitungsphase führt der Treiber eine allgemeine Überprüfung der die Parameter Zeile, um zu bestimmen wenn er es beschleunigen kann. Wenn die Beschleunigung-Funktion aufgerufen wird, müssen der Treiber möglicherweise zusätzliche Validierung durchzuführen. Dies ist da beim Aufruf des Treibers beschleunigte Funktion für ein Segment bestimmten Pfad zu einem bestimmten Clippingbereich abgeschnitten ist. Der Treiber muss sicherstellen, beispielsweise die Zeilenlänge Segment nicht seinen Hardwareregistern zu einem Überlauf führen wird. Beispielsweise erfolgt in der S3Trio64-Treiber diese zusätzliche Sicherheitsstufe ausblenden im Code, der folgt. Da die Werte für dM und dN ursprünglich in 1/16ths von Pixeln ausgedrückt werden, müssen das Gerät Hardware Steigung Iteratoren können diese Länge für beliebige Liniensegment gezeichnet wird beibehalten. Viel Hardware eine diagonale Linie über den gesamten Bildschirm zu zeichnen können entworfen ist aber erwartet die dM und den dN -Werte (oder Entsprechungen) in Pixeln ausgedrückt werden. Da GPE Sub-pixel Genauigkeit verwendet, benötigen diese Leistungsindikatoren mehr Bits vier (4). Für kurze Linien ist es kein Problem, doch für lange Zeilen können diese Werte die Zeilen, die nur an einige Rand den Bildschirm oder sogar um ein paar Mal Umbruch deaktivieren zinging führt Register Überlauf. Während diagonale Linien ungewöhnlich darstellen, sind lange diagonale Linien sehr selten, so dass die Zeit zum Rendern lange diagonaler Linien mit der Funktion EmulatedLine unwichtig ist. Abschließen der PhaseNach Abschluss die DrvStrokePath -Funktion Strichzeichnung ruft DrvStrokePath erneut den Treiber Zeile Funktion dieses Mal den EGPEphase-Satz an GpeComplete übergeben. Der Treiber sollte jeder Strichzeichnung Status zu diesem Zeitpunkt von der Hardware benötigt bereinigen.Die Informationen in diesem Artikel beziehen sich auf:
Maschinell übersetzter ArtikelWichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten. Den englischen Originalartikel können Sie über folgenden Link abrufen: 262127
(http://support.microsoft.com/kb/262127/en-us/
)
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
| Weitere Ressourcen Weitere SupportseitenCommunitySPRACHE AUSWÄHLEN |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Zum Anfang