idWriteTextAnalyzer::GetGlyphs 方法 (dwrite.h)

根据字体和书写系统的呈现规则分析输入文本字符串并将其映射到字形集和关联的字形数据。

语法

HRESULT GetGlyphs(
  [in]           WCHAR const                       *textString,
                 UINT32                            textLength,
                 IDWriteFontFace                   *fontFace,
                 BOOL                              isSideways,
                 BOOL                              isRightToLeft,
  [in]           DWRITE_SCRIPT_ANALYSIS const      *scriptAnalysis,
  [in, optional] WCHAR const                       *localeName,
  [optional]     IDWriteNumberSubstitution         *numberSubstitution,
  [in, optional] DWRITE_TYPOGRAPHIC_FEATURES const **features,
  [in, optional] UINT32 const                      *featureRangeLengths,
                 UINT32                            featureRanges,
                 UINT32                            maxGlyphCount,
  [out]          UINT16                            *clusterMap,
  [out]          DWRITE_SHAPING_TEXT_PROPERTIES    *textProps,
  [out]          UINT16                            *glyphIndices,
  [out]          DWRITE_SHAPING_GLYPH_PROPERTIES   *glyphProps,
  [out]          UINT32                            *actualGlyphCount
);

参数

[in] textString

类型: const WCHAR*

要转换为字形的字符数组。

textLength

类型: UINT32

textString 的长度。

fontFace

类型: IDWriteFontFace*

输出字形源的字体。

isSideways

类型: BOOL

如果文本要垂直绘制,则设置为 TRUE 的布尔标志。

isRightToLeft

类型: BOOL

从右向左的文本设置为 TRUE 的布尔标志。

[in] scriptAnalysis

类型: const DWRITE_SCRIPT_ANALYSIS*

指向 AnalyzeScript 调用的脚本分析结果的指针。

[in, optional] localeName

类型: const WCHAR*

选择字形时要使用的区域设置。 例如,对于 ja-jp 和 zh-chs,同一个字符可能映射到不同的字形。 如果此值为 NULL,则使用基于脚本的默认映射。

[optional] numberSubstitution

类型: IDWriteNumberSubstitution*

指向可选数字替换的指针,它根据 从 AnalyzeNumberSubstitution 获取的结果,为数字和相关数字字符选择适当的字形。 传递 NULL 表示不需要替换,并且数字应接收名义字形。

[in, optional] features

类型: const DWRITE_TYPOGRAPHIC_FEATURES**

指向要在每个功能范围中使用的版式特征集的指针数组。

[in, optional] featureRangeLengths

类型: const UINT32*

每个功能范围的长度(以字符为单位)。
所有长度的总和应等于 textLength

featureRanges

类型: UINT32

特征范围的数目。

maxGlyphCount

类型: UINT32

可返回的最大字形数。

[out] clusterMap

类型: UINT16*

此方法返回时,包含从字符范围到字形范围的映射。

[out] textProps

类型: DWRITE_SHAPING_TEXT_PROPERTIES*

此方法返回时,包含指向结构数组的指针,该数组包含每个字符的整形属性。

[out] glyphIndices

类型: UINT16*

输出字形索引。

[out] glyphProps

类型: DWRITE_SHAPING_GLYPH_PROPERTIES*

此方法返回时,包含指向结构数组的指针,这些结构包含每个输出字形的整形属性。

[out] actualGlyphCount

类型: UINT32*

此方法返回时,包含调用成功时返回的实际字形数。

返回值

类型: HRESULT

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

注解

请注意,从字符到字形的映射通常是多对多。 每个字形输出缓冲区的建议估计值为 (3 * textLength / 2 + 16) 。 这不能保证足够。

actualGlyphCount 参数的值仅在调用成功时有效。 如果 maxGlyphCount 不够大,将返回 HRESULT_FROM_WIN32 (ERROR_INSUFFICIENT_BUFFER) 。 应用程序应分配更大的缓冲区,然后重试。

要求

   
最低受支持的客户端 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

另请参阅

IDWriteTextAnalyzer