| /* |
| * Copyright 2018 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef SkFontParameters_DEFINED |
| #define SkFontParameters_DEFINED |
| |
| #include "include/core/SkScalar.h" |
| #include "include/core/SkTypes.h" |
| |
| struct SkFontParameters { |
| struct Variation { |
| // Parameters in a variation font axis. |
| struct Axis { |
| constexpr Axis() : tag(0), min(0), def(0), max(0), flags(0) {} |
| constexpr Axis(SkFourByteTag tag, float min, float def, float max, bool hidden) : |
| tag(tag), min(min), def(def), max(max), flags(hidden ? HIDDEN : 0) {} |
| |
| // Four character identifier of the font axis (weight, width, slant, italic...). |
| SkFourByteTag tag; |
| // Minimum value supported by this axis. |
| float min; |
| // Default value set by this axis. |
| float def; |
| // Maximum value supported by this axis. The maximum can equal the minimum. |
| float max; |
| // Return whether this axis is recommended to be remain hidden in user interfaces. |
| bool isHidden() const { return flags & HIDDEN; } |
| // Set this axis to be remain hidden in user interfaces. |
| void setHidden(bool hidden) { flags = hidden ? (flags | HIDDEN) : (flags & ~HIDDEN); } |
| private: |
| static constexpr uint16_t HIDDEN = 0x0001; |
| // Attributes for a font axis. |
| uint16_t flags; |
| }; |
| }; |
| }; |
| |
| #endif |