1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/ 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* sfntpic.h */ 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* The FreeType position independent code services for sfnt module. */ 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* Copyright 2009, 2012 by */ 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* Oran Agra and Mickey Gabel. */ 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* This file is part of the FreeType project, and may only be used, */ 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* modified, and distributed under the terms of the FreeType project */ 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* this file you indicate that you have read the license and */ 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* understand and accept it fully. */ 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* */ 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/***************************************************************************/ 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef __SFNTPIC_H__ 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define __SFNTPIC_H__ 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_BEGIN_HEADER 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/ftpic.h" 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef FT_CONFIG_OPTION_PIC 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_SERVICES_GET sfnt_services 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_SERVICE_GLYPH_DICT_GET sfnt_service_glyph_dict 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_SERVICE_PS_NAME_GET sfnt_service_ps_name 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define TT_SERVICE_CMAP_INFO_GET tt_service_get_cmap_info 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_SERVICES_GET sfnt_services 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define TT_CMAP_CLASSES_GET tt_cmap_classes 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_SERVICE_SFNT_TABLE_GET sfnt_service_sfnt_table 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_SERVICE_BDF_GET sfnt_service_bdf 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_INTERFACE_GET sfnt_interface 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#else /* FT_CONFIG_OPTION_PIC */ 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* some include files required for members of sfntModulePIC */ 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/services/svgldict.h" 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/services/svpostnm.h" 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/services/svsfnt.h" 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/services/svttcmap.h" 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef TT_CONFIG_OPTION_BDF 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "ttbdf.h" 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/services/svbdf.h" 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/ftdebug.h" 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/ftstream.h" 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/freetype/internal/sfnt.h" 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "ttcmap.h" 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov typedef struct sfntModulePIC_ 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_ServiceDescRec* sfnt_services; 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Service_GlyphDictRec sfnt_service_glyph_dict; 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Service_PsFontNameRec sfnt_service_ps_name; 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Service_TTCMapsRec tt_service_get_cmap_info; 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov TT_CMap_Class* tt_cmap_classes; 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Service_SFNT_TableRec sfnt_service_sfnt_table; 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifdef TT_CONFIG_OPTION_BDF 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Service_BDFRec sfnt_service_bdf; 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov SFNT_Interface sfnt_interface; 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } sfntModulePIC; 73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define GET_PIC( lib ) \ 76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ( (sfntModulePIC*)( (lib)->pic_container.sfnt ) ) 77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_SERVICES_GET \ 79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ( GET_PIC( library )->sfnt_services ) 80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_SERVICE_GLYPH_DICT_GET \ 81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ( GET_PIC( library )->sfnt_service_glyph_dict ) 82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_SERVICE_PS_NAME_GET \ 83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ( GET_PIC( library )->sfnt_service_ps_name ) 84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define TT_SERVICE_CMAP_INFO_GET \ 85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ( GET_PIC( library )->tt_service_get_cmap_info ) 86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_SERVICES_GET \ 87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ( GET_PIC( library )->sfnt_services ) 88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define TT_CMAP_CLASSES_GET \ 89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ( GET_PIC( library )->tt_cmap_classes ) 90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_SERVICE_SFNT_TABLE_GET \ 91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ( GET_PIC( library )->sfnt_service_sfnt_table ) 92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_SERVICE_BDF_GET \ 93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ( GET_PIC( library )->sfnt_service_bdf ) 94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define SFNT_INTERFACE_GET \ 95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ( GET_PIC( library )->sfnt_interface ) 96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* see sfntpic.c for the implementation */ 99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov void 100ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov sfnt_module_class_pic_free( FT_Library library ); 101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FT_Error 103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov sfnt_module_class_pic_init( FT_Library library ); 104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 105ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif /* FT_CONFIG_OPTION_PIC */ 106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov /* */ 108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 109ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFT_END_HEADER 110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 111ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif /* __SFNTPIC_H__ */ 112ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 113ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 114ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* END */ 115