Partager via


ID2D1Factory ::CreateGeometryGroup, méthode (d2d1.h)

Crée un ID2D1GeometryGroup, qui est un objet qui contient d’autres géométries.

Syntaxe

HRESULT CreateGeometryGroup(
        D2D1_FILL_MODE     fillMode,
  [in]  ID2D1Geometry      **geometries,
        UINT32             geometriesCount,
  [out] ID2D1GeometryGroup **geometryGroup
);

Paramètres

fillMode

Type : D2D1_FILL_MODE

Valeur qui spécifie la règle qu’une forme composite utilise pour déterminer si un point donné fait partie de la géométrie.

[in] geometries

Type : ID2D1Geometry**

Tableau contenant les objets geometry à ajouter au groupe geometry. Le nombre d’éléments dans ce tableau est indiqué par le paramètre geometriesCount .

geometriesCount

Type : UINT

Nombre d’éléments dans les géométries.

[out] geometryGroup

Type : ID2D1GeometryGroup**

Lorsque cette méthode est retournée, contient l’adresse d’un pointeur vers le groupe geometry créé par cette méthode.

Valeur retournée

Type : HRESULT

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT .

Remarques

Les groupes geometry sont un moyen pratique de regrouper plusieurs géométries simultanément afin que toutes les figures de plusieurs géométries distinctes soient concaténées en une seule. Pour créer un objet ID2D1GeometryGroup , appelez la méthode CreateGeometryGroup sur l’objet ID2D1Factory , en passant le fillMode avec les valeurs possibles de D2D1_FILL_MODE_ALTERNATE (alternative) et D2D1_FILL_MODE_WINDING, un tableau d’objets geometry à ajouter au groupe geometry et le nombre d’éléments dans ce tableau.

Exemples

L’exemple de code suivant déclare d’abord un tableau d’objets geometry. Ces objets sont quatre cercles concentriques qui ont les rayons suivants : 25, 50, 75 et 100. Appelez ensuite CreateGeometryGroup sur l’objet ID2D1Factory , en passant D2D1_FILL_MODE_ALTERNATE, un tableau d’objets géométriques à ajouter au groupe geometry et le nombre d’éléments dans ce tableau.

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
        );
}

L’illustration suivante montre les résultats du rendu des deux géométries de groupe à partir de l’exemple.

Illustration de deux ensembles de quatre cercles concentriques, l’un avec les deuxième et quatrième anneaux remplis et l’autre avec tous les anneaux remplis

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2, Windows Server 2008 avec SP2 et Platform Update pour Windows Server 2008 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête d2d1.h
Bibliothèque D2d1.lib
DLL D2d1.dll

Voir aussi

Vue d’ensemble des géométries

ID2D1Factory