EngGradientFill 関数 (winddi.h)

EngGradientFill 関数は、指定されたプリミティブをシェーディングします。

構文

ENGAPI BOOL EngGradientFill(
       SURFOBJ   *psoDest,
       CLIPOBJ   *pco,
       XLATEOBJ  *pxlo,
       TRIVERTEX *pVertex,
       ULONG     nVertex,
       PVOID     pMesh,
       ULONG     nMesh,
       RECTL     *prclExtents,
       POINTL    *pptlDitherOrg,
  [in] ULONG     ulMode
);

パラメーター

psoDest

描画するサーフェスを識別する SURFOBJ 構造体へのポインター。

pco

CLIPOBJ 構造体へのポインター。 CLIPOBJ_Xxx サービス ルーチンは、クリップ領域を一連の四角形として列挙するために提供されます。 この列挙は、変更される宛先の領域を制限します。 可能な限り、GDI は関連するクリッピングを簡略化します。

pxlo

XLATEOBJ 構造体へのポインター。 この構造体は、32 bpp RGB 形式と変換先の間で色インデックスを変換する方法を示します。 ドライバーは、入力COLOR16色の値を RGB に変換する役割を担います。

pVertex

位置と色の情報を含む各エントリを含む TRIVERTEX 構造体の配列へのポインター。 TRIVERTEX 構造体については、Microsoft Windows SDKドキュメントを参照してください。

nVertex

pVertex がポイントする配列内の TRIVERTEX 構造体の数を指定します。

pMesh

pVertex が指す TRIVERTEX 要素の接続性を定義する構造体の配列へのポインター。

四角形が描画されている場合、 pMesh はGRADIENT_RECT構造体の配列を指し、それぞれが四角形を定義する 2 つの TRIVERTEX 要素を指定します。 TRIVERTEX 要素は、対角線で対向する四角形の頂点のペアを表すことができます。 四角形の描画は右下の排他的です。 TRIVERTEX と GRADIENT_RECT の両方は、Windows SDK のドキュメントで定義されています。

三角形が描画されている場合、 pMesh はGRADIENT_TRIANGLE構造体の配列を指し、それぞれが三角形を定義する 3 つの TRIVERTEX 要素を指定します。 三角形の描画は右下の排他的です。 GRADIENT_TRIANGLE構造は、Windows SDK のドキュメントで定義されています。

nMesh

pMesh が指す配列内の要素の数を指定します。

prclExtents

グラデーション描画を実行する領域を定義する RECTL 構造体へのポインター。 ポイントは、変換先サーフェスの座標系で指定されます。 このパラメーターは、描画操作のサイズを見積もる場合に役立ちます。

pptlDitherOrg

ディザリングのためにサーフェス上の原点を定義する POINTL 構造体へのポインター。 ディザ パターンの左上のピクセルは、この点に合わせて配置されます。

[in] ulMode

現在の描画モードと、 pMesh が指す配列の解釈方法を指定します。 このパラメーターには、次のいずれかの値を指定できます。

GRADIENT_FILL_RECT_H

pMesh パラメーターは、GRADIENT_RECT構造体の配列を指します。 各四角形は、左から右に網かけされます。

GRADIENT_FILL_RECT_V

pMesh パラメーターは、GRADIENT_RECT構造体の配列を指します。 各四角形は、上から下に網掛けされます。

GRADIENT_FILL_TRIANGLE

pMesh パラメーターは、GRADIENT_TRIANGLE構造体の配列を指します。

戻り値

EngGradientFill は 、成功すると TRUE を 返します。 それ以外の場合は、エラーを報告し、 FALSE を返します

解説

ドライバーは 、DrvGradientFill をフックし、サポートされていないことを行うために呼び出される場合は、 EngGradientFill を呼び出す必要があります。

各ピクセルで色の値を計算するために使用される数式は、次のように ulMode の値によって異なります。

GDI は頂点のアルファ値を無視し、アルファ チャネルはアルファをサポートするサーフェスでは変更されません。

要件

   
サポートされている最小のクライアント Windows 2000 以降のバージョンの Windows オペレーティング システムで使用できます。
対象プラットフォーム ユニバーサル
Header winddi.h (Winddi.h を含む)
Library Win32k.lib
[DLL] Win32k.sys

関連項目

DrvGradientFill