ID2D1DeviceContext::CreateGradientStopCollection 方法 (d2d1_1.h)
创建渐变停止集合,使渐变包含值超出 [0,1] 的颜色通道,还允许在 sRGB 空间中使用内插呈现到高色呈现目标。
语法
HRESULT CreateGradientStopCollection(
const D2D1_GRADIENT_STOP *straightAlphaGradientStops,
UINT32 straightAlphaGradientStopsCount,
D2D1_COLOR_SPACE preInterpolationSpace,
D2D1_COLOR_SPACE postInterpolationSpace,
D2D1_BUFFER_PRECISION bufferPrecision,
D2D1_EXTEND_MODE extendMode,
D2D1_COLOR_INTERPOLATION_MODE colorInterpolationMode,
[out] ID2D1GradientStopCollection1 **gradientStopCollection1
);
参数
straightAlphaGradientStops
类型: const D2D1_GRADIENT_STOP*
颜色值和偏移量的数组。
straightAlphaGradientStopsCount
类型: UINT
gradientStops 数组中的元素数。
preInterpolationSpace
类型: D2D1_COLOR_SPACE
指定输入颜色空间和颜色内插发生的空间。
postInterpolationSpace
类型: D2D1_COLOR_SPACE
颜色在内插发生后将转换为的颜色空间。
bufferPrecision
用于保存内插值的纹理的精度。
extendMode
类型: D2D1_EXTEND_MODE
定义如何确定由停止集合定义的范围以外的颜色。
colorInterpolationMode
类型: D2D1_COLOR_INTERPOLATION_MODE
定义颜色的内插方式。 D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED为默认值,有关详细信息,请参阅备注。
[out] gradientStopCollection1
类型: ID2D1GradientStopCollection1**
新的渐变停止集合。
返回值
类型: HRESULT
该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。
HRESULT | 说明 |
---|---|
S_OK | 未发生错误。 |
E_OUTOFMEMORY | Direct2D 无法分配足够的内存来完成调用。 |
E_INVALIDARG | 传递给 方法的值无效。 |
注解
此方法在颜色停止点之间线性内插。 可选的颜色空间转换在内插后应用。 是否应用此伽玛转换以及应用方式取决于前内插和后内插。 如果设备上下文不支持请求的缓冲区精度,此方法将失败。
若要获得所需的结果,需要确保在正确的颜色空间中指定输入。
无论内插模式是预乘还是直插,都必须始终以直 alpha 指定颜色。 内插模式仅影响内插值。 同样, ID2D1GradientStopCollection::GetGradientStops 返回的 stops 将始终具有直 alpha。
如果指定 D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED,则所有停止在内插之前都是预乘的,然后在颜色转换之前取消乘法。
从Windows 8开始,此方法的内插行为已更改。
此处的表显示了 Windows 7 及更早版本中的行为。
Gamma | 内插前行为 | 内插后行为 | GetColorInteroplationGamma (输出颜色空间) |
---|---|---|---|
1.0 | 固定输入,然后从 sRGB 转换为 scRGB。 | 从 scRGB 转换为 sRGB 后内插。 | 1.0 |
2.2 | 固定输入。 | 无操作 | 2.2 |
此处的表显示了 Windows 8 及更高版本中的行为。
Gamma | 内插前行为 | 内插后行为 | GetColorInteroplationGamma (输出颜色空间) |
---|---|---|---|
sRGB 到 scRGB | 无操作 | 固定输出,然后从 sRGB 转换为 scRGB。 | 1.0 |
scRGB 到 sRGB | 无操作 | 固定输出,然后从 sRGB 转换为 scRGB。 | 2.2 |
sRGB 到 sRGB | 无操作 | 无操作 | 2.2 |
scRGB 到 scRGB | 无操作 | 无操作 | 1.0 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 适用于 Windows Vista 的Windows 8和平台更新 [桌面应用 |UWP 应用] |
最低受支持的服务器 | 适用于 Windows Server 2008 的Windows Server 2012和平台更新 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | d2d1_1.h |
DLL | D2d1.dll |