1 /* 2 * Copyright 2012 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef SkOTTable_maxp_TT_DEFINED 9 #define SkOTTable_maxp_TT_DEFINED 10 11 #include "SkEndian.h" 12 #include "SkOTTableTypes.h" 13 #include "SkTypedEnum.h" 14 15 #pragma pack(push, 1) 16 17 struct SkOTTableMaximumProfile_TT { 18 SK_OT_Fixed version; 19 static const SK_OT_Fixed VERSION = SkTEndian_SwapBE32(0x00010000); 20 21 SK_OT_USHORT numGlyphs; 22 SK_OT_USHORT maxPoints; 23 SK_OT_USHORT maxContours; 24 SK_OT_USHORT maxCompositePoints; 25 SK_OT_USHORT maxCompositeContours; 26 struct MaxZones { 27 SK_TYPED_ENUM(Value, SK_OT_USHORT, 28 ((DoesNotUseTwilightZone, SkTEndian_SwapBE16(1))) 29 ((UsesTwilightZone, SkTEndian_SwapBE16(2))) 30 SK_SEQ_END, 31 (value)SK_SEQ_END) 32 } maxZones; 33 SK_OT_USHORT maxTwilightPoints; 34 SK_OT_USHORT maxStorage; 35 SK_OT_USHORT maxFunctionDefs; 36 SK_OT_USHORT maxInstructionDefs; 37 SK_OT_USHORT maxStackElements; 38 SK_OT_USHORT maxSizeOfInstructions; 39 SK_OT_USHORT maxComponentElements; 40 SK_OT_USHORT maxComponentDepth; 41 }; 42 43 #pragma pack(pop) 44 45 46 #include <stddef.h> 47 static_assert(offsetof(SkOTTableMaximumProfile_TT, maxComponentDepth) == 30, "SkOTTableMaximumProfile_TT_maxComponentDepth_not_at_30"); 48 static_assert(sizeof(SkOTTableMaximumProfile_TT) == 32, "sizeof_SkOTTableMaximumProfile_TT_not_32"); 49 50 #endif 51