1295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/***************************************************************************/ 2295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* */ 3295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* sfntpic.h */ 4295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* */ 5295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* The FreeType position independent code services for sfnt module. */ 6295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* */ 7a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang/* Copyright 2009, 2012 by */ 8295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* Oran Agra and Mickey Gabel. */ 9295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* */ 10295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* This file is part of the FreeType project, and may only be used, */ 11295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* modified, and distributed under the terms of the FreeType project */ 12295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* this file you indicate that you have read the license and */ 14295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* understand and accept it fully. */ 15295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* */ 16295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/***************************************************************************/ 17295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 18295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 19295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#ifndef __SFNTPIC_H__ 20295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#define __SFNTPIC_H__ 21295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 22e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang 23295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' TurnerFT_BEGIN_HEADER 24295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 25295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include FT_INTERNAL_PIC_H 26295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 27a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 28a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#ifndef FT_CONFIG_OPTION_PIC 29a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 30a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_SERVICES_GET sfnt_services 31a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_SERVICE_GLYPH_DICT_GET sfnt_service_glyph_dict 32a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_SERVICE_PS_NAME_GET sfnt_service_ps_name 33a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define TT_SERVICE_CMAP_INFO_GET tt_service_get_cmap_info 34a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_SERVICES_GET sfnt_services 35a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define TT_CMAP_CLASSES_GET tt_cmap_classes 36a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_SERVICE_SFNT_TABLE_GET sfnt_service_sfnt_table 37a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_SERVICE_BDF_GET sfnt_service_bdf 38a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_INTERFACE_GET sfnt_interface 39295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 40295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#else /* FT_CONFIG_OPTION_PIC */ 41295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 42a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang /* some include files required for members of sfntModulePIC */ 43295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include FT_SERVICE_GLYPH_DICT_H 44295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include FT_SERVICE_POSTSCRIPT_NAME_H 45295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include FT_SERVICE_SFNT_H 46295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include FT_SERVICE_TT_CMAP_H 47a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 48295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#ifdef TT_CONFIG_OPTION_BDF 49295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include "ttbdf.h" 50295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include FT_SERVICE_BDF_H 51295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#endif 52a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 53295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include FT_INTERNAL_DEBUG_H 54295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include FT_INTERNAL_STREAM_H 55295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include FT_INTERNAL_SFNT_H 56295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#include "ttcmap.h" 57295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 58a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 59a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang typedef struct sfntModulePIC_ 60295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner { 61a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_ServiceDescRec* sfnt_services; 62a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Service_GlyphDictRec sfnt_service_glyph_dict; 63295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner FT_Service_PsFontNameRec sfnt_service_ps_name; 64a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Service_TTCMapsRec tt_service_get_cmap_info; 65a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang TT_CMap_Class* tt_cmap_classes; 66a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Service_SFNT_TableRec sfnt_service_sfnt_table; 67295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#ifdef TT_CONFIG_OPTION_BDF 68a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang FT_Service_BDFRec sfnt_service_bdf; 69295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#endif 70a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang SFNT_Interface sfnt_interface; 71a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 72295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner } sfntModulePIC; 73295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 74a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 75a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define GET_PIC( lib ) \ 76a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( (sfntModulePIC*)( (lib)->pic_container.sfnt ) ) 77a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 78a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_SERVICES_GET \ 79a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( GET_PIC( library )->sfnt_services ) 80a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_SERVICE_GLYPH_DICT_GET \ 81a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( GET_PIC( library )->sfnt_service_glyph_dict ) 82a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_SERVICE_PS_NAME_GET \ 83a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( GET_PIC( library )->sfnt_service_ps_name ) 84a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define TT_SERVICE_CMAP_INFO_GET \ 85a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( GET_PIC( library )->tt_service_get_cmap_info ) 86a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_SERVICES_GET \ 87a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( GET_PIC( library )->sfnt_services ) 88a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define TT_CMAP_CLASSES_GET \ 89a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( GET_PIC( library )->tt_cmap_classes ) 90a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_SERVICE_SFNT_TABLE_GET \ 91a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( GET_PIC( library )->sfnt_service_sfnt_table ) 92a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_SERVICE_BDF_GET \ 93a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( GET_PIC( library )->sfnt_service_bdf ) 94a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang#define SFNT_INTERFACE_GET \ 95a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang ( GET_PIC( library )->sfnt_interface ) 96a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang 97295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 98e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang /* see sfntpic.c for the implementation */ 99e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang void 100e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang sfnt_module_class_pic_free( FT_Library library ); 101e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang 102e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang FT_Error 103e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang sfnt_module_class_pic_init( FT_Library library ); 104e3b631da8034f7c6ecc6d809cd9e46d306215c32Xianzhu Wang 105295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#endif /* FT_CONFIG_OPTION_PIC */ 106295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 107a2b9955b49034a51dfbc8bf9f4e9d312149cecacXianzhu Wang /* */ 108295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 109295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' TurnerFT_END_HEADER 110295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 111295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner#endif /* __SFNTPIC_H__ */ 112295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 113295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner 114295ffce55e0198e7a9f7d46b33f5c2b4147bf821David 'Digit' Turner/* END */ 115