Condividi tramite


Metodo ID2D1Factory::CreateGeometryGroup (d2d1.h)

Crea un oggetto ID2D1GeometryGroup, che è un oggetto che contiene altre geometrie.

Sintassi

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

Parametri

fillMode

Tipo: D2D1_FILL_MODE

Valore che specifica la regola utilizzata da una forma composita per determinare se un determinato punto fa parte della geometria.

[in] geometries

Tipo: ID2D1Geometry**

Matrice contenente gli oggetti geometry da aggiungere al gruppo geometry. Il numero di elementi in questa matrice è indicato dal parametro geometriesCount .

geometriesCount

Tipo: UINT

Numero di elementi nelle geometrie.

[out] geometryGroup

Tipo: ID2D1GeometryGroup**

Quando termina, questo metodo contiene l'indirizzo di un puntatore al gruppo geometry creato da questo metodo.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

I gruppi di geometrie sono un modo pratico per raggruppare più geometrie contemporaneamente, in modo che tutte le figure di diverse geometrie distinte siano concatenate in una. Per creare un oggetto ID2D1GeometryGroup , chiamare il metodo CreateGeometryGroup sull'oggetto ID2D1Factory , passando fillMode con i valori possibili di D2D1_FILL_MODE_ALTERNATE (alternativa) e D2D1_FILL_MODE_WINDING, una matrice di oggetti geometry da aggiungere al gruppo geometry e il numero di elementi in questa matrice.

Esempio

Nell'esempio di codice seguente viene innanzitutto dichiarata una matrice di oggetti geometry. Questi oggetti sono quattro cerchi concentrici con i seguenti raggi: 25, 50, 75 e 100. Chiamare quindi CreateGeometryGroup nell'oggetto ID2D1Factory , passando D2D1_FILL_MODE_ALTERNATE, una matrice di oggetti geometry da aggiungere al gruppo geometry e il numero di elementi in questa matrice.

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

Nella figura seguente vengono illustrati i risultati del rendering delle due geometrie di gruppo dell'esempio.

Illustrazione di due set di quattro cerchi concentrici, uno con il secondo e il quarto anelli riempiti e uno con tutti gli anelli riempiti

Requisiti

Requisito Valore
Client minimo supportato Windows 7, Windows Vista con SP2 e Aggiornamento della piattaforma per Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2, Windows Server 2008 con SP2 e Platform Update per Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione d2d1.h
Libreria D2d1.lib
DLL D2d1.dll

Vedi anche

Panoramica delle geometrie

ID2D1Factory