xref: /aosp_15_r20/external/skia/src/sfnt/SkOTTable_OS_2.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_OS_2_DEFINED
9*c8dee2aaSAndroid Build Coastguard Worker #define SkOTTable_OS_2_DEFINED
10*c8dee2aaSAndroid Build Coastguard Worker 
11*c8dee2aaSAndroid Build Coastguard Worker #include "src/sfnt/SkOTTable_OS_2_V0.h"
12*c8dee2aaSAndroid Build Coastguard Worker #include "src/sfnt/SkOTTable_OS_2_V1.h"
13*c8dee2aaSAndroid Build Coastguard Worker #include "src/sfnt/SkOTTable_OS_2_V2.h"
14*c8dee2aaSAndroid Build Coastguard Worker #include "src/sfnt/SkOTTable_OS_2_V3.h"
15*c8dee2aaSAndroid Build Coastguard Worker #include "src/sfnt/SkOTTable_OS_2_V4.h"
16*c8dee2aaSAndroid Build Coastguard Worker #include "src/sfnt/SkOTTable_OS_2_VA.h"
17*c8dee2aaSAndroid Build Coastguard Worker 
18*c8dee2aaSAndroid Build Coastguard Worker #pragma pack(push, 1)
19*c8dee2aaSAndroid Build Coastguard Worker 
20*c8dee2aaSAndroid Build Coastguard Worker struct SkOTTableOS2 {
21*c8dee2aaSAndroid Build Coastguard Worker     inline static constexpr SK_OT_CHAR TAG0 = 'O';
22*c8dee2aaSAndroid Build Coastguard Worker     inline static constexpr SK_OT_CHAR TAG1 = 'S';
23*c8dee2aaSAndroid Build Coastguard Worker     inline static constexpr SK_OT_CHAR TAG2 = '/';
24*c8dee2aaSAndroid Build Coastguard Worker     inline static constexpr SK_OT_CHAR TAG3 = '2';
25*c8dee2aaSAndroid Build Coastguard Worker     inline static constexpr SK_OT_ULONG TAG = SkOTTableTAG<SkOTTableOS2>::value;
26*c8dee2aaSAndroid Build Coastguard Worker 
27*c8dee2aaSAndroid Build Coastguard Worker     union Version {
28*c8dee2aaSAndroid Build Coastguard Worker         SK_OT_USHORT version;
29*c8dee2aaSAndroid Build Coastguard Worker 
30*c8dee2aaSAndroid Build Coastguard Worker         //original V0 TT
31*c8dee2aaSAndroid Build Coastguard Worker         struct VA : SkOTTableOS2_VA { } vA;
32*c8dee2aaSAndroid Build Coastguard Worker         struct V0 : SkOTTableOS2_V0 { } v0;
33*c8dee2aaSAndroid Build Coastguard Worker         struct V1 : SkOTTableOS2_V1 { } v1;
34*c8dee2aaSAndroid Build Coastguard Worker         struct V2 : SkOTTableOS2_V2 { } v2;
35*c8dee2aaSAndroid Build Coastguard Worker         //makes fsType 0-3 exclusive
36*c8dee2aaSAndroid Build Coastguard Worker         struct V3 : SkOTTableOS2_V3 { } v3;
37*c8dee2aaSAndroid Build Coastguard Worker         //defines fsSelection bits 7-9
38*c8dee2aaSAndroid Build Coastguard Worker         struct V4 : SkOTTableOS2_V4 { } v4;
39*c8dee2aaSAndroid Build Coastguard Worker     } version;
40*c8dee2aaSAndroid Build Coastguard Worker };
41*c8dee2aaSAndroid Build Coastguard Worker 
42*c8dee2aaSAndroid Build Coastguard Worker #pragma pack(pop)
43*c8dee2aaSAndroid Build Coastguard Worker 
44*c8dee2aaSAndroid Build Coastguard Worker 
45*c8dee2aaSAndroid Build Coastguard Worker static_assert(sizeof(SkOTTableOS2::Version::VA) == 68, "sizeof_SkOTTableOS2__VA_not_68");
46*c8dee2aaSAndroid Build Coastguard Worker static_assert(sizeof(SkOTTableOS2::Version::V0) == 78, "sizeof_SkOTTableOS2__V0_not_78");
47*c8dee2aaSAndroid Build Coastguard Worker static_assert(sizeof(SkOTTableOS2::Version::V1) == 86, "sizeof_SkOTTableOS2__V1_not_86");
48*c8dee2aaSAndroid Build Coastguard Worker static_assert(sizeof(SkOTTableOS2::Version::V2) == 96, "sizeof_SkOTTableOS2__V2_not_96");
49*c8dee2aaSAndroid Build Coastguard Worker static_assert(sizeof(SkOTTableOS2::Version::V3) == 96, "sizeof_SkOTTableOS2__V3_not_96");
50*c8dee2aaSAndroid Build Coastguard Worker static_assert(sizeof(SkOTTableOS2::Version::V4) == 96, "sizeof_SkOTTableOS2__V4_not_96");
51*c8dee2aaSAndroid Build Coastguard Worker 
52*c8dee2aaSAndroid Build Coastguard Worker #endif
53