Поделиться через


Метод 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, Windows Vista с пакетом обновления 2 (SP2) и обновление платформы для Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2, Windows Server 2008 с пакетом обновления 2 (SP2) и Обновление платформы для Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header dwrite.h
Библиотека Dwrite.lib
DLL Dwrite.dll

См. также раздел

IDWriteTextAnalyzer