Freigeben über


GDIINFO-Struktur (winddi.h)

Die GDIINFO-Struktur beschreibt die Grafikfunktionen eines bestimmten Geräts.

Syntax

typedef struct _GDIINFO {
  ULONG     ulVersion;
  ULONG     ulTechnology;
  ULONG     ulHorzSize;
  ULONG     ulVertSize;
  ULONG     ulHorzRes;
  ULONG     ulVertRes;
  ULONG     cBitsPixel;
  ULONG     cPlanes;
  ULONG     ulNumColors;
  ULONG     flRaster;
  ULONG     ulLogPixelsX;
  ULONG     ulLogPixelsY;
  ULONG     flTextCaps;
  ULONG     ulDACRed;
  ULONG     ulDACGreen;
  ULONG     ulDACBlue;
  ULONG     ulAspectX;
  ULONG     ulAspectY;
  ULONG     ulAspectXY;
  LONG      xStyleStep;
  LONG      yStyleStep;
  LONG      denStyleStep;
  POINTL    ptlPhysOffset;
  SIZEL     szlPhysSize;
  ULONG     ulNumPalReg;
  COLORINFO ciDevice;
  ULONG     ulDevicePelsDPI;
  ULONG     ulPrimaryOrder;
  ULONG     ulHTPatternSize;
  ULONG     ulHTOutputFormat;
  ULONG     flHTFlags;
  ULONG     ulVRefresh;
  ULONG     ulBltAlignment;
  ULONG     ulPanningHorzRes;
  ULONG     ulPanningVertRes;
  ULONG     xPanningAlignment;
  ULONG     yPanningAlignment;
  ULONG     cxHTPat;
  ULONG     cyHTPat;
  LPBYTE    pHTPatA;
  LPBYTE    pHTPatB;
  LPBYTE    pHTPatC;
  ULONG     flShadeBlend;
  ULONG     ulPhysicalPixelCharacteristics;
  ULONG     ulPhysicalPixelGamma;
} GDIINFO, *PGDIINFO;

Member

ulVersion

Gibt die Treiberversionsnummer an. Die Bytereihenfolge von ulVersion weist die folgende Form auf.

Abbildung des ulVersion-Members, der die Treiberversionsnummer angibt

Die hohen 16 Bits müssen auf 0 festgelegt werden. Die Bits 8 bis 15 geben die Versionsnummer des Microsoft-Betriebssystems an, für das der Treiber entwickelt wurde. Die hochgeordneten 4 Bits dieses Bereichs geben die Hauptanzahl der Version an, und die 4 Bits mit niedriger Reihenfolge enthalten die Nebennummer der Version. Die 8 Bits mit niedriger Reihenfolge von ulVersion geben die Versionsnummer des Anzeigetreibers an. Dieser Wert sollte für jedes Release der Binärdatei des Anzeigetreibers erhöht werden.

Das Programm Anzeigen in Systemsteuerung gibt die in ulVersion enthaltene Versionsnummer zusammen mit anderen treiberspezifischen Informationen an.

ulTechnology

Gibt die Gerätetechnologie an. Dieser Member kann einer der Werte sein, die in der folgenden Tabelle aufgeführt sind.

Wert Bedeutung
DT_CHARSTREAM Nur Geräteschriftarten
DT_PLOTTER Vektorplotter
DT_RASCAMERA Rasterkamera
DT_RASDISPLAY Rasteranzeige
DT_RASPRINTER Rasterdrucker

ulHorzSize

Gibt die Breite der physischen Oberfläche an. Ein positiver Wert gibt an, dass die Breite in Millimetereinheiten liegt, während ein negativer Wert angibt, dass die Breite in Einheiten von Mikrometern liegt.

ulVertSize

Gibt die Höhe der physischen Oberfläche an. Ein positiver Wert gibt an, dass die Höhe in Einheiten von Millimetern liegt, während ein negativer Wert angibt, dass die Höhe in Einheiten von Mikrometern liegt.

ulHorzRes

Gibt die Breite der physischen Oberfläche (Anzeigegeräte) oder der druckbaren Oberfläche (Drucker) in Pixel an.

