ID2D1Factory 接口 (d2d1.h)

创建 Direct2D 资源。

继承

ID2D1Factory 接口继承自 IUnknown 接口。 ID2D1Factory 还具有以下类型的成员:

方法

ID2D1Factory 接口包含以下方法。

 
ID2D1Factory::CreateDCRenderTarget

创建绘制到 Windows 图形设备接口 (GDI) 设备上下文的呈现目标。
ID2D1Factory::CreateDrawingStateBlock

创建可与呈现目标的 SaveDrawingState 和 RestoreDrawingState 方法一起使用的 ID2D1DrawingStateBlock。 (重载 1/3)
ID2D1Factory::CreateDrawingStateBlock

创建可与呈现目标的 SaveDrawingState 和 RestoreDrawingState 方法一起使用的 ID2D1DrawingStateBlock。 (重载 2/3)
ID2D1Factory::CreateDrawingStateBlock

创建可与呈现目标的 SaveDrawingState 和 RestoreDrawingState 方法一起使用的 ID2D1DrawingStateBlock。 (重载 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,该 ID2D1StrokeStyle 描述笔划的起始大写字母、短划线图案和其他功能。 (重载 2/2)
ID2D1Factory::CreateStrokeStyle

创建一个 ID2D1StrokeStyle,该 ID2D1StrokeStyle 描述笔划的起始大写字母、短划线图案和其他功能。 (重载 1/2)
ID2D1Factory::CreateTransformedGeometry

转换指定的几何图形,并将结果存储为 ID2D1TransformedGeometry 对象。 (重载 2/2)
ID2D1Factory::CreateTransformedGeometry

转换指定的几何图形,并将结果存储为 ID2D1TransformedGeometry 对象。 (重载 1/2)
ID2D1Factory::CreateWicBitmapRenderTarget

创建一个呈现目标,该目标 (WIC) 位图呈现到 Microsoft Windows 图像处理组件。 (重载 2/2)
ID2D1Factory::CreateWicBitmapRenderTarget

创建一个呈现目标,该目标 (WIC) 位图呈现到 Microsoft Windows 图像处理组件。 (重载 1/2)
ID2D1Factory::GetDesktopDpi

检索当前桌面每英寸点数 (DPI) 。 若要刷新此值,请调用 ReloadSystemMetrics。
ID2D1Factory::ReloadSystemMetrics

强制工厂刷新自创建工厂以来可能已更改的任何系统默认值。

注解

ID2D1Factory 接口是使用 Direct2D 的起点;它是用于创建其他 Direct2D 资源的内容,可用于绘制或描述形状。

工厂定义一组 CreateResource 方法,这些方法可以生成以下绘图资源:

  • 呈现目标:呈现绘图命令的对象。
  • 绘图状态块:存储绘制状态信息的对象,例如当前转换和抗锯齿模式。
  • Geometries:表示简单和潜在复杂形状的对象。

若要创建 ID2D1Factory,请使用 CreateFactory 方法之一。 只要使用 Direct2D 资源,就应保留 ID2D1Factory 实例;通常,在应用程序运行时不需要重新创建它。 有关 Direct2D 资源的详细信息,请参阅 资源概述

单线程工厂和多线程工厂

创建工厂时,可以指定是多线程工厂还是单线程工厂。 单线程工厂不提供针对 Direct2D 中任何其他单线程实例的序列化,因此,此机制在 CPU 上提供极大规模的缩放。

还可以创建多线程工厂实例。 在这种情况下,工厂和所有派生对象都可以从任何线程使用,并且每个呈现目标都可以独立呈现。 Direct2D 序列化对这些对象的调用,因此单个多线程 Direct2D 实例在 CPU 上的缩放不会像单个线程实例那样好。 但是,资源可以在多线程实例中共享。

请注意,限定符“在 CPU 上”:GPU 通常比 CPU 更能利用细粒度并行度。 例如,在发送到 GPU 时,来自 CPU 的多线程调用可能最终仍会被序列化,但是,整个像素和顶点着色器将并行运行以执行呈现。

有关详细信息 ,请参阅多线程 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、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 d2d1.h

另请参阅

Direct2D 概述

创建简单的 Direct2D 应用程序

使用 Direct2D 入门

IUnknown

多线程 Direct2D 应用

资源概述