ID2D1Factory::CreateGeometryGroup-Methode (d2d1.h)

Erstellt eine ID2D1GeometryGroup, bei der es sich um ein Objekt handelt, das andere Geometrien enthält.

Syntax

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

Parameter

fillMode

Typ: D2D1_FILL_MODE

Ein Wert, der die Regel angibt, die eine zusammengesetzte Form verwendet, um zu bestimmen, ob ein bestimmter Punkt Teil der Geometrie ist.

[in] geometries

Typ: ID2D1Geometry**

Ein Array, das die geometrie-Objekte enthält, die der Geometriegruppe hinzugefügt werden sollen. Die Anzahl der Elemente in diesem Array wird durch den parameter geometriesCount angegeben.

geometriesCount

Typ: UINT

Die Anzahl der Elemente in Geometrien.

[out] geometryGroup

Typ: ID2D1GeometryGroup**

Wenn diese Methode zurückgibt, enthält die Adresse eines Zeigers auf die von dieser Methode erstellte Geometriegruppe.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Hinweise

Geometriegruppen sind eine praktische Möglichkeit, mehrere Geometrien gleichzeitig zu gruppieren, sodass alle Figuren mehrerer unterschiedlicher Geometrien zu einer verkettet werden. Um ein ID2D1GeometryGroup-Objekt zu erstellen, rufen Sie die CreateGeometryGroup-Methode für das ID2D1Factory-Objekt auf, und übergeben Sie den fillMode mit möglichen Werten von D2D1_FILL_MODE_ALTERNATE (alternativ) und D2D1_FILL_MODE_WINDING, einem Array von Geometrieobjekten, die der Geometriegruppe hinzugefügt werden sollen, und der Anzahl der Elemente in diesem Array.

Beispiele

Im folgenden Codebeispiel wird zunächst ein Array von Geometrieobjekten deklariert. Diese Objekte sind vier konzentrische Kreise mit den folgenden Radien: 25, 50, 75 und 100. Rufen Sie dann createGeometryGroup für das ID2D1Factory-Objekt auf, und übergeben Sie D2D1_FILL_MODE_ALTERNATE, ein Array von Geometrieobjekten, die der Geometriegruppe hinzugefügt werden sollen, und die Anzahl der Elemente in diesem Array.

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

Die folgende Abbildung zeigt die Ergebnisse des Renderns der beiden Gruppengeometrien aus dem Beispiel.

Abbildung von zwei Sätzen von vier konzentrischen Kreisen, einer mit dem zweiten und vierten Ring gefüllt und einer mit allen Ringen gefüllt

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d2d1.h
Bibliothek D2d1.lib
DLL D2d1.dll

Weitere Informationen

Übersicht über Geometrien

ID2D1Factory