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

Unified Diff: src/ports/SkFontHost_linux.cpp

Issue 382053003: Update find_name_and_attributes to take ttc index. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Move find_name_and_attributes to SkTypeface_FreeType::ScanFont. Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/ports/SkFontHost_fontconfig.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ports/SkFontHost_linux.cpp
diff --git a/src/ports/SkFontHost_linux.cpp b/src/ports/SkFontHost_linux.cpp
index d6a020067be9ec0d833947197cc28a511619e70e..498d69ffe03f64f5d3fc31a83e52c60bf03057f8 100644
--- a/src/ports/SkFontHost_linux.cpp
+++ b/src/ports/SkFontHost_linux.cpp
@@ -25,15 +25,12 @@
# define SK_FONT_FILE_PREFIX "/usr/share/fonts/truetype/"
#endif
-bool find_name_and_attributes(SkStream* stream, SkString* name,
- SkTypeface::Style* style, bool* isFixedPitch);
-
///////////////////////////////////////////////////////////////////////////////
/** The base SkTypeface implementation for the custom font manager. */
class SkTypeface_Custom : public SkTypeface_FreeType {
public:
- SkTypeface_Custom(Style style, bool sysFont, bool isFixedPitch, const SkString familyName)
+ SkTypeface_Custom(Style style, bool isFixedPitch, bool sysFont, const SkString familyName)
: INHERITED(style, SkTypefaceCache::NewFontID(), isFixedPitch)
, fIsSysFont(sysFont), fFamilyName(familyName)
{ }
@@ -61,7 +58,7 @@ private:
*/
class SkTypeface_Empty : public SkTypeface_Custom {
public:
- SkTypeface_Empty() : INHERITED(SkTypeface::kNormal, true, false, SkString()) {}
+ SkTypeface_Empty() : INHERITED(SkTypeface::kNormal, false, true, SkString()) {}
virtual const char* getUniqueString() const SK_OVERRIDE { return NULL; }
@@ -75,10 +72,10 @@ private:
/** The stream SkTypeface implementation for the custom font manager. */
class SkTypeface_Stream : public SkTypeface_Custom {
public:
- SkTypeface_Stream(Style style, bool sysFont, SkStream* stream,
- bool isFixedPitch, const SkString familyName)
- : INHERITED(style, sysFont, isFixedPitch, familyName)
- , fStream(SkRef(stream))
+ SkTypeface_Stream(Style style, bool isFixedPitch, bool sysFont, const SkString familyName,
+ SkStream* stream, int ttcIndex)
+ : INHERITED(style, isFixedPitch, sysFont, familyName)
+ , fStream(SkRef(stream)), fTtcIndex(ttcIndex)
{ }
virtual const char* getUniqueString() const SK_OVERRIDE { return NULL; }
@@ -91,6 +88,7 @@ protected:
private:
SkAutoTUnref<SkStream> fStream;
+ int fTtcIndex;
typedef SkTypeface_Custom INHERITED;
};
@@ -98,9 +96,9 @@ private:
/** The file SkTypeface implementation for the custom font manager. */
class SkTypeface_File : public SkTypeface_Custom {
public:
- SkTypeface_File(Style style, bool sysFont, const char path[],
- bool isFixedPitch, const SkString familyName)
- : INHERITED(style, sysFont, isFixedPitch, familyName)
+ SkTypeface_File(Style style, bool isFixedPitch, bool sysFont, const SkString familyName,
+ const char path[])
+ : INHERITED(style, isFixedPitch, sysFont, familyName)
, fPath(path)
{ }
@@ -269,8 +267,9 @@ protected:
bool isFixedPitch;
SkTypeface::Style style;
SkString name;
- if (find_name_and_attributes(stream, &name, &style, &isFixedPitch)) {
- return SkNEW_ARGS(SkTypeface_Stream, (style, false, stream, isFixedPitch, name));
+ if (SkTypeface_FreeType::ScanFont(stream, ttcIndex, &name, &style, &isFixedPitch)) {
+ return SkNEW_ARGS(SkTypeface_Stream, (style, isFixedPitch, false, name,
+ stream, ttcIndex));
} else {
return NULL;
}
@@ -311,7 +310,7 @@ private:
SkTypeface::Style* style, bool* isFixedPitch) {
SkAutoTUnref<SkStream> stream(SkStream::NewFromFile(path));
if (stream.get()) {
- return find_name_and_attributes(stream, name, style, isFixedPitch);
+ return SkTypeface_FreeType::ScanFont(stream, 0, name, style, isFixedPitch);
} else {
SkDebugf("---- failed to open <%s> as a font\n", path);
return false;
@@ -337,10 +336,10 @@ private:
SkTypeface_Custom* tf = SkNEW_ARGS(SkTypeface_File, (
style,
- true, // system-font (cannot delete)
- filename.c_str(),
isFixedPitch,
- realname));
+ true, // system-font (cannot delete)
+ realname,
+ filename.c_str()));
SkFontStyleSet_Custom* addTo = this->onMatchFamily(realname.c_str());
if (NULL == addTo) {
« no previous file with comments | « src/ports/SkFontHost_fontconfig.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698