vrshoot

annotate libs/ft2static/freetype/internal/ftrfork.h @ 0:b2f14e535253

initial commit
author John Tsiombikas <nuclear@member.fsf.org>
date Sat, 01 Feb 2014 19:58:19 +0200
parents
children
rev   line source
nuclear@0 1 /***************************************************************************/
nuclear@0 2 /* */
nuclear@0 3 /* ftrfork.h */
nuclear@0 4 /* */
nuclear@0 5 /* Embedded resource forks accessor (specification). */
nuclear@0 6 /* */
nuclear@0 7 /* Copyright 2004, 2006, 2007 by */
nuclear@0 8 /* Masatake YAMATO and Redhat K.K. */
nuclear@0 9 /* */
nuclear@0 10 /* This file is part of the FreeType project, and may only be used, */
nuclear@0 11 /* modified, and distributed under the terms of the FreeType project */
nuclear@0 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
nuclear@0 13 /* this file you indicate that you have read the license and */
nuclear@0 14 /* understand and accept it fully. */
nuclear@0 15 /* */
nuclear@0 16 /***************************************************************************/
nuclear@0 17
nuclear@0 18 /***************************************************************************/
nuclear@0 19 /* Development of the code in this file is support of */
nuclear@0 20 /* Information-technology Promotion Agency, Japan. */
nuclear@0 21 /***************************************************************************/
nuclear@0 22
nuclear@0 23
nuclear@0 24 #ifndef __FTRFORK_H__
nuclear@0 25 #define __FTRFORK_H__
nuclear@0 26
nuclear@0 27
nuclear@0 28 #include <ft2build.h>
nuclear@0 29 #include FT_INTERNAL_OBJECTS_H
nuclear@0 30
nuclear@0 31
nuclear@0 32 FT_BEGIN_HEADER
nuclear@0 33
nuclear@0 34
nuclear@0 35 /* Number of guessing rules supported in `FT_Raccess_Guess'. */
nuclear@0 36 /* Don't forget to increment the number if you add a new guessing rule. */
nuclear@0 37 #define FT_RACCESS_N_RULES 9
nuclear@0 38
nuclear@0 39
nuclear@0 40 /* A structure to describe a reference in a resource by its resource ID */
nuclear@0 41 /* and internal offset. The `POST' resource expects to be concatenated */
nuclear@0 42 /* by the order of resource IDs instead of its appearance in the file. */
nuclear@0 43
nuclear@0 44 typedef struct FT_RFork_Ref_
nuclear@0 45 {
nuclear@0 46 FT_UShort res_id;
nuclear@0 47 FT_ULong offset;
nuclear@0 48
nuclear@0 49 } FT_RFork_Ref;
nuclear@0 50
nuclear@0 51
nuclear@0 52 /*************************************************************************/
nuclear@0 53 /* */
nuclear@0 54 /* <Function> */
nuclear@0 55 /* FT_Raccess_Guess */
nuclear@0 56 /* */
nuclear@0 57 /* <Description> */
nuclear@0 58 /* Guess a file name and offset where the actual resource fork is */
nuclear@0 59 /* stored. The macro FT_RACCESS_N_RULES holds the number of */
nuclear@0 60 /* guessing rules; the guessed result for the Nth rule is */
nuclear@0 61 /* represented as a triplet: a new file name (new_names[N]), a file */
nuclear@0 62 /* offset (offsets[N]), and an error code (errors[N]). */
nuclear@0 63 /* */
nuclear@0 64 /* <Input> */
nuclear@0 65 /* library :: */
nuclear@0 66 /* A FreeType library instance. */
nuclear@0 67 /* */
nuclear@0 68 /* stream :: */
nuclear@0 69 /* A file stream containing the resource fork. */
nuclear@0 70 /* */
nuclear@0 71 /* base_name :: */
nuclear@0 72 /* The (base) file name of the resource fork used for some */
nuclear@0 73 /* guessing rules. */
nuclear@0 74 /* */
nuclear@0 75 /* <Output> */
nuclear@0 76 /* new_names :: */
nuclear@0 77 /* An array of guessed file names in which the resource forks may */
nuclear@0 78 /* exist. If `new_names[N]' is NULL, the guessed file name is */
nuclear@0 79 /* equal to `base_name'. */
nuclear@0 80 /* */
nuclear@0 81 /* offsets :: */
nuclear@0 82 /* An array of guessed file offsets. `offsets[N]' holds the file */
nuclear@0 83 /* offset of the possible start of the resource fork in file */
nuclear@0 84 /* `new_names[N]'. */
nuclear@0 85 /* */
nuclear@0 86 /* errors :: */
nuclear@0 87 /* An array of FreeType error codes. `errors[N]' is the error */
nuclear@0 88 /* code of Nth guessing rule function. If `errors[N]' is not */
nuclear@0 89 /* FT_Err_Ok, `new_names[N]' and `offsets[N]' are meaningless. */
nuclear@0 90 /* */
nuclear@0 91 FT_BASE( void )
nuclear@0 92 FT_Raccess_Guess( FT_Library library,
nuclear@0 93 FT_Stream stream,
nuclear@0 94 char* base_name,
nuclear@0 95 char** new_names,
nuclear@0 96 FT_Long* offsets,
nuclear@0 97 FT_Error* errors );
nuclear@0 98
nuclear@0 99
nuclear@0 100 /*************************************************************************/
nuclear@0 101 /* */
nuclear@0 102 /* <Function> */
nuclear@0 103 /* FT_Raccess_Get_HeaderInfo */
nuclear@0 104 /* */
nuclear@0 105 /* <Description> */
nuclear@0 106 /* Get the information from the header of resource fork. The */
nuclear@0 107 /* information includes the file offset where the resource map */
nuclear@0 108 /* starts, and the file offset where the resource data starts. */
nuclear@0 109 /* `FT_Raccess_Get_DataOffsets' requires these two data. */
nuclear@0 110 /* */
nuclear@0 111 /* <Input> */
nuclear@0 112 /* library :: */
nuclear@0 113 /* A FreeType library instance. */
nuclear@0 114 /* */
nuclear@0 115 /* stream :: */
nuclear@0 116 /* A file stream containing the resource fork. */
nuclear@0 117 /* */
nuclear@0 118 /* rfork_offset :: */
nuclear@0 119 /* The file offset where the resource fork starts. */
nuclear@0 120 /* */
nuclear@0 121 /* <Output> */
nuclear@0 122 /* map_offset :: */
nuclear@0 123 /* The file offset where the resource map starts. */
nuclear@0 124 /* */
nuclear@0 125 /* rdata_pos :: */
nuclear@0 126 /* The file offset where the resource data starts. */
nuclear@0 127 /* */
nuclear@0 128 /* <Return> */
nuclear@0 129 /* FreeType error code. FT_Err_Ok means success. */
nuclear@0 130 /* */
nuclear@0 131 FT_BASE( FT_Error )
nuclear@0 132 FT_Raccess_Get_HeaderInfo( FT_Library library,
nuclear@0 133 FT_Stream stream,
nuclear@0 134 FT_Long rfork_offset,
nuclear@0 135 FT_Long *map_offset,
nuclear@0 136 FT_Long *rdata_pos );
nuclear@0 137
nuclear@0 138
nuclear@0 139 /*************************************************************************/
nuclear@0 140 /* */
nuclear@0 141 /* <Function> */
nuclear@0 142 /* FT_Raccess_Get_DataOffsets */
nuclear@0 143 /* */
nuclear@0 144 /* <Description> */
nuclear@0 145 /* Get the data offsets for a tag in a resource fork. Offsets are */
nuclear@0 146 /* stored in an array because, in some cases, resources in a resource */
nuclear@0 147 /* fork have the same tag. */
nuclear@0 148 /* */
nuclear@0 149 /* <Input> */
nuclear@0 150 /* library :: */
nuclear@0 151 /* A FreeType library instance. */
nuclear@0 152 /* */
nuclear@0 153 /* stream :: */
nuclear@0 154 /* A file stream containing the resource fork. */
nuclear@0 155 /* */
nuclear@0 156 /* map_offset :: */
nuclear@0 157 /* The file offset where the resource map starts. */
nuclear@0 158 /* */
nuclear@0 159 /* rdata_pos :: */
nuclear@0 160 /* The file offset where the resource data starts. */
nuclear@0 161 /* */
nuclear@0 162 /* tag :: */
nuclear@0 163 /* The resource tag. */
nuclear@0 164 /* */
nuclear@0 165 /* <Output> */
nuclear@0 166 /* offsets :: */
nuclear@0 167 /* The stream offsets for the resource data specified by `tag'. */
nuclear@0 168 /* This array is allocated by the function, so you have to call */
nuclear@0 169 /* @ft_mem_free after use. */
nuclear@0 170 /* */
nuclear@0 171 /* count :: */
nuclear@0 172 /* The length of offsets array. */
nuclear@0 173 /* */
nuclear@0 174 /* <Return> */
nuclear@0 175 /* FreeType error code. FT_Err_Ok means success. */
nuclear@0 176 /* */
nuclear@0 177 /* <Note> */
nuclear@0 178 /* Normally you should use `FT_Raccess_Get_HeaderInfo' to get the */
nuclear@0 179 /* value for `map_offset' and `rdata_pos'. */
nuclear@0 180 /* */
nuclear@0 181 FT_BASE( FT_Error )
nuclear@0 182 FT_Raccess_Get_DataOffsets( FT_Library library,
nuclear@0 183 FT_Stream stream,
nuclear@0 184 FT_Long map_offset,
nuclear@0 185 FT_Long rdata_pos,
nuclear@0 186 FT_Long tag,
nuclear@0 187 FT_Long **offsets,
nuclear@0 188 FT_Long *count );
nuclear@0 189
nuclear@0 190
nuclear@0 191 FT_END_HEADER
nuclear@0 192
nuclear@0 193 #endif /* __FTRFORK_H__ */
nuclear@0 194
nuclear@0 195
nuclear@0 196 /* END */