| /* |
| * 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; |
| }; |