ID2D1Factory::CreateGeometryGroup メソッド
他のジオメトリを保持するオブジェクトである ID2D1GeometryGroup を作成します。
構文
virtual HRESULT CreateGeometryGroup(
D2D1_FILL_MODE fillMode,
[in] ID2D1Geometry **geometries,
UINT geometriesCount,
[out] ID2D1GeometryGroup **geometryGroup
) = 0;
パラメーター
- fillMode
D2D1_FILL_MODE 指定された点がジオメトリに含まれているかどうかを判別するために複合図形で使用される規則を指定する値。 - geometries [in]
ID2D1Geometry ジオメトリ グループに追加するジオメトリ オブジェクトを含む配列。この配列内の要素数は、geometriesCount パラメーターで示されます。 - geometriesCount
UINT geometries 内の要素数。 - geometryGroup [out]
ID2D1GeometryGroup このメソッドが返されるときに、このメソッドによって作成されたジオメトリ グループへのポインターのアドレスが格納されます。
戻り値
HRESULT
メソッドが成功した場合は、S_OK が返されます。 それ以外の場合は、エラー コードが返されます。HRESULT.
解説
ジオメトリ グループは、複数のジオメトリを同時にグループ化して、複数の異なるジオメトリのすべての図が 1 つに連結されるようにするための便利な方法です。ID2D1GeometryGroup オブジェクトを作成するには、ID2D1Factory オブジェクトで CreateGeometryGroup メソッドを呼び出し、D2D1_FILL_MODE_ALTERNATE (交互) と D2D1_FILL_MODE_WINDING の使用可能な値を指定した fillMode、ジオメトリ グループに追加するジオメトリ オブジェクトの配列、およびこの配列内の要素数を渡します。
例
次のコード例では、まず、ジオメトリ オブジェクトの配列を宣言します。これらのオブジェクトは 4 つの同心円で、半径はそれぞれ 25、50、75、および 100 です。次に、ID2D1Factory オブジェクトで CreateGeometryGroup を呼び出し、D2D1_FILL_MODE_ALTERNATE、ジオメトリ グループに追加するジオメトリ オブジェクトの配列、およびこの配列内の要素数を渡します。
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 用のプラットフォーム更新プログラム |
サーバーの最小要件 |
Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム |
ヘッダー |
D2d1.h |
ライブラリ |
D2d1.lib |
DLL |
D2d1.dll |