DirectWrite: использовать разные шрифты для латинского и сложного скрипта

я использую CreateTextLayout а также CreateTextFormat рисовать текст с помощью DirectWrite (C ++), текст смешанный иврит / английский, есть ли способ использовать другой шрифт / размер шрифта для символов латинского и иврита?

Благодарю.

2

Решение

Когда вы создаете IDWriteTextFormat с помощью CreateTextFormatВы можете передать имя семейства шрифтов в первом параметре и изменить размер шрифта в шестом параметре.

Вы можете получить CreateTextFormat параметры из MSDN.

Вот это список семейств шрифтов Microsoft Windows, там вы найдете латиницу и иврит.

1

Другие решения

Я в итоге позвонил IDWriteFont::HasCharacter строить текстовые диапазоны, внутри которых все символы используют один и тот же шрифт (иврит или латинский).

Если этот текстовый диапазон использует шрифт иврит, я называю textLayout->SetFontSize на нем, чтобы увеличить размер шрифта.

Это равносильно ожиданию обратного вызова шрифта DirectWrite будет делать, что является автоматическим и не может быть настроено.

0

По вопросам рекламы [email protected]