summaryrefslogtreecommitdiff
path: root/libfreetype/ftxf86.c
diff options
context:
space:
mode:
Diffstat (limited to 'libfreetype/ftxf86.c')
-rw-r--r--libfreetype/ftxf86.c80
1 files changed, 80 insertions, 0 deletions
diff --git a/libfreetype/ftxf86.c b/libfreetype/ftxf86.c
new file mode 100644
index 00000000..6fd7722a
--- /dev/null
+++ b/libfreetype/ftxf86.c
@@ -0,0 +1,80 @@
+/***************************************************************************/
+/* */
+/* ftxf86.c */
+/* */
+/* FreeType utility file for X11 support (body). */
+/* */
+/* Copyright 2002 by */
+/* David Turner, Robert Wilhelm, and Werner Lemberg. */
+/* */
+/* This file is part of the FreeType project, and may only be used, */
+/* modified, and distributed under the terms of the FreeType project */
+/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
+/* this file you indicate that you have read the license and */
+/* understand and accept it fully. */
+/* */
+/***************************************************************************/
+
+
+#include <ft2build.h>
+#include FT_XFREE86_H
+#include FT_INTERNAL_OBJECTS_H
+
+ /* XXX: This really is a sad hack, but I didn't want to change every */
+ /* driver just to support this at the moment, since other important */
+ /* changes are coming anyway. */
+
+ typedef struct FT_FontFormatRec_
+ {
+ const char* driver_name;
+ const char* format_name;
+
+ } FT_FontFormatRec;
+
+
+ FT_EXPORT_DEF( const char* )
+ FT_Get_X11_Font_Format( FT_Face face )
+ {
+ static const FT_FontFormatRec font_formats[] =
+ {
+ { "type1", "Type 1" },
+ { "truetype", "TrueType" },
+ { "bdf", "BDF" },
+ { "pcf", "PCF" },
+ { "type42", "Type 42" },
+ { "cidtype1", "CID Type 1" },
+ { "cff", "CFF" },
+ { "pfr", "PFR" },
+ { "winfonts", "Windows FNT" }
+ };
+
+ const char* result = NULL;
+
+
+ if ( face && face->driver )
+ {
+ FT_Module driver = (FT_Module)face->driver;
+
+
+ if ( driver->clazz && driver->clazz->module_name )
+ {
+ FT_Int n;
+ FT_Int count = sizeof( font_formats ) / sizeof ( font_formats[0] );
+
+
+ result = driver->clazz->module_name;
+
+ for ( n = 0; n < count; n++ )
+ if ( ft_strcmp( result, font_formats[n].driver_name ) == 0 )
+ {
+ result = font_formats[n].format_name;
+ break;
+ }
+ }
+ }
+
+ return result;
+ }
+
+
+/* END */