| OLD | NEW |
| (Empty) |
| 1 /*************************************************************************** | |
| 2 * | |
| 3 * Copyright (C) 1998-2013, International Business Machines | |
| 4 * Corporation and others. All Rights Reserved. | |
| 5 * | |
| 6 ************************************************************************/ | |
| 7 | |
| 8 #ifndef __SFNT_H | |
| 9 #define __SFNT_H | |
| 10 | |
| 11 #include "layout/LETypes.h" | |
| 12 | |
| 13 U_NAMESPACE_USE | |
| 14 | |
| 15 #ifndef ANY_NUMBER | |
| 16 #define ANY_NUMBER 1 | |
| 17 #endif | |
| 18 | |
| 19 struct DirectoryEntry | |
| 20 { | |
| 21 le_uint32 tag; | |
| 22 le_uint32 checksum; | |
| 23 le_uint32 offset; | |
| 24 le_uint32 length; | |
| 25 }; | |
| 26 | |
| 27 #ifndef __cplusplus | |
| 28 typedef struct DirectoryEntry DirectoryEntry; | |
| 29 #endif | |
| 30 | |
| 31 struct SFNTDirectory | |
| 32 { | |
| 33 le_uint32 scalerType; | |
| 34 le_uint16 numTables; | |
| 35 le_uint16 searchRange; | |
| 36 le_uint16 entrySelector; | |
| 37 le_uint16 rangeShift; | |
| 38 DirectoryEntry tableDirectory[ANY_NUMBER]; | |
| 39 }; | |
| 40 | |
| 41 #ifndef __cplusplus | |
| 42 typedef struct SFNTDirectory SFNTDirectory; | |
| 43 #endif | |
| 44 | |
| 45 | |
| 46 struct CMAPEncodingSubtableHeader | |
| 47 { | |
| 48 le_uint16 platformID; | |
| 49 le_uint16 platformSpecificID; | |
| 50 le_uint32 encodingOffset; | |
| 51 }; | |
| 52 | |
| 53 #ifndef __cplusplus | |
| 54 typedef struct CMAPEncodingSubtableHeader CMAPEncodingSubtableHeader; | |
| 55 #endif | |
| 56 | |
| 57 struct CMAPTable | |
| 58 { | |
| 59 le_uint16 version; | |
| 60 le_uint16 numberSubtables; | |
| 61 CMAPEncodingSubtableHeader encodingSubtableHeaders[ANY_NUMBER]; | |
| 62 }; | |
| 63 | |
| 64 #ifndef __cplusplus | |
| 65 typedef struct CMAPTable CMAPTable; | |
| 66 #endif | |
| 67 | |
| 68 struct CMAPEncodingSubtable | |
| 69 { | |
| 70 le_uint16 format; | |
| 71 le_uint16 length; | |
| 72 le_uint16 language; | |
| 73 }; | |
| 74 | |
| 75 #ifndef __cplusplus | |
| 76 typedef struct CMAPEncodingSubtable CMAPEncodingSubtable; | |
| 77 #endif | |
| 78 | |
| 79 #ifdef __cplusplus | |
| 80 struct CMAPFormat0Encoding : CMAPEncodingSubtable | |
| 81 { | |
| 82 le_uint8 glyphIndexArray[256]; | |
| 83 }; | |
| 84 #else | |
| 85 struct CMAPFormat0Encoding | |
| 86 { | |
| 87 CMAPEncodingSubtable base; | |
| 88 | |
| 89 le_uint8 glyphIndexArray[256]; | |
| 90 }; | |
| 91 | |
| 92 typedef struct CMAPFormat0Encoding CMAPFormat0Encoding; | |
| 93 #endif | |
| 94 | |
| 95 struct CMAPFormat2Subheader | |
| 96 { | |
| 97 le_uint16 firstCode; | |
| 98 le_uint16 entryCount; | |
| 99 le_int16 idDelta; | |
| 100 le_uint16 idRangeOffset; | |
| 101 }; | |
| 102 | |
| 103 #ifndef __cplusplus | |
| 104 typedef struct CMAPFormat2Subheader CMAPFormat2Subheader; | |
| 105 #endif | |
| 106 | |
| 107 #ifdef __cplusplus | |
| 108 struct CMAPFormat2Encoding : CMAPEncodingSubtable | |
| 109 { | |
| 110 le_uint16 subHeadKeys[256]; | |
| 111 CMAPFormat2Subheader subheaders[ANY_NUMBER]; | |
| 112 }; | |
| 113 #else | |
| 114 struct CMAPFormat2Encoding | |
| 115 { | |
| 116 CMAPEncodingSubtable base; | |
| 117 | |
| 118 le_uint16 subHeadKeys[256]; | |
| 119 CMAPFormat2Subheader subheaders[ANY_NUMBER]; | |
| 120 }; | |
| 121 | |
| 122 typedef struct CMAPFormat2Encoding CMAPFormat2Encoding; | |
| 123 #endif | |
| 124 | |
| 125 #ifdef __cplusplus | |
| 126 struct CMAPFormat4Encoding : CMAPEncodingSubtable | |
| 127 { | |
| 128 le_uint16 segCountX2; | |
| 129 le_uint16 searchRange; | |
| 130 le_uint16 entrySelector; | |
| 131 le_uint16 rangeShift; | |
| 132 le_uint16 endCodes[ANY_NUMBER]; | |
| 133 /* | |
| 134 le_uint16 reservedPad; | |
| 135 le_uint16 startCodes[ANY_NUMBER]; | |
| 136 le_uint16 idDelta[ANY_NUMBER]; | |
| 137 le_uint16 idRangeOffset[ANY_NUMBER]; | |
| 138 le_uint16 glyphIndexArray[ANY_NUMBER]; | |
| 139 */ | |
| 140 }; | |
| 141 #else | |
| 142 struct CMAPFormat4Encoding | |
| 143 { | |
| 144 CMAPEncodingSubtable base; | |
| 145 | |
| 146 le_uint16 segCountX2; | |
| 147 le_uint16 searchRange; | |
| 148 le_uint16 entrySelector; | |
| 149 le_uint16 rangeShift; | |
| 150 le_uint16 endCodes[ANY_NUMBER]; | |
| 151 /* | |
| 152 // le_uint16 reservedPad; | |
| 153 // le_uint16 startCodes[ANY_NUMBER]; | |
| 154 // le_uint16 idDelta[ANY_NUMBER]; | |
| 155 // le_uint16 idRangeOffset[ANY_NUMBER]; | |
| 156 // le_uint16 glyphIndexArray[ANY_NUMBER]; | |
| 157 */ | |
| 158 }; | |
| 159 | |
| 160 typedef struct CMAPFormat4Encoding CMAPFormat4Encoding; | |
| 161 #endif | |
| 162 | |
| 163 #ifdef __cplusplus | |
| 164 struct CMAPFormat6Encoding : CMAPEncodingSubtable | |
| 165 { | |
| 166 le_uint16 firstCode; | |
| 167 le_uint16 entryCount; | |
| 168 le_uint16 glyphIndexArray[ANY_NUMBER]; | |
| 169 }; | |
| 170 #else | |
| 171 struct CMAPFormat6Encoding | |
| 172 { | |
| 173 CMAPEncodingSubtable base; | |
| 174 | |
| 175 le_uint16 firstCode; | |
| 176 le_uint16 entryCount; | |
| 177 le_uint16 glyphIndexArray[ANY_NUMBER]; | |
| 178 }; | |
| 179 | |
| 180 typedef struct CMAPFormat6Encoding CMAPFormat6Encoding; | |
| 181 #endif | |
| 182 | |
| 183 struct CMAPEncodingSubtable32 | |
| 184 { | |
| 185 le_uint32 format; | |
| 186 le_uint32 length; | |
| 187 le_uint32 language; | |
| 188 }; | |
| 189 | |
| 190 #ifndef __cplusplus | |
| 191 typedef struct CMAPEncodingSubtable32 CMAPEncodingSubtable32; | |
| 192 #endif | |
| 193 | |
| 194 struct CMAPGroup | |
| 195 { | |
| 196 le_uint32 startCharCode; | |
| 197 le_uint32 endCharCode; | |
| 198 le_uint32 startGlyphCode; | |
| 199 }; | |
| 200 | |
| 201 #ifndef __cplusplus | |
| 202 typedef struct CMAPGroup CMAPGroup; | |
| 203 #endif | |
| 204 | |
| 205 #ifdef __cplusplus | |
| 206 struct CMAPFormat8Encoding : CMAPEncodingSubtable32 | |
| 207 { | |
| 208 le_uint32 is32[65536/32]; | |
| 209 le_uint32 nGroups; | |
| 210 CMAPGroup groups[ANY_NUMBER]; | |
| 211 }; | |
| 212 #else | |
| 213 struct CMAPFormat8Encoding | |
| 214 { | |
| 215 CMAPEncodingSubtable32 base; | |
| 216 | |
| 217 le_uint32 is32[65536/32]; | |
| 218 le_uint32 nGroups; | |
| 219 CMAPGroup groups[ANY_NUMBER]; | |
| 220 }; | |
| 221 | |
| 222 typedef struct CMAPFormat8Encoding CMAPFormat8Encoding; | |
| 223 #endif | |
| 224 | |
| 225 #ifdef __cplusplus | |
| 226 struct CMAPFormat10Encoding : CMAPEncodingSubtable32 | |
| 227 { | |
| 228 le_uint32 startCharCode; | |
| 229 le_uint32 numCharCodes; | |
| 230 le_uint16 glyphs[ANY_NUMBER]; | |
| 231 }; | |
| 232 #else | |
| 233 struct CMAPFormat10Encoding | |
| 234 { | |
| 235 CMAPEncodingSubtable32 base; | |
| 236 | |
| 237 le_uint32 startCharCode; | |
| 238 le_uint32 numCharCodes; | |
| 239 le_uint16 glyphs[ANY_NUMBER]; | |
| 240 }; | |
| 241 | |
| 242 typedef struct CMAPFormat10Encoding CMAPFormat10Encoding; | |
| 243 #endif | |
| 244 | |
| 245 #ifdef __cplusplus | |
| 246 struct CMAPFormat12Encoding : CMAPEncodingSubtable32 | |
| 247 { | |
| 248 le_uint32 nGroups; | |
| 249 CMAPGroup groups[ANY_NUMBER]; | |
| 250 }; | |
| 251 #else | |
| 252 struct CMAPFormat12Encoding | |
| 253 { | |
| 254 CMAPEncodingSubtable32 base; | |
| 255 | |
| 256 le_uint32 nGroups; | |
| 257 CMAPGroup groups[ANY_NUMBER]; | |
| 258 }; | |
| 259 | |
| 260 typedef struct CMAPFormat12Encoding CMAPFormat12Encoding; | |
| 261 #endif | |
| 262 | |
| 263 typedef le_int32 fixed; | |
| 264 | |
| 265 struct BigDate | |
| 266 { | |
| 267 le_uint32 bc; | |
| 268 le_uint32 ad; | |
| 269 }; | |
| 270 | |
| 271 #ifndef __cplusplus | |
| 272 typedef struct BigDate BigDate; | |
| 273 #endif | |
| 274 | |
| 275 struct HEADTable | |
| 276 { | |
| 277 fixed version; | |
| 278 fixed fontRevision; | |
| 279 le_uint32 checksumAdjustment; | |
| 280 le_uint32 magicNumber; | |
| 281 le_uint16 flags; | |
| 282 le_uint16 unitsPerEm; | |
| 283 BigDate created; | |
| 284 BigDate modified; | |
| 285 le_int16 xMin; | |
| 286 le_int16 yMin; | |
| 287 le_int16 xMax; | |
| 288 le_int16 yMax; | |
| 289 le_int16 lowestRecPPEM; | |
| 290 le_int16 fontDirectionHint; | |
| 291 le_int16 indexToLocFormat; | |
| 292 le_int16 glyphDataFormat; | |
| 293 }; | |
| 294 | |
| 295 #ifndef __cplusplus | |
| 296 typedef struct HEADTable HEADTable; | |
| 297 #endif | |
| 298 | |
| 299 struct MAXPTable | |
| 300 { | |
| 301 fixed version; | |
| 302 le_uint16 numGlyphs; | |
| 303 le_uint16 maxPoints; | |
| 304 le_uint16 maxContours; | |
| 305 le_uint16 maxComponentPoints; | |
| 306 le_uint16 maxComponentContours; | |
| 307 le_uint16 maxZones; | |
| 308 le_uint16 maxTwilightPoints; | |
| 309 le_uint16 maxStorage; | |
| 310 le_uint16 maxFunctionDefs; | |
| 311 le_uint16 maxInstructionDefs; | |
| 312 le_uint16 maxStackElements; | |
| 313 le_uint16 maxSizeOfInstructions; | |
| 314 le_uint16 maxComponentElements; | |
| 315 le_uint16 maxComponentDepth; | |
| 316 }; | |
| 317 | |
| 318 #ifndef __cplusplus | |
| 319 typedef struct MAXPTable MAXPTable; | |
| 320 #endif | |
| 321 | |
| 322 struct HHEATable | |
| 323 { | |
| 324 fixed version; | |
| 325 le_int16 ascent; | |
| 326 le_int16 descent; | |
| 327 le_int16 lineGap; | |
| 328 le_uint16 advanceWidthMax; | |
| 329 le_int16 minLeftSideBearing; | |
| 330 le_int16 minRightSideBearing; | |
| 331 le_int16 xMaxExtent; | |
| 332 le_int16 caretSlopeRise; | |
| 333 le_int16 caretSlopeRun; | |
| 334 le_int16 caretOffset; | |
| 335 le_int16 reserved1; | |
| 336 le_int16 reserved2; | |
| 337 le_int16 reserved3; | |
| 338 le_int16 reserved4; | |
| 339 le_int16 metricDataFormat; | |
| 340 le_uint16 numOfLongHorMetrics; | |
| 341 }; | |
| 342 | |
| 343 #ifndef __cplusplus | |
| 344 typedef struct HHEATable HHEATable; | |
| 345 #endif | |
| 346 | |
| 347 struct LongHorMetric | |
| 348 { | |
| 349 le_uint16 advanceWidth; | |
| 350 le_int16 leftSideBearing; | |
| 351 }; | |
| 352 | |
| 353 #ifndef __cplusplus | |
| 354 typedef struct LongHorMetric LongHorMetric; | |
| 355 #endif | |
| 356 | |
| 357 struct HMTXTable | |
| 358 { | |
| 359 LongHorMetric hMetrics[ANY_NUMBER]; /* ANY_NUMBER = numOfLongHorMetric
s from hhea table */ | |
| 360 /* le_int16 leftSideBearing[ANY_NUMBER]; ANY_NUMBER = numGlyphs - numOfL
ongHorMetrics */ | |
| 361 }; | |
| 362 | |
| 363 #ifndef __cplusplus | |
| 364 typedef struct HMTXTable HMTXTable; | |
| 365 #endif | |
| 366 | |
| 367 enum PlatformID | |
| 368 { | |
| 369 PLATFORM_UNICODE = 0, | |
| 370 PLATFORM_MACINTOSH = 1, | |
| 371 PLATFORM_ISO = 2, | |
| 372 PLATFORM_MICROSOFT = 3, | |
| 373 PLATFORM_CUSTOM = 4 | |
| 374 }; | |
| 375 | |
| 376 enum MacintoshEncodingID | |
| 377 { | |
| 378 MACINTOSH_ROMAN = 0 | |
| 379 }; | |
| 380 | |
| 381 enum MacintoshLanguageID | |
| 382 { | |
| 383 MACINTOSH_ENGLISH = 0 | |
| 384 }; | |
| 385 | |
| 386 enum MicrosoftEncodingID | |
| 387 { | |
| 388 MICROSOFT_UNICODE_BMP = 1, | |
| 389 MICROSOFT_UNICODE_FULL = 10 | |
| 390 }; | |
| 391 | |
| 392 enum MicrosoftLanguageID | |
| 393 { | |
| 394 MICROSOFT_ENGLISH = 0x409 | |
| 395 }; | |
| 396 | |
| 397 enum NameID | |
| 398 { | |
| 399 NAME_COPYRIGHT_NOTICE = 0, | |
| 400 NAME_FONT_FAMILY = 1, | |
| 401 NAME_FONT_SUB_FAMILY = 2, | |
| 402 NAME_UNIQUE_FONT_ID = 3, | |
| 403 NAME_FULL_FONT_NAME = 4, | |
| 404 NAME_VERSION_STRING = 5, | |
| 405 NAME_POSTSCRIPT_NAME = 6, | |
| 406 NAME_TRADEMARK = 7, | |
| 407 NAME_MANUFACTURER = 8, | |
| 408 NAME_DESIGNER = 9, | |
| 409 NAME_DESCRIPTION = 10, | |
| 410 NAME_VENDOR_URL = 11, | |
| 411 NAME_DESIGNER_URL = 12, | |
| 412 NAME_LICENSE_DESCRIPTION = 13, | |
| 413 NAME_LICENSE_URL = 14, | |
| 414 NAME_RESERVED = 15, | |
| 415 NAME_PREFERRED_FAMILY = 16, | |
| 416 NAME_PREFERRED_SUB_FAMILY = 17, | |
| 417 NAME_COMPATIBLE_FULL = 18, | |
| 418 NAME_SAMPLE_TEXT = 19, | |
| 419 NAME_POSTSCRIPT_CID = 20 | |
| 420 }; | |
| 421 | |
| 422 struct NameRecord | |
| 423 { | |
| 424 le_uint16 platformID; | |
| 425 le_uint16 encodingID; | |
| 426 le_uint16 languageID; | |
| 427 le_uint16 nameID; | |
| 428 le_uint16 length; | |
| 429 le_uint16 offset; | |
| 430 }; | |
| 431 | |
| 432 #ifndef __cplusplus | |
| 433 typedef struct NameRecord NameRecord; | |
| 434 #endif | |
| 435 | |
| 436 struct NAMETable | |
| 437 { | |
| 438 le_uint16 version; | |
| 439 le_uint16 count; | |
| 440 le_uint16 stringOffset; | |
| 441 NameRecord nameRecords[ANY_NUMBER]; | |
| 442 }; | |
| 443 | |
| 444 #ifndef __cplusplus | |
| 445 typedef struct NAMETable NAMETable; | |
| 446 #endif | |
| 447 | |
| 448 #endif | |
| 449 | |
| OLD | NEW |