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 结构的数组的指针,其中每个条目都包含位置和颜色信息。 MICROSOFT WINDOWS SDK文档中介绍了 TRIVERTEX 结构。

nVertex

指定 数组中 pVertex 指向的 TRIVERTEX 结构的数目。

pMesh

指向结构的数组的指针,这些结构定义 pVertex 指向的 TRIVERTEX 元素的连接性。

绘制矩形时, pMesh 指向GRADIENT_RECT结构的数组,其中每个结构指定定义矩形的两个 TRIVERTEX 元素。 TRIVERTEX 元素可以表示任何对角相反的矩形顶点对。 矩形绘图是右下角独占的。 TRIVERTEX 和 GRADIENT_RECT均在 Windows SDK 文档中定义。

绘制三角形时, pMesh 指向GRADIENT_TRIANGLE结构的数组,其中每个结构指定三个用于定义三角形的 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 忽略顶点的 alpha 值,使支持 alpha 的图面的 alpha 通道保持不变。

要求

   
最低受支持的客户端 适用于 Windows 2000 及更高版本的 Windows 操作系统。
目标平台 通用
标头 winddi.h (包括 Winddi.h)
Library Win32k.lib
DLL Win32k.sys

另请参阅

DrvGradientFill