17839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger/* 27839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger * Copyright 2013 Google Inc. 37839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger * 47839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger * Use of this source code is governed by a BSD-style license that can be 57839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger * found in the LICENSE file. 67839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger */ 77839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 87839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger#ifndef SkTTCFHeader_DEFINED 97839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger#define SkTTCFHeader_DEFINED 107839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 117839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger#include "SkOTTableTypes.h" 127839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 137839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger#pragma pack(push, 1) 147839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 157839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenbergerstruct SkTTCFHeader { 167839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger SK_SFNT_ULONG ttcTag; 177839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_CHAR TAG0 = 't'; 187839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_CHAR TAG1 = 't'; 197839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_CHAR TAG2 = 'c'; 207839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_CHAR TAG3 = 'f'; 217839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_ULONG TAG = SkOTTableTAG<SkTTCFHeader>::value; 227839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 237839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger SK_OT_Fixed version; 247839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_Fixed version_1 = SkTEndian_SwapBE32(1 << 16); 257839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_Fixed version_2 = SkTEndian_SwapBE32(2 << 16); 267839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 277839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger SK_OT_ULONG numOffsets; 287839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger //SK_OT_ULONG offset[numOffsets] 297839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 307839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger struct Version2Ext { 317839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger SK_OT_ULONG dsigType; 327839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger struct dsigType_None { 337839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_CHAR TAG0 = 0; 347839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_CHAR TAG1 = 0; 357839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_CHAR TAG2 = 0; 367839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_CHAR TAG3 = 0; 377839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_ULONG TAG = SkOTTableTAG<dsigType_None>::value; 387839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger }; 397839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger struct dsigType_Format1 { 407839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_CHAR TAG0 = 'D'; 417839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_CHAR TAG1 = 'S'; 427839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_CHAR TAG2 = 'I'; 437839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_CHAR TAG3 = 'G'; 447839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger static const SK_OT_ULONG TAG = SkOTTableTAG<dsigType_Format1>::value; 457839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger }; 467839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger SK_OT_ULONG dsigLength; //Length of DSIG table (in bytes). 477839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger SK_OT_ULONG dsigOffset; //Offset of DSIG table from the beginning of file (in bytes). 487839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger };// version2ext (if version == version_2) 497839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger}; 507839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 517839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger#pragma pack(pop) 527839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 537839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 547839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek SollenbergerSK_COMPILE_ASSERT(sizeof(SkTTCFHeader) == 12, sizeof_SkTTCFHeader_not_12); 557839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger 567839ce1af63bf12fe7b3caa866970bbbb3afb13dDerek Sollenberger#endif 57