xref: /aosp_15_r20/external/skia/modules/skparagraph/utils/TestFontCollection.h (revision c8dee2aa9b3f27cf6c858bd81872bdeb2c07ed17)
1*c8dee2aaSAndroid Build Coastguard Worker // Copyright 2019 Google LLC.
2*c8dee2aaSAndroid Build Coastguard Worker #include "modules/skparagraph/include/FontCollection.h"
3*c8dee2aaSAndroid Build Coastguard Worker #include "modules/skparagraph/include/TypefaceFontProvider.h"
4*c8dee2aaSAndroid Build Coastguard Worker #include "src/core/SkFontDescriptor.h"
5*c8dee2aaSAndroid Build Coastguard Worker 
6*c8dee2aaSAndroid Build Coastguard Worker #include <string>
7*c8dee2aaSAndroid Build Coastguard Worker 
8*c8dee2aaSAndroid Build Coastguard Worker namespace skia {
9*c8dee2aaSAndroid Build Coastguard Worker namespace textlayout {
10*c8dee2aaSAndroid Build Coastguard Worker class TestFontCollection : public FontCollection {
11*c8dee2aaSAndroid Build Coastguard Worker public:
12*c8dee2aaSAndroid Build Coastguard Worker     // if load is true, will load the fonts (using Freetype, Core Text, or DirectWrite) from
13*c8dee2aaSAndroid Build Coastguard Worker     // resourceDir.
14*c8dee2aaSAndroid Build Coastguard Worker     TestFontCollection(const std::string& resourceDir, bool testOnly = false, bool loadFonts = true);
15*c8dee2aaSAndroid Build Coastguard Worker 
fontsFound()16*c8dee2aaSAndroid Build Coastguard Worker     size_t fontsFound() const { return fFontsFound; }
17*c8dee2aaSAndroid Build Coastguard Worker     bool addFontFromFile(const std::string& path, const std::string& familyName = "");
18*c8dee2aaSAndroid Build Coastguard Worker 
19*c8dee2aaSAndroid Build Coastguard Worker private:
20*c8dee2aaSAndroid Build Coastguard Worker     std::string fResourceDir;
21*c8dee2aaSAndroid Build Coastguard Worker     size_t fFontsFound;
22*c8dee2aaSAndroid Build Coastguard Worker     sk_sp<TypefaceFontProvider> fFontProvider;
23*c8dee2aaSAndroid Build Coastguard Worker     std::string fDirs;
24*c8dee2aaSAndroid Build Coastguard Worker };
25*c8dee2aaSAndroid Build Coastguard Worker }  // namespace textlayout
26*c8dee2aaSAndroid Build Coastguard Worker }  // namespace skia
27