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/cidriver.c | |
| parent | 54bc8ff236ac10b3eaa928fd6bcfc0cdb2ba46ae (diff) | |
20060303a
Diffstat (limited to 'libfreetype/cidriver.c')
| -rw-r--r-- | libfreetype/cidriver.c | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/libfreetype/cidriver.c b/libfreetype/cidriver.c new file mode 100644 index 00000000..4d6f442c --- /dev/null +++ b/libfreetype/cidriver.c @@ -0,0 +1,113 @@ +/***************************************************************************/ +/* */ +/* cidriver.c */ +/* */ +/* CID driver interface (body). */ +/* */ +/* Copyright 1996-2001, 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 "cidriver.h" +#include "cidgload.h" +#include FT_INTERNAL_DEBUG_H +#include FT_INTERNAL_STREAM_H +#include FT_INTERNAL_POSTSCRIPT_NAMES_H + +#include "ciderrs.h" + + + /*************************************************************************/ + /* */ + /* The macro FT_COMPONENT is used in trace mode. It is an implicit */ + /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */ + /* messages during execution. */ + /* */ +#undef FT_COMPONENT +#define FT_COMPONENT trace_ciddriver + + + static const char* + cid_get_postscript_name( CID_Face face ) + { + const char* result = face->cid.cid_font_name; + + + if ( result && result[0] == '/' ) + result++; + + return result; + } + + + static FT_Module_Interface + cid_get_interface( FT_Driver driver, + const FT_String* cid_interface ) + { + FT_UNUSED( driver ); + FT_UNUSED( cid_interface ); + + if ( ft_strcmp( (const char*)cid_interface, "postscript_name" ) == 0 ) + return (FT_Module_Interface)cid_get_postscript_name; + + return 0; + } + + + + FT_CALLBACK_TABLE_DEF + const FT_Driver_ClassRec t1cid_driver_class = + { + /* first of all, the FT_Module_Class fields */ + { + ft_module_font_driver | + ft_module_driver_scalable | + ft_module_driver_has_hinter , + + sizeof( FT_DriverRec ), + "t1cid", /* module name */ + 0x10000L, /* version 1.0 of driver */ + 0x20000L, /* requires FreeType 2.0 */ + + 0, + + (FT_Module_Constructor)cid_driver_init, + (FT_Module_Destructor) cid_driver_done, + (FT_Module_Requester) cid_get_interface + }, + + /* then the other font drivers fields */ + sizeof( CID_FaceRec ), + sizeof( CID_SizeRec ), + sizeof( CID_GlyphSlotRec ), + + (FT_Face_InitFunc) cid_face_init, + (FT_Face_DoneFunc) cid_face_done, + + (FT_Size_InitFunc) cid_size_init, + (FT_Size_DoneFunc) cid_size_done, + (FT_Slot_InitFunc) cid_slot_init, + (FT_Slot_DoneFunc) cid_slot_done, + + (FT_Size_ResetPointsFunc)cid_size_reset, + (FT_Size_ResetPixelsFunc)cid_size_reset, + + (FT_Slot_LoadFunc) cid_slot_load_glyph, + + (FT_Face_GetKerningFunc) 0, + (FT_Face_AttachFunc) 0, + + (FT_Face_GetAdvancesFunc)0, + }; + + +/* END */ |
