ID2D1DeviceContext1 接口是 Direct2D 库中的一个接口,用于表示 Direct2D 设备上下文。该接口在 D2d1_2.h 头文件中声明。

以下是 ID2D1DeviceContext1 接口的简要定义:
DECLARE_INTERFACE_(ID2D1DeviceContext1, ID2D1DeviceContext)
{
    STDMETHOD(CreateFilledGeometryRealization)(
        _In_ ID2D1Geometry *geometry,
        FLOAT flatteningTolerance,
        _Outptr_ ID2D1GeometryRealization **geometryRealization
        ) PURE;

    STDMETHOD(CreateStrokedGeometryRealization)(
        _In_ ID2D1Geometry *geometry,
        FLOAT flatteningTolerance,
        FLOAT strokeWidth,
        _In_opt_ ID2D1StrokeStyle *strokeStyle,
        _Outptr_ ID2D1GeometryRealization **geometryRealization
        ) PURE;

    STDMETHOD(DrawGeometryRealization)(
        _In_ ID2D1GeometryRealization *geometryRealization,
        _In_ ID2D1Brush *brush
        ) PURE;

    STDMETHOD(DrawTextLayout)(
        D2D1_POINT_2F origin,
        _In_ IDWriteTextLayout *textLayout,
        _In_ ID2D1Brush *defaultFillBrush,
        D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE
        ) PURE;

    STDMETHOD(AddDevice)(
        _In_ IDXGIDevice *device
        ) PURE;

    STDMETHOD(RemoveDevice)(
        _In_ IDXGIDevice *device
        ) PURE;

    STDMETHOD(CreatePrintControl)(
        _In_ IWICImagingFactory * wicFactory,
        _In_ IPrintDocumentPackageTarget * target,
        _Outptr_ IPrintControl ** printControl
        ) PURE;
};

主要方法:

  •  CreateFilledGeometryRealization: 创建一个表示填充几何图形的实现的对象。这可用于提高渲染性能,特别是在处理复杂几何图形时。

  
  •  CreateStrokedGeometryRealization: 创建一个表示描边几何图形的实现的对象。类似于填充几何图形的实现,这个方法用于提高描边几何的渲染性能。

  
  •  DrawGeometryRealization: 绘制通过 CreateFilledGeometryRealization 或 CreateStrokedGeometryRealization 创建的几何图形实现。


  •  DrawTextLayout: 绘制文本布局,可以指定文本的起始点、文本布局对象、默认的填充刷以及绘制选项。


  •  AddDevice 和 RemoveDevice: 用于在设备上下文中添加和移除与 Direct2D 设备上下文相关联的 DXGI 设备。


  •  CreatePrintControl: 创建一个 IPrintControl 对象,用于控制 Direct2D 的打印功能。与 ID2D1Device1 接口中的同名方法相似,用于打印控制。


ID2D1DeviceContext1 接口提供了在 Direct2D 设备上下文中创建和操作几何图形实现、文本布局的方法,以及与打印相关的方法。这些方法允许对图形进行更高级别的控制和优化。


转载请注明出处:http://www.zyzy.cn/article/detail/25328/Win32 API/D2d1_2.h/ID2D1DeviceContext1