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_SHORT, 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 maxComponentDepth; 40 }; 41 42 #pragma pack(pop) 43 44 45 #include <stddef.h> 46 SK_COMPILE_ASSERT(offsetof(SkOTTableMaximumProfile_TT, maxComponentDepth) == 28, SkOTTableMaximumProfile_TT_maxComponentDepth_not_at_26); 47 SK_COMPILE_ASSERT(sizeof(SkOTTableMaximumProfile_TT) == 30, sizeof_SkOTTableMaximumProfile_TT_not_28); 48 49 #endif 50