ID2D1Factory::CreateGeometryGroup メソッド (d2d1.h)
他のジオメトリを保持するオブジェクトである ID2D1GeometryGroup を作成します。
構文
HRESULT CreateGeometryGroup(
D2D1_FILL_MODE fillMode,
[in] ID2D1Geometry **geometries,
UINT32 geometriesCount,
[out] ID2D1GeometryGroup **geometryGroup
);
パラメーター
fillMode
種類: D2D1_FILL_MODE
特定のポイントがジオメトリの一部であるかどうかを判断するために複合図形が使用するルールを指定する値。
[in] geometries
種類: ID2D1Geometry**
geometry グループに追加する geometry オブジェクトを含む配列。 この配列内の要素の数は、 geometriesCount パラメーターによって示されます。
geometriesCount
型: UINT
ジオメトリ内の要素の数。
[out] geometryGroup
種類: ID2D1GeometryGroup**
このメソッドが戻るとき、 には、このメソッドによって作成された geometry グループへのポインターのアドレスが格納されます。
戻り値
種類: HRESULT
このメソッドは、成功すると S_OK を返します。 それ以外の場合は、 HRESULT エラー コードが返されます。
注釈
ジオメトリ グループは、複数のジオメトリを同時にグループ化する便利な方法であり、複数の異なるジオメトリのすべての図形が 1 つに連結されます。 ID2D1GeometryGroup オブジェクトを作成するには、ID2D1Factory オブジェクトで CreateGeometryGroup メソッドを呼び出し、fillMode をD2D1_FILL_MODE_ALTERNATE (代替) とD2D1_FILL_MODE_WINDING、geometry グループに追加する geometry オブジェクトの配列、およびこの配列内の要素の数を渡します。
例
次のコード例では、最初に geometry オブジェクトの配列を宣言します。 これらのオブジェクトは、半径が 25、50、75、100 の 4 つの同心円です。 次に、ID2D1Factory オブジェクトで CreateGeometryGroup を呼び出し、D2D1_FILL_MODE_ALTERNATE、geometry グループに追加する geometry オブジェクトの配列、およびこの配列内の要素の数を渡します。
ID2D1Geometry *ppGeometries[] =
{
m_pEllipseGeometry1,
m_pEllipseGeometry2,
m_pEllipseGeometry3,
m_pEllipseGeometry4
};
hr = m_pD2DFactory->CreateGeometryGroup(
D2D1_FILL_MODE_ALTERNATE,
ppGeometries,
ARRAYSIZE(ppGeometries),
&m_pGeoGroup_AlternateFill
);
if (SUCCEEDED(hr))
{
hr = m_pD2DFactory->CreateGeometryGroup(
D2D1_FILL_MODE_WINDING,
ppGeometries,
ARRAYSIZE(ppGeometries),
&m_pGeoGroup_WindingFill
);
}
次の図は、この例の 2 つのグループ ジオメトリをレンダリングした結果を示しています。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7、Windows Vista SP2 および Windows Vista 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | d2d1.h |
Library | D2d1.lib |
[DLL] | D2d1.dll |