// Copyright 2019 Google LLC. #ifndef FontArguments_DEFINED #define FontArguments_DEFINED #include #include #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 CloneTypeface(const sk_sp& typeface) const; friend bool operator==(const FontArguments& a, const FontArguments& b); friend bool operator!=(const FontArguments& a, const FontArguments& b); friend struct std::hash; private: FontArguments() = delete; int fCollectionIndex; std::vector fCoordinates; int fPaletteIndex; std::vector fPaletteOverrides; }; } // namespace textlayout } // namespace skia namespace std { template<> struct hash { size_t operator()(const skia::textlayout::FontArguments& args) const; }; } #endif // FontArguments_DEFINED