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