ID2D1GeometryGroup インターフェイス

他の ID2D1Geometry オブジェクトで構成される複合ジオメトリを表します。

実装するタイミング

カスタム実装はサポートされません。

メンバー

ID2D1GeometryGroup インターフェイス の継承元は次のとおりです: ID2D1Geometry. ID2D1GeometryGroup は次のメンバーも定義します:

  • メソッド

メソッド

ID2D1GeometryGroup インターフェイス は次の項目を定義します: メソッド.

メソッド 説明
GetFillMode

このジオメトリ グループに含まれるジオメトリの交差する領域がどのように結合されているかを示します。

GetSourceGeometries

ジオメトリ グループ内のジオメトリを取得します。

GetSourceGeometryCount

ジオメトリ グループ内のジオメトリ オブジェクトの数を示します。

 

解説

ジオメトリ グループは、複数のジオメトリを同時にグループ化して、複数の異なるジオメトリのすべての図が 1 つに連結されるようにするための便利な方法です。

ID2D1GeometryGroup オブジェクトの作成

ID2D1GeometryGroup オブジェクトを作成するには、ID2D1Factory::CreateGeometryGroup メソッドを呼び出し、D2D1_FILL_MODE_ALTERNATE (交互) と D2D1_FILL_MODE_WINDING の使用可能な値を指定した fillMode、ジオメトリ グループに追加するジオメトリ オブジェクトの配列、およびこの配列内の要素数を渡します。

Direct2D ジオメトリは、ID2D1Factory によって作成される、デバイスに依存しない不変のリソースです。通常、一度ジオメトリを作成したら、アプリケーションが有効な間またはジオメトリの変更が必要になるまでは、作成したジオメトリを保持しておく必要があります。デバイス非依存のリソースとデバイス依存のリソースの詳細については、「リソースの概要」を参照してください。

次のコード例では、まず、ジオメトリ オブジェクトの配列を宣言します。これらのオブジェクトは 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