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 |