| /* | 
 |  * 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 */ | 
 | #ifndef SKFONTCONFIGINTERFACE_DIRECT_H_ | 
 | #define SKFONTCONFIGINTERFACE_DIRECT_H_ | 
 |  | 
 | #include "include/ports/SkFontConfigInterface.h" | 
 |  | 
 | #include <fontconfig/fontconfig.h> | 
 |  | 
 | class SkFontConfigInterfaceDirect : public SkFontConfigInterface { | 
 | public: | 
 |     /** Create around a FontConfig instance. | 
 |      *  If 'fc' is nullptr, each method call will use the current config. | 
 |      *  Takes ownership of 'fc' and will call FcConfigDestroy on it. | 
 |      */ | 
 |     SkFontConfigInterfaceDirect(FcConfig* fc); | 
 |     ~SkFontConfigInterfaceDirect() override; | 
 |  | 
 |     bool matchFamilyName(const char familyName[], | 
 |                          SkFontStyle requested, | 
 |                          FontIdentity* outFontIdentifier, | 
 |                          SkString* outFamilyName, | 
 |                          SkFontStyle* outStyle) override; | 
 |  | 
 |     SkStreamAsset* openStream(const FontIdentity&) override; | 
 |  | 
 | protected: | 
 |     virtual bool isAccessible(const char* filename); | 
 |  | 
 | private: | 
 |     FcConfig * const fFC; | 
 |     bool isValidPattern(FcPattern* pattern); | 
 |     FcPattern* MatchFont(FcFontSet* font_set, const char* post_config_family, | 
 |                          const SkString& family); | 
 |     using INHERITED = SkFontConfigInterface; | 
 | }; | 
 |  | 
 | #endif |