Index: src/ports/SkFontConfigInterface_direct.h |
diff --git a/src/ports/SkFontConfigInterface_direct.h b/src/ports/SkFontConfigInterface_direct.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..450a3f0c318cd0dfe5427bc6320a8a7cbaea1599 |
--- /dev/null |
+++ b/src/ports/SkFontConfigInterface_direct.h |
@@ -0,0 +1,43 @@ |
+/* |
+ * Copyright 2009-2015 Google Inc. |
+ * |
+ * Use of this source code is governed by a BSD-style license that can be |
+ * found in the LICENSE file. |
+ */ |
+ |
+/* migrated from chrome/src/skia/ext/SkFontHost_fontconfig_direct.cpp */ |
+ |
+#include "SkFontConfigInterface.h" |
+#include "SkMutex.h" |
+ |
+#include <fontconfig/fontconfig.h> |
+ |
+class SkFontConfigInterfaceDirect : public SkFontConfigInterface { |
+public: |
+ SkFontConfigInterfaceDirect(); |
+ ~SkFontConfigInterfaceDirect() override; |
+ |
+ bool matchFamilyName(const char familyName[], |
+ SkTypeface::Style requested, |
+ FontIdentity* outFontIdentifier, |
+ SkString* outFamilyName, |
+ SkTypeface::Style* outStyle) override; |
+ SkStreamAsset* openStream(const FontIdentity&) override; |
+ |
+ // new APIs |
+ SkDataTable* getFamilyNames() override; |
+ bool matchFamilySet(const char inFamilyName[], |
+ SkString* outFamilyName, |
+ SkTArray<FontIdentity>*) override; |
+ |
+protected: |
+ virtual bool isAccessible(const char* filename); |
+ |
+private: |
+ SkMutex mutex_; |
+ |
+ bool isValidPattern(FcPattern* pattern); |
+ FcPattern* MatchFont(FcFontSet* font_set, const char* post_config_family, |
+ const SkString& family); |
+ typedef SkFontConfigInterface INHERITED; |
+}; |