remove SkFontHost::NextLogicalFont, and add android-specific function
authorreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Tue, 26 Mar 2013 12:29:05 +0000 (12:29 +0000)
committerreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Tue, 26 Mar 2013 12:29:05 +0000 (12:29 +0000)
SkAndroidNextLogicalTypeface

git-svn-id: http://skia.googlecode.com/svn/trunk@8386 2bbb7eff-a529-9590-31e7-b0007b416f81

include/core/SkFontHost.h
include/ports/SkTypeface_android.h
src/core/SkScalerContext.cpp
src/ports/SkFontHost_android.cpp
src/ports/SkFontHost_fontconfig.cpp
src/ports/SkFontHost_linux.cpp
src/ports/SkFontHost_mac.cpp
src/ports/SkFontHost_none.cpp
src/ports/SkFontHost_win.cpp
src/ports/SkFontHost_win_dw.cpp

index 317923f344fb3b5438905ffc41165886c8a9e6ed..4c5013fe4a044d7c0cc2cfc91950e30d89804719 100644 (file)
@@ -92,26 +92,6 @@ public:
     static LCDOrder GetSubpixelOrder();
 
 private:
-
-    /**
-     *  DEPRECATED -- will be DESTROYED
-     *
-     *  Given a "current" fontID, return a ref to the next logical typeface
-     *  when searching fonts for a given unicode value. Typically the caller
-     *  will query a given font, and if a unicode value is not supported, they
-     *  will call this, and if 0 is not returned, will search that font, and so
-     *  on. This process must be finite, and when the fonthost sees a
-     *  font with no logical successor, it must return NULL.
-     *
-     *  The original fontID is also provided. This is the initial font that was
-     *  stored in the typeface of the caller. It is provided as an aid to choose
-     *  the best next logical font. e.g. If the original font was bold or serif,
-     *  but the 2nd in the logical chain was plain, then a subsequent call to
-     *  get the 3rd can still inspect the original, and try to match its
-     *  stylistic attributes.
-     */
-    static SkTypeface* NextLogicalTypeface(SkFontID currFontID, SkFontID origFontID);
-
     /** Return a new, closest matching typeface given either an existing family
         (specified by a typeface in that family) or by a familyName and a
         requested style.
index 1ee17e6eaa5ce7007d33eb7403c23566d0a31f5f..eb0cd25253ae2f16c21fc49e186b8229322b7fb7 100644 (file)
@@ -78,4 +78,22 @@ SK_API bool SkGetFallbackFamilyNameForChar(SkUnichar uni, SkString* name);
 SK_API void SkUseTestFontConfigFile(const char* mainconf, const char* fallbackconf,
                                     const char* fontsdir);
 
+/**
+ *  Given a "current" fontID, return a ref to the next logical typeface
+ *  when searching fonts for a given unicode value. Typically the caller
+ *  will query a given font, and if a unicode value is not supported, they
+ *  will call this, and if 0 is not returned, will search that font, and so
+ *  on. This process must be finite, and when the fonthost sees a
+ *  font with no logical successor, it must return NULL.
+ *
+ *  The original fontID is also provided. This is the initial font that was
+ *  stored in the typeface of the caller. It is provided as an aid to choose
+ *  the best next logical font. e.g. If the original font was bold or serif,
+ *  but the 2nd in the logical chain was plain, then a subsequent call to
+ *  get the 3rd can still inspect the original, and try to match its
+ *  stylistic attributes.
+ */
+static SkTypeface* SkAndroidNextLogicalTypeface(SkFontID currFontID,
+                                                SkFontID origFontID);
+
 #endif
index 98b5a7a43f9cd5dcbd78a9d32245f33ab626c972..c02dbca93bb49c2baf869ca37594f8ee9bdad034 100644 (file)
@@ -22,6 +22,9 @@
 #include "SkStroke.h"
 #include "SkThread.h"
 
+#ifdef SK_BUILD_FOR_ANDROID
+    #include "SkTypeface_android.h"
+#endif
 
 #define ComputeBWRowBytes(width)        (((unsigned)(width) + 7) >> 3)
 
