1 /* 2 * Copyright 2009-2015 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 /* migrated from chrome/src/skia/ext/SkFontHost_fontconfig_direct.cpp */ 9 10 #include "SkFontConfigInterface.h" 11 #include "SkMutex.h" 12 13 #include <fontconfig/fontconfig.h> 14 15 class SkFontConfigInterfaceDirect : public SkFontConfigInterface { 16 public: 17 SkFontConfigInterfaceDirect(); 18 ~SkFontConfigInterfaceDirect() override; 19 20 bool matchFamilyName(const char familyName[], 21 SkTypeface::Style requested, 22 FontIdentity* outFontIdentifier, 23 SkString* outFamilyName, 24 SkTypeface::Style* outStyle) override; 25 SkStreamAsset* openStream(const FontIdentity&) override; 26 27 // new APIs 28 SkDataTable* getFamilyNames() override; 29 30 protected: 31 virtual bool isAccessible(const char* filename); 32 33 private: 34 SkMutex mutex_; 35 36 bool isValidPattern(FcPattern* pattern); 37 FcPattern* MatchFont(FcFontSet* font_set, const char* post_config_family, 38 const SkString& family); 39 typedef SkFontConfigInterface INHERITED; 40 }; 41