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 | 無効な値が メソッドに渡されました。 |
注釈
このメソッドは、カラー ストップ間を直線的に補間します。 オプションの色空間変換は、補間後に適用されます。 このガンマ変換を適用するかどうかと適用方法は、事前補間と後補間によって決まります。 デバイス コンテキストが要求されたバッファー精度をサポートしていない場合、このメソッドは失敗します。
目的の結果を取得するには、入力が正しい色空間で指定されていることを確認する必要があります。
補間モードが事前乗算または直線であるかどうかにかかわらず、常に直線アルファで色を指定する必要があります。 補間モードは補間値にのみ影響します。 同様に、 ID2D1GradientStopCollection::GetGradientStops によって返されるストップは、常に直線アルファになります。
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 |