Fix #615 Be smarter when looking for font resources

This commit is contained in:
vsonnier 2018-02-15 19:02:56 +01:00
parent 490f72ceeb
commit c1e60f31f5

View File

@ -15,7 +15,7 @@
#endif
#ifndef RES_FOLDER
#define RES_FOLDER ""
#define RES_FOLDER L""
#endif
#define GC_DRAW_COUNT_PERIOD 50
@ -217,20 +217,29 @@ void GLFont::loadFontOnce() {
wxString resourceFolder = RES_FOLDER;
#endif
//full font file path
wxFileName fontDefFileName = wxFileName(resourceFolder + L"/" + fontDefFileSource);
if (!fontDefFileName.Exists()) {
wxFileName exePath = wxFileName(wxStandardPaths::Get().GetExecutablePath());
//Full Path where the fonts are, including file name
fontDefFileName = wxFileName(exePath.GetPath() + L"/"+ fontDefFileSource);
//1) First try : RES_FOLDER/fonts/*
wxFileName fontDefFileName = wxFileName(resourceFolder + L"/" + fontDefFileSource);
if (!fontDefFileName.FileExists()) {
std::cout << "Font file " << fontDefFileName.GetFullPath() << " does not exist?" << std::endl;
return;
bool fontFilePathFound = fontDefFileName.Exists();
// 2) Second try: [Cubic exe path]/RES_FOLDER/fonts/*
if (!fontFilePathFound) {
fontDefFileName = wxFileName(exePath.GetPath() + L"/" + RES_FOLDER + L"/" + fontDefFileSource);
fontFilePathFound = fontDefFileName.Exists();
}
// 3) Third try: [Cubic exe path]/fonts/*
if (!fontFilePathFound) {
fontDefFileName = wxFileName(exePath.GetPath() + L"/" + fontDefFileSource);
fontFilePathFound = fontDefFileName.Exists();
}
if (fontFilePathFound) {
if (!fontDefFileName.IsFileReadable()) {
std::cout << "Font file " << fontDefFileName.GetFullPath() << " is not readable?" << std::endl;
return;
@ -238,8 +247,8 @@ void GLFont::loadFontOnce() {
}
else {
if (!fontDefFileName.IsFileReadable()) {
std::cout << "Font file " << fontDefFileName.GetFullPath() << " is not readable?" << std::endl;
if (!fontDefFileName.FileExists()) {
std::cout << "Font file " << fontDefFileName.GetFullPath() << " does not exist?" << std::endl;
return;
}
}