Siehe auch ulDesktopHorzRes.

ulVertRes

Gibt die Höhe der physischen Oberfläche (Anzeigegeräte) oder der druckbaren Oberfläche (Drucker) in Pixel an.

cBitsPixel

Gibt die Anzahl der benachbarten Bits in jeder Farbebene an. Die Gesamtanzahl der Bits pro Pixel ist das Produkt von cBitsPixel und cPlanes.

cPlanes

Gibt die Anzahl der Farbebenen an.

ulNumColors

Für palettisierte Geräte gibt ulNumColors die Anzahl der Einträge in der Standardfarbpalette an. Für nicht verpalettte Geräte (die keine Drucker enthalten), ist ulNumColors auf -1 festgelegt.

flRaster

Ist reserviert und muss auf Null festgelegt werden.

ulLogPixelsX

Gibt die Breite der Auflösung des Geräts in logischen Pixeln pro Zoll an.

Für Drucker sollte dieser Member auf die Auflösung des Druckers in dpi festgelegt werden.

Für Displays muss dieser Member auf 96 festgelegt werden.

ulLogPixelsY

Gibt die Höhenauflösung des Geräts in logischen Pixeln pro Zoll an.

Für Drucker sollte dieser Member auf die Auflösung des Druckers in dpi festgelegt werden.

Für Displays muss dieser Member auf 96 festgelegt werden.

flTextCaps

Gibt ein Flag an, das die Textfunktionen von Windows 3.1 beschreibt. Wenn sich der Treiber TC_SCROLLBLT Flag in diesem Element befindet, gibt dies an, dass die Konsole einen Textlauf ausführen soll, indem der gesamte Bildschirm neu gezeichnet wird, wobei die vom Treiber bereitgestellte DrvTextOut-Funktion anstelle der DrvBitBlt - oder DrvCopyBits-Funktionen verwendet wird. Der Treiber sollte dieses Flag festlegen, wenn Bitblockübertragungen von Bildschirm zu Bildschirm langsam sind. Wenn dieses Flag nicht festgelegt ist, fordert der Treiber implizit an, dass die Konsole Textläufe durch DrvBitBlt/DrvCopyBits ausführt.

ulDACRed

ulDACGreen

ulDACBlue

Gibt die Anzeigeanzahl von DAC-Bits für die angegebene Farbe an.

ulAspectX

Gibt die relative Breite eines Gerätepixels im Bereich von 1 bis 1000 an.

ulAspectY

Gibt die relative Höhe eines Gerätepixels im Bereich von 1 bis 1000 an.

ulAspectXY

Gibt die Quadratwurzel der Summe der Quadrate von ulAspectX und ulAspectY an.

xStyleStep

Gibt den Zähler des Formatvorschubs für x-Hauptzeilen dx an. Weitere Informationen finden Sie im folgenden Abschnitt Mit Anmerkungen und im Abschnitt Formatierte kosmetische Linien.

yStyleStep

Gibt den Zähler des Formatvorschubs für y-Hauptzeilen dy an. Weitere Informationen finden Sie im folgenden Abschnitt Mit Anmerkungen und im Abschnitt Formatierte kosmetische Linien.

denStyleStep

Gibt den Nenner des Stilvorrückens D an. Weitere Informationen finden Sie im folgenden Abschnitt Mit Anmerkungen und im Abschnitt Formatierte kosmetische Linien.

ptlPhysOffset

Gibt eine POINTL-Struktur an, die die Größe des unbeschreibbaren Rands einer Oberfläche in Pixel enthält.

szlPhysSize

Gibt eine SIZEL-Struktur an, die die Größe der gesamten Oberfläche in Pixel enthält, einschließlich nicht beschreibbarer Ränder. Eine SIZEL-Struktur ist mit einer SIZE-Struktur identisch.

ulNumPalReg

Gibt die Anzahl der Palettenregister für ein indiziertes Gerät an.

ciDevice

Ist eine COLORINFO-Struktur , die die Farben des Geräts im CIE-Koordinatenraum definiert.

ulDevicePelsDPI

