Метод IDWriteTextAnalyzer1::GetJustifiedGlyphs (dwrite_1.h)
Заполняет новые глифы для сложных сценариев, где обоснование увеличило прогресс глифов, таких как арабский с кашидой.
Синтаксис
HRESULT GetJustifiedGlyphs(
IDWriteFontFace *fontFace,
FLOAT fontEmSize,
DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
UINT32 textLength,
UINT32 glyphCount,
UINT32 maxGlyphCount,
[in, optional] UINT16 const *clusterMap,
[in] UINT16 const *glyphIndices,
[in] FLOAT const *glyphAdvances,
[in] FLOAT const *justifiedGlyphAdvances,
[in] DWRITE_GLYPH_OFFSET const *justifiedGlyphOffsets,
[in] DWRITE_SHAPING_GLYPH_PROPERTIES const *glyphProperties,
[out] UINT32 *actualGlyphCount,
[out, optional] UINT16 *modifiedClusterMap,
[out] UINT16 *modifiedGlyphIndices,
[out] FLOAT *modifiedGlyphAdvances,
[out] DWRITE_GLYPH_OFFSET *modifiedGlyphOffsets
);
Параметры
fontFace
Тип: IDWriteFontFace*
Лицо шрифта, используемое для формирования.
Может иметь значение "NULL".
fontEmSize
Тип: FLOAT
Размер шрифта, используемый для выполнения глифа.
scriptAnalysis
Скрипт текста из itemizer.
textLength
Тип: UINT32
Длина текста.
glyphCount
Тип: UINT32
Количество глифов.
maxGlyphCount
Тип: UINT32
Максимальное количество выходных глифов, выделенных вызывающим объектом.
[in, optional] clusterMap
Тип: const UINT16*
Кластерная карта, созданная при формировании.
[in] glyphIndices
Тип: const UINT16*
Исходные глифы, созданные в процессе формирования.
[in] glyphAdvances
Тип: const FLOAT*
Оригинальные достижения глифов, полученных из формирования.
[in] justifiedGlyphAdvances
Тип: const FLOAT*
Оправданные переходы глифов из IDWriteTextAnalyzer1::JustifyGlyphAdvances.
[in] justifiedGlyphOffsets
Тип: const DWRITE_GLYPH_OFFSET*
Оправданные смещения глифов из IDWriteTextAnalyzer1::JustifyGlyphAdvances.
[in] glyphProperties
Тип: const DWRITE_SHAPING_GLYPH_PROPERTIES*
Свойства каждого глифа из IDWriteTextAnalyzer::GetGlyphs.
[out] actualGlyphCount
Тип: UINT32*
Новое число глифов, записанных в измененные массивы, или необходимое количество глифов, если размер недостаточно велик.
[out, optional] modifiedClusterMap
Тип: UINT16*
Обновлена карта кластера.
[out] modifiedGlyphIndices
Тип: UINT16*
Обновлены глифы, при необходимости вставляемые новые глифы.
[out] modifiedGlyphAdvances
Тип: FLOAT*
Обновлены глифы.
[out] modifiedGlyphOffsets
Тип: DWRITE_GLYPH_OFFSET*
Обновлены смещения глифов.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Вы вызываете GetJustifiedGlyphs после того, как строка была оправдана, и она выполняется для каждого запуска.
Метод GetJustifiedGlyphs следует вызывать, если IDWriteTextAnalyzer1::GetScriptProperties возвращает ненулевое значение DWRITE_SCRIPT_PROPERTIES.justificationCharacter для этого скрипта.
Используйте GetJustifiedGlyphs в основном для таких cursive скриптов, как арабский. Если параметр maxGlyphCount недостаточно велик, Метод GetJustifiedGlyphs возвращает ошибку E_NOT_SUFFICIENT_BUFFER и заполняет переменную, к которой указывает actualGlyphCount необходимым количеством глифов.
Требования
Минимальная версия клиента | Windows 8 и Обновление платформы для Windows 7 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2012 и обновление платформы для Windows Server 2008 R2 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | dwrite_1.h |
Библиотека | Dwrite.lib |
DLL | Dwrite.dll |
См. также раздел
IDWriteTextAnalyzer1::GetScriptProperties