Как субпиксельно отображать глифы с расширением XRender

Я нашел отличный пример рендеринга текста с использованием расширения XRender. Но шрифт загружается из Freetype в формате оттенков серого. Есть ли способ использовать XRender для рисования субпиксельных (ЖК-дисплеев) сглаженных глифов? Если да, то как?


person exebook    schedule 22.05.2015    source источник


Ответы (1)


Глифы могут быть в любом формате, который вы видите в ответе QueryPictFormats (но все глифы в наборе глифов имеют одинаковый формат). По сути, вы визуализируете субпиксельные сглаженные глифы с помощью freetype, загружаете их в набор глифов rgba32, а в остальном все так же, как при использовании a8 (только альфа-канал, см. https://github.com/ereslibre/x11/blob/master/xrender/rendertext.c#L46-L47)

person Andrey Sidorov    schedule 23.05.2015
comment
Я создал рабочий пример на GitHub на основе вашего предложения. github.com/exebook/xrender-subpixel-glyph - person exebook; 23.05.2015
comment
Вы должны включить ЖК-фильтр FreeType, чтобы рендеринг субпикселей выглядел нормально, иначе вы получите очень заметные цветные полосы. #include FT_LCD_FILTER_H и позвоните FT_Library_SetLcdFilter(library, FT_LCD_FILTER_DEFAULT); - person 12Me21; 27.05.2021