added FT_Get_Sfnt_Table from "include/tttables.h"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index 30f6257..a2db019 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -20,7 +20,7 @@
#include <ftdebug.h>
#include <ftstream.h>
-
+#include <tttables.h>
/*************************************************************************/
/*************************************************************************/
@@ -1964,6 +1964,54 @@
}
+ /***************************************************************************
+ *
+ * <Function>
+ * FT_Get_Sfnt_Table
+ *
+ * <Description>
+ * Returns a pointer to a given SFNT table within a face.
+ *
+ * <Input>
+ * face :: handle to source
+ * tag :: index if SFNT table
+ *
+ * <Return>
+ * type-less pointer to the table. This will be 0 in case of error, or
+ * when the corresponding table was not found *OR* loaded from the file.
+ *
+ * <Note>
+ * The table is owned by the face object, and disappears with it.
+ *
+ * This function is only useful to access Sfnt tables that are loaded
+ * by the sfnt/truetype/opentype drivers. See FT_Sfnt_tag for a list.
+ *
+ * You can load any table with a different function.. XXX
+ *
+ ***************************************************************************/
+
+
+ EXPORT_FUNC
+ void* FT_Get_Sfnt_Table( FT_Face face,
+ FT_Sfnt_Tag tag )
+ {
+ void* table = 0;
+ FT_Get_Sfnt_Table_Func func;
+ FT_Driver driver;
+
+ if (!face || !FT_IS_SFNT(face))
+ goto Exit;
+
+ driver = face->driver;
+ func = (FT_Get_Sfnt_Table_Func)driver->interface.get_interface( driver, "get_sfnt" );
+ if (func)
+ table = func(face,tag);
+
+ Exit:
+ return table;
+ }
+
+
/*************************************************************************/
/* */