Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
SkPanose.h
Go to the documentation of this file.
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 SkPanose_DEFINED
9#define SkPanose_DEFINED
10
12
13#pragma pack(push, 1)
14
15struct SkPanose {
16 //This value changes the meaning of the following 9 bytes.
17 enum class FamilyType : SK_OT_BYTE {
18 Any = 0,
19 NoFit = 1,
21 Script = 3,
22 Decorative = 4,
23 Pictoral = 5,
25
26 union Data {
28 enum class SerifStyle : SK_OT_BYTE {
29 Any = 0,
30 NoFit = 1,
31 Cove = 2,
32 ObtuseCove = 3,
33 SquareCove = 4,
35 Square = 6,
36 Thin = 7,
37 Bone = 8,
38 Exaggerated = 9,
39 Triangle = 10,
40 NormalSans = 11,
41 ObtuseSans = 12,
42 PerpSans = 13,
43 Flared = 14,
44 Rounded = 15,
46
47 enum class Weight : SK_OT_BYTE {
48 Any = 0,
49 NoFit = 1,
50 VeryLight = 2,
51 Light = 3,
52 Thin = 4,
53 Book = 5,
54 Medium = 6,
55 Demi = 7,
56 Bold = 8,
57 Heavy = 9,
58 Black = 10,
59 ExtraBlack = 11,
61
62 enum class Proportion : SK_OT_BYTE {
63 Any = 0,
64 NoFit = 1,
65 OldStyle = 2,
66 Modern = 3,
67 EvenWidth = 4,
68 Expanded = 5,
69 Condensed = 6,
70 VeryExpanded = 7,
71 VeryCondensed = 8,
72 Monospaced = 9,
74
75 enum class Contrast : SK_OT_BYTE {
76 Any = 0,
77 NoFit = 1,
78 None = 2,
79 VeryLow = 3,
80 Low = 4,
81 MediumLow = 5,
82 Medium = 6,
83 MediumHigh = 7,
84 High = 8,
85 VeryHigh = 9,
87
88#ifdef SK_WIN_PANOSE
89 //This is what Windows (and FontForge and Apple TT spec) define.
90 //The Impact font uses 9.
91 enum class StrokeVariation : SK_OT_BYTE {
92 Any = 0,
93 NoFit = 1,
94 GradualDiagonal = 2,
95 GradualTransitional = 3,
96 GradualVertical = 4,
97 GradualHorizontal = 5,
98 RapidVertical = 6,
99 RapidHorizontal = 7,
100 InstantVertical = 8,
102#else
103 //Stroke variation description in OT OS/2 ver0,ver1 is incorrect.
104 //This is what HP Panose says.
118#endif
119
134
135 enum class Letterform : SK_OT_BYTE {
136 Any = 0,
137 NoFit = 1,
138 Normal_Contact = 2,
139 Normal_Weighted = 3,
140 Normal_Boxed = 4,
142 Normal_Rounded = 6,
144 Normal_Square = 8,
145 Oblique_Contact = 9,
146 Oblique_Weighted = 10,
147 Oblique_Boxed = 11,
149 Oblique_Rounded = 13,
151 Oblique_Square = 15,
153
154 enum class Midline : SK_OT_BYTE {
155 Any = 0,
156 NoFit = 1,
160 High_Trimmed = 5,
161 High_Pointed = 6,
162 High_Serifed = 7,
165 Constant_Serifed = 10,
166 Low_Trimmed = 11,
167 Low_Pointed = 12,
168 Low_Serifed = 13,
170
171 enum class XHeight : SK_OT_BYTE {
172 Any = 0,
173 NoFit = 1,
174 Constant_Small = 2,
176 Constant_Large = 4,
177 Ducking_Small = 5,
179 Ducking_Large = 7,
182
183 struct Script {
184 enum class ToolKind : SK_OT_BYTE {
185 Any = 0,
186 NoFit = 1,
187 FlatNib = 2,
188 PressurePoint = 3,
189 Engraved = 4,
190 Ball = 5,
191 Brush = 6,
192 Rough = 7,
193 FeltPen = 8,
194 WildBrush = 9,
196
197 enum class Weight : SK_OT_BYTE {
198 Any = 0,
199 NoFit = 1,
200 VeryLight = 2,
201 Light = 3,
202 Thin = 4,
203 Book = 5,
204 Medium = 6,
205 Demi = 7,
206 Bold = 8,
207 Heavy = 9,
208 Black = 10,
209 ExtraBlack = 11,
211
212 enum class Spacing : SK_OT_BYTE {
213 Any = 0,
214 NoFit = 1,
216 Monospaced = 3,
218
219 enum class AspectRatio : SK_OT_BYTE {
220 Any = 0,
221 NoFit = 1,
222 VeryCondensed = 2,
223 Condensed = 3,
224 Normal = 4,
225 Expanded = 5,
226 VeryExpanded = 6,
228
229 enum class Contrast : SK_OT_BYTE {
230 Any = 0,
231 NoFit = 1,
232 None = 2,
233 VeryLow = 3,
234 Low = 4,
235 MediumLow = 5,
236 Medium = 6,
237 MediumHigh = 7,
238 High = 8,
239 VeryHigh = 9,
241
255
272
273 enum class Finials : SK_OT_BYTE {
274 Any = 0,
275 NoFit = 1,
276 None_NoLoops = 2,
278 None_OpenLoops = 4,
279 Sharp_NoLoops = 5,
281 Sharp_OpenLoops = 7,
282 Tapered_NoLoops = 8,
285 Round_NoLoops = 11,
287 Round_OpenLoops = 13,
289
290 enum class XAscent : SK_OT_BYTE {
291 Any = 0,
292 NoFit = 1,
293 VeryLow = 2,
294 Low = 3,
295 Medium = 4,
296 High = 5,
297 VeryHigh = 6,
300
301 struct Decorative {
302 enum class Class : SK_OT_BYTE {
303 Any = 0,
304 NoFit = 1,
305 Derivative = 2,
309 Initials = 6,
310 Cartoon = 7,
311 PictureStems = 8,
312 Ornamented = 9,
314 Collage = 11,
315 Montage = 12,
317
318 enum class Weight : SK_OT_BYTE {
319 Any = 0,
320 NoFit = 1,
321 VeryLight = 2,
322 Light = 3,
323 Thin = 4,
324 Book = 5,
325 Medium = 6,
326 Demi = 7,
327 Bold = 8,
328 Heavy = 9,
329 Black = 10,
330 ExtraBlack = 11,
332
333 enum class Aspect : SK_OT_BYTE {
334 Any = 0,
335 NoFit = 1,
336 SuperCondensed = 2,
337 VeryCondensed = 3,
338 Condensed = 4,
339 Normal = 5,
340 Extended = 6,
341 VeryExtended = 7,
342 SuperExtended = 8,
343 Monospaced = 9,
345
346 enum class Contrast : SK_OT_BYTE {
347 Any = 0,
348 NoFit = 1,
349 None = 2,
350 VeryLow = 3,
351 Low = 4,
352 MediumLow = 5,
353 Medium = 6,
354 MediumHigh = 7,
355 High = 8,
356 VeryHigh = 9,
357 HorizontalLow = 10,
358 HorizontalMedium = 11,
359 HorizontalHigh = 12,
360 Broken = 13,
362
364 Any = 0,
365 NoFit = 1,
366 Cove = 2,
367 ObtuseCove = 3,
368 SquareCove = 4,
370 Square = 6,
371 Thin = 7,
372 Oval = 8,
373 Exaggerated = 9,
374 Triangle = 10,
375 NormalSans = 11,
376 ObtuseSans = 12,
378 Flared = 14,
379 Rounded = 15,
380 Script = 16,
382
383 enum class Treatment : SK_OT_BYTE {
384 Any = 0,
385 NoFit = 1,
387 White_NoFill = 3,
388 PatternedFill = 4,
389 ComplexFill = 5,
390 ShapedFill = 6,
391 DrawnDistressed = 7,
393
394 enum class Lining : SK_OT_BYTE {
395 Any = 0,
396 NoFit = 1,
397 None = 2,
398 Inline = 3,
399 Outline = 4,
400 Engraved = 5,
401 Shadow = 6,
402 Relief = 7,
403 Backdrop = 8,
405
406 enum class Topology : SK_OT_BYTE {
407 Any = 0,
408 NoFit = 1,
409 Standard = 2,
410 Square = 3,
411 MultipleSegment = 4,
413 UnevenWeighting = 6,
414 DiverseArms = 7,
415 DiverseForms = 8,
416 LombardicForms = 9,
418 ImpliedTopology = 11,
419 HorseshoeEandA = 12,
420 Cursive = 13,
421 Blackletter = 14,
422 SwashVariance = 15,
424
426 Any = 0,
427 NoFit = 1,
429 Litterals = 3,
430 NoLowerCase = 4,
431 SmallCaps = 5,
434
435 struct Pictoral {
436 enum class Kind : SK_OT_BYTE {
437 Any = 0,
438 NoFit = 1,
439 Montages = 2,
440 Pictures = 3,
441 Shapes = 4,
442 Scientific = 5,
443 Music = 6,
444 Expert = 7,
445 Patterns = 8,
446 Boarders = 9,
447 Icons = 10,
448 Logos = 11,
449 IndustrySpecific = 12,
451
452 enum class Weight : SK_OT_BYTE {
453 NoFit = 1,
455
456 enum class Spacing : SK_OT_BYTE {
457 Any = 0,
458 NoFit = 1,
460 Monospaced = 3,
462
466
468 Any = 0,
469 NoFit = 1,
470 NoWidth = 2,
472 SuperWide = 4,
473 VeryWide = 5,
474 Wide = 6,
475 Normal = 7,
476 Narrow = 8,
477 VeryNarrow = 9,
479
481 Any = 0,
482 NoFit = 1,
483 NoWidth = 2,
485 SuperWide = 4,
486 VeryWide = 5,
487 Wide = 6,
488 Normal = 7,
489 Narrow = 8,
490 VeryNarrow = 9,
492
494 Any = 0,
495 NoFit = 1,
496 NoWidth = 2,
498 SuperWide = 4,
499 VeryWide = 5,
500 Wide = 6,
501 Normal = 7,
502 Narrow = 8,
503 VeryNarrow = 9,
505
507 Any = 0,
508 NoFit = 1,
509 NoWidth = 2,
511 SuperWide = 4,
512 VeryWide = 5,
513 Wide = 6,
514 Normal = 7,
515 Narrow = 8,
516 VeryNarrow = 9,
520};
521
522#pragma pack(pop)
523
524
525static_assert(sizeof(SkPanose) == 10, "sizeof_SkPanose_not_10");
526
527#endif
uint8_t SK_OT_BYTE
enum SkPanose::Data::Decorative::Treatment bTreatment
enum SkPanose::Data::Decorative::Topology bTopology
enum SkPanose::Data::Decorative::SerifVariant bSerifVariant
enum SkPanose::Data::Decorative::Aspect bAspect
enum SkPanose::Data::Decorative::Weight bWeight
enum SkPanose::Data::Decorative::Contrast bContrast
enum SkPanose::Data::Decorative::Class bClass
enum SkPanose::Data::Decorative::Lining bLining
enum SkPanose::Data::Decorative::RangeOfCharacters bRangeOfCharacters
enum SkPanose::Data::Pictoral::AspectRatio157 bAspectRatio157
enum SkPanose::Data::Pictoral::Weight bWeight
enum SkPanose::Data::Pictoral::Spacing bSpacing
enum SkPanose::Data::Pictoral::AspectRatio94 bAspectRatio94
enum SkPanose::Data::Pictoral::Kind bKind
enum SkPanose::Data::Pictoral::AspectRatioAndContrast bAspectRatioAndContrast
enum SkPanose::Data::Pictoral::AspectRatio119 bAspectRatio119
enum SkPanose::Data::Pictoral::AspectRatio163 bAspectRatio163
enum SkPanose::Data::Script::AspectRatio bAspectRatio
enum SkPanose::Data::Script::Topology bTopology
enum SkPanose::Data::Script::Weight bWeight
enum SkPanose::Data::Script::XAscent bXAscent
enum SkPanose::Data::Script::Spacing bSpacing
enum SkPanose::Data::Script::ToolKind bToolKind
enum SkPanose::Data::Script::Contrast bContrast
enum SkPanose::Data::Script::Finials bFinials
enum SkPanose::Data::Script::Form bForm
enum SkPanose::Data::TextAndDisplay::XHeight bXHeight
enum SkPanose::Data::TextAndDisplay::SerifStyle bSerifStyle
enum SkPanose::Data::TextAndDisplay::Midline bMidline
enum SkPanose::Data::TextAndDisplay::Proportion bProportion
enum SkPanose::Data::TextAndDisplay::StrokeVariation bStrokeVariation
enum SkPanose::Data::TextAndDisplay::Contrast bContrast
enum SkPanose::Data::TextAndDisplay::ArmStyle bArmStyle
enum SkPanose::Data::TextAndDisplay::Letterform bLetterform
enum SkPanose::Data::TextAndDisplay::Weight bWeight
enum SkPanose::FamilyType bFamilyType
union SkPanose::Data data
struct SkPanose::Data::TextAndDisplay textAndDisplay
struct SkPanose::Data::Pictoral pictoral
struct SkPanose::Data::Decorative decorative
struct SkPanose::Data::Script script