svsfnt.h revision ec0bab5697bb31ba980810145f62e3799946ec60
1cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/***************************************************************************/ 2cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* */ 305436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* svsfnt.h */ 4cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* */ 505436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* The FreeType SFNT table loading service (specification). */ 6cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* */ 705436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* Copyright 2003, 2004, 2009, 2012 by */ 805436638acc7c010349a69c3395f1a57c642dc62Ying Wang/* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* */ 10cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* This file is part of the FreeType project, and may only be used, */ 11cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* modified, and distributed under the terms of the FreeType project */ 12cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* this file you indicate that you have read the license and */ 14cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* understand and accept it fully. */ 15cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project/* */ 1605436638acc7c010349a69c3395f1a57c642dc62Ying Wang/***************************************************************************/ 17cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 18cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 19cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#ifndef __SVSFNT_H__ 20cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#define __SVSFNT_H__ 21cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project 2205436638acc7c010349a69c3395f1a57c642dc62Ying Wang#include FT_INTERNAL_SERVICE_H 23cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#include FT_TRUETYPE_TABLES_H 2405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 2505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 2605436638acc7c010349a69c3395f1a57c642dc62Ying WangFT_BEGIN_HEADER 2705436638acc7c010349a69c3395f1a57c642dc62Ying Wang 2805436638acc7c010349a69c3395f1a57c642dc62Ying Wang 2905436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* 3005436638acc7c010349a69c3395f1a57c642dc62Ying Wang * SFNT table loading service. 3105436638acc7c010349a69c3395f1a57c642dc62Ying Wang */ 3205436638acc7c010349a69c3395f1a57c642dc62Ying Wang 3305436638acc7c010349a69c3395f1a57c642dc62Ying Wang#define FT_SERVICE_ID_SFNT_TABLE "sfnt-table" 3405436638acc7c010349a69c3395f1a57c642dc62Ying Wang 3505436638acc7c010349a69c3395f1a57c642dc62Ying Wang 3605436638acc7c010349a69c3395f1a57c642dc62Ying Wang /* 37 * Used to implement FT_Load_Sfnt_Table(). 38 */ 39 typedef FT_Error 40 (*FT_SFNT_TableLoadFunc)( FT_Face face, 41 FT_ULong tag, 42 FT_Long offset, 43 FT_Byte* buffer, 44 FT_ULong* length ); 45 46 /* 47 * Used to implement FT_Get_Sfnt_Table(). 48 */ 49 typedef void* 50 (*FT_SFNT_TableGetFunc)( FT_Face face, 51 FT_Sfnt_Tag tag ); 52 53 54 /* 55 * Used to implement FT_Sfnt_Table_Info(). 56 */ 57 typedef FT_Error 58 (*FT_SFNT_TableInfoFunc)( FT_Face face, 59 FT_UInt idx, 60 FT_ULong *tag, 61 FT_ULong *offset, 62 FT_ULong *length ); 63 64 65 FT_DEFINE_SERVICE( SFNT_Table ) 66 { 67 FT_SFNT_TableLoadFunc load_table; 68 FT_SFNT_TableGetFunc get_table; 69 FT_SFNT_TableInfoFunc table_info; 70 }; 71 72 73#ifndef FT_CONFIG_OPTION_PIC 74 75#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ 76 static const FT_Service_SFNT_TableRec class_ = \ 77 { \ 78 load_, get_, info_ \ 79 }; 80 81#else /* FT_CONFIG_OPTION_PIC */ 82 83#define FT_DEFINE_SERVICE_SFNT_TABLEREC( class_, load_, get_, info_ ) \ 84 void \ 85 FT_Init_Class_ ## class_( FT_Service_SFNT_TableRec* clazz ) \ 86 { \ 87 clazz->load_table = load_; \ 88 clazz->get_table = get_; \ 89 clazz->table_info = info_; \ 90 } 91 92#endif /* FT_CONFIG_OPTION_PIC */ 93 94 /* */ 95 96 97FT_END_HEADER 98 99 100#endif /* __SVSFNT_H__ */ 101 102 103/* END */ 104