DEVINFO-Struktur (winddi.h)
Die DEVINFO-Struktur stellt der Grafik-Engine Informationen über den Treiber und seinen privaten PDEV bereit.
Syntax
typedef struct tagDEVINFO {
FLONG flGraphicsCaps;
LOGFONTW lfDefaultFont;
LOGFONTW lfAnsiVarFont;
LOGFONTW lfAnsiFixFont;
ULONG cFonts;
ULONG iDitherFormat;
USHORT cxDither;
USHORT cyDither;
HPALETTE hpalDefault;
FLONG flGraphicsCaps2;
} DEVINFO, *PDEVINFO;
Member
flGraphicsCaps
Ist eine Reihe von Flags, die grafikfunktionen des Grafiktreibers und/oder seiner Hardware beschreiben. Diese Flags sind in der folgenden Tabelle definiert.
Flag | Definition |
---|---|
GCAPS_ALTERNATEFILL | Behandelt abwechselnde Füllungen. |
GCAPS_ARBRUSHOPAQUE | Unterstützt einen beliebigen Pinsel für undurchsichtiges Textrechteck (Hintergrundfarbe). |
GCAPS_ARBRUSHTEXT | Unterstützt einen beliebigen Pinsel für die Vordergrundfarbe des Texts. |
GCAPS_ASYNCCHANGE | Dieses Flag ist veraltet. Bei älteren Treibern gibt dieses Flag an, dass der Treiber die Zeigerform in der Hardware ändern kann, während andere Zeichnungen auf dem Gerät ausgeführt werden. |
GCAPS_ASYNCMOVE | Der Treiber kann den Zeiger in der Hardware verschieben, während andere Zeichnungen auf dem Gerät ausgeführt werden. |
GCAPS_BEZIERS | Behandelt Bézierkurven. |
GCAPS_CMYKCOLOR | Der Treiber unterstützt den CYMK-Farbraum. |
GCAPS_COLOR_DITHER | Behandelt die Farbdithering auf eine PDEV-kompatible Oberfläche. |
GCAPS_DIRECTDRAW | Dieses Flag ist veraltet. |
GCAPS_DITHERONREALIZE | Gibt an, dass GDI DrvRealizeBrush mit der RGB aufrufen kann, die direkt dithered werden soll. |
GCAPS_DONTJOURNAL | Das Drucken von Metadateien an diesen Druckertreiber ist nicht zulässig. Dies gilt nur für Drucker-DCs und führt in der Regel zu einer langsameren Rückgabezeit beim Drucken. |
GCAPS_FONT_RASTERIZER | Die Gerätehardware kann TrueType-Schriftarten rastern. |
GCAPS_FORCEDITHER | Ermöglicht das Dithering auf allen geometrischen Stiften. |
GCAPS_GEOMETRICWIDE | Behandelt geometrische Verbreiterung. |
GCAPS_GRAY16 | Behandelt Antialiased-Text nativ. |
GCAPS_HALFTONE | Behandelt die Halbtonierung. |
GCAPS_HIGHRESTEXT | Dieses Flag ist veraltet. In Legacytreibern gibt dieses Flag an, dass der Treiber Glyphenpositionen anfordert, wie vom STROBJ in FIX-Punktkoordinaten zurückgegeben. |
GCAPS_HORIZSTRIKE | Dieses Flag ist veraltet. In Legacytreibern gibt dieses Flag an, dass der Treiber horizontale Strikeouts in DrvTextOut verarbeitet. |
GCAPS_ICM | Gibt an, dass Farbverwaltungsvorgänge von der Treiber- oder Druckerhardware ausgeführt werden können. |
GCAPS_LAYERED | Gibt an, dass dies ein Layer- oder Spiegel Treiber für Remoting ist. Druckertreiber können keine Ebenentreiber sein. |
GCAPS_MONO_DITHER | Behandelt monochrome Dithering. |
GCAPS_NO64BITMEMACCESS | Dieses Flag ist veraltet. |
GCAPS_NUP | Gibt an, dass "N-up"-Druck unterstützt wird. |
GCAPS_OPAQUERECT | Behandelt undurchsichtige Rechtecke in DrvTextOut. |
GCAPS_PALMANAGED | Unterstützt die Palettenverwaltung. |
GCAPS_PANNING | Wenn GDI den Zeiger simuliert, sollte drvMovePointer aufgerufen werden, um den Treiber über die aktuelle Cursorposition zu informieren. Dadurch kann der Treiber die Verschiebung virtueller Anzeigen verarbeiten. |
GCAPS_SCREENPRECISION | Der Rasterizer (Schriftarten-Engine) sollte eine Bildschirmschriftart (soft) über einer Geräteschriftart auswählen, wenn eine Schriftart ausgewählt wird, für die keine genaue Übereinstimmung vorhanden ist. |
GCAPS_VECTORFONT | Behandelt das Streichen von Vektorschriftarten in DrvTextOut. |
GCAPS_VERTSTRIKE | Dieses Flag ist veraltet. In Legacytreibern weist dieses Flag darauf hin, dass der Treiber vertikale Strikeouts in DrvTextOut verarbeitet hat. |
GCAPS_WINDINGFILL | Behandelt Füllungen im Wickelmodus. Weitere Informationen finden Sie unter Pfadfüllmodi . |
GCAPS2_REMOTEDRIVER | Gibt an, dass der Anzeigetreiber zur Unterstützung einer Remotebenutzersitzung verwendet wird. |
lfDefaultFont
Eine erweiterte logische Schriftartstruktur, die die Standardschriftart für ein Gerät angibt. Weitere Informationen zu dieser Struktur finden Sie unter EXTLOGFONT in der Microsoft Windows SDK-Dokumentation.
lfAnsiVarFont
Eine erweiterte logische Schriftartstruktur, die die Standardschriftart mit variabler Tonhöhe für ein Gerät angibt. Weitere Informationen zu dieser Struktur finden Sie unter EXTLOGFONT in der Windows SDK-Dokumentation.
lfAnsiFixFont
Ist eine erweiterte logische Schriftartstruktur, die die Standardschriftart (monospaced) für ein Gerät angibt. Weitere Informationen zu dieser Struktur finden Sie unter EXTLOGFONT in der Windows SDK-Dokumentation.
cFonts
Gibt die Anzahl der Geräteschriftarten an. GDI geht davon aus, dass das Gerät Text mit dieser Anzahl von Schriftarten auf eigenen Oberflächen zeichnen kann und dass der Treiber Metrikinformationen zu den Schriftarten bereitstellen kann. Wenn der Treiber cFonts auf -1 festlegt, wartet GDI, bis Schriftarten benötigt werden, um den Treiber nach der tatsächlichen Anzahl von Schriftarten abzufragen, die er bei einem Aufruf von DrvQueryFont unterstützt.
iDitherFormat
Gibt das Format der Bitmap an. Dieser Parameter gibt an, wie viele Bits von Farbinformationen pro Pixel angefordert werden, und muss einer der folgenden Werte sein:
Wert | Bedeutung |
---|---|
BMF_1BPP | Monochrom |
BMF_4BPP | 4 Bits pro Pixel |
BMF_8BPP | 8 Bits pro Pixel |
BMF_16BPP | 16 Bits pro Pixel |
BMF_24BPP | 24 Bits pro Pixel |
BMF_32BPP | 32 Bits pro Pixel |
BMF_4RLE | 4 Bits pro Pixel, Ausführungslänge codiert |
BMF_8RLE | 8 Bits pro Pixel, Ausführungslänge codiert |
BMF_JPEG | KOMPRIMIERTES JPEG-Bild |
BMF_PNG | KOMPRIMIERTES PNG-Bild |
cxDither
cyDither
Geben Sie die Dimensionen eines ditherierten Pinsels an. Wenn diese Member ungleich null sind, kann das Gerät einen ditherierten Pinsel für eine bestimmte RGB-Farbe erstellen.
hpalDefault
Handle mit der Standardpalette für das Gerät. Der Treiber sollte die Palette durch Aufrufen von EngCreatePalette erstellen. Der Treiber ordnet einem Gerät eine Palette zu, indem er dieses Handle an GDI zurückgibt.
flGraphicsCaps2
Ist ein Satz von Flags, die zusätzliche Grafikfunktionen des Gerätetreibers beschreiben. Diese Flags sind in der folgenden Tabelle definiert.
Flag | Definition |
---|---|
GCAPS2_ALPHACURSOR | Verarbeitet Zeiger mit Alphawerten pro Pixel. |
GCAPS2_CHANGEGAMMARAMP | Das Anzeigegerät verfügt über eine ladebare Hardware-Gammarampe. |
GCAPS2_EXCLUDELAYERED | Gibt an, dass dies ein Barrierefreiheitstreiber Spiegel ist. Spiegeltreiber, die dieses Flag nicht festlegen, erhalten weiterhin Zeichnungsgrundtypen für mehrstufige HWNDs. Weitere Informationen finden Sie unter Spiegeltreiber . |
GCAPS2_ICD_MULTIMON | Informiert GDI, dass der Treiber drvSetPixelFormat-, DrvDescribePixelFormat- und DrvSwapBuffers-Aufrufe in einer Multimonumgebung verarbeiten möchte, auch wenn das Rechteck im Vorgang auch ein anderes Gerät überschneidet. Nur ein Gerät erhält jemals die Möglichkeit, diese Anrufe zu verarbeiten. Wenn die Funktion nicht angegeben ist und sich die betroffene Region über mehrere Geräte schneidet, wird kein Treiber aufgerufen. |
GCAPS2_INCLUDEAPIBITMAPS | Wenn Zeichnungsaufrufe für eine geräteunabhängige Bitmap (Device-Independent Bitmap, DIB) ausgeführt werden, wird ein Barrierefreiheitstreiber Spiegel aufgerufen. Weitere Informationen finden Sie unter Spiegeltreiber . |
GCAPS2_JPEGSRC | Das Gerät kann JPEG-komprimierte Bilder akzeptieren (d. a. Bilder, für die BMF_JPEG in der SURFOBJ-Struktur festgelegt ist). |
GCAPS2_MOUSETRAILS | Gibt an, dass der Treiber Mauspfade unterstützt (eine Reihe von Cursorbildern, die die Position der Maus während eines kurzen Zeitraums zeigen). Der Treiber kann die Werte verarbeiten, die GDI im Fl-Parameter der DrvSetPointerShape-Funktion sendet. Der Treiber sollte die SPS_LENGTHMASK und SPS_FREQMASK Masken verwenden, um Werte für die Länge und Häufigkeit der Mauspfade zu erhalten. Weitere Informationen zu diesen Masken finden Sie unter DrvSetPointerShape . |
GCAPS2_PNGSRC | Das Gerät kann komprimierte PNG-Bilder akzeptieren (d. a. Bilder, für die BMF_PNG in der SURFOBJ-Struktur festgelegt ist). |
GCAPS2_SYNCFLUSH | Der Treiber unterstützt einen programmgesteuerten Leerungsmechanismus für DDI-Aufrufe mit Batchgrafiken. DrvSynchronizeSurface wird immer dann aufgerufen, wenn GDI eine Zeichnung leeren muss, die vom Treiber als Batch erstellt wird. |
GCAPS2_SYNCTIMER | Der Treiber unterstützt einen timerbasierten Leerungsmechanismus für DDI-Aufrufe mit Batchgrafiken. DrvSynchronizeSurface wird regelmäßig aufgerufen, basierend auf einem von GDI festgelegten Zeitgeberintervall. |
Hinweise
Die DrvEnablePDEV-Funktion des Treibers füllt eine DEVINFO-Struktur aus. Der Treiber sollte nur die Member festlegen, die für ihn relevant sind. Diese Struktur wird von GDI null initialisiert, bevor DrvEnablePDEV aufgerufen wird. Anwendungen haben keinen direkten Zugriff auf diese Struktur.
Wenn ein Treiber GCAPS2_JPEGSRC oder GCAPS2_PNGSRC in flGraphicsCaps2 festlegt, gelten die folgenden Regeln:
- Der Treiber muss eine DrvQueryDeviceSupport-Funktion bereitstellen.
-
Jede treiberdefinierte Grafik-DDI-Funktion, die eine SURFOBJ-Struktur als Eingabe empfängt, muss entweder das komprimierte Format unterstützen oder einen Fehlercode zurückgeben können. Im Fall von Druckertreibern muss der Treiber in der Lage sein, eine der folgenden Aufgaben auszuführen, um das komprimierte Format zu unterstützen:
- Wenn das Druckgerät das komprimierte JPEG/PNG-Format verarbeiten kann, sollte der Druckertreiber das komprimierte Format an seine PDL-Ausgabe (Page Description Language) übergeben.
- Wenn das Druckgerät das komprimierte JPEG/PNG-Format nicht verarbeiten kann, muss der Druckertreiber zunächst das komprimierte JPEG/PNG-Format in ein anderes Bildformat konvertieren, das das Druckgerät verarbeiten kann. Der Druckertreiber kann dann die Bildinformationen in der PDL-Ausgabe des Treibers zur Verfügung stellen.
Hinweis Bei der Konvertierung von JPEG/PNG in das Bitmapformat darf der Druckertreiber keine GDI-Funktionen verwenden. Beispielsweise kann der Treiber stattdessen die Windows Imaging Component(WIC)-APIs verwenden, um die Konvertierung durchzuführen.
- Der Treiber muss in der Lage sein, komplexe Clipbereiche für Bilder zu verarbeiten, die das komprimierte Format verwenden.
- Für treiberdefinierte Grafik-DDI-Funktionen, die ein ROP4-Eingabeargument erhalten, wird nur 0xCCCC mit JPEG- und PNG-Formaten verwendet.
Anforderungen
Anforderung | Wert |
---|---|
Header | winddi.h (einschließlich Winddi.h) |