Gibt bei Druckern die Anzahl der Pixel (oder Punkte oder Düsen) pro Zoll an, wenn die Pixel nebeneinander angeordnet sind, ohne sich zu überlappen oder dazwischen abstand zu setzen. Wenn die Größe eines Pixels beispielsweise 0,001 Zoll beträgt, entspricht dieser Wert einem durch 0,001 geteilten Wert. Wenn das Element 0 ist, berechnet die GDI-Halbtonierung diese Zahl basierend auf der Annahme, dass alle Pixel ohne Überlappung verbunden sind.

Da die physische Punktgröße für die meisten Drucker größer als die gemessene Punktgröße ist, verwendet GDI diesen Wert, um die Anzahl der physischen Punkte, die auf der Zellgröße (Mustergröße) platziert werden können, anzunähern. Anschließend wird eine Protokollregression durchgeführt, um zu bestimmen, was am linearsten ist. Das heißt, die Punkte sollten für die beste Abdeckung platziert werden, um die Abdeckung überlappender Gerätepixel zu optimieren (Punktverstärkung).

Für Anzeigen sollte dieses Element auf 0 festgelegt werden.

ulPrimaryOrder

Gibt die Bitreihenfolge der Primärfarben oder Ebenennummern des Geräts für die Halbtonausgabe an. Dieser Member kann einer der Werte sein, die in der folgenden Tabelle aufgeführt sind.

Flag Bedeutung
PRIMARY_ORDER_ABC Die Ausgabereihenfolge des Geräts ist RGB oder CMY. Rot oder Cyan ist in den geringsten signifikanten Bits; Blau oder Gelb ist in den wichtigsten Bits.
PRIMARY_ORDER_ACB Die Geräteausgabereihenfolge ist RBG oder CYM. Rot oder Cyan ist in den geringsten signifikanten Bits; Grün oder Magenta ist in den wichtigsten Bits.
PRIMARY_ORDER_BAC Die Geräteausgabereihenfolge ist GRB oder MCY. Grün oder Magenta ist in den geringsten signifikanten Bits; Blau oder Gelb ist in den wichtigsten Bits.
PRIMARY_ORDER_BCA Die Geräteausgabereihenfolge ist GBR oder MYC. Grün oder Magenta ist in den geringsten signifikanten Bits; Rot oder Cyan ist in den wichtigsten Bits.
PRIMARY_ORDER_CBA Die Geräteausgabereihenfolge ist BGR oder YMC. Blau oder Gelb ist in den am wenigsten signifikanten Bits; Rot oder Cyan ist in den wichtigsten Bits.
PRIMARY_ORDER_CAB Die Geräteausgabereihenfolge ist BRG oder YCM. Blau oder Gelb ist in den am wenigsten signifikanten Bits; Grün oder Magenta ist in den wichtigsten Bits.

ulHTPatternSize

Gibt die Größe des Halbtonmusters an. Die Werte, die mit AxBM enden, sind Variationen des AxB-Musters . Anders ausgedrückt: GRÖßEAxB und SIZE_AxB_M unterscheiden sich dadurch, welche Pixel in einem A x B-Muster beleuchtet werden. Dieser Member kann einer der folgenden Werte sein:

HT_PATSIZE_2x2
HT_PATSIZE_2x2_M
HT_PATSIZE_4x4
HT_PATSIZE_4x4_M
HT_PATSIZE_6x6
HT_PATSIZE_6x6_M
HT_PATSIZE_8x8
HT_PATSIZE_8x8_M
HT_PATSIZE_10x10
HT_PATSIZE_10x10_M
HT_PATSIZE_12x12
HT_PATSIZE_12x12_M
HT_PATSIZE_14x14
HT_PATSIZE_14x14_M
HT_PATSIZE_16x16
HT_PATSIZE_16x16_M
HT_PATSIZE_SUPERCELL
HT_PATSIZE_SUPERCELL_M
HT_PATSIZE_USER
HT_PATSIZE_MAX_INDEX
HT_PATSIZE_DEFAULT

ulHTOutputFormat

