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,用于描述笔划的起始帽、短划线图案和其他功能。 (重载 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 资源。

工厂定义一组可生成以下绘图资源的创建资源 方法:

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

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

单线程工厂和多线程工厂

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

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

请注意,限定符“在 CPU 上”:GPU 通常利用比 CPU 更精细的并行度。 例如,从 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 Vista 的 Windows 7、带有 SP2 和平台更新的 Windows Vista [桌面应用|UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [桌面应用|UWP 应用]
目标平台 Windows
标头 d2d1.h

请参阅

Direct2D 概述

创建简单的 Direct2D 应用程序

使用 Direct2D 的入门

IUnknown

多线程 Direct2D 应用

资源概述