Freigeben über


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)

Weitere Informationen

DrvEnablePDEV

DrvQueryFont

DrvRealizeBrush

DrvTextOut