次の方法で共有


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 つのグループ ジオメトリをレンダリングした結果を示しています。

 

異なる塗りつぶしモードが設定された 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

参照

ID2D1Factory

ジオメトリの概要