HAVE_FTGL=yes
HAVE_FTGL_INC=yes
CPPFLAGS="-I$ftgl/include $CPPFLAGS";
- AC_CHECK_HEADER( [FTGL/FTGL.h], [], [HAVE_FTGL_INC=no] )
+ AC_CHECK_HEADER( [FTGL/ftgl.h], [], [HAVE_FTGL_INC=no] )
if test "x$HAVE_FTGL_INC" = "xyes"; then
CSF_FTGL_INCLUDES="-I$ftgl/include/FTGL"
HAVE_FTGL_LIB=yes
LIBS_sv=$LIBS
LIBS="-lftgl $CSF_OpenGlLibs_LIB $LIBS"
#we have problem with unresolved symbols on 64 stations
- CSF_FTGL_LIB="-L$ftgl/lib -lftgl"
+ CSF_FTGL_LIB="-L$ftgl/lib -lftgl -lfreetype"
AC_TRY_LINK([
-#include <FTGL/FTGL.h>
+#include <FTGL/ftgl.h>
#include <FTGL/FTGLTextureFont.h>
], [
FTGLTextureFont font("");], [
#include <OpenGl_FontMgr.hxx>
-#include <FTGLTextureFont.h>
-#include <FTLibrary.h>
-#include <FTFace.h>
+#include <FTGL/ftgl.h>
#include <Standard_Stream.hxx>
#undef TRACE
void OpenGl_FontMgr::_initializeFontDB()
{
Handle(OSD_FontMgr) fntMgr = OSD_FontMgr::GetInstance();
- if ( !fntMgr.IsNull() ) {
+ FT_Library library;
+ // FIXME: FT_Done_FreeType( library ) should be called on exit
+ int error = FT_Init_FreeType( &library );
+ if ( !fntMgr.IsNull() && !error) {
OSD_NListOfSystemFont fontList = fntMgr->GetAvalableFonts();
if ( fontList.Size() != 0 ) {
if ( it.Value()->FontAspect() == OSD_FA_Regular ) {
//this workaround for fonts with names dependent on system locale.
//for example: "Times New Roman Fett Kursive" or "Times New Roman Gras Italiqui"
- FTFace face(it.Value()->FontPath()->ToCString());
-
- if ( face.Error() == FT_Err_Ok ) {
- if ( (*face.Face())->style_flags == 0 ) {
+ FT_Face ftFace;
+ error = FT_New_Face(library,
+ it.Value()->FontPath()->ToCString(), 0, &ftFace);
+ if ( !error ) {
+ if ( ftFace->style_flags == 0 ) {
info->SysFont = it.Value();
}
else {
#ifdef TRACE
cout << "TKOpenGl::initializeFontDB() detected new font!\n"
<< "\tFont Previous Name: " << it.Value()->FontName()->ToCString() << endl
- << "\tFont New Name: " << (*face.Face())->family_name << endl
- << "\tFont Aspect: " << (*face.Face())->style_flags << endl;
+ << "\tFont New Name: " << ftFace->family_name << endl
+ << "\tFont Aspect: " << ftFace->style_flags << endl;
#endif
OSD_FontAspect aspect = OSD_FA_Regular;
- if ( (*face.Face())->style_flags == (FT_STYLE_FLAG_ITALIC | FT_STYLE_FLAG_BOLD) )
+ if ( ftFace->style_flags == (FT_STYLE_FLAG_ITALIC | FT_STYLE_FLAG_BOLD) )
aspect = OSD_FA_BoldItalic;
- else if ( (*face.Face())->style_flags == FT_STYLE_FLAG_ITALIC )
+ else if ( ftFace->style_flags == FT_STYLE_FLAG_ITALIC )
aspect = OSD_FA_Italic;
- else if ( (*face.Face())->style_flags == FT_STYLE_FLAG_BOLD )
+ else if ( ftFace->style_flags == FT_STYLE_FLAG_BOLD )
aspect = OSD_FA_Bold;
#ifdef TRACE
cout << "\tOSD_FontAspect: " << aspect << endl;
#endif
Handle(TCollection_HAsciiString) aFontName =
- new TCollection_HAsciiString( (*face.Face())->family_name );
+ new TCollection_HAsciiString( ftFace->family_name );
info->SysFont = new OSD_SystemFont( aFontName, aspect, it.Value()->FontPath() );
}
+ FT_Done_Face(ftFace);
}
else
continue;