@@ -121,8 +124,8 @@ SkScalerContext::~SkScalerContext() {
 // there are no more entries in the fallback chain.
 SkScalerContext* SkScalerContext::allocNextContext() const {
 #ifdef SK_BUILD_FOR_ANDROID
-    SkTypeface* newFace = SkFontHost::NextLogicalTypeface(fRec.fFontID,
-                                                          fRec.fOrigFontID);
+    SkTypeface* newFace = SkAndroidNextLogicalTypeface(fRec.fFontID,
+                                                       fRec.fOrigFontID);
     if (0 == newFace) {
         return NULL;
     }
index 1dc570989bad33f8c34548e2eb3725b60fef25aa..d1bd9929f91090640cac9828358576193049e4e8 100644 (file)
@@ -801,7 +801,8 @@ SkTypeface* SkFontHost::CreateTypeface(const SkTypeface* familyFace,
     return tf;
 }
 
-SkTypeface* SkFontHost::NextLogicalTypeface(SkFontID currFontID, SkFontID origFontID) {
+SkTypeface* SkAndroidNextLogicalTypeface(SkFontID currFontID,
+                                         SkFontID origFontID) {
 #if defined(SK_BUILD_FOR_ANDROID) && !defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)
     // Skia does not support font fallback for ndk applications in order to
     // enable clients such as WebKit to customize their font selection.
index 4955057b5599ce82a8f4205ff50f0f41394ae3b6..f66be28fdb12a7faedd6730840d12289fae3a04b 100644 (file)
@@ -175,14 +175,6 @@ SkTypeface* SkFontHost::CreateTypefaceFromFile(const char path[]) {
 
 ///////////////////////////////////////////////////////////////////////////////
 
-// DEPRECATED
-SkTypeface* SkFontHost::NextLogicalTypeface(SkFontID curr, SkFontID orig) {
-    // We don't handle font fallback.
-    return NULL;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
 SkStream* FontConfigTypeface::onOpenStream(int* ttcIndex) const {
     SkStream* stream = this->getLocalStream();
     if (stream) {
index 3fdcf9833e2256514f7d12786a203887b1235dfa..0ddcdb767ab540fff15d8dcf11d08d25e0c13f22 100644 (file)
@@ -496,10 +496,6 @@ SkTypeface* SkFontHost::CreateTypeface(const SkTypeface* familyFace,
     return tf;
 }
 
-SkTypeface* SkFontHost::NextLogicalTypeface(SkFontID currFontID, SkFontID origFontID) {
-    return NULL;
-}
-
 ///////////////////////////////////////////////////////////////////////////////
 
 SkTypeface* SkFontHost::CreateTypefaceFromStream(SkStream* stream) {
index ec8aafd75afb71bd7eacab3af58cc089afa2fb4d..f67b9f9c2788955dd43e0a515bd31895a57c6ef6 100755 (executable)
@@ -1681,17 +1681,6 @@ SkStream* SkTypeface_Mac::onOpenStream(int* ttcIndex) const {
     return stream;
 }
 
-///////////////////////////////////////////////////////////////////////////////
-
-// DEPRECATED
-SkTypeface* SkFontHost::NextLogicalTypeface(SkFontID currFontID, SkFontID origFontID) {
-    SkTypeface* face = GetDefaultFace();
-    if (face->uniqueID() == currFontID) {
-        face = NULL;
-    }
-    return SkSafeRef(face);
-}
-
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
 
index e7b3f8a79b3ca1a8041248503ccdbf13e501ad04..6abb75db9d17a73c2ba1284efd68b0d15d742e87 100644 (file)
@@ -27,7 +27,3 @@ SkTypeface* SkFontHost::CreateTypefaceFromFile(char const*) {
     return NULL;
 }
 
-SkTypeface* SkFontHost::NextLogicalTypeface(SkFontID currFontID,
-                                            SkFontID origFontID) {
-    return NULL;
-}
index 3c585e882766f86528266feeee3ac18b33391be4..0261b2b8496bbf3065c66c9afdf3fc7f5c476b15 100755 (executable)
@@ -304,13 +304,6 @@ void SkLOGFONTFromTypeface(const SkTypeface* face, LOGFONT* lf) {
     }
 }
 
-SkTypeface* SkFontHost::NextLogicalTypeface(SkFontID currFontID, SkFontID origFontID) {
-  // Zero means that we don't have any fallback fonts for this fontID.
-  // This function is implemented on Android, but doesn't have much
-  // meaning here.
-  return NULL;
-}
-
 static void GetLogFontByID(SkFontID fontID, LOGFONT* lf) {
     LogFontTypeface* face = static_cast<LogFontTypeface*>(SkTypefaceCache::FindByID(fontID));
     if (face) {
index 32a06d7e55d43ce7b960c7b1f9edd70bc5814b85..8debc31f8747888600e323dfc47bdd2d5f4b6401 100644 (file)
@@ -41,13 +41,6 @@ static bool isLCD(const SkScalerContext::Rec& rec) {
            SkMask::kLCD32_Format == rec.fMaskFormat;
 }
 
-SkTypeface* SkFontHost::NextLogicalTypeface(SkFontID currFontID, SkFontID origFontID) {
-  // Zero means that we don't have any fallback fonts for this fontID.
-  // This function is implemented on Android, but doesn't have much
-  // meaning here.
-  return NULL;
-}
-
 ///////////////////////////////////////////////////////////////////////////////
 
 class DWriteOffscreen {