Функция ScriptPositionSingleGlyph (usp10.h)
Позиционирует один глиф с одной корректировкой, используя указанную функцию, предоставленную в шрифте для обработки OpenType. Чаще всего эта функция используется приложениями для оптического выравнивания глифа в начале или конце строки.
Синтаксис
HRESULT ScriptPositionSingleGlyph(
[in, optional] HDC hdc,
[in, out] SCRIPT_CACHE *psc,
[in, optional] SCRIPT_ANALYSIS *psa,
[in] OPENTYPE_TAG tagScript,
[in] OPENTYPE_TAG tagLangSys,
[in] OPENTYPE_TAG tagFeature,
[in] LONG lParameter,
[in] WORD wGlyphId,
[in] int iAdvance,
[in] GOFFSET GOffset,
[out] int *piOutAdvance,
[out] GOFFSET *pOutGoffset
);
Параметры
[in, optional] hdc
Дескриптор контекста устройства. Дополнительные сведения см. в разделе Кэширование.
[in, out] psc
Указатель на структуру SCRIPT_CACHE , определяющую кэш скриптов.
[in, optional] psa
Указатель на структуру SCRIPT_ANALYSIS , полученную из предыдущего вызова ScriptItemizeOpenType. Эта структура идентифицирует механизм формирования, чтобы можно было получить дополнительные ширины.
Кроме того, приложение может присвоить этому параметру значение NULL , чтобы получить неотфильтрованные результаты.
[in] tagScript
Структура OPENTYPE_TAG , определяющая тег скрипта для формирования.
[in] tagLangSys
Структура OPENTYPE_TAG , определяющая тег языка для формирования.
[in] tagFeature
Структура OPENTYPE_TAG , определяющая тег компонента, используемый для формирования альтернативного глифа.
[in] lParameter
Флаг, указывающий, следует ли применять одну подстановку к идентификатору, указанному в wGlyphId. Приложение задает этому параметру значение 1, чтобы применить к идентификатору одну функцию подстановки. Приложение устанавливает для параметра значение 0, если функция не должна применять функцию.
[in] wGlyphId
Идентификатор исходного формируемого глифа.
[in] iAdvance
Исходная ширина глифа.
[in] GOffset
Исходное смещение глифа. Как правило, это значение является выходными данными ScriptPlaceOpenType или ScriptPlace.
[out] piOutAdvance
Указатель на расположение, в котором эта функция извлекает новую ширину, отрегулированную для альтернативного глифа.
[out] pOutGoffset
Указатель на расположение, в котором эта функция получает новое смещение глифа, скорректированное для альтернативного глифа.
Возвращаемое значение
Возвращает 0 в случае успеха. Функция возвращает ненулевое значение HRESULT, если не удалось. Приложение может проверить возвращаемое значение с помощью макросов SUCCEEDED и FAILED .
Комментарии
Эта функция позиционирует отдельный глиф, изменяя ширину и/или смещение заданного глифа. Функция предполагает, что для шрифта требуется только одна корректировка.
Типичным использованием этой функции является небольшая корректировка поля с учетом визуального впечатления, созданного определенными символами. Например, в латинском алфавите в начале строки обычно выполняется небольшая корректировка влево для начальной прописной буквы (например, "T" или "O"), которая не имеет вертикальной линии в левой части глифа. Хотя это нарушает строгое линейное поле, глаз воспринимает это поле как более равномерное.
Этот эффект демонстрируется в следующих примерах. В первом примере показано строгое выравнивание; В следующих двух примерах показана корректировка начального значения "T" влево. Корректировки выполняются на один пиксель и два пикселя соответственно. Увеличенные изображения справа показывают, как "T" толкает немного дальше в левое поле в каждом последующем случае.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | usp10.h |
Библиотека | Usp10.lib |
DLL | Usp10.dll |
Распространяемые компоненты | Usp10.dll версии 1.600 или более поздней в Windows XP |