IDWriteFontFace1::GetKerningPairAdjustments 方法 (dwrite_1.h)

从字体的 kern 表中检索字距对调整。

语法

HRESULT GetKerningPairAdjustments(
        UINT32       glyphCount,
  [in]  UINT16 const *glyphIndices,
  [out] INT32        *glyphAdvanceAdjustments
);

参数

glyphCount

类型: UINT32

要检索其调整的字形数。

[in] glyphIndices

类型: const UINT16*

要检索其调整的字形 ID 的数组。

[out] glyphAdvanceAdjustments

类型: INT32*

每个字形的提前,以字体设计单位返回。 最后一个字形调整为零。

返回值

类型: HRESULT

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

注解

GetKerningPairAdjustments 不是 GDI 基于字符的 GetKerningPair 的直接替代项,但它提供相同的角色,客户端无需在本地缓存它们。 GetKerningPairAdjustments 还直接使用字形 ID 而不是 UCS-2 字符, (kern 表实际如何将它们存储) ,从而避免字形折叠和歧义(如短划线和连字符),或者空格和不中断空格。

较新的字体可能只有 GPOS 字距调整,而不是旧的对表字距调整。 此类字体(如 Gabriola)将仅返回 0 的调整值。 GetKerningPairAdjustments 不会将这些 GPOS 条目虚拟化并平展为字距对。

可以通过调用 IDWriteFontFace1::HasKerningPairs 来确定是否需要调用 GetKerningPairAdjustments 来实现性能优势。 如果之前调用 IDWriteFontFace1::HasKerningPairs 并返回 FALSE,则可以避免调用 GetKerningPairAdjustments ,因为字体没有字距调整对表条目。 也就是说,在这种情况下,调用 GetKerningPairAdjustments 将是一个不操作。

要求

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

另请参阅

IDWriteFontFace1

IDWriteFontFace1::HasKerningPairs