xref: /aosp_15_r20/external/skia/src/sfnt/SkOTTable_hhea.h (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker /*
2*c8dee2aaSAndroid Build Coastguard Worker  * Copyright 2012 Google Inc.
3*c8dee2aaSAndroid Build Coastguard Worker  *
4*c8dee2aaSAndroid Build Coastguard Worker  * Use of this source code is governed by a BSD-style license that can be
5*c8dee2aaSAndroid Build Coastguard Worker  * found in the LICENSE file.
6*c8dee2aaSAndroid Build Coastguard Worker  */
7*c8dee2aaSAndroid Build Coastguard Worker 
8*c8dee2aaSAndroid Build Coastguard Worker #ifndef SkOTTable_hhea_DEFINED
9*c8dee2aaSAndroid Build Coastguard Worker #define SkOTTable_hhea_DEFINED
10*c8dee2aaSAndroid Build Coastguard Worker 
11*c8dee2aaSAndroid Build Coastguard Worker #include "src/base/SkEndian.h"
12*c8dee2aaSAndroid Build Coastguard Worker #include "src/sfnt/SkOTTableTypes.h"
13*c8dee2aaSAndroid Build Coastguard Worker 
14*c8dee2aaSAndroid Build Coastguard Worker #pragma pack(push, 1)
15*c8dee2aaSAndroid Build Coastguard Worker 
16*c8dee2aaSAndroid Build Coastguard Worker struct SkOTTableHorizontalHeader {
17*c8dee2aaSAndroid Build Coastguard Worker     static const SK_OT_CHAR TAG0 = 'h';
18*c8dee2aaSAndroid Build Coastguard Worker     static const SK_OT_CHAR TAG1 = 'h';
19*c8dee2aaSAndroid Build Coastguard Worker     static const SK_OT_CHAR TAG2 = 'e';
20*c8dee2aaSAndroid Build Coastguard Worker     static const SK_OT_CHAR TAG3 = 'a';
21*c8dee2aaSAndroid Build Coastguard Worker     static const SK_OT_ULONG TAG = SkOTTableTAG<SkOTTableHorizontalHeader>::value;
22*c8dee2aaSAndroid Build Coastguard Worker 
23*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_Fixed version;
24*c8dee2aaSAndroid Build Coastguard Worker     static const SK_OT_Fixed version1 = SkTEndian_SwapBE32(0x00010000);
25*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_FWORD Ascender;
26*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_FWORD Descender;
27*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_FWORD LineGap;
28*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_UFWORD advanceWidthMax;
29*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_FWORD minLeftSideBearing;
30*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_FWORD minRightSideBearing;
31*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_FWORD xMaxExtent;
32*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_SHORT caretSlopeRise;
33*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_SHORT caretSlopeRun;
34*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_SHORT caretOffset;
35*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_SHORT Reserved24;
36*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_SHORT Reserved26;
37*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_SHORT Reserved28;
38*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_SHORT Reserved30;
39*c8dee2aaSAndroid Build Coastguard Worker     struct MetricDataFormat {
40*c8dee2aaSAndroid Build Coastguard Worker         enum Value : SK_OT_SHORT {
41*c8dee2aaSAndroid Build Coastguard Worker             CurrentFormat = SkTEndian_SwapBE16(0),
42*c8dee2aaSAndroid Build Coastguard Worker         } value;
43*c8dee2aaSAndroid Build Coastguard Worker     } metricDataFormat;
44*c8dee2aaSAndroid Build Coastguard Worker     SK_OT_USHORT numberOfHMetrics;
45*c8dee2aaSAndroid Build Coastguard Worker };
46*c8dee2aaSAndroid Build Coastguard Worker 
47*c8dee2aaSAndroid Build Coastguard Worker #pragma pack(pop)
48*c8dee2aaSAndroid Build Coastguard Worker 
49*c8dee2aaSAndroid Build Coastguard Worker 
50*c8dee2aaSAndroid Build Coastguard Worker #include <stddef.h>
51*c8dee2aaSAndroid Build Coastguard Worker static_assert(offsetof(SkOTTableHorizontalHeader, numberOfHMetrics) == 34, "SkOTTableHorizontalHeader_numberOfHMetrics_not_at_34");
52*c8dee2aaSAndroid Build Coastguard Worker static_assert(sizeof(SkOTTableHorizontalHeader) == 36, "sizeof_SkOTTableHorizontalHeader_not_36");
53*c8dee2aaSAndroid Build Coastguard Worker 
54*c8dee2aaSAndroid Build Coastguard Worker #endif
55