SkOTTable_hhea.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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. #ifndef SkOTTable_hhea_DEFINED
  8. #define SkOTTable_hhea_DEFINED
  9. #include "src/core/SkEndian.h"
  10. #include "src/sfnt/SkOTTableTypes.h"
  11. #pragma pack(push, 1)
  12. struct SkOTTableHorizontalHeader {
  13. static const SK_OT_CHAR TAG0 = 'h';
  14. static const SK_OT_CHAR TAG1 = 'h';
  15. static const SK_OT_CHAR TAG2 = 'e';
  16. static const SK_OT_CHAR TAG3 = 'a';
  17. static const SK_OT_ULONG TAG = SkOTTableTAG<SkOTTableHorizontalHeader>::value;
  18. SK_OT_Fixed version;
  19. static const SK_OT_Fixed version1 = SkTEndian_SwapBE32(0x00010000);
  20. SK_OT_FWORD Ascender;
  21. SK_OT_FWORD Descender;
  22. SK_OT_FWORD LineGap;
  23. SK_OT_UFWORD advanceWidthMax;
  24. SK_OT_FWORD minLeftSideBearing;
  25. SK_OT_FWORD minRightSideBearing;
  26. SK_OT_FWORD xMaxExtent;
  27. SK_OT_SHORT caretSlopeRise;
  28. SK_OT_SHORT caretSlopeRun;
  29. SK_OT_SHORT caretOffset;
  30. SK_OT_SHORT Reserved24;
  31. SK_OT_SHORT Reserved26;
  32. SK_OT_SHORT Reserved28;
  33. SK_OT_SHORT Reserved30;
  34. struct MetricDataFormat {
  35. enum Value : SK_OT_SHORT {
  36. CurrentFormat = SkTEndian_SwapBE16(0),
  37. } value;
  38. } metricDataFormat;
  39. SK_OT_USHORT numberOfHMetrics;
  40. };
  41. #pragma pack(pop)
  42. #include <stddef.h>
  43. static_assert(offsetof(SkOTTableHorizontalHeader, numberOfHMetrics) == 34, "SkOTTableHorizontalHeader_numberOfHMetrics_not_at_34");
  44. static_assert(sizeof(SkOTTableHorizontalHeader) == 36, "sizeof_SkOTTableHorizontalHeader_not_36");
  45. #endif