TTF_OpenFont() returns NULL

biscuit picture biscuit · Dec 26, 2012 · Viewed 7.5k times · Source

Here are the facts: I am using codeblocks on Ubuntu. I have installed SDL and SDL_ttf and have included and linked them successfully. I want to render text to the screen of the font, FreeSerif.

Here is the problem: When the program gets to the line, TTF_OpenFont("FreeSerif.ttf,20"), it returns NULL, which would then cause a segfault if passed to the TTF_RenderText_Solid function. I have added the font file to the project and it still did not work.

Here is the code:
TTF_Init();

TTF_Font *font = TTF_OpenFont("FreeSerif.ttf",20); //This returns NULL 

if(!font){printf("Unable to open font");exit(1);} //The program exits here

Answer

Thomas Ayoub picture Thomas Ayoub · May 7, 2013

I've had the same problem and it seems to be a path error, TTF_GetError() throw this :

Couldn't open Arial.ttf

You should set your font with absolute path and not a relative one. For me, it was

/Library/Fonts/Arial.ttf

instead of :

Arial.ttf