summaryrefslogtreecommitdiffstats
path: root/gfx/skia/skia/include/core/SkFontArguments.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /gfx/skia/skia/include/core/SkFontArguments.h
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'gfx/skia/skia/include/core/SkFontArguments.h')
-rw-r--r--gfx/skia/skia/include/core/SkFontArguments.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/gfx/skia/skia/include/core/SkFontArguments.h b/gfx/skia/skia/include/core/SkFontArguments.h
new file mode 100644
index 0000000000..a5139bb21b
--- /dev/null
+++ b/gfx/skia/skia/include/core/SkFontArguments.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2017 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SkFontArguments_DEFINED
+#define SkFontArguments_DEFINED
+
+#include "include/core/SkColor.h"
+#include "include/core/SkScalar.h"
+#include "include/core/SkTypes.h"
+
+/** Represents a set of actual arguments for a font. */
+struct SkFontArguments {
+ struct VariationPosition {
+ struct Coordinate {
+ SkFourByteTag axis;
+ float value;
+ };
+ const Coordinate* coordinates;
+ int coordinateCount;
+ };
+
+ /** Specify a palette to use and overrides for palette entries.
+ *
+ * `overrides` is a list of pairs of palette entry index and color.
+ * The overriden palette entries will use the associated color.
+ * Override pairs with palette entry indices out of range will not be applied.
+ * Later override entries override earlier ones.
+ */
+ struct Palette {
+ struct Override {
+ int index;
+ SkColor color;
+ };
+ int index;
+ const Override* overrides;
+ int overrideCount;
+ };
+
+ SkFontArguments()
+ : fCollectionIndex(0)
+ , fVariationDesignPosition{nullptr, 0}
+ , fPalette{0, nullptr, 0} {}
+
+ /** Specify the index of the desired font.
+ *
+ * Font formats like ttc, dfont, cff, cid, pfr, t42, t1, and fon may actually be indexed
+ * collections of fonts.
+ */
+ SkFontArguments& setCollectionIndex(int collectionIndex) {
+ fCollectionIndex = collectionIndex;
+ return *this;
+ }
+
+ /** Specify a position in the variation design space.
+ *
+ * Any axis not specified will use the default value.
+ * Any specified axis not actually present in the font will be ignored.
+ *
+ * @param position not copied. The value must remain valid for life of SkFontArguments.
+ */
+ SkFontArguments& setVariationDesignPosition(VariationPosition position) {
+ fVariationDesignPosition.coordinates = position.coordinates;
+ fVariationDesignPosition.coordinateCount = position.coordinateCount;
+ return *this;
+ }
+
+ int getCollectionIndex() const {
+ return fCollectionIndex;
+ }
+
+ VariationPosition getVariationDesignPosition() const {
+ return fVariationDesignPosition;
+ }
+
+ SkFontArguments& setPalette(Palette palette) {
+ fPalette.index = palette.index;
+ fPalette.overrides = palette.overrides;
+ fPalette.overrideCount = palette.overrideCount;
+ return *this;
+ }
+
+ Palette getPalette() const { return fPalette; }
+
+private:
+ int fCollectionIndex;
+ VariationPosition fVariationDesignPosition;
+ Palette fPalette;
+};
+
+#endif