SkIBMFamilyClass.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  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 SkIBMFamilyClass_DEFINED
  8. #define SkIBMFamilyClass_DEFINED
  9. #include "src/sfnt/SkOTTableTypes.h"
  10. #pragma pack(push, 1)
  11. struct SkIBMFamilyClass {
  12. enum class Class : SK_OT_BYTE {
  13. NoClassification = 0,
  14. OldstyleSerifs = 1,
  15. TransitionalSerifs = 2,
  16. ModernSerifs = 3,
  17. ClarendonSerifs = 4,
  18. SlabSerifs = 5,
  19. //6 reserved for future use
  20. FreeformSerifs = 7,
  21. SansSerif = 8,
  22. Ornamentals = 9,
  23. Scripts = 10,
  24. //11 reserved for future use
  25. Symbolic = 12,
  26. //13-15 reserved for future use
  27. } familyClass;
  28. union SubClass {
  29. enum class OldstyleSerifs : SK_OT_BYTE {
  30. NoClassification = 0,
  31. IBMRoundedLegibility = 1,
  32. Garalde = 2,
  33. Venetian = 3,
  34. ModifiedVenetian = 4,
  35. DutchModern = 5,
  36. DutchTraditional = 6,
  37. Contemporary = 7,
  38. Calligraphic = 8,
  39. //9-14 reserved for future use
  40. Miscellaneous = 15,
  41. } oldstyleSerifs;
  42. enum class TransitionalSerifs : SK_OT_BYTE {
  43. NoClassification = 0,
  44. DirectLine = 1,
  45. Script = 2,
  46. //3-14 reserved for future use
  47. Miscellaneous = 15,
  48. } transitionalSerifs;
  49. enum class ModernSerifs : SK_OT_BYTE {
  50. NoClassification = 0,
  51. Italian = 1,
  52. Script = 2,
  53. //3-14 reserved for future use
  54. Miscellaneous = 15,
  55. } modernSerifs;
  56. enum class ClarendonSerifs : SK_OT_BYTE {
  57. NoClassification = 0,
  58. Clarendon = 1,
  59. Modern = 2,
  60. Traditional = 3,
  61. Newspaper = 4,
  62. StubSerif = 5,
  63. Monotone = 6,
  64. Typewriter = 7,
  65. //8-14 reserved for future use
  66. Miscellaneous = 15,
  67. } clarendonSerifs;
  68. enum class SlabSerifs : SK_OT_BYTE {
  69. NoClassification = 0,
  70. Monotone = 1,
  71. Humanist = 2,
  72. Geometric = 3,
  73. Swiss = 4,
  74. Typewriter = 5,
  75. //6-14 reserved for future use
  76. Miscellaneous = 15,
  77. } slabSerifs;
  78. enum class FreeformSerifs : SK_OT_BYTE {
  79. NoClassification = 0,
  80. Modern = 1,
  81. //2-14 reserved for future use
  82. Miscellaneous = 15,
  83. } freeformSerifs;
  84. enum class SansSerif : SK_OT_BYTE {
  85. NoClassification = 0,
  86. IBMNeoGrotesqueGothic = 1,
  87. Humanist = 2,
  88. LowXRoundGeometric = 3,
  89. HighXRoundGeometric = 4,
  90. NeoGrotesqueGothic = 5,
  91. ModifiedNeoGrotesqueGothic = 6,
  92. //7-8 reserved for future use
  93. TypewriterGothic = 9,
  94. Matrix = 10,
  95. //11-14 reserved for future use
  96. Miscellaneous = 15,
  97. } sansSerif;
  98. enum class Ornamentals : SK_OT_BYTE {
  99. NoClassification = 0,
  100. Engraver = 1,
  101. BlackLetter = 2,
  102. Decorative = 3,
  103. ThreeDimensional = 4,
  104. //5-14 reserved for future use
  105. Miscellaneous = 15,
  106. } ornamentals;
  107. enum class Scripts : SK_OT_BYTE {
  108. NoClassification = 0,
  109. Uncial = 1,
  110. Brush_Joined = 2,
  111. Formal_Joined = 3,
  112. Monotone_Joined = 4,
  113. Calligraphic = 5,
  114. Brush_Unjoined = 6,
  115. Formal_Unjoined = 7,
  116. Monotone_Unjoined = 8,
  117. //9-14 reserved for future use
  118. Miscellaneous = 15,
  119. } scripts;
  120. enum class Symbolic : SK_OT_BYTE {
  121. NoClassification = 0,
  122. //1-2 reserved for future use
  123. MixedSerif = 3,
  124. //4-5 reserved for future use
  125. OldstyleSerif = 6,
  126. NeoGrotesqueSansSerif = 7,
  127. //8-14 reserved for future use
  128. Miscellaneous = 15,
  129. } symbolic;
  130. } familySubClass;
  131. };
  132. #pragma pack(pop)
  133. static_assert(sizeof(SkIBMFamilyClass) == 2, "sizeof_SkIBMFamilyClass_not_2");
  134. #endif