summaryrefslogtreecommitdiffstats
path: root/src/libnrtype
diff options
context:
space:
mode:
authorDavid Yip <yipdw@alumni.rose-hulman.edu>2006-05-25 16:33:13 +0000
committerdwyip <dwyip@users.sourceforge.net>2006-05-25 16:33:13 +0000
commit109eb938ea70563a05d91dfc3b1a3c159e38eb34 (patch)
treefaa975867af7fe82bd2f318ede046190bba5ff3d /src/libnrtype
parentFix compile error. (diff)
downloadinkscape-109eb938ea70563a05d91dfc3b1a3c159e38eb34.tar.gz
inkscape-109eb938ea70563a05d91dfc3b1a3c159e38eb34.zip
fix for backwards compatibility with FreeType 2.1.x
(bzr r1004)
Diffstat (limited to 'src/libnrtype')
-rw-r--r--src/libnrtype/FontInstance.cpp21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/libnrtype/FontInstance.cpp b/src/libnrtype/FontInstance.cpp
index d28fb42a4..2b9b4e13f 100644
--- a/src/libnrtype/FontInstance.cpp
+++ b/src/libnrtype/FontInstance.cpp
@@ -90,9 +90,20 @@ typedef struct ft2_to_liv {
NR::Point last;
} ft2_to_liv;
+// Note: Freetype 2.2.1 redefined function signatures for functions to be placed in an
+// FT_Outline_Funcs structure. This is needed to keep backwards compatibility with the
+// 2.1.x series.
+
+/* *** BEGIN #if HACK *** */
+#if FREETYPE_MAJOR == 2 && FREETYPE_MINOR >= 2
+#define FREETYPE_VECTOR FT_Vector const
+#else
+#define FREETYPE_VECTOR FT_Vector
+#endif
+
// outline as returned by freetype -> livarot Path
// see nr-type-ft2.cpp for the freetype -> artBPath on which this code is based
-static int ft2_move_to(FT_Vector const *to, void * i_user) {
+static int ft2_move_to(FREETYPE_VECTOR *to, void * i_user) {
ft2_to_liv* user=(ft2_to_liv*)i_user;
NR::Point p(user->scale*to->x,user->scale*to->y);
// printf("m t=%f %f\n",p[0],p[1]);
@@ -101,7 +112,7 @@ static int ft2_move_to(FT_Vector const *to, void * i_user) {
return 0;
}
-static int ft2_line_to(FT_Vector const *to, void *i_user)
+static int ft2_line_to(FREETYPE_VECTOR *to, void *i_user)
{
ft2_to_liv* user=(ft2_to_liv*)i_user;
NR::Point p(user->scale*to->x,user->scale*to->y);
@@ -111,7 +122,7 @@ static int ft2_line_to(FT_Vector const *to, void *i_user)
return 0;
}
-static int ft2_conic_to(FT_Vector const *control, FT_Vector const *to, void *i_user)
+static int ft2_conic_to(FREETYPE_VECTOR *control, FREETYPE_VECTOR *to, void *i_user)
{
ft2_to_liv* user=(ft2_to_liv*)i_user;
NR::Point p(user->scale*to->x,user->scale*to->y),c(user->scale*control->x,user->scale*control->y);
@@ -123,7 +134,7 @@ static int ft2_conic_to(FT_Vector const *control, FT_Vector const *to, void *i_u
return 0;
}
-static int ft2_cubic_to(FT_Vector const *control1, FT_Vector const *control2, FT_Vector const *to, void *i_user)
+static int ft2_cubic_to(FREETYPE_VECTOR *control1, FREETYPE_VECTOR *control2, FREETYPE_VECTOR *to, void *i_user)
{
ft2_to_liv* user=(ft2_to_liv*)i_user;
NR::Point p(user->scale*to->x,user->scale*to->y),
@@ -136,6 +147,8 @@ static int ft2_cubic_to(FT_Vector const *control1, FT_Vector const *control2, FT
}
#endif
+/* *** END #if HACK *** */
+
/*
*
*/