| /* | |
| * Copyright 2013 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef SkTTCFHeader_DEFINED | |
| #define SkTTCFHeader_DEFINED | |
| #include "src/sfnt/SkOTTableTypes.h" | |
| #include "src/sfnt/SkSFNTHeader.h" | |
| #pragma pack(push, 1) | |
| struct SkTTCFHeader { | |
| SK_SFNT_ULONG ttcTag; | |
| static const SK_OT_CHAR TAG0 = 't'; | |
| static const SK_OT_CHAR TAG1 = 't'; | |
| static const SK_OT_CHAR TAG2 = 'c'; | |
| static const SK_OT_CHAR TAG3 = 'f'; | |
| static const SK_OT_ULONG TAG = SkOTTableTAG<SkTTCFHeader>::value; | |
| SK_OT_Fixed version; | |
| static const SK_OT_Fixed version_1 = SkTEndian_SwapBE32(1 << 16); | |
| static const SK_OT_Fixed version_2 = SkTEndian_SwapBE32(2 << 16); | |
| SK_OT_ULONG numOffsets; | |
| //SK_OT_ULONG offset[numOffsets] | |
| struct Version2Ext { | |
| SK_OT_ULONG dsigType; | |
| struct dsigType_None { | |
| static const SK_OT_CHAR TAG0 = 0; | |
| static const SK_OT_CHAR TAG1 = 0; | |
| static const SK_OT_CHAR TAG2 = 0; | |
| static const SK_OT_CHAR TAG3 = 0; | |
| static const SK_OT_ULONG TAG = SkOTTableTAG<dsigType_None>::value; | |
| }; | |
| struct dsigType_Format1 { | |
| static const SK_OT_CHAR TAG0 = 'D'; | |
| static const SK_OT_CHAR TAG1 = 'S'; | |
| static const SK_OT_CHAR TAG2 = 'I'; | |
| static const SK_OT_CHAR TAG3 = 'G'; | |
| static const SK_OT_ULONG TAG = SkOTTableTAG<dsigType_Format1>::value; | |
| }; | |
| SK_OT_ULONG dsigLength; //Length of DSIG table (in bytes). | |
| SK_OT_ULONG dsigOffset; //Offset of DSIG table from the beginning of file (in bytes). | |
| };// version2ext (if version == version_2) | |
| }; | |
| #pragma pack(pop) | |
| static_assert(sizeof(SkTTCFHeader) == 12, "sizeof_SkTTCFHeader_not_12"); | |
| #endif |