Метод ID2D1Factory::CreateGeometryGroup (d2d1.h)
Создает ID2D1GeometryGroup, который является объектом, который содержит другие геометрические объекты.
Синтаксис
HRESULT CreateGeometryGroup(
D2D1_FILL_MODE fillMode,
[in] ID2D1Geometry **geometries,
UINT32 geometriesCount,
[out] ID2D1GeometryGroup **geometryGroup
);
Параметры
fillMode
Тип: D2D1_FILL_MODE
Значение типа , указывающее правило, которое используется составной фигурой для определения того, является ли данная точка частью геометрии.
[in] geometries
Тип: ID2D1Geometry**
Массив, содержащий объекты geometry для добавления в группу geometry. Количество элементов в этом массиве обозначается параметром geometriesCount .
geometriesCount
Тип: UINT
Количество элементов в геометрических объектах.
[out] geometryGroup
Тип: ID2D1GeometryGroup**
При возврате этого метода содержит адрес указателя на группу геометрии, созданную этим методом.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Геометрические группы — это удобный способ одновременного объединения нескольких геометрических объектов, поэтому все фигуры нескольких различных геометрических объектов объединяются в одну. Чтобы создать объект ID2D1GeometryGroup , вызовите метод CreateGeometryGroup объекта ID2D1Factory , передав в fillMode возможные значения D2D1_FILL_MODE_ALTERNATE (альтернативные) и D2D1_FILL_MODE_WINDING, массив объектов geometry для добавления в группу geometry и количество элементов в этом массиве.
Примеры
В следующем примере кода сначала объявляется массив объектов geometry. Это четыре концентрических круга со следующими радиусами: 25, 50, 75 и 100. Затем вызовите CreateGeometryGroup для объекта ID2D1Factory , передав D2D1_FILL_MODE_ALTERNATE, массив геометрических объектов для добавления в группу geometry и количество элементов в этом массиве.
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
);
}
На следующем рисунке показаны результаты отрисовки двух геометрических объектов групп из примера.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7, Windows Vista с пакетом обновления 2 (SP2) и обновлением платформы для Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | d2d1.h |
Библиотека | D2d1.lib |
DLL | D2d1.dll |