Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: src/ports/SkFontMgr_android.cpp

Issue 1027373002: Font variations. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2014 Google Inc. 2 * Copyright 2014 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkFontConfigParser_android.h" 8 #include "SkFontConfigParser_android.h"
9 #include "SkFontDescriptor.h" 9 #include "SkFontDescriptor.h"
10 #include "SkFontHost_FreeType_common.h" 10 #include "SkFontHost_FreeType_common.h"
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 SkString fFamilyName; 44 SkString fFamilyName;
45 45
46 private: 46 private:
47 typedef SkTypeface_FreeType INHERITED; 47 typedef SkTypeface_FreeType INHERITED;
48 }; 48 };
49 49
50 class SkTypeface_AndroidSystem : public SkTypeface_Android { 50 class SkTypeface_AndroidSystem : public SkTypeface_Android {
51 public: 51 public:
52 SkTypeface_AndroidSystem(const SkString& pathName, 52 SkTypeface_AndroidSystem(const SkString& pathName,
53 int index, 53 int index,
54 const SkTArray<SkFixed, true>& axes,
54 const SkFontStyle& style, 55 const SkFontStyle& style,
55 bool isFixedPitch, 56 bool isFixedPitch,
56 const SkString& familyName, 57 const SkString& familyName,
57 const SkLanguage& lang, 58 const SkLanguage& lang,
58 FontVariant variantStyle) 59 FontVariant variantStyle)
59 : INHERITED(index, style, isFixedPitch, familyName) 60 : INHERITED(index, style, isFixedPitch, familyName)
60 , fPathName(pathName) 61 , fPathName(pathName)
61 , fLang(lang) 62 , fLang(lang)
62 , fVariantStyle(variantStyle) { } 63 , fVariantStyle(variantStyle)
64 , fAxes(axes) { }
63 65
64 virtual void onGetFontDescriptor(SkFontDescriptor* desc, 66 virtual void onGetFontDescriptor(SkFontDescriptor* desc,
65 bool* serialize) const SK_OVERRIDE { 67 bool* serialize) const SK_OVERRIDE {
66 SkASSERT(desc); 68 SkASSERT(desc);
67 SkASSERT(serialize); 69 SkASSERT(serialize);
68 desc->setFamilyName(fFamilyName.c_str()); 70 desc->setFamilyName(fFamilyName.c_str());
69 desc->setFontFileName(fPathName.c_str()); 71 desc->setFontFileName(fPathName.c_str());
70 desc->setFontIndex(fIndex); 72 desc->getFontParameters().fIndex = fIndex;
71 *serialize = false; 73 *serialize = false;
72 } 74 }
73 SkStreamAsset* onOpenStream(int* ttcIndex) const SK_OVERRIDE { 75 SkStreamAsset* onOpenStream(int* ttcIndex) const SK_OVERRIDE {
74 *ttcIndex = fIndex; 76 *ttcIndex = fIndex;
75 return SkStream::NewFromFile(fPathName.c_str()); 77 return SkStream::NewFromFile(fPathName.c_str());
76 } 78 }
79 SkStreamAsset* onOpenStream2(SkFontParameters* params) const SK_OVERRIDE {
80 params->fIndex = fIndex;
81 params->fAxis.reset(fAxes.count());
82 for (int i = 0 ; i < fAxes.count(); ++i) {
83 params->fAxis[i] = fAxes[i];
84 }
85 return SkStream::NewFromFile(fPathName.c_str());
86 }
77 87
78 const SkString fPathName; 88 const SkString fPathName;
79 const SkLanguage fLang; 89 const SkLanguage fLang;
80 const FontVariant fVariantStyle; 90 const FontVariant fVariantStyle;
91 const SkTArray<SkFixed, true> fAxes;
81 92
82 typedef SkTypeface_Android INHERITED; 93 typedef SkTypeface_Android INHERITED;
83 }; 94 };
84 95
85 class SkTypeface_AndroidStream : public SkTypeface_Android { 96 class SkTypeface_AndroidStream : public SkTypeface_Android {
86 public: 97 public:
87 SkTypeface_AndroidStream(SkStreamAsset* stream, 98 SkTypeface_AndroidStream(SkStreamAsset* stream,
88 int index, 99 int index,
89 const SkFontStyle& style, 100 const SkFontStyle& style,
90 bool isFixedPitch, 101 bool isFixedPitch,
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 } 167 }
157 168
158 // The first specified family name overrides the family name found i n the font. 169 // The first specified family name overrides the family name found i n the font.
159 // TODO: SkTypeface_AndroidSystem::onCreateFamilyNameIterator should return 170 // TODO: SkTypeface_AndroidSystem::onCreateFamilyNameIterator should return
160 // all of the specified family names in addition to the names found in the font. 171 // all of the specified family names in addition to the names found in the font.
161 if (cannonicalFamilyName != NULL) { 172 if (cannonicalFamilyName != NULL) {
162 familyName = *cannonicalFamilyName; 173 familyName = *cannonicalFamilyName;
163 } 174 }
164 175
165 fStyles.push_back().reset(SkNEW_ARGS(SkTypeface_AndroidSystem, 176 fStyles.push_back().reset(SkNEW_ARGS(SkTypeface_AndroidSystem,
166 (pathName, ttcIndex, 177 (pathName, ttcIndex, fontFile.f Axes,
167 style, isFixedWidth, familyNam e, 178 style, isFixedWidth, familyNam e,
168 lang, variant))); 179 lang, variant)));
169 } 180 }
170 } 181 }
171 182
172 int count() SK_OVERRIDE { 183 int count() SK_OVERRIDE {
173 return fStyles.count(); 184 return fStyles.count();
174 } 185 }
175 void getStyle(int index, SkFontStyle* style, SkString* name) SK_OVERRIDE { 186 void getStyle(int index, SkFontStyle* style, SkString* name) SK_OVERRIDE {
176 if (index < 0 || fStyles.count() <= index) { 187 if (index < 0 || fStyles.count() <= index) {
(...skipping 363 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 { 551 {
541 gTestFontsXml = fontsXml; 552 gTestFontsXml = fontsXml;
542 gTestFallbackFontsXml = fallbackFontsXml; 553 gTestFallbackFontsXml = fallbackFontsXml;
543 gTestBasePath = basePath; 554 gTestBasePath = basePath;
544 SkASSERT(gTestFontsXml); 555 SkASSERT(gTestFontsXml);
545 SkASSERT(gTestFallbackFontsXml); 556 SkASSERT(gTestFallbackFontsXml);
546 SkASSERT(gTestBasePath); 557 SkASSERT(gTestBasePath);
547 SkDEBUGF(("Test BasePath: %s Fonts: %s FallbackFonts: %s\n", 558 SkDEBUGF(("Test BasePath: %s Fonts: %s FallbackFonts: %s\n",
548 gTestBasePath, gTestFontsXml, gTestFallbackFontsXml)); 559 gTestBasePath, gTestFontsXml, gTestFallbackFontsXml));
549 } 560 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698