47 lines
1.3 KiB
C
47 lines
1.3 KiB
C
|
|
// Copyright 2019 Google LLC.
|
||
|
|
#ifndef FontArguments_DEFINED
|
||
|
|
#define FontArguments_DEFINED
|
||
|
|
|
||
|
|
#include <functional>
|
||
|
|
#include <vector>
|
||
|
|
#include "include/core/SkFontArguments.h"
|
||
|
|
#include "include/core/SkTypeface.h"
|
||
|
|
|
||
|
|
namespace skia {
|
||
|
|
namespace textlayout {
|
||
|
|
|
||
|
|
class FontArguments {
|
||
|
|
public:
|
||
|
|
FontArguments(const SkFontArguments&);
|
||
|
|
FontArguments(const FontArguments&) = default;
|
||
|
|
FontArguments(FontArguments&&) = default;
|
||
|
|
|
||
|
|
FontArguments& operator=(const FontArguments&) = default;
|
||
|
|
FontArguments& operator=(FontArguments&&) = default;
|
||
|
|
|
||
|
|
sk_sp<SkTypeface> CloneTypeface(sk_sp<SkTypeface> typeface) const;
|
||
|
|
|
||
|
|
friend bool operator==(const FontArguments& a, const FontArguments& b);
|
||
|
|
friend bool operator!=(const FontArguments& a, const FontArguments& b);
|
||
|
|
friend struct std::hash<FontArguments>;
|
||
|
|
|
||
|
|
private:
|
||
|
|
FontArguments() = delete;
|
||
|
|
|
||
|
|
int fCollectionIndex;
|
||
|
|
std::vector<SkFontArguments::VariationPosition::Coordinate> fCoordinates;
|
||
|
|
int fPaletteIndex;
|
||
|
|
std::vector<SkFontArguments::Palette::Override> fPaletteOverrides;
|
||
|
|
};
|
||
|
|
|
||
|
|
} // namespace textlayout
|
||
|
|
} // namespace skia
|
||
|
|
|
||
|
|
namespace std {
|
||
|
|
template<> struct hash<skia::textlayout::FontArguments> {
|
||
|
|
size_t operator()(const skia::textlayout::FontArguments& args) const;
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif // FontArguments_DEFINED
|