Eles estão relacionados assim (usando ldd
):
-
Xft
é uma biblioteca, que depende (entre outras coisas) da bibliotecafontconfig
e da bibliotecafreetype
. -
fontconfig
é um conjunto de programas, uma biblioteca e dados. Sua biblioteca depende da bibliotecafreetype
. -
freetype
é uma biblioteca, que não depende dos outros dois.
Por exemplo:
$ ldd /usr/lib/x86_64-linux-gnu/libXft.so.2.3.1
linux-vdso.so.1 => (0x00007fffb3df7000)
libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f40ea07a000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f40e9ddb000)
libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007f40e9bd1000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f40e9896000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f40e9509000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f40e92f2000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f40e90c8000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f40e8ea8000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f40e8ca4000)
/lib64/ld-linux-x86-64.so.2 (0x00007f40ea4c6000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f40e8aa1000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f40e889c000)
Alguns aplicativos (como xterm
) usam Xft
, que usa uma licença MIT. Outros (geralmente os licenciados pela GPL) usam libpango
. Além das preocupações com licenciamento do pango , ele tem duas vezes mais dependências de bibliotecas do que Xft
.
Observando os símbolos de fontconfig
usados por Xft
:
FcCharSetCopy
FcCharSetCount
FcCharSetDestroy
FcCharSetHasChar
FcConfigGetBlanks
FcConfigSubstitute
FcDefaultSubstitute
FcFontList
FcFontMatch
FcFreeTypeCharIndex
FcFreeTypeCharSet
FcInit
...
FcPatternPrint
FcPatternVaBuild
FcStrCmpIgnoreCase
FcUtf16ToUcs4
FcUtf8ToUcs4
e os de freetype
:
FT_Done_Face
FT_GlyphSlot_Embolden
FT_Init_FreeType
FT_Library_SetLcdFilter
FT_Load_Glyph
FT_New_Face
FT_Render_Glyph
FT_Set_Char_Size
FT_Set_Transform
FT_Vector_Transform
você pode ver que Xft
usa fontconfig
para localizar fontes com base em padrões , mas usa freetype
para realmente carregar , exibir > em> ou ajustar (escala, etc) uma fonte.
fontconfig
usa chamadas diferentes para freetype
para obter informações sobre uma fonte (o tamanho geral, o número de glifos, etc.):
FT_Done_Face
FT_Done_FreeType
FT_Get_BDF_Property
FT_Get_Char_Index
FT_Get_First_Char
FT_Get_Glyph_Name
FT_Get_Next_Char
FT_Get_PS_Font_Info
FT_Get_Sfnt_Name
FT_Get_Sfnt_Name_Count
FT_Get_Sfnt_Table
FT_Get_X11_Font_Format
FT_Has_PS_Glyph_Names
FT_Init_FreeType
FT_Load_Glyph
FT_Load_Sfnt_Table
FT_New_Face
FT_Select_Charmap
FT_Select_Size
Sem freetype
, fontconfig
não tem nenhuma informação: fontconfig
organiza informações, mas não é uma fonte completa de informações por si só.