Created
January 21, 2015 14:08
-
-
Save CallumDev/7c66b3f9cf7a876ef75f to your computer and use it in GitHub Desktop.
FontConfig sample in C
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//compiled gcc fonttest.c -o fonttest -lfontconfig | |
//Sample output: /usr/share/fonts/steam-fonts/arial.ttf | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <fontconfig/fontconfig.h> | |
int main() | |
{ | |
FcConfig* config = FcInitLoadConfigAndFonts(); | |
//make pattern from font name | |
FcPattern* pat = FcNameParse((const FcChar8*)"Arial"); | |
FcConfigSubstitute(config, pat, FcMatchPattern); | |
FcDefaultSubstitute(pat); | |
char* fontFile; //this is what we'd return if this was a function | |
// find the font | |
FcResult result; | |
FcPattern* font = FcFontMatch(config, pat, &result); | |
if (font) | |
{ | |
FcChar8* file = NULL; | |
if (FcPatternGetString(font, FC_FILE, 0, &file) == FcResultMatch) | |
{ | |
//we found the font, now print it. | |
//This might be a fallback font | |
fontFile = (char*)file; | |
printf("%s\n",fontFile); | |
} | |
} | |
FcPatternDestroy(pat); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It's a good example. Do I need to add
FcConfigDestroy(config);
for everyFcConfigGetCurrent()
?