mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-22 19:44:21 +01:00
c43d1ff3f1
Signed-off-by: dsomero <xgizzmo@slackbuilds.org>
139 lines
5.3 KiB
Diff
139 lines
5.3 KiB
Diff
Fix detection of FTGL in configure.in
|
|
|
|
Also modify installed headers to search for FTGL headers in
|
|
the right directory. This is not needed to build opencascade,
|
|
but may help people including those headers.
|
|
And last, fix usage of FTGL, FTFace is an internal structure
|
|
of FTGL and is no more exported.
|
|
|
|
Index: opencascade/ros/configure.in
|
|
===================================================================
|
|
--- opencascade.orig/ros/configure.in
|
|
+++ opencascade/ros/configure.in
|
|
@@ -422,7 +422,7 @@
|
|
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
|
|
@@ -431,9 +431,9 @@
|
|
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("");], [
|
|
Index: opencascade/ros/inc/OpenGl_FontMgr.hxx
|
|
===================================================================
|
|
--- opencascade.orig/ros/inc/OpenGl_FontMgr.hxx
|
|
+++ opencascade/ros/inc/OpenGl_FontMgr.hxx
|
|
@@ -7,7 +7,7 @@
|
|
# include <stdlib.h>
|
|
#endif
|
|
|
|
-#include <FTFont.h>
|
|
+#include <FTGL/FTFont.h>
|
|
|
|
#include <InterfaceGraphic.hxx>
|
|
#include <TCollection_HAsciiString.hxx>
|
|
Index: opencascade/ros/inc/OpenGl_TextRender.hxx
|
|
===================================================================
|
|
--- opencascade.orig/ros/inc/OpenGl_TextRender.hxx
|
|
+++ opencascade/ros/inc/OpenGl_TextRender.hxx
|
|
@@ -5,7 +5,7 @@
|
|
#include <NCollection_DataMap.hxx>
|
|
#include <TCollection_AsciiString.hxx>
|
|
#include <TCollection_HAsciiString.hxx>
|
|
-#include <FTFont.h>
|
|
+#include <FTGL/FTFont.h>
|
|
|
|
#define NUM_FONT_SIZES 40
|
|
#define NUM_CHAR_FONT 1024
|
|
Index: opencascade/ros/src/OpenGl/OpenGl_FontMgr.cxx
|
|
===================================================================
|
|
--- opencascade.orig/ros/src/OpenGl/OpenGl_FontMgr.cxx
|
|
+++ opencascade/ros/src/OpenGl/OpenGl_FontMgr.cxx
|
|
@@ -1,8 +1,6 @@
|
|
#include <OpenGl_FontMgr.hxx>
|
|
|
|
-#include <FTGLTextureFont.h>
|
|
-#include <FTLibrary.h>
|
|
-#include <FTFace.h>
|
|
+#include <FTGL/ftgl.h>
|
|
#include <Standard_Stream.hxx>
|
|
|
|
#undef TRACE
|
|
@@ -60,6 +58,8 @@
|
|
void OpenGl_FontMgr::_initializeFontDB()
|
|
{
|
|
Handle(OSD_FontMgr) fntMgr = OSD_FontMgr::GetInstance();
|
|
+ FT_Library library;
|
|
+ int error = FT_Init_FreeType( &library );
|
|
if ( !fntMgr.IsNull() ) {
|
|
|
|
OSD_NListOfSystemFont fontList = fntMgr->GetAvalableFonts();
|
|
@@ -68,13 +68,14 @@
|
|
OSD_NListOfSystemFont::Iterator it(fontList);
|
|
for ( ; it.More(); it.Next() ) {
|
|
OGLFont_SysInfo* info = new OGLFont_SysInfo();
|
|
- if ( it.Value()->FontAspect() == OSD_FA_Regular ) {
|
|
+ if ( it.Value()->FontAspect() == OSD_FA_Regular && !error ) {
|
|
//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 {
|
|
@@ -82,27 +83,30 @@
|
|
#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() );
|
|
}
|
|
}
|
|
else
|
|
+ {
|
|
+ error = 0;
|
|
continue;
|
|
+ }
|
|
} else {
|
|
info->SysFont = it.Value();
|
|
}
|