1*37da2899SCharles.Forsyth /***************************************************************************/ 2*37da2899SCharles.Forsyth /* */ 3*37da2899SCharles.Forsyth /* ftxf86.c */ 4*37da2899SCharles.Forsyth /* */ 5*37da2899SCharles.Forsyth /* FreeType utility file for X11 support (body). */ 6*37da2899SCharles.Forsyth /* */ 7*37da2899SCharles.Forsyth /* Copyright 2002 by */ 8*37da2899SCharles.Forsyth /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9*37da2899SCharles.Forsyth /* */ 10*37da2899SCharles.Forsyth /* This file is part of the FreeType project, and may only be used, */ 11*37da2899SCharles.Forsyth /* modified, and distributed under the terms of the FreeType project */ 12*37da2899SCharles.Forsyth /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13*37da2899SCharles.Forsyth /* this file you indicate that you have read the license and */ 14*37da2899SCharles.Forsyth /* understand and accept it fully. */ 15*37da2899SCharles.Forsyth /* */ 16*37da2899SCharles.Forsyth /***************************************************************************/ 17*37da2899SCharles.Forsyth 18*37da2899SCharles.Forsyth 19*37da2899SCharles.Forsyth #include <ft2build.h> 20*37da2899SCharles.Forsyth #include FT_XFREE86_H 21*37da2899SCharles.Forsyth #include FT_INTERNAL_OBJECTS_H 22*37da2899SCharles.Forsyth 23*37da2899SCharles.Forsyth /* XXX: This really is a sad hack, but I didn't want to change every */ 24*37da2899SCharles.Forsyth /* driver just to support this at the moment, since other important */ 25*37da2899SCharles.Forsyth /* changes are coming anyway. */ 26*37da2899SCharles.Forsyth 27*37da2899SCharles.Forsyth typedef struct FT_FontFormatRec_ 28*37da2899SCharles.Forsyth { 29*37da2899SCharles.Forsyth const char* driver_name; 30*37da2899SCharles.Forsyth const char* format_name; 31*37da2899SCharles.Forsyth 32*37da2899SCharles.Forsyth } FT_FontFormatRec; 33*37da2899SCharles.Forsyth 34*37da2899SCharles.Forsyth 35*37da2899SCharles.Forsyth FT_EXPORT_DEF( const char* ) FT_Get_X11_Font_Format(FT_Face face)36*37da2899SCharles.Forsyth FT_Get_X11_Font_Format( FT_Face face ) 37*37da2899SCharles.Forsyth { 38*37da2899SCharles.Forsyth static const FT_FontFormatRec font_formats[] = 39*37da2899SCharles.Forsyth { 40*37da2899SCharles.Forsyth { "type1", "Type 1" }, 41*37da2899SCharles.Forsyth { "truetype", "TrueType" }, 42*37da2899SCharles.Forsyth { "bdf", "BDF" }, 43*37da2899SCharles.Forsyth { "pcf", "PCF" }, 44*37da2899SCharles.Forsyth { "type42", "Type 42" }, 45*37da2899SCharles.Forsyth { "cidtype1", "CID Type 1" }, 46*37da2899SCharles.Forsyth { "cff", "CFF" }, 47*37da2899SCharles.Forsyth { "pfr", "PFR" }, 48*37da2899SCharles.Forsyth { "winfonts", "Windows FNT" } 49*37da2899SCharles.Forsyth }; 50*37da2899SCharles.Forsyth 51*37da2899SCharles.Forsyth const char* result = NULL; 52*37da2899SCharles.Forsyth 53*37da2899SCharles.Forsyth 54*37da2899SCharles.Forsyth if ( face && face->driver ) 55*37da2899SCharles.Forsyth { 56*37da2899SCharles.Forsyth FT_Module driver = (FT_Module)face->driver; 57*37da2899SCharles.Forsyth 58*37da2899SCharles.Forsyth 59*37da2899SCharles.Forsyth if ( driver->clazz && driver->clazz->module_name ) 60*37da2899SCharles.Forsyth { 61*37da2899SCharles.Forsyth FT_Int n; 62*37da2899SCharles.Forsyth FT_Int count = sizeof( font_formats ) / sizeof ( font_formats[0] ); 63*37da2899SCharles.Forsyth 64*37da2899SCharles.Forsyth 65*37da2899SCharles.Forsyth result = driver->clazz->module_name; 66*37da2899SCharles.Forsyth 67*37da2899SCharles.Forsyth for ( n = 0; n < count; n++ ) 68*37da2899SCharles.Forsyth if ( ft_strcmp( result, font_formats[n].driver_name ) == 0 ) 69*37da2899SCharles.Forsyth { 70*37da2899SCharles.Forsyth result = font_formats[n].format_name; 71*37da2899SCharles.Forsyth break; 72*37da2899SCharles.Forsyth } 73*37da2899SCharles.Forsyth } 74*37da2899SCharles.Forsyth } 75*37da2899SCharles.Forsyth 76*37da2899SCharles.Forsyth return result; 77*37da2899SCharles.Forsyth } 78*37da2899SCharles.Forsyth 79*37da2899SCharles.Forsyth 80*37da2899SCharles.Forsyth /* END */ 81