ИНТЕРФЕЙС ID2D1Factory (d2d1.h)
Создает ресурсы Direct2D.
Наследование
Интерфейс ID2D1Factory наследуется от интерфейса IUnknown . ID2D1Factory также имеет следующие типы элементов:
Методы
Интерфейс ID2D1Factory содержит следующие методы.
ID2D1Factory::CreateDCRenderTarget Создает целевой объект отрисовки, который обращается к контексту устройства интерфейса графического устройства Windows (GDI). |
ID2D1Factory::CreateDrawingStateBlock Создает ID2D1DrawingStateBlock, который можно использовать с методами SaveDrawingState и RestoreDrawingState целевого объекта отрисовки. (перегрузка 1/3) |
ID2D1Factory::CreateDrawingStateBlock Создает ID2D1DrawingStateBlock, который можно использовать с методами SaveDrawingState и RestoreDrawingState целевого объекта отрисовки. (перегрузка 2/3) |
ID2D1Factory::CreateDrawingStateBlock Создает ID2D1DrawingStateBlock, который можно использовать с методами SaveDrawingState и RestoreDrawingState целевого объекта отрисовки. (перегрузка 3/3) |
ID2D1Factory::CreateDxgiSurfaceRenderTarget Создает целевой объект отрисовки, который обращается к поверхности Инфраструктуры графики DirectX (DXGI). (перегрузка 1/2) |
ID2D1Factory::CreateDxgiSurfaceRenderTarget Создает целевой объект отрисовки, который обращается к поверхности Инфраструктуры графики DirectX (DXGI). (перегрузка 2/2) |
ID2D1Factory::CreateEllipseGeometry Создает ID2D1EllipseGeometry. (перегрузка 2/2) |
ID2D1Factory::CreateEllipseGeometry Создает ID2D1EllipseGeometry. (перегрузка 1/2) |
ID2D1Factory::CreateGeometryGroup Создает ID2D1GeometryGroup, который является объектом, который содержит другие геометрические объекты. |
ID2D1Factory::CreateHwndRenderTarget Создает ID2D1HwndRenderTarget, целевой объект отрисовки, который отрисовывается в окне. (перегрузка 2/2) |
ID2D1Factory::CreateHwndRenderTarget Создает ID2D1HwndRenderTarget, целевой объект отрисовки, который отрисовывается в окне. (перегрузка 1/2) |
ID2D1Factory::CreatePathGeometry Создает пустой id2D1PathGeometry. |
ID2D1Factory::CreateRectangleGeometry Создает ID2D1RectangleGeometry. (перегрузка 2/2) |
ID2D1Factory::CreateRectangleGeometry Создает ID2D1RectangleGeometry. (перегрузка 1/2) |
ID2D1Factory::CreateRoundedRectangleGeometry Создает ID2D1RoundedRectangleGeometry. (перегрузка 2/2) |
ID2D1Factory::CreateRoundedRectangleGeometry Создает ID2D1RoundedRectangleGeometry. (перегрузка 1/2) |
ID2D1Factory::CreateStrokeStyle Создает ID2D1StrokeStyle, описывающий начальную крышку, шаблон дефиса и другие признаки штриха. (перегрузка 2/2) |
ID2D1Factory::CreateStrokeStyle Создает ID2D1StrokeStyle, описывающий начальную крышку, шаблон дефиса и другие признаки штриха. (перегрузка 1/2) |
ID2D1Factory::CreateTransformedGeometry Преобразует указанную геометрию и сохраняет результат в виде объекта ID2D1TransformedGeometry. (перегрузка 2/2) |
ID2D1Factory::CreateTransformedGeometry Преобразует указанную геометрию и сохраняет результат в виде объекта ID2D1TransformedGeometry. (перегрузка 1/2) |
ID2D1Factory::CreateWicBitmapRenderTarget Создает целевой объект отрисовки, который отрисовывается в точечный рисунок компонента обработки изображений Microsoft Windows (WIC). (перегрузка 2/2) |
ID2D1Factory::CreateWicBitmapRenderTarget Создает целевой объект отрисовки, который отрисовывается в точечный рисунок компонента обработки изображений Microsoft Windows (WIC). (перегрузка 1/2) |
ID2D1Factory::GetDesktopDpi Извлекает текущие точки рабочего стола на дюйм (DPI). Чтобы обновить это значение, вызовите ReloadSystemMetrics. |
ID2D1Factory::ReloadSystemMetrics Заставляет фабрику обновлять все системные значения по умолчанию, которые она могла изменить с момента создания фабрики. |
Комментарии
Интерфейс ID2D1Factory является отправной точкой для использования Direct2D; Это то, что вы используете для создания других ресурсов Direct2D, которые можно использовать для рисования или описания фигур.
Фабрика определяет набор методов CreateResource , которые могут создавать следующие ресурсы рисования:
- Целевые объекты отрисовки: объекты, отрисовывющие команды рисования.
- Блоки состояния рисования: объекты, которые хранят сведения о состоянии рисования, такие как текущее преобразование и режим сглаживания.
- Геометрические объекты: объекты, представляющие простые и потенциально сложные фигуры.
Чтобы создать ID2D1Factory, используйте один из методов CreateFactory . Экземпляр ID2D1Factory следует хранить до тех пор, пока вы используете ресурсы Direct2D; Как правило, вам не нужно повторно создавать его при выполнении приложения. Дополнительные сведения о ресурсах Direct2D см. в разделе Общие сведения о ресурсах.
Однопоточные и многопоточные фабрики
При создании фабрики можно указать, является ли она многопоточной или однопоточной. Однопоточная фабрика не обеспечивает сериализацию по отношению к любому другому однопотоковому экземпляру в Direct2D, поэтому этот механизм обеспечивает очень большую степень масштабирования на ЦП.Вы также можете создать многопоточный экземпляр фабрики. В этом случае фабрику и все производные объекты можно использовать из любого потока, и каждый целевой объект отрисовки можно отрисовывать независимо. Direct2D сериализует вызовы этих объектов, поэтому один многопоточный экземпляр Direct2D не будет масштабироваться на ЦП так же, как однопоточные экземпляры. Однако ресурсы можно совместно использовать в многопотоковом экземпляре.
Обратите внимание, что квалификатор "На ЦП": GPU обычно используют преимущества детализированного параллелизма больше, чем процессоры. Например, многопоточные вызовы от ЦП могут по-прежнему сериализоваться при отправке в GPU, однако для выполнения отрисовки будет выполняться параллельно целый ряд пиксельных и вершинных шейдеров.
Дополнительные сведения см. в разделе Многопоточные приложения Direct2D .
Примеры
В следующих фрагментах кода объявляется указатель фабрики, создается однопоточный экземпляр фабрики и используется фабрика для создания целевого объекта отрисовки.
ID2D1Factory* m_pDirect2dFactory;
// Create a Direct2D factory.
hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &m_pDirect2dFactory);
// Create a Direct2D render target.
hr = m_pDirect2dFactory->CreateHwndRenderTarget(
D2D1::RenderTargetProperties(),
D2D1::HwndRenderTargetProperties(m_hwnd, size),
&m_pRenderTarget
);
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | 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 |
См. также раздел
Создание простого приложения Direct2D