I'm using SFML in Visual Studio 2015 to make a game that requires me to print text. I try to load fonts and keep getting an error that says "failed to create the font face". I've tried loading several different fonts and none of them work, and they are in the correct directory, which is the folder where my project is located.
This is literally all it is, and it doesn't work:
sf::Font font;
if (!font.loadFromFile("arial.ttf"))
return EXIT_FAILURE;
The ttf file for arial is in the same folder as the project itself, which is what seems to solve the problem for everyone else I find online who has the same issue. Any idea why the font still won't load?
The simple answer is, the file is not in your current working directory when you run your executable.
Try to put in a fully qualified filename. It will work.
Using Visual Studio, most likely this is the directory where your .vcxproj
file resides.
If this does not work, you can find out what your current working directory is by checking this post for a generic way how to find out your current directory.
As a quick hack, you could just create a file when your program starts. Start once and check where the file gets created. This is the current directory.
I fixed with this:
sf::Font font;
if (!font.loadFromFile("../arial.ttf")){
return EXIT_FAILURE;
}
I'm using CLion on Ubuntu using SMFL also.
To add to this, I was experiencing this same error when I thought I'd had everything typed properly. What ultimately ended up being the issue was that I had written .tff for the font file rather than .ttf, which, once corrected, fixed the problem.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With