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

Cria um ID2D1GeometryGroup, que é um objeto que contém outras geometrias.

Sintaxe

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

Parâmetros

fillMode

Tipo: D2D1_FILL_MODE

Um valor que especifica a regra que uma forma composta usa para determinar se um determinado ponto faz parte da geometria.

[in] geometries

Tipo: ID2D1Geometry**

Uma matriz que contém os objetos geometry a serem adicionados ao grupo de geometria. O número de elementos nessa matriz é indicado pelo parâmetro geometriesCount .

geometriesCount

Tipo: UINT

O número de elementos em geometrias.

[out] geometryGroup

Tipo: ID2D1GeometryGroup**

Quando esse método retorna, contém o endereço de um ponteiro para o grupo de geometria criado por esse método.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT .

Comentários

Os grupos de geometria são uma maneira conveniente de agrupar várias geometrias simultaneamente para que todas as figuras de várias geometrias distintas sejam concatenadas em uma. Para criar um objeto ID2D1GeometryGroup , chame o método CreateGeometryGroup no objeto ID2D1Factory , passando o fillMode com valores possíveis de D2D1_FILL_MODE_ALTERNATE (alternativo) e D2D1_FILL_MODE_WINDING, uma matriz de objetos geometry a serem adicionados ao grupo de geometria e o número de elementos nessa matriz.

Exemplos

O exemplo de código a seguir primeiro declara uma matriz de objetos geometry. Esses objetos são quatro círculos concêntricos que têm os seguintes raios: 25, 50, 75 e 100. Em seguida, chame CreateGeometryGroup no objeto ID2D1Factory , passando D2D1_FILL_MODE_ALTERNATE, uma matriz de objetos geometry a serem adicionados ao grupo geometry e o número de elementos nessa 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
        );
}

A ilustração a seguir mostra os resultados da renderização das duas geometrias de grupo do exemplo.

Ilustração de dois conjuntos de quatro círculos concêntricos, um com o segundo e o quarto anéis preenchidos e um com todos os anéis preenchidos

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 7, Windows Vista com SP2 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2, Windows Server 2008 com SP2 e Platform Update para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho d2d1.h
Biblioteca D2d1.lib
DLL D2d1.dll

Confira também

Visão geral de geometrias

ID2D1Factory