1/*
2 * Copyright 2018 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 SkFontParameters_DEFINED
9#define SkFontParameters_DEFINED
10
11#include "include/core/SkScalar.h"
12#include "include/core/SkTypes.h"
13
14struct SkFontParameters {
15 struct Variation {
16 // Parameters in a variation font axis.
17 struct Axis {
18 // Four character identifier of the font axis (weight, width, slant, italic...).
19 SkFourByteTag tag;
20 // Minimum value supported by this axis.
21 float min;
22 // Default value set by this axis.
23 float def;
24 // Maximum value supported by this axis. The maximum can equal the minimum.
25 float max;
26 // Return whether this axis is recommended to be remain hidden in user interfaces.
27 bool isHidden() const { return flags & HIDDEN; }
28 // Set this axis to be remain hidden in user interfaces.
29 void setHidden(bool hidden) { flags = hidden ? (flags | HIDDEN) : (flags & ~HIDDEN); }
30 private:
31 static constexpr uint16_t HIDDEN = 0x0001;
32 // Attributes for a font axis.
33 uint16_t flags;
34 };
35 };
36};
37
38#endif
39