ID2D1GradientStopCollection1
COM公式ドキュメント
線形グラデーションブラシおよび放射状グラデーションブラシのための D2D1_GRADIENT_STOP オブジェクトのコレクションを表します。グラデーションストップコレクションに追加された新しいパラメーターすべてに対する get メソッドを提供します。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
コレクションからグラデーションストップをメモリーへコピーします。
| gradientStops | D2D1_GRADIENT_STOP* | out | このメソッドが返るとき、D2D1_GRADIENT_STOP 構造体の 1 次元配列へのポインターが格納されます。 |
| gradientStopsCount | DWORD | in | コピーするグラデーションストップの数。 |
解説(Remarks)
ID2D1DeviceContext::CreateGradientStopCollection の場合、このメソッドは作成メソッドで指定したものと同じ値を返します。ID2D1GradientStopCollection1 オブジェクトが ID2D1RenderTarget::CreateGradientStopCollection を使用して作成された場合、ここで返されるストップは、まず colorInterpolationGamma パラメーターで指定されたガンマ空間へ変換されます。色空間およびガンマ空間の詳細については、ID2D1DeviceContext::CreateGradientStopCollection メソッドを参照してください。
gradientStopsCount がコレクション内のグラデーションストップ数より小さい場合、残りのグラデーションストップは省略されます。gradientStopsCount がコレクション内のグラデーションストップ数より大きい場合、余分なグラデーションストップは NULL に設定されます。コレクション内のグラデーションストップ数を取得するには、GetGradientStopCount メソッドを使用してください。
入力色の色空間、およびグラデーションストップが補間される空間を取得します。
戻り値
このメソッドは色空間を返します。
解説(Remarks)
このオブジェクトが ID2D1RenderTarget::CreateGradientStopCollection を使用して作成された場合、このメソッドは色補間ガンマに関連する色空間を返します。
補間が行われた後の色空間を取得します。
戻り値
このメソッドは色空間を返します。
解説(Remarks)
ID2D1RenderTarget::CreateGradientStopCollection を使用して作成した場合、このメソッドは D2D1_COLOR_SPACE_SRGB を返します。
グラデーションバッファーの精度を取得します。
戻り値
グラデーションバッファーのバッファー精度。
解説(Remarks)
このオブジェクトが ID2D1RenderTarget::CreateGradientStopCollection を使用して作成された場合、このメソッドは D2D1_BUFFER_PRECISION_8BPC_UNORM を返します。
グラデーションストップコレクションが使用する色補間モードを取得します。
戻り値
型: D2D1_COLOR_INTERPOLATION_MODE
色補間モード。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ID2D1GradientStopCollection1 "{AE1572F4-5DD0-4777-998B-9279472AE63B}" #usecom global ID2D1GradientStopCollection1 IID_ID2D1GradientStopCollection1 "{}" #comfunc global ID2D1GradientStopCollection1_GetGradientStops1 8 var,int #comfunc global ID2D1GradientStopCollection1_GetPreInterpolationSpace 9 #comfunc global ID2D1GradientStopCollection1_GetPostInterpolationSpace 10 #comfunc global ID2D1GradientStopCollection1_GetBufferPrecision 11 #comfunc global ID2D1GradientStopCollection1_GetColorInterpolationMode 12 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ID2D1GradientStopCollection1 "{AE1572F4-5DD0-4777-998B-9279472AE63B}" #usecom global ID2D1GradientStopCollection1 IID_ID2D1GradientStopCollection1 "{}" #comfunc global ID2D1GradientStopCollection1_GetGradientStops1 8 sptr,int #comfunc global ID2D1GradientStopCollection1_GetPreInterpolationSpace 9 #comfunc global ID2D1GradientStopCollection1_GetPostInterpolationSpace 10 #comfunc global ID2D1GradientStopCollection1_GetBufferPrecision 11 #comfunc global ID2D1GradientStopCollection1_GetColorInterpolationMode 12 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。