aboutsummaryrefslogtreecommitdiff
path: root/libfreetype/freetype.c
diff options
context:
space:
mode:
Diffstat (limited to 'libfreetype/freetype.c')
-rw-r--r--libfreetype/freetype.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/libfreetype/freetype.c b/libfreetype/freetype.c
index d7e07a4..ccbd7c0 100644
--- a/libfreetype/freetype.c
+++ b/libfreetype/freetype.c
@@ -5,18 +5,36 @@
static char* fterrstr(int);
+#ifdef EXT_WIN
+extern char rootdir[];
+#endif
+
char*
ftnewface(char *path, int index, FTface *f, FTfaceinfo *finfo)
{
FT_Library ft_lib;
FT_Face ft_face;
char *err;
+#ifdef EXT_WIN
+ char *path2;
+#endif
err = fterrstr(FT_Init_FreeType(&ft_lib));
if (err != nil)
return err;
+#ifdef EXT_WIN
+ path2 = malloc(strlen(rootdir) + 1 + strlen(path) + 1);
+ sprintf(path2, "%s%s", rootdir, path);
+ path = path2;
+#endif
+
err = fterrstr(FT_New_Face(ft_lib, path, index, &ft_face));
+
+#ifdef EXT_WIN
+ free(path2);
+#endif
+
if (err != nil) {
FT_Done_FreeType(ft_lib);
return err;