Gibt das bevorzugte Ausgabeformat für Halbton an. HT_FORMAT_4BPP verwendet nur 8 Vollintensitätsfarben, während HT_FORMATP_IRGB alle 16 Farben verwendet, einschließlich der Halbintensitätsfarben. Es wird davon ausgegangen, dass für HT_FORMAT_16BPP ein Format von 5 x 5 x 5 (5 Bits pro Farbe) verwendet wird. Dieser Member kann einer der folgenden Werte sein:

HT_FORMAT_1BPP
HT_FORMAT_4BPP
HT_FORMAT_4BPP_IRGB
HT_FORMAT_8BPP
HT_FORMAT_16BPP
HT_FORMAT_24BPP
HT_FORMAT_32BPP

flHTFlags

Gibt eine Kombination von Flags an, die das Gerät beschreiben. Diese Flags werden für die Halbtonierung benötigt. Dieses Element kann eine Kombination der folgenden Werte sein:

Flag Bedeutung
HT_FLAG_8BPP_CMY332_MASK Flag zum Löschen der oberen acht Bits von flHTFlags (Bits 24 bis 31). Das MAKE_CMY332_MASK Makros kann dann verwendet werden, um diese Bits mit 8-Bit-Pro-Pixel-CMY-Modus-Freihandebeneninformationen festzulegen. Weitere Informationen finden Sie unter Verwenden von GDI 8-Bit-pro-Pixel-CMY-Maskenmodi .
HT_FLAG_ADDITIVE_PRIMS Geräteprimries sind additiv.
HT_FLAG_DO_DEVCLR_XFORM Fordert GDI auf, eine generische Farbkorrektur durchzuführen.
HT_FLAG_HAS_BLACK_DYE Das Gerät hat einen separaten schwarzen Farbstoff.
HT_FLAG_HIGH_INK_ABSORPTION
HT_FLAG_HIGHER_INK_ABSORPTION
HT_FLAG_HIGHEST_INK_ABSORPTION
Papier im Gerät absorbiert mehr als die normale Menge an Freihand, sodass GDI weniger Freihand zu Papier rendern sollte. Diese Flags geben die relative Menge der Freihandaufnahme an, wobei HT_FLAG_HIGHER_INK_ABSORPTION eine größere Absorption als HT_FLAG_HIGH_INK_ABSORPTION, aber weniger als HT_FLAG_HIGHEST_INK_ABSORPTION.
HT_FLAG_INK_ABSORPTION_IDX0
HT_FLAG_INK_ABSORPTION_IDX1
HT_FLAG_INK_ABSORPTION_IDX2
HT_FLAG_INK_ABSORPTION_IDX3
Flags, die zum Definieren von HT_FLAG_HIGH/HIGHER/HIGHEST_INK_ABSORPTION und HT_FLAG_LOW/LOWER/LOWEST_INK_ABSORPTION verwendet werden.
HT_FLAG_INK_HIGH_ABSORPTION Flag zum Definieren von HT_FLAG_HIGH/HIGHER/HIGHEST_INK_ABSORPTION.
HT_FLAG_INVERT_8BPP_BITMASK_IDX GDI-Halbton sollte 8-Bit-pro-Pixel-Ask-Modus-Bitmap mit einer CMY_INVERTED-Modus-Palette rendern. Beschreibung und Anforderungen für CMY_INVERTED Moduspalette finden Sie unter Verwenden von GDI 8-Bit-pro-Pixel-CMY-Maskenmodi .
HT_FLAG_LOW_INK_ABSORPTION
HT_FLAG_LOWER_INK_ABSORPTION
HT_FLAG_LOWEST_INK_ABSORPTION
Papier im Gerät absorbiert weniger als die normale Menge an Freihand, sodass GDI mehr Freihand in Papier rendern sollte. Diese Flags geben die relative Menge der Freihandaufnahme an, wobei HT_FLAG_LOWER_INK_ABSORPTION weniger Absorption als HT_FLAG_LOW_INK_ABSORPTION, aber mehr als HT_FLAG_LOWEST_INK_ABSORPTION.
HT_FLAG_NORMAL_INK_ABSORPTION Papier im Gerät absorbiert die normale Menge an Tinte.
HT_FLAG_OUTPUT_CMY Das Gerät verwendet CMY-Vorwahlen anstelle von RGB-Vorwahlen. Dieser Flagwert gilt nur für Zielflächen mit 1 bpp und 4 bpp.
HT_FLAG_PRINT_DRAFT_MODE Deaktiviert den Antialiasingcode von GDI.
HT_FLAG_SQUARE_DEVICE_PEL Das Gerätepixel ist quadratisch statt rund (nur anzeigen – Drucker benötigen abgerundete Pixel).
HT_FLAG_USE_8BPP_BITMASK Das Gerät verwendet monochromes Drucken.

