Метод 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 |