ИНТЕРФЕЙС 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

Создание простого приложения Direct2D

начало работы с Direct2D

IUnknown

Многопоточные приложения Direct2D

Обзор ресурсов