DEVINFO 構造体 (winddi.h)
DEVINFO 構造体は、ドライバーとそのプライベート PDEV に関する情報をグラフィックス エンジンに提供します。
構文
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;
メンバー
flGraphicsCaps
グラフィックス ドライバーとそのハードウェアのグラフィックス機能を記述するフラグのセットです。 これらのフラグは、次の表で定義されています。
フラグ | 定義 |
---|---|
GCAPS_ALTERNATEFILL | 交互の塗りつぶしを処理します。 |
GCAPS_ARBRUSHOPAQUE | テキスト不透明四角形 (背景色) の任意のブラシをサポートします。 |
GCAPS_ARBRUSHTEXT | テキストの前景色の任意のブラシをサポートします。 |
GCAPS_ASYNCCHANGE | このフラグは、互換性のために残されています。 レガシ ドライバーでは、このフラグは、他の描画がデバイス上で発生している間に、ドライバーがハードウェア内のポインターの形状を変更できることを示します。 |
GCAPS_ASYNCMOVE | ドライバーは、他の描画がデバイス上で発生している間に、ハードウェアでポインターを移動できます。 |
GCAPS_BEZIERS | ベジエ曲線を処理します。 |
GCAPS_CMYKCOLOR | ドライバーは CYMK 色空間をサポートしています。 |
GCAPS_COLOR_DITHER | PDEV 互換サーフェスへのカラー ディザリングを処理します。 |
GCAPS_DIRECTDRAW | このフラグは、互換性のために残されています。 |
GCAPS_DITHERONREALIZE | GDI が直接ディザリングする RGB を使用して DrvRealizeBrush を呼び出すことができることを指定します。 |
GCAPS_DONTJOURNAL | このプリンター ドライバーへのメタファイル印刷を禁止します。 これはプリンター DC に対してのみ有効であり、通常、印刷時のアプリケーションへの戻り時間が遅くなります。 |
GCAPS_FONT_RASTERIZER | デバイス ハードウェアでは、TrueType フォントをラスター化できます。 |
GCAPS_FORCEDITHER | すべての幾何学的ペンにディザリングを許可します。 |
GCAPS_GEOMETRICWIDE | 幾何学的な拡大を処理します。 |
GCAPS_GRAY16 | アンチエイリアス化されたテキストをネイティブに処理します。 |
GCAPS_HALFTONE | ハーフトニングを処理します。 |
GCAPS_HIGHRESTEXT | このフラグは、互換性のために残されています。 レガシ ドライバーでは、このフラグは、ドライバーが FIX ポイント座標で STROBJ によって返されるグリフの位置を要求していることを示します。 |
GCAPS_HORIZSTRIKE | このフラグは、互換性のために残されています。 レガシ ドライバーでは、このフラグは、ドライバーが DrvTextOut の水平方向の取り消し線を処理することを示します。 |
GCAPS_ICM | ドライバーまたはプリンター ハードウェアで色管理操作を実行できることを示します。 |
GCAPS_LAYERED | これは、リモート処理用のレイヤーまたはミラー ドライバーであることを示します。 プリンター ドライバーをレイヤー ドライバーにすることはできません。 |
GCAPS_MONO_DITHER | モノクロ ディザリングを処理します。 |
GCAPS_NO64BITMEMACCESS | このフラグは、互換性のために残されています。 |
GCAPS_NUP | "N-up" 印刷がサポートされていることを示します。 |
GCAPS_OPAQUERECT | DrvTextOut で不透明な四角形を処理します。 |
GCAPS_PALMANAGED | パレット管理をサポートします。 |
GCAPS_PANNING | GDI がポインターをシミュレートしている場合は、 DrvMovePointer を呼び出して、ドライバーに現在のカーソル位置を通知する必要があります。 これにより、ドライバーはパンの仮想ディスプレイを処理できます。 |
GCAPS_SCREENPRECISION | ラスタライザー (フォント エンジン) は、完全に一致しないフォントを選択するときに、デバイス フォントよりも画面 (ソフト) フォントを選択する必要があります。 |
GCAPS_VECTORFONT | DrvTextOut のベクター フォントのストロークを処理します。 |
GCAPS_VERTSTRIKE | このフラグは、互換性のために残されています。 レガシ ドライバーでは、このフラグは、ドライバーが DrvTextOut の垂直方向の取り消し線を処理することを示しました。 |
GCAPS_WINDINGFILL | 巻き取りモードの塗りつぶしを処理します。 詳細については、「 パスの塗りつぶしモード 」を参照してください。 |
GCAPS2_REMOTEDRIVER | ディスプレイ ドライバーがリモート ユーザー セッションをサポートするために使用されることを示します。 |
lfDefaultFont
デバイスの既定のフォントを指定する拡張論理フォント構造体です。 この構造の詳細については、Microsoft Windows SDKドキュメントの EXTLOGFONT を参照してください。
lfAnsiVarFont
デバイスの既定の可変ピッチ フォントを指定する拡張論理フォント構造体です。 この構造の詳細については、Windows SDKドキュメントの EXTLOGFONT を参照してください。
lfAnsiFixFont
デバイスの既定の固定ピッチ (モノスペース) フォントを指定する拡張論理フォント構造体です。 この構造の詳細については、Windows SDKドキュメントの EXTLOGFONT を参照してください。
cFonts
デバイス フォントの数を指定します。 GDI は、デバイスが独自のサーフェス上にこの数のフォントでテキストを描画でき、ドライバーがフォントに関するメトリック情報を提供できることを前提としています。 ドライバーが cFonts を -1 に設定した場合、GDI は 、DrvQueryFont の呼び出しでサポートされているフォントの実際の数をドライバーに照会するためにフォントが必要になるまで待機します。
iDitherFormat
ビットマップの形式を指定します。 このパラメーターは、ピクセルごとに要求される色情報のビット数を示し、次のいずれかの値にする必要があります。
値 | 意味 |
---|---|
BMF_1BPP | 白黒 |
BMF_4BPP | ピクセルあたり 4 ビット |
BMF_8BPP | ピクセルあたり 8 ビット |
BMF_16BPP | 1 ピクセルあたり 16 ビット |
BMF_24BPP | ピクセルあたり 24 ビット |
BMF_32BPP | ピクセルあたり 32 ビット |
BMF_4RLE | ピクセルあたり 4 ビット、エンコードされた実行長 |
BMF_8RLE | ピクセルあたり 8 ビット、エンコードされた実行長 |
BMF_JPEG | JPEG 圧縮画像 |
BMF_PNG | PNG 圧縮イメージ |
cxDither
cyDither
ディザリングブラシの寸法を指定します。 これらのメンバーが 0 以外の場合、デバイスは特定の RGB 色のディザリング ブラシを作成できます。
hpalDefault
デバイスの既定のパレットを処理します。 ドライバーは 、EngCreatePalette を呼び出してパレットを作成する必要があります。 ドライバーは、GDI にこのハンドルを返すことによって、デバイスにパレットを関連付けます。
flGraphicsCaps2
デバイス ドライバーの追加のグラフィックス機能を記述するフラグのセットです。 これらのフラグは、次の表で定義されています。
フラグ | 定義 |
---|---|
GCAPS2_ALPHACURSOR | ピクセルごとのアルファ値を持つポインターを処理します。 |
GCAPS2_CHANGEGAMMARAMP | ディスプレイ デバイスには、読み込み可能なハードウェア ガンマ ランプがあります。 |
GCAPS2_EXCLUDELAYERED | これは、ドライバーのアクセシビリティミラー示します。 このフラグを設定しないミラー ドライバーは、レイヤー化された HWND の描画プリミティブを引き続き受け取ります。 詳細については、「 ミラー ドライバー 」を参照してください。 |
GCAPS2_ICD_MULTIMON | 操作の四角形が別のデバイスと交差する場合でも、ドライバーが DrvSetPixelFormat、 DrvDescribePixelFormat、 および DrvSwapBuffers 呼び出しを処理することを GDI に通知します。 これらの呼び出しを処理する機会が与えられるデバイスは 1 つだけです。 機能が指定されておらず、関係するリージョンが複数のデバイスと交差する場合、ドライバーは呼び出されません。 |
GCAPS2_INCLUDEAPIBITMAPS | デバイスに依存しないビットマップ (DIB) に対して描画呼び出しが行われると、ドライバーミラーアクセシビリティが呼び出されます。 詳細については、「 ミラー ドライバー 」を参照してください。 |
GCAPS2_JPEGSRC | デバイスは JPEG 圧縮イメージ (つまり、 BMF_JPEGが SURFOBJ 構造体に設定されているイメージ) を受け入れます。 |
GCAPS2_MOUSETRAILS | ドライバーがマウス の軌跡をサポートしていることを示します (短時間の間にマウスの位置を示すカーソル画像の連続)。 ドライバーは、GDI が DrvSetPointerShape 関数の fl パラメーターで送信する値を処理できます。 ドライバーは、マウス の軌跡の長さと頻度の値を取得するために、SPS_LENGTHMASKとSPS_FREQMASKマスクを使用する必要があります。 これらのマスクの詳細については、「 DrvSetPointerShape 」を参照してください。 |
GCAPS2_PNGSRC | デバイスでは、PNG 圧縮イメージ (つまり、 SURFOBJ 構造体でBMF_PNGが設定されているイメージ) を受け取ることができます。 |
GCAPS2_SYNCFLUSH | ドライバーは、バッチグラフィックス DDI 呼び出しのプログラムベースのフラッシュ メカニズムをサポートしています。 GDI がドライバーによってバッチ処理されている描画をフラッシュする必要がある場合は常に、DrvSynchronizeSurface が呼び出されます。 |
GCAPS2_SYNCTIMER | ドライバーは、バッチグラフィックス DDI 呼び出しのタイマー ベースのフラッシュ メカニズムをサポートしています。 DrvSynchronizeSurface は、GDI によって決定されるタイマー間隔に基づいて定期的に呼び出されます。 |
注釈
ドライバーの DrvEnablePDEV 関数は、DEVINFO 構造体を入力します。ドライバーは、それに関連するメンバーのみを設定する必要があります。 この構造体は、 DrvEnablePDEV が呼び出される前に GDI によってゼロ初期化されます。 アプリケーションは、この構造に直接アクセスできません。
ドライバーが flGraphicsCaps2 でGCAPS2_JPEGSRCまたはGCAPS2_PNGSRCを設定する場合は、次の規則が適用されます。
- ドライバーは 、DrvQueryDeviceSupport 関数を提供する必要があります。
-
入力として SURFOBJ 構造体を受け取るドライバー定義グラフィックス DDI 関数はすべて、圧縮形式をサポートするか、エラー コードを返すことができる必要があります。 プリンター ドライバーの場合、圧縮形式をサポートするには、ドライバーが次のいずれかのタスクを実行できる必要があります。
- 印刷デバイスが JPEG/PNG 圧縮形式を処理できる場合、プリンター ドライバーは圧縮形式をそのページ記述言語 (PDL) 出力に渡す必要があります。
- 印刷デバイスが JPEG/PNG 圧縮形式を処理できない場合、プリンター ドライバーはまず、圧縮された JPEG/PNG 形式を印刷デバイスで処理できる別のイメージ形式に変換する必要があります。 プリンター ドライバーは、ドライバーの PDL 出力でイメージ情報を使用できるようにします。
メモ JPEG/PNG からビットマップ形式に変換する場合、プリンター ドライバーは GDI 関数を使用できません。 たとえば、ドライバーは、代わりに Windows イメージング コンポーネント (WIC) API を使用して変換を行うことができます。
- ドライバーは、圧縮形式を使用するイメージの複雑なクリップ領域を処理できる必要があります。
- ROP4 入力引数を受け取るドライバー定義グラフィックス DDI 関数の場合、JPEG および PNG 形式では0xCCCCのみが使用されます。
要件
要件 | 値 |
---|---|
Header | winddi.h (Winddi.h を含む) |