IDWriteFactory::CreateGlyphRunAnalysis 方法 (dwrite.h)

创建一个字形运行分析对象,该对象封装用于呈现字形运行的信息。

语法

HRESULT CreateGlyphRunAnalysis(
  [in]           DWRITE_GLYPH_RUN const  *glyphRun,
                 FLOAT                   pixelsPerDip,
  [in, optional] DWRITE_MATRIX const     *transform,
                 DWRITE_RENDERING_MODE   renderingMode,
                 DWRITE_MEASURING_MODE   measuringMode,
                 FLOAT                   baselineOriginX,
                 FLOAT                   baselineOriginY,
  [out]          IDWriteGlyphRunAnalysis **glyphRunAnalysis
);

参数

[in] glyphRun

类型: const DWRITE_GLYPH_RUN*

包含字形属性的 结构 (字体、前进等) 。

pixelsPerDip

类型: FLOAT

每个 DIP (与设备无关的像素) 的物理像素数。 例如,如果呈现到 96 DPI 位图上,则 pixelsPerDip 为 1。 如果呈现到 120 DPI 位图上,则 pixelsPerDip 为 1.25。

[in, optional] transform

类型: const DWRITE_MATRIX*

应用于字形及其位置的可选转换。 此转换在指定 emSizepixelsPerDip 的缩放后应用。

renderingMode

类型: DWRITE_RENDERING_MODE

一个 值,该值指定呈现模式,该模式必须是 (的光栅渲染模式之一,即,不是默认的,也不是轮廓) 。

measuringMode

类型: DWRITE_MEASURING_MODE

指定用于字形的测量模式。

baselineOriginX

类型: FLOAT

水平位置 (基线原点的 X 坐标) ,以 DIP 为单位。

baselineOriginY

类型: FLOAT

垂直位置 (基线原点的 Y 坐标) ,以 DIP 为单位。

[out] glyphRunAnalysis

类型: IDWriteGlyphRunAnalysis**

此方法返回时,包含指向新创建的字形运行分析对象的指针的地址。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

字形运行分析对象包含分析字形运行的结果,包括所有字形的位置和对字体缓存中所有光栅化字形的引用。

示例

下面的代码示例演示如何创建字形运行分析对象。 在此示例中,使用的是空字形运行。

HRESULT CreateGlyphRunAnalysis(IDWriteFontFace *pFontFace, IDWriteGlyphRunAnalysis **ppGlyphRunAnalysis)
{
    HRESULT hr = S_OK;
    IDWriteFactory* pDWriteFactory = NULL;

    // Create the DirectWrite factory.
    hr = DWriteCreateFactory(
            DWRITE_FACTORY_TYPE_SHARED,
            __uuidof(IDWriteFactory),
            reinterpret_cast<IUnknown**>(&pDWriteFactory)
            );

    DWRITE_GLYPH_RUN emptyGlyphRun = { 0 };
    UINT16 glyphIndex = 0;
    
    emptyGlyphRun.fontFace = pFontFace;
    emptyGlyphRun.glyphIndices = &glyphIndex;
    emptyGlyphRun.glyphCount = 0;
   
    emptyGlyphRun.fontEmSize = 12;

    IDWriteGlyphRunAnalysis* pGlyphRunAnalysis = NULL;

    if (SUCCEEDED(hr))
    {
        hr = pDWriteFactory->CreateGlyphRunAnalysis(
            &emptyGlyphRun,
            1.0f, // pixelsPerDip,
            NULL, // transform,
            DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC,
            DWRITE_MEASURING_MODE_GDI_CLASSIC,
            0.0f, // baselineOriginX,
            0.0f, // baselineOriginY,
            &pGlyphRunAnalysis);
    }
    
    *ppGlyphRunAnalysis = pGlyphRunAnalysis;

    SafeRelease(&pDWriteFactory);

    return S_OK;
}

要求

要求
最低受支持的客户端 Windows 7、带 SP2 的 Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2008 R2、Windows Server 2008 SP2 和适用于 Windows Server 2008 的平台更新 [桌面应用 |UWP 应用]
目标平台 Windows
标头 dwrite.h
Library Dwrite.lib
DLL Dwrite.dll

另请参阅

IDWriteFactory