ulVRefresh

Die Videoaktualisierungsrate für den aktuellen Anzeigemodus. Dies ist der Wert, der vom Miniporttreiber für die Aktualisierungsrate für den aktuellen Modus zurückgegeben wird.

Das Programm Anzeigen in Systemsteuerung zeigt die Im ulVRefresh-Member enthaltene Aktualisierungsrate an.

ulBltAlignment

Dieses Element gibt die bevorzugte x-Ausrichtung für Bitblockübertragungen an das Gerät an. Der Wert 0 gibt an, dass Bitblockübertragungen beschleunigt werden. jede andere nicht bestimmte Zahl gibt an, dass Bitblockübertragungen nicht beschleunigt werden, und gibt die bevorzugte horizontale Ausrichtung als Pixel-Vielfaches an.

Dieser Wert wird vom System verwendet, um die Standardausrichtung für Fensterpositionen zu bestimmen, und wird auch verwendet, um die anfängliche Standardeinstellung für den vollständigen Ziehen während des Setups festzulegen. Der Wert 0 gibt an, dass der Vollzug standardmäßig aktiviert sein sollte. Jeder andere Wert als null gibt an, dass der voll drag standardmäßig deaktiviert sein sollte.

ulPanningHorzRes

ulPanningVertRes

Sollte vom Treiber ignoriert werden und null initialisiert bleiben.

xPanningAlignment

yPanningAlignment

Sollte vom Treiber ignoriert werden und null initialisiert bleiben.

cxHTPat

cyHTPat

Geben Sie die Breite bzw. Höhe des vom Benutzer bereitgestellten Halbtondithermusters in Pixel an. Der Wert von cxHTPat muss im Bereich liegen, der HT_USERPAT_CX_MIN HT_USERPAT_CX_MAX einschließlich. Der Wert von cyHTPat muss im Bereich liegen, der HT_USERPAT_CY_MIN bis einschließlich HT_USERPAT_CY_MAX. Diese Konstanten sind in winddi.h definiert. Weitere Informationen finden Sie im Abschnitt "Hinweise" .

pHTPatA

pHTPatB

pHTPatC

Zeigen Sie auf die benutzerdefinierten Halbtondithermuster für die Primärfarben A, B bzw. C, die durch den PRIMARY_ORDER_XXX-Wert im element ulPrimaryOrder definiert sind. Jedes Dithermuster muss ein gültiges zweidimensionales Bytearray der Größe cxHTPat by cyHTPat sein. Weitere Informationen finden Sie im Abschnitt "Hinweise" .

flShadeBlend

Gibt eine Reihe von Flags an, die die Schattierungs- und Mischfunktionen des Geräts angeben. Anzeigetreiber sollten diesen Member ignorieren und auf 0 festgelegt lassen. Bei Druckertreibern ist der Wert, den der Treiber in diesem Member platziert, der von GDI gemeldet wird, wenn eine Anwendung GetDeviceCaps(hdc, SHADEBLENDCAPS) aufruft. Die GetDeviceCaps-Funktion wird in der Dokumentation zum Microsoft Window SDK beschrieben.

ulPhysicalPixelCharacteristics

Gibt an, wie Farbfragmente so konfiguriert werden, dass sie Pixel auf dem Anzeigegerät bilden. Die Farbfragmente auf dem Anzeigegerät können in RGB-Reihenfolge oder in BGR-Reihenfolge angeordnet werden, völlig unabhängig von der RGB-Reihenfolge im Framepuffer. Die Farbfragmente können in horizontalen Streifen konfiguriert werden, in denen alle Fragmente in einer Zeile die gleiche Farbe haben. Alternativ können die Farbfragmente in vertikalen Streifen konfiguriert werden, in denen alle Fragmente in einer Spalte die gleiche Farbe aufweisen. Vertikales Striping wird bevorzugt, da es effektiv drei separate Fragmente in einer Zeile für jedes Pixel bereitstellt, wodurch eine größere horizontale Subpixelauflösung entsteht.

Der member ulPhysicalPixelCharacteristics muss auf einen der in der folgenden Tabelle gezeigten Werte festgelegt werden:

Wert Bedeutung
PPC_DEFAULT Die Physischen Pixelinformationen des Geräts werden nicht angezeigt.
PPC_BGR_ORDER_HORIZONTAL_STRIPES Physische Farbfragmente auf dem Anzeigegerät werden von oben nach unten in Zeilen mit blauen, grünen und roten Farbfragmenten angeordnet.
PPC_BGR_ORDER_VERTICAL_STRIPES Physische Farbfragmente auf dem Anzeigegerät werden von links nach rechts in Spalten mit blauen, grünen und roten Farbfragmenten angeordnet.
PPC_RGB_ORDER_HORIZONTAL_STRIPES Physische Farbfragmente auf dem Anzeigegerät werden von oben nach unten in Zeilen mit roten, grünen und blauen Farbfragmenten angeordnet.
PPC_RGB_ORDER_VERTICAL_STRIPES Physische Farbfragmente auf dem Anzeigegerät werden von links nach rechts in Spalten mit roten, grünen und blauen Farbfragmenten angeordnet.
PPC_UNDEFINED Anzeige der physischen Pixelinformationen des Geräts sind bekannt, können aber nicht als eine der angegebenen Enumerationen ausgedrückt werden. Die Enumerationen gelten derzeit für einen LCD-basierten Monitor. Der Treiber sollte ulPhysicalPixelCharacteristics auf PPC_UNDEFINED festlegen, wenn eine der folgenden Bedingungen erfüllt ist. (Diese Liste ist nicht umfassend, enthält aber die häufigsten Bedingungen.)
  • Der Treiber hat wissen, dass es sich bei dem Monitor nicht um ein LCD-Gerät handelt.
  • Das Gerät ist ein LCD-Gerät, aber die Auflösung des Framepuffers unterscheidet sich von der nativen Auflösung der physischen Anzeige, die eine Skalierung erfordert. Das heißt, eine Skalierung ist erforderlich, da es keine 1:1-Entsprechung zwischen Framepufferpixeln und Gerätepixeln mehr gibt.

ulPhysicalPixelGamma

Gibt das Gamma des Anzeigegeräts an. Dieser Member sollte entweder auf das Gamma des physischen Pixels, skaliert um den Faktor 1000, oder auf einen der folgenden Werte festgelegt werden. Beispielsweise würde ein Gammawert von 2,2 als 2200 dargestellt.

Wert Bedeutung
PPG_DEFAULT Der Treiber hat keine Kenntnis vom Gamma für das Gerät.
PPG_SRGB Das Gerät verwendet eine sRGB-Gamma.The device uses a sRGB gamma.

Hinweise

GDI initialisiert diese Struktur null, bevor die vom Treiber bereitgestellte DrvEnablePDEV-Funktion aufgerufen wird.

Die Elemente xStyleStep, yStyleStep und denStyleStep definieren, wie ein kosmetischer Linienstil beim Zeichnet jedes Pixel einer kosmetischen Linie voranschreiten soll. Der Betrag, der entlang des Stils für jedes Pixel erweitert wird, wird als Bruch definiert, der davon abhängt, ob die Linie im x- oder y-Format formatiert ist. Wenn die Zeile x-formatiert ist, wird die Formatvorlage um den Bruchteil des Dx /D-Werts für jedes Pixel in x-Richtung verschoben. Andernfalls wird der Stil um dy/D für jedes Pixel in y-Richtung verschoben.

Die Punkte im vordefinierten Linienstil PS_DOT sind jeweils eine Einheit lang. Wenn der Treiber xStyleStep als 1 und denStyleStep als 5 definiert, besteht eine gepunktete horizontale Linie aus 5 Pixeln ein, gefolgt von 5 Pixeln, die wiederholt werden.

Jede dieser drei Zahlen muss kleiner als 65536 sein, obwohl die Obergrenzenmember LONG-Werte sind. Diese Stilschritte werden vom Treiber definiert, um sicherzustellen, dass die Punkte und Bindestriche in einer Zeile eine angenehme Größe auf dem Ausgabegerät haben. Die horizontalen und vertikalen Schritte können sich von der Korrektur für nichttriviale Seitenverhältnisse unterscheiden. Auf einem EGA-Display, dessen Pixel um 33 Prozent höher als breit sind, können Sie beispielsweise Folgendes festlegen:

pdevcaps->xStyleStep   =  3;    // For an EGA
pdevcaps->yStyleStep   =  4;
pdevcaps->denStyleStep = 12;

In diesem Fall sind horizontal gepunktete Linien 4 Pixel ein, 4 Pixel entfernt, da der Stil um 3/12 oder 1/4 für jedes Pixel erweitert wird. Vertikale gepunktete Linien sind 3 Pixel ein/3 Pixel entfernt.

Formatierte Linien sehen besser aus, wenn sowohl die x- als auch die y-Stilschritte gleichmäßig in den Stil-Nenner aufgeteilt werden, wie im vorherigen Beispiel. Dies gibt Bindestriche und Punkte, die immer die gleiche Länge haben.

GDI benötigt diese Informationen, damit seine Bitmapfunktionen genau emulieren können, was das Gerät auf seiner eigenen Oberfläche tut. Anwendungen können auf diese Informationen zugreifen, um genau zu bestimmen, welche Pixel für formatierte Linien aktiviert werden. Weitere Informationen finden Sie unter Formatierte kosmetische Linien.

Die halbtonbezogenen Member cxHTPat, cyHTPat, pHTPatA, pHTPatB und pHTPatC können in einem OEM Unidrv-Rendering-Plug-In verwendet werden, um ein benutzerdefiniertes Halbtonmuster zu definieren, das entweder aus einer oder drei Farben besteht. Diese Member werden nur überprüft, wenn das element ulHTPatternSize auf HT_PATSIZE_USER festgelegt ist. In diesem Fall kann ein OEM diese Member verwenden, um ein benutzerdefiniertes Halbtonmuster zu definieren, das auf Daten basiert, die in einer Ressourcendatei gespeichert oder von einem OEM-Anpassungsmodul generiert wurden. Die Elemente cxHTPat und cyHTPat definieren die Größe jedes der drei zweidimensionalen Halbtonmusterarrays. Die Member pHTPatA, pHTPatB und pHTPatC zeigen auf die jeweiligen Musterarrays für jede Farbe. Wenn nur ein Musterarray verwendet wird, zeigen pHTPatA, pHTPatB und pHTPatC darauf.

Jeder Byteschwellenwert an einer bestimmten Stelle in einem Halbtondithermuster bestimmt, ob das Pixel an der entsprechenden Ausgabeebenenposition aktiviert oder deaktiviert wird. Ein Schwellenwert von null an einer bestimmten Stelle im Musterarray gibt an, dass die entsprechende Pixelposition ignoriert wird (schwarz). Schwellenwerte von 1 bis 255 geben das Dithermuster mit 255 Graustufen an; Wenn der Pixelwert in der Ausgabeebene größer oder gleich dem Schwellenwert für diese Position ist, wird das Pixel aktiviert. Ein Pixelwert, der kleiner als der entsprechende Schwellenwert ist, bewirkt, dass sein Pixel in der Ausgabeebene deaktiviert wird. Weitere Informationen finden Sie unter Angepasste Halbtonierung im Anpassen der Druckertreiber von Microsoft .

Anforderungen

Anforderung Wert
Header winddi.h (einschließlich Winddi.h)

Weitere Informationen

CIECHROMA

COLORINFO

DrvBitBlt

DrvCopyBits

DrvEnablePDEV

DrvTextOut