diff --git a/source/glest_game/global/core_data.cpp b/source/glest_game/global/core_data.cpp index a24cc64e..089efb11 100644 --- a/source/glest_game/global/core_data.cpp +++ b/source/glest_game/global/core_data.cpp @@ -350,7 +350,7 @@ void CoreData::loadFonts() { if(Renderer::renderText3DEnabled == false) { displayFont= renderer.newFont(rsGlobal); if(displayFont) { - displayFont->setType(displayFontName,config.getString("FontDisplay","")); + displayFont->setType(displayFontName,config.getString("FontDisplay",""),config.getString("FontDisplayFamily","")); displayFont->setSize(displayFontSize); //displayFont->setYOffsetFactor(config.getFloat("FontDisplayYOffsetFactor",floatToStr(FontMetrics::DEFAULT_Y_OFFSET_FACTOR).c_str())); } @@ -363,7 +363,7 @@ void CoreData::loadFonts() { if(Renderer::renderText3DEnabled == true) { displayFont3D= renderer.newFont3D(rsGlobal); if(displayFont3D) { - displayFont3D->setType(displayFontName,config.getString("FontDisplay","")); + displayFont3D->setType(displayFontName,config.getString("FontDisplay",""),config.getString("FontDisplayFamily","")); displayFont3D->setSize(displayFontSize); //displayFont3D->setYOffsetFactor(config.getFloat("FontDisplayYOffsetFactor",floatToStr(FontMetrics::DEFAULT_Y_OFFSET_FACTOR).c_str())); } @@ -395,7 +395,7 @@ void CoreData::loadFonts() { if(Renderer::renderText3DEnabled == false) { displayFontSmall= renderer.newFont(rsGlobal); if(displayFontSmall) { - displayFontSmall->setType(displayFontNameSmall,config.getString("FontSmallDisplay","")); + displayFontSmall->setType(displayFontNameSmall,config.getString("FontSmallDisplay",""),config.getString("FontSmallDisplayFamily","")); displayFontSmall->setSize(displayFontNameSmallSize); //displayFontSmall->setYOffsetFactor(config.getFloat("FontSmallDisplayYOffsetFactor",floatToStr(FontMetrics::DEFAULT_Y_OFFSET_FACTOR).c_str())); } @@ -408,7 +408,7 @@ void CoreData::loadFonts() { if(Renderer::renderText3DEnabled == true) { displayFontSmall3D= renderer.newFont3D(rsGlobal); if(displayFontSmall3D) { - displayFontSmall3D->setType(displayFontNameSmall,config.getString("FontSmallDisplay","")); + displayFontSmall3D->setType(displayFontNameSmall,config.getString("FontSmallDisplay",""),config.getString("FontSmallDisplayFamily","")); displayFontSmall3D->setSize(displayFontNameSmallSize); //displayFontSmall3D->setYOffsetFactor(config.getFloat("FontSmallDisplayYOffsetFactor",floatToStr(FontMetrics::DEFAULT_Y_OFFSET_FACTOR).c_str())); } @@ -439,7 +439,7 @@ void CoreData::loadFonts() { if(Renderer::renderText3DEnabled == false) { menuFontNormal= renderer.newFont(rsGlobal); if(menuFontNormal) { - menuFontNormal->setType(menuFontNameNormal,config.getString("FontMenuNormal","")); + menuFontNormal->setType(menuFontNameNormal,config.getString("FontMenuNormal",""),config.getString("FontMenuNormalFamily","")); menuFontNormal->setSize(menuFontNameNormalSize); menuFontNormal->setWidth(Font::wBold); //menuFontNormal->setYOffsetFactor(config.getFloat("FontMenuNormalYOffsetFactor",floatToStr(FontMetrics::DEFAULT_Y_OFFSET_FACTOR).c_str())); @@ -453,7 +453,7 @@ void CoreData::loadFonts() { if(Renderer::renderText3DEnabled == true) { menuFontNormal3D= renderer.newFont3D(rsGlobal); if(menuFontNormal3D) { - menuFontNormal3D->setType(menuFontNameNormal,config.getString("FontMenuNormal","")); + menuFontNormal3D->setType(menuFontNameNormal,config.getString("FontMenuNormal",""),config.getString("FontMenuNormalFamily","")); menuFontNormal3D->setSize(menuFontNameNormalSize); menuFontNormal3D->setWidth(Font::wBold); //menuFontNormal3D->setYOffsetFactor(config.getFloat("FontMenuNormalYOffsetFactor",floatToStr(FontMetrics::DEFAULT_Y_OFFSET_FACTOR).c_str())); @@ -485,7 +485,7 @@ void CoreData::loadFonts() { if(Renderer::renderText3DEnabled == false) { menuFontBig= renderer.newFont(rsGlobal); if(menuFontBig) { - menuFontBig->setType(menuFontNameBig,config.getString("FontMenuBig","")); + menuFontBig->setType(menuFontNameBig,config.getString("FontMenuBig",""),config.getString("FontMenuBigFamily","")); menuFontBig->setSize(menuFontNameBigSize); //menuFontBig->setYOffsetFactor(config.getFloat("FontMenuBigYOffsetFactor",floatToStr(FontMetrics::DEFAULT_Y_OFFSET_FACTOR).c_str())); } @@ -498,7 +498,7 @@ void CoreData::loadFonts() { if(Renderer::renderText3DEnabled == true) { menuFontBig3D= renderer.newFont3D(rsGlobal); if(menuFontBig3D) { - menuFontBig3D->setType(menuFontNameBig,config.getString("FontMenuBig","")); + menuFontBig3D->setType(menuFontNameBig,config.getString("FontMenuBig",""),config.getString("FontMenuBigFamily","")); menuFontBig3D->setSize(menuFontNameBigSize); //menuFontBig3D->setYOffsetFactor(config.getFloat("FontMenuBigYOffsetFactor",floatToStr(FontMetrics::DEFAULT_Y_OFFSET_FACTOR).c_str())); } @@ -529,7 +529,7 @@ void CoreData::loadFonts() { if(Renderer::renderText3DEnabled == false) { menuFontVeryBig= renderer.newFont(rsGlobal); if(menuFontVeryBig) { - menuFontVeryBig->setType(menuFontNameVeryBig,config.getString("FontMenuVeryBig","")); + menuFontVeryBig->setType(menuFontNameVeryBig,config.getString("FontMenuVeryBig",""),config.getString("FontMenuVeryBigFamily","")); menuFontVeryBig->setSize(menuFontNameVeryBigSize); //menuFontVeryBig->setYOffsetFactor(config.getFloat("FontMenuVeryBigYOffsetFactor",floatToStr(FontMetrics::DEFAULT_Y_OFFSET_FACTOR).c_str())); } @@ -542,7 +542,7 @@ void CoreData::loadFonts() { if(Renderer::renderText3DEnabled == true) { menuFontVeryBig3D= renderer.newFont3D(rsGlobal); if(menuFontVeryBig3D) { - menuFontVeryBig3D->setType(menuFontNameVeryBig,config.getString("FontMenuVeryBig","")); + menuFontVeryBig3D->setType(menuFontNameVeryBig,config.getString("FontMenuVeryBig",""),config.getString("FontMenuVeryBigFamily","")); menuFontVeryBig3D->setSize(menuFontNameVeryBigSize); //menuFontVeryBig3D->setYOffsetFactor(config.getFloat("FontMenuVeryBigYOffsetFactor",floatToStr(FontMetrics::DEFAULT_Y_OFFSET_FACTOR).c_str())); } @@ -576,7 +576,7 @@ void CoreData::loadFonts() { if(Renderer::renderText3DEnabled == false) { consoleFont= renderer.newFont(rsGlobal); if(consoleFont) { - consoleFont->setType(consoleFontName,config.getString("FontConsole","")); + consoleFont->setType(consoleFontName,config.getString("FontConsole",""),config.getString("FontConsoleFamily","")); consoleFont->setSize(consoleFontNameSize); //consoleFont->setYOffsetFactor(config.getFloat("FontConsoleYOffsetFactor",floatToStr(FontMetrics::DEFAULT_Y_OFFSET_FACTOR).c_str())); } @@ -589,7 +589,7 @@ void CoreData::loadFonts() { if(Renderer::renderText3DEnabled == true) { consoleFont3D= renderer.newFont3D(rsGlobal); if(consoleFont3D) { - consoleFont3D->setType(consoleFontName,config.getString("FontConsole","")); + consoleFont3D->setType(consoleFontName,config.getString("FontConsole",""),config.getString("FontConsoleFamily","")); consoleFont3D->setSize(consoleFontNameSize); //consoleFont3D->setYOffsetFactor(config.getFloat("FontConsoleYOffsetFactor",floatToStr(FontMetrics::DEFAULT_Y_OFFSET_FACTOR).c_str())); } diff --git a/source/glest_game/global/lang.cpp b/source/glest_game/global/lang.cpp index 5ba1793c..5091f3e0 100644 --- a/source/glest_game/global/lang.cpp +++ b/source/glest_game/global/lang.cpp @@ -107,6 +107,15 @@ void Lang::loadStrings(string uselanguage, bool loadFonts, #endif } + if( lang.hasString("MEGAGLEST_FONT_FAMILY")) { + #if defined(WIN32) + string newEnvValue = "MEGAGLEST_FONT_FAMILY=" + lang.get("MEGAGLEST_FONT_FAMILY"); + _putenv(newEnvValue.c_str()); + #else + setenv("MEGAGLEST_FONT_FAMILY",lang.get("MEGAGLEST_FONT_FAMILY").c_str(),0); + #endif + } + // if( lang.hasString("FONT_YOFFSET_FACTOR")) { // FontMetrics::DEFAULT_Y_OFFSET_FACTOR = strToFloat(lang.get("FONT_YOFFSET_FACTOR")); // } diff --git a/source/shared_lib/CMakeLists.txt b/source/shared_lib/CMakeLists.txt index 455a77bb..c6b37971 100644 --- a/source/shared_lib/CMakeLists.txt +++ b/source/shared_lib/CMakeLists.txt @@ -138,7 +138,10 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST FIND_PACKAGE(FontConfig) IF(FONTCONFIG_FOUND) + MESSAGE(STATUS "**NOTE: FontConfig support was detected and enabled.") SET(HAVE_FONTCONFIG 1) + ADD_DEFINITIONS(-DHAVE_FONTCONFIG) + INCLUDE_DIRECTORIES( ${FONTCONFIG_INCLUDE_DIR} ) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${FONTCONFIG_LIBRARIES} ) ENDIF(FONTCONFIG_FOUND) diff --git a/source/shared_lib/include/graphics/font.h b/source/shared_lib/include/graphics/font.h index 1c37f490..d458430e 100644 --- a/source/shared_lib/include/graphics/font.h +++ b/source/shared_lib/include/graphics/font.h @@ -101,7 +101,7 @@ public: string getType() const; //set - void setType(string typeX11, string typeGeneric); + void setType(string typeX11, string typeGeneric, string typeGenericFamily); void setWidth(int width); int getSize() const; @@ -139,7 +139,7 @@ public: Font3D *ConvertFont2DTo3D(Font2D *font); -const char* findFont(const char *firstFontToTry=NULL); +const char* findFont(const char *firstFontToTry=NULL,const char *firstFontFamilyToTry=NULL); }}//end namespace diff --git a/source/shared_lib/include/graphics/font_text.h b/source/shared_lib/include/graphics/font_text.h index 18934f6c..8bfb63b1 100644 --- a/source/shared_lib/include/graphics/font_text.h +++ b/source/shared_lib/include/graphics/font_text.h @@ -36,7 +36,7 @@ public: Text(FontTextHandlerType type); virtual ~Text(); - virtual void init(string fontName, int fontSize); + virtual void init(string fontName, string fontFamilyName, int fontSize); virtual void SetFaceSize(int); virtual int GetFaceSize(); diff --git a/source/shared_lib/include/graphics/gl/font_textFTGL.h b/source/shared_lib/include/graphics/gl/font_textFTGL.h index 99a48a84..99a265d1 100644 --- a/source/shared_lib/include/graphics/gl/font_textFTGL.h +++ b/source/shared_lib/include/graphics/gl/font_textFTGL.h @@ -33,7 +33,7 @@ public: TextFTGL(FontTextHandlerType type); virtual ~TextFTGL(); - virtual void init(string fontName, int fontSize); + virtual void init(string fontName, string fontFamilyName, int fontSize); virtual void SetFaceSize(int); virtual int GetFaceSize(); diff --git a/source/shared_lib/include/graphics/gl/font_text_freetypegl.h b/source/shared_lib/include/graphics/gl/font_text_freetypegl.h index 1c057e1e..09d397e9 100644 --- a/source/shared_lib/include/graphics/gl/font_text_freetypegl.h +++ b/source/shared_lib/include/graphics/gl/font_text_freetypegl.h @@ -41,7 +41,7 @@ public: TextFreetypeGL(FontTextHandlerType type); virtual ~TextFreetypeGL(); - virtual void init(string fontName, int fontSize); + virtual void init(string fontName, string fontFamilyName, int fontSize); virtual void SetFaceSize(int); virtual int GetFaceSize(); @@ -66,6 +66,7 @@ private: int fontFaceSize; string fontName; + string fontFamilyName; const char* fontFile; void cleanupFont(); diff --git a/source/shared_lib/sources/graphics/font.cpp b/source/shared_lib/sources/graphics/font.cpp index bc3c8a55..8639d06e 100644 --- a/source/shared_lib/sources/graphics/font.cpp +++ b/source/shared_lib/sources/graphics/font.cpp @@ -84,8 +84,11 @@ void Font::resetToDefaults() { #if defined(WIN32) string newEnvValue = "MEGAGLEST_FONT="; _putenv(newEnvValue.c_str()); + newEnvValue = "MEGAGLEST_FONT_FAMILY="; + _putenv(newEnvValue.c_str()); #else unsetenv("MEGAGLEST_FONT"); + unsetenv("MEGAGLEST_FONT_FAMILY"); #endif } @@ -212,11 +215,11 @@ string Font::getType() const { return this->type; } -void Font::setType(string typeX11, string typeGeneric) { +void Font::setType(string typeX11, string typeGeneric, string typeGenericFamily) { if(textHandler) { try { this->type= typeGeneric; - textHandler->init(typeGeneric,textHandler->GetFaceSize()); + textHandler->init(typeGeneric,typeGenericFamily,textHandler->GetFaceSize()); metrics.setTextHandler(this->textHandler); } catch(exception &ex) { @@ -269,54 +272,11 @@ Font3D::Font3D(FontTextHandlerType type) : Font(type) { depth= 10.f; } -const char* findFont(const char *firstFontToTry) { - const char* font = NULL; - const char* path = NULL; - - #define CHECK_FONT_PATH(filename) \ - { \ - path = filename; \ - if( !font && path && fileExists(path) == true ) \ - font = strdup(path); \ - if(SystemFlags::VERBOSE_MODE_ENABLED) printf("Found font file [%s]\n",font); \ - } - - string tryFont = ""; - if(firstFontToTry) { - tryFont = firstFontToTry; - #ifdef WIN32 - replaceAll(tryFont, "/", "\\"); - #endif - - CHECK_FONT_PATH(tryFont.c_str()) - } - - // Get user-specified font path - if(getenv("MEGAGLEST_FONT") != NULL) { - tryFont = getenv("MEGAGLEST_FONT"); - #ifdef WIN32 - replaceAll(tryFont, "/", "\\"); - #endif - - CHECK_FONT_PATH(tryFont.c_str()) - } - - string data_path = Text::DEFAULT_FONT_PATH; - string defaultFont = data_path + "data/core/fonts/LinBiolinum_RB.ttf";//LinBiolinum_Re-0.6.4.ttf - tryFont = defaultFont; - #ifdef WIN32 - replaceAll(tryFont, "/", "\\"); - #endif - CHECK_FONT_PATH(tryFont.c_str()) - -#ifdef FONT_PATH - // Get distro-specified font path - CHECK_FONT_PATH(FONT_PATH) -#endif - +string findFontFamily(const char* font, const char *fontFamily) { + string resultFile = ""; #ifdef HAVE_FONTCONFIG // Get default font via fontconfig - if( !font && FcInit() ) { + if( !font && FcInit() && fontFamily) { FcResult result; FcFontSet *fs; FcPattern* pat; @@ -327,30 +287,107 @@ const char* findFont(const char *firstFontToTry) { name of a font that contains all the Unicode characters in use in your translation. */ - pat = FcNameParse((FcChar8 *)"Gothic Uralic"); + //pat = FcNameParse((FcChar8 *)"Gothic Uralic"); + pat = FcNameParse((FcChar8 *)fontFamily); FcConfigSubstitute(0, pat, FcMatchPattern); - FcPatternDel(pat, FC_WEIGHT); - FcPatternAddInteger(pat, FC_WEIGHT, FC_WEIGHT_BOLD); + //FcPatternDel(pat, FC_WEIGHT); + //FcPatternAddInteger(pat, FC_WEIGHT, FC_WEIGHT_BOLD); FcDefaultSubstitute(pat); fs = FcFontSetCreate(); match = FcFontMatch(0, pat, &result); + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("Trying fontconfig for fontfamily [%s]\n",fontFamily); + if (match) FcFontSetAdd(fs, match); if (pat) FcPatternDestroy(pat); if(fs) { FcChar8* file; if( FcPatternGetString (fs->fonts[0], FC_FILE, 0, &file) == FcResultMatch ) { - CHECK_FONT_PATH((const char*)file) + //CHECK_FONT_PATH((const char*)file,NULL) + resultFile = (const char*)file; } FcFontSetDestroy(fs); } FcFini(); } +#else + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("******************* NO FONT CONFIG ENABLED!\n"); #endif - CHECK_FONT_PATH("/usr/share/fonts/truetype/uralic/gothub__.ttf") + return resultFile; +} + +const char* findFont(const char *firstFontToTry,const char *firstFontFamilyToTry) { + const char* font = NULL; + const char* path = NULL; + + #define CHECK_FONT_PATH(filename,fontFamily) \ + { \ + path = filename; \ + if( !font && path && strlen(path) > 0 && fileExists(path) == true ) { \ + font = strdup(path); \ + } \ + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("#1 Searching for font file [%s] result [%s]\n",path,font); \ + if( !font && fontFamily && strlen(fontFamily) > 0) { \ + string fileFound = findFontFamily(font, fontFamily); \ + if(fileFound != "") { \ + path = fileFound.c_str(); \ + if( !font && path && strlen(path) > 0 && fileExists(path) == true ) { \ + font = strdup(path); \ + } \ + } \ + if(SystemFlags::VERBOSE_MODE_ENABLED) printf("#2 Searching for font family [%s] result [%s]\n",fontFamily,font); \ + } \ + } + + string tryFont = ""; + if(firstFontToTry || firstFontFamilyToTry) { + if(firstFontToTry && strlen(firstFontToTry) > 0) { + tryFont = firstFontToTry; + #ifdef WIN32 + replaceAll(tryFont, "/", "\\"); + #endif + + + CHECK_FONT_PATH(tryFont.c_str(),firstFontFamilyToTry) + } + else { + CHECK_FONT_PATH(NULL,firstFontFamilyToTry) + } + } + + // Get user-specified font path + if(getenv("MEGAGLEST_FONT") != NULL || getenv("MEGAGLEST_FONT_FAMILY") != NULL) { + + if(getenv("MEGAGLEST_FONT") != NULL) { + tryFont = getenv("MEGAGLEST_FONT"); + #ifdef WIN32 + replaceAll(tryFont, "/", "\\"); + #endif + + CHECK_FONT_PATH(tryFont.c_str(),getenv("MEGAGLEST_FONT_FAMILY")) + } + else { + CHECK_FONT_PATH(NULL,getenv("MEGAGLEST_FONT_FAMILY")) + } + } + + string data_path = Text::DEFAULT_FONT_PATH; + string defaultFont = data_path + "data/core/fonts/LinBiolinum_RB.ttf";//LinBiolinum_Re-0.6.4.ttf + tryFont = defaultFont; + #ifdef WIN32 + replaceAll(tryFont, "/", "\\"); + #endif + CHECK_FONT_PATH(tryFont.c_str(),"Linux Biolinum O:style=Bold") + +#ifdef FONT_PATH + // Get distro-specified font path + CHECK_FONT_PATH(FONT_PATH) +#endif + + CHECK_FONT_PATH("/usr/share/fonts/truetype/uralic/gothub__.ttf","Gothic Uralic:style=Regular") // Check a couple of common paths for Gothic Uralic/bold as a last resort // Debian @@ -359,44 +396,44 @@ const char* findFont(const char *firstFontToTry) { font that contains all the Unicode characters in use in your translation. If the font is available in Debian it should be the Debian path. */ - CHECK_FONT_PATH("/usr/share/fonts/truetype/uralic/gothub__.ttf") + CHECK_FONT_PATH("/usr/share/fonts/truetype/uralic/gothub__.ttf","Gothic Uralic:style=Regular") /* TRANSLATORS: If using the FTGL backend, this should be the path of a font that contains all the Unicode characters in use in your translation. If the font is available in Debian it should be the Debian path. */ - CHECK_FONT_PATH("/usr/share/fonts/truetype/uralic/gothu___.ttf") + CHECK_FONT_PATH("/usr/share/fonts/truetype/uralic/gothu___.ttf","Gothic Uralic:style=Regular") // Mandrake /* TRANSLATORS: If using the FTGL backend, this should be the path of a bold font that contains all the Unicode characters in use in your translation. If the font is available in Mandrake it should be the Mandrake path. */ - CHECK_FONT_PATH("/usr/share/fonts/TTF/uralic/GOTHUB__.TTF") + CHECK_FONT_PATH("/usr/share/fonts/TTF/uralic/GOTHUB__.TTF","Gothic Uralic:style=Bold") /* TRANSLATORS: If using the FTGL backend, this should be the path of a font that contains all the Unicode characters in use in your translation. If the font is available in Mandrake it should be the Mandrake path. */ - CHECK_FONT_PATH("/usr/share/fonts/TTF/uralic/GOTHU___.TTF") + CHECK_FONT_PATH("/usr/share/fonts/TTF/uralic/GOTHU___.TTF","Gothic Uralic:style=Regular") // Check the non-translated versions of the above - CHECK_FONT_PATH("/usr/share/fonts/truetype/uralic/gothub__.ttf") - CHECK_FONT_PATH("/usr/share/fonts/truetype/uralic/gothu___.ttf") - CHECK_FONT_PATH("/usr/share/fonts/TTF/uralic/GOTHUB__.TTF") - CHECK_FONT_PATH("/usr/share/fonts/TTF/uralic/GOTHU___.TTF") + CHECK_FONT_PATH("/usr/share/fonts/truetype/uralic/gothub__.ttf","Gothic Uralic:style=Regular") + CHECK_FONT_PATH("/usr/share/fonts/truetype/uralic/gothu___.ttf","Gothic Uralic:style=Regular") + CHECK_FONT_PATH("/usr/share/fonts/TTF/uralic/GOTHUB__.TTF","Gothic Uralic:style=Regular") + CHECK_FONT_PATH("/usr/share/fonts/TTF/uralic/GOTHU___.TTF","Gothic Uralic:style=Regular") - CHECK_FONT_PATH("/usr/share/fonts/truetype/linux-libertine/LinLibertine_Re.ttf") + CHECK_FONT_PATH("/usr/share/fonts/truetype/linux-libertine/LinLibertine_Re.ttf","Linux Libertine O:style=Regular") - CHECK_FONT_PATH("/usr/share/fonts/truetype/freefont/FreeSerif.ttf") - CHECK_FONT_PATH("/usr/share/fonts/truetype/freefont/FreeSans.ttf") - CHECK_FONT_PATH("/usr/share/fonts/truetype/freefont/FreeMono.ttf") + CHECK_FONT_PATH("/usr/share/fonts/truetype/freefont/FreeSerif.ttf","FreeSerif") + CHECK_FONT_PATH("/usr/share/fonts/truetype/freefont/FreeSans.ttf","FreeSans") + CHECK_FONT_PATH("/usr/share/fonts/truetype/freefont/FreeMono.ttf","FreeMono") #ifdef _WIN32 - CHECK_FONT_PATH("c:\\windows\\fonts\\verdana.ttf") - CHECK_FONT_PATH("c:\\windows\\fonts\\tahoma.ttf") - CHECK_FONT_PATH("c:\\windows\\fonts\\arial.ttf") - CHECK_FONT_PATH("\\windows\\fonts\\arial.ttf") + CHECK_FONT_PATH("c:\\windows\\fonts\\verdana.ttf",NULL) + CHECK_FONT_PATH("c:\\windows\\fonts\\tahoma.ttf",NULL) + CHECK_FONT_PATH("c:\\windows\\fonts\\arial.ttf",NULL) + CHECK_FONT_PATH("\\windows\\fonts\\arial.ttf",NULL) #endif return font; diff --git a/source/shared_lib/sources/graphics/font_text.cpp b/source/shared_lib/sources/graphics/font_text.cpp index a98a57d8..1738a2f8 100644 --- a/source/shared_lib/sources/graphics/font_text.cpp +++ b/source/shared_lib/sources/graphics/font_text.cpp @@ -19,7 +19,7 @@ Text::Text(FontTextHandlerType type) { this->type = type; } Text::~Text() {} -void Text::init(string fontName, int fontSize) {} +void Text::init(string fontName, string fontFamilyName, int fontSize) {} void Text::Render(const char*, const int) {} float Text::Advance(const char*, const int) {return 0;} float Text::LineHeight(const char*, const int) {return 0;} diff --git a/source/shared_lib/sources/graphics/gl/font_gl.cpp b/source/shared_lib/sources/graphics/gl/font_gl.cpp index 8bed8a5b..9f2731ac 100644 --- a/source/shared_lib/sources/graphics/gl/font_gl.cpp +++ b/source/shared_lib/sources/graphics/gl/font_gl.cpp @@ -84,17 +84,16 @@ void Font3DGl::end() { }}}//end namespace -namespace Shared { namespace Graphics { - - using namespace Gl; -Font3D * ConvertFont2DTo3D(Font2D *font) { - - Font3D *result = new Font3DGl(); - result->setSize(font->getSize()); - result->setType("",font->getType()); - result->setWidth(font->getWidth()); - result->init(); - return result; -} - -}} +//namespace Shared { namespace Graphics { +// +// using namespace Gl; +//Font3D * ConvertFont2DTo3D(Font2D *font) { +// +// Font3D *result = new Font3DGl(); +// result->setSize(font->getSize()); +// result->setType("",font->getType()); +// result->setWidth(font->getWidth()); +// result->init(); +// return result; +//} +//}} diff --git a/source/shared_lib/sources/graphics/gl/font_textFTGL.cpp b/source/shared_lib/sources/graphics/gl/font_textFTGL.cpp index c59ea670..e854cfeb 100644 --- a/source/shared_lib/sources/graphics/gl/font_textFTGL.cpp +++ b/source/shared_lib/sources/graphics/gl/font_textFTGL.cpp @@ -123,9 +123,9 @@ void TextFTGL::cleanupFont() { fontFile = NULL; } -void TextFTGL::init(string fontName, int fontSize) { +void TextFTGL::init(string fontName, string fontFamilyName, int fontSize) { cleanupFont(); - fontFile = findFont(fontName.c_str()); + fontFile = findFont(fontName.c_str(),fontFamilyName.c_str()); //ftFont = new FTBufferFont(fontFile); //ftFont = new FTGLPixmapFont(fontFile); diff --git a/source/shared_lib/sources/graphics/gl/font_text_freetypegl.cpp b/source/shared_lib/sources/graphics/gl/font_text_freetypegl.cpp index 05a7439a..766e3f2f 100644 --- a/source/shared_lib/sources/graphics/gl/font_text_freetypegl.cpp +++ b/source/shared_lib/sources/graphics/gl/font_text_freetypegl.cpp @@ -52,10 +52,11 @@ void TextFreetypeGL::cleanupFont() { } } -void TextFreetypeGL::init(string fontName, int fontSize) { +void TextFreetypeGL::init(string fontName, string fontFamilyName, int fontSize) { cleanupFont(); this->fontName = fontName; - this->fontFile = findFont(this->fontName.c_str()); + this->fontFamilyName = fontFamilyName; + this->fontFile = findFont(this->fontName.c_str(),this->fontFamilyName.c_str()); this->fontFaceSize = fontSize; const wchar_t *cache = L" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";