Compartir a través de


Método ID2D1Factory::CreateGeometryGroup (d2d1.h)

Crea un ID2D1GeometryGroup, que es un objeto que contiene otras geometrías.

Sintaxis

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

Parámetros

fillMode

Tipo: D2D1_FILL_MODE

Valor que especifica la regla que usa una forma compuesta para determinar si un punto determinado forma forma parte de la geometría.

[in] geometries

Tipo: ID2D1Geometry**

Matriz que contiene los objetos geometry que se van a agregar al grupo de geometría. El número de elementos de esta matriz se indica mediante el parámetro geometriesCount .

geometriesCount

Tipo: UINT

Número de elementos en geometrías.

[out] geometryGroup

Tipo: ID2D1GeometryGroup**

Cuando este método vuelve, contiene la dirección de un puntero al grupo de geometría creado por este método.

Valor devuelto

Tipo: HRESULT

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error HRESULT .

Comentarios

Los grupos de geometría son una manera cómoda de agrupar varias geometrías simultáneamente, por lo que todas las figuras de varias geometrías distintas se concatenan en una. Para crear un objeto ID2D1GeometryGroup , llame al método CreateGeometryGroup en el objeto ID2D1Factory , pasando fillMode con valores posibles de D2D1_FILL_MODE_ALTERNATE (alternativo) y D2D1_FILL_MODE_WINDING, una matriz de objetos geometry para agregar al grupo de geometría y el número de elementos de esta matriz.

Ejemplos

En el ejemplo de código siguiente se declara primero una matriz de objetos geometry. Estos objetos son cuatro círculos concéntricos que tienen los siguientes radios: 25, 50, 75 y 100. A continuación, llame a CreateGeometryGroup en el objeto ID2D1Factory , pasando D2D1_FILL_MODE_ALTERNATE, una matriz de objetos geometry para agregar al grupo de geometría y el número de elementos de esta matriz.

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

En la ilustración siguiente se muestran los resultados de la representación de las dos geometrías de grupo del ejemplo.

Ilustración de dos conjuntos de cuatro círculos concéntricos, uno con el segundo y cuarto anillos rellenos y uno con todos los anillos rellenos

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado d2d1.h
Library D2d1.lib
Archivo DLL D2d1.dll

Consulte también

Información general sobre las geometrías

ID2D1Factory