Сглаженный текст в X11

Взятый от нижней части QUnit

function triggerEvent( elem, type, event ) {
    if ( $.browser.mozilla || $.browser.opera ) {
        event = document.createEvent("MouseEvents");
        event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
            0, 0, 0, 0, 0, false, false, false, false, 0, null);
        elem.dispatchEvent( event );
    } else if ( $.browser.msie ) {
        elem.fireEvent("on"+type);
    }
}

можно, конечно, заменить $ .browser материал к собственным методам определения браузера для создания его jQuery независимый.

Для использования этой функции:

var event;
triggerEvent(ele, "change", event);

Это в основном запустит реальное событие DOM, как будто что-то на самом деле изменилось.

6
задан Jay Conrod 11 December 2009 в 00:39
поделиться

3 ответа

Средства визуализации текста протокола X не поддерживают сглаживание и в наши дни не используются особо. (Я думаю, причина в том, что протокол шрифтов X не имеет места для альфа-канала.)

GTK и Qt визуализируют текст в клиенте с использованием библиотеки FreeType, получая в результате растровое изображение с альфа-каналом. Если X-сервер поддерживает расширение RENDER, клиент может отправить это растровое изображение на сервер, чтобы оно было наложено на дисплей, используя его альфа-канал. Если X-сервер не поддерживает RENDER, клиент должен получить область экрана, в которой должен отображаться текст (в основном, сделать небольшой снимок экрана), выполнить альфа-смешивание на стороне клиента и отправить полученное непрозрачное растровое изображение обратно на X-сервер для отображения.

5
ответ дан 8 December 2019 в 16:04
поделиться

FreeType находится на неправильном уровне стека. Это позволит вам рисовать глифы только в определенных местах. Обычно вам нужен как минимум механизм выбора шрифта (предоставленный Fontconfig ) и механизм формирования (предоставляемый Pango или Qt).

И Pango, и Qt используют разветвленную версию заброшенный механизм компоновки FreeType, но он согласовывается с проектом HarfBuzz .

См. также этот пост Бехдада Эсфахбода: Pango vs HarfBuzz и этот более длинный и более подробный документ : Состояние отображения текста .

6
ответ дан 8 December 2019 в 16:04
поделиться

FreeType . GTK + использует Pango, а Qt имеет свою собственную библиотеку макета текста, но оба они используют FreeType в конце, а несколько приложений (например, XTerm с включенными шрифтами с антиалиасингом) используют FreeType через библиотеку нижнего уровня libXft, которая поставляется с Xorg.

4
ответ дан 8 December 2019 в 16:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: