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.
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 |