diff options
| author | Charles.Forsyth <devnull@localhost> | 2006-12-22 17:07:39 +0000 |
|---|---|---|
| committer | Charles.Forsyth <devnull@localhost> | 2006-12-22 17:07:39 +0000 |
| commit | 37da2899f40661e3e9631e497da8dc59b971cbd0 (patch) | |
| tree | cbc6d4680e347d906f5fa7fca73214418741df72 /libfreetype/ftxf86.c | |
| parent | 54bc8ff236ac10b3eaa928fd6bcfc0cdb2ba46ae (diff) | |
20060303a
Diffstat (limited to 'libfreetype/ftxf86.c')
| -rw-r--r-- | libfreetype/ftxf86.c | 80 |
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 */ |
