diff options
author | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-05-09 22:47:33 +0000 |
---|---|---|
committer | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-05-09 22:47:33 +0000 |
commit | e55491d84632bc69d989be793e9709d941d173b4 (patch) | |
tree | 65a27be01e160ab30701ae39a0438872046815b5 | |
parent | 3a886ccf2a49757dba4e4cba8400bb9624112ec5 (diff) |
Reverting 9083 & 9084 due to Android failures
git-svn-id: http://skia.googlecode.com/svn/trunk@9085 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r-- | gyp/core.gyp | 1 | ||||
-rw-r--r-- | include/core/SkPaint.h | 10 | ||||
-rw-r--r-- | include/core/SkPaintOptionsAndroid.h | 118 | ||||
-rw-r--r-- | include/ports/SkTypeface_android.h | 8 | ||||
-rw-r--r-- | src/core/SkPaint.cpp | 20 | ||||
-rw-r--r-- | src/core/SkPaintOptionsAndroid.cpp | 65 | ||||
-rw-r--r-- | src/core/SkScalerContext.cpp | 12 | ||||
-rw-r--r-- | src/core/SkScalerContext.h | 11 | ||||
-rw-r--r-- | src/ports/SkFontHost_android.cpp | 9 |
9 files changed, 10 insertions, 244 deletions
diff --git a/gyp/core.gyp b/gyp/core.gyp index 9e0792b773..7d9c9d774c 100644 --- a/gyp/core.gyp +++ b/gyp/core.gyp @@ -79,7 +79,6 @@ [ 'skia_os == "android" and skia_arch_type == "arm" and armv7 == 1', { # The code in SkUtilsArm.cpp can be used on an ARM-based Linux system, not only Android. 'sources': [ - '../src/core/SkPaintOptionsAndroid.cpp', '../src/core/SkUtilsArm.cpp', '../src/core/SkUtilsArm.h', ], diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h index 35a502d6b8..a73a46a2c6 100644 --- a/include/core/SkPaint.h +++ b/include/core/SkPaint.h @@ -14,9 +14,6 @@ #include "SkColor.h" #include "SkDrawLooper.h" #include "SkXfermode.h" -#ifdef SK_BUILD_FOR_ANDROID -#include "SkPaintOptionsAndroid.h" -#endif class SkAnnotation; class SkAutoGlyphCache; @@ -863,11 +860,6 @@ public: /** Returns the base glyph count for the strike associated with this paint */ unsigned getBaseGlyphCount(SkUnichar text) const; - - const SkPaintOptionsAndroid& getPaintOptionsAndroid() const { - return fPaintOptionsAndroid; - } - void setPaintOptionsAndroid(const SkPaintOptionsAndroid& options); #endif // returns true if the paint's settings (e.g. xfermode + alpha) resolve to @@ -998,8 +990,6 @@ private: friend class SkTextToPathIter; #ifdef SK_BUILD_FOR_ANDROID - SkPaintOptionsAndroid fPaintOptionsAndroid; - // In order for the == operator to work properly this must be the last field // in the struct so that we can do a memcmp to this field's offset. uint32_t fGenerationID; diff --git a/include/core/SkPaintOptionsAndroid.h b/include/core/SkPaintOptionsAndroid.h deleted file mode 100644 index 235cae9a0a..0000000000 --- a/include/core/SkPaintOptionsAndroid.h +++ /dev/null @@ -1,118 +0,0 @@ - -/* - * Copyright 2012 The Android Open Source Project - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - - -#ifndef SkPaintOptionsAndroid_DEFINED -#define SkPaintOptionsAndroid_DEFINED - -#ifdef SK_BUILD_FOR_ANDROID - -#include "SkString.h" -#include "SkTypes.h" - -class SkFlattenableReadBuffer; -class SkFlattenableWriteBuffer; - -struct SkLanguageInfo { - SkLanguageInfo(const char* tag) : fTag(tag) { } - SkString fTag; //! BCP 47 language identifier -}; - -/** \class SkLanguage - - The SkLanguage class represents a human written language, and is used by - text draw operations to determine which glyph to draw when drawing - characters with variants (ie Han-derived characters). -*/ -class SkLanguage { -public: - SkLanguage() : fInfo(getInfo("")) { } - SkLanguage(const char* tag) : fInfo(getInfo(tag)) { } - SkLanguage(const SkLanguage& b) : fInfo(b.fInfo) { } - - /** Gets a BCP 47 language identifier for this SkLanguage. - @return a BCP 47 language identifier representing this language - */ - const SkString& getTag() const { return fInfo->fTag; } - - /** Performs BCP 47 fallback to return an SkLanguage one step more general. - @return an SkLanguage one step more general - */ - SkLanguage getParent() const; - - bool operator==(const SkLanguage& b) const { - return fInfo == b.fInfo; - } - bool operator!=(const SkLanguage& b) const { - return fInfo != b.fInfo; - } - bool operator<(const SkLanguage& b) const { - return fInfo < b.fInfo; - } - bool operator>(const SkLanguage& b) const { - return fInfo > b.fInfo; - } - SkLanguage& operator=(const SkLanguage& b) { - fInfo = b.fInfo; - return *this; - } - -private: - const SkLanguageInfo* fInfo; - - static const SkLanguageInfo* getInfo(const char* tag); -}; - -class SkPaintOptionsAndroid { -public: - SkPaintOptionsAndroid() { - fFontVariant = kDefault_Variant; - } - - /** Return the paint's language value used for drawing text. - @return the paint's language value used for drawing text. - */ - const SkLanguage& getLanguage() const { return fLanguage; } - - /** Set the paint's language value used for drawing text. - @param language set the paint's language value for drawing text. - */ - void setLanguage(const SkLanguage& language) { fLanguage = language; } - void setLanguage(const char* languageTag) { fLanguage = SkLanguage(languageTag); } - - - enum FontVariant { - kDefault_Variant, // Currently setting yourself to Default gives you Compact Variant - kCompact_Variant, - kElegant_Variant, - kLast_Variant = kElegant_Variant, - }; - - /** Return the font variant - @return the font variant used by this paint object - */ - FontVariant getFontVariant() const { return fFontVariant; } - - /** Set the font variant - @param fontVariant set the paint's font variant for choosing fonts - */ - void setFontVariant(FontVariant fontVariant) { - SkASSERT((unsigned)fontVariant <= kLast_Variant); - fFontVariant = fontVariant; - } - - void flatten(SkFlattenableWriteBuffer&) const; - void unflatten(SkFlattenableReadBuffer&); - -private: - SkLanguage fLanguage; - FontVariant fFontVariant; -}; - -#endif // #ifdef SK_BUILD_FOR_ANDROID -#endif // #ifndef SkPaintOptionsAndroid_DEFINED diff --git a/include/ports/SkTypeface_android.h b/include/ports/SkTypeface_android.h index 0d89736e7e..e87fa4805a 100644 --- a/include/ports/SkTypeface_android.h +++ b/include/ports/SkTypeface_android.h @@ -9,8 +9,6 @@ #ifndef SkTypeface_android_DEFINED #define SkTypeface_android_DEFINED -#ifdef SK_BUILD_FOR_ANDROID - #include "SkTypeface.h" /** @@ -41,8 +39,6 @@ SK_API void SkUseTestFontConfigFile(const char* mainconf, const char* fallbackco * get the 3rd can still inspect the original, and try to match its * stylistic attributes. */ -SkTypeface* SkAndroidNextLogicalTypeface(SkFontID currFontID, SkFontID origFontID, - const SkPaintOptionsAndroid& options); +SkTypeface* SkAndroidNextLogicalTypeface(SkFontID currFontID, SkFontID origFontID); -#endif // #ifdef SK_BUILD_FOR_ANDROID -#endif // #ifndef SkTypeface_android_DEFINED +#endif diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp index 18cf651616..6c16428d81 100644 --- a/src/core/SkPaint.cpp +++ b/src/core/SkPaint.cpp @@ -180,19 +180,14 @@ uint32_t SkPaint::getGenerationID() const { void SkPaint::setGenerationID(uint32_t generationID) { fGenerationID = generationID; } +#endif +#ifdef SK_BUILD_FOR_ANDROID unsigned SkPaint::getBaseGlyphCount(SkUnichar text) const { SkAutoGlyphCache autoCache(*this, NULL, NULL); SkGlyphCache* cache = autoCache.getCache(); return cache->getBaseGlyphCount(text); } - -void SkPaint::setPaintOptionsAndroid(const SkPaintOptionsAndroid& options) { - if(!memcmp(&fPaintOptionsAndroid, &options, sizeof(SkPaintOptionsAndroid))) { - fPaintOptionsAndroid = options; - GEN_ID_INC; - } -} #endif void SkPaint::setHinting(Hinting hintingLevel) { @@ -1811,13 +1806,6 @@ void SkPaint::descriptorProc(const SkDeviceProperties* deviceProperties, rec.fMaskFormat = SkMask::kA8_Format; // force antialiasing when we do the scan conversion } -#ifdef SK_BUILD_FOR_ANDROID - SkOrderedWriteBuffer androidBuffer(128); - fPaintOptionsAndroid.flatten(androidBuffer); - descSize += androidBuffer.size(); - entryCount += 1; -#endif - /////////////////////////////////////////////////////////////////////////// // Now that we're done tweaking the rec, call the PostMakeRec cleanup SkScalerContext::PostMakeRec(*this, &rec); @@ -1830,10 +1818,6 @@ void SkPaint::descriptorProc(const SkDeviceProperties* deviceProperties, desc->init(); desc->addEntry(kRec_SkDescriptorTag, sizeof(rec), &rec); -#ifdef SK_BUILD_FOR_ANDROID - add_flattenable(desc, kAndroidOpts_SkDescriptorTag, &androidBuffer); -#endif - if (pe) { add_flattenable(desc, kPathEffect_SkDescriptorTag, &peBuffer); } diff --git a/src/core/SkPaintOptionsAndroid.cpp b/src/core/SkPaintOptionsAndroid.cpp deleted file mode 100644 index ef9375ece6..0000000000 --- a/src/core/SkPaintOptionsAndroid.cpp +++ /dev/null @@ -1,65 +0,0 @@ - -/* - * Copyright 2012 The Android Open Source Project - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifdef SK_BUILD_FOR_ANDROID - -#include "SkPaintOptionsAndroid.h" -#include "SkFlattenableBuffers.h" -#include "SkTDict.h" -#include "SkThread.h" -#include <cstring> - -SkLanguage SkLanguage::getParent() const { - SkASSERT(fInfo != NULL); - const char* tag = fInfo->fTag.c_str(); - SkASSERT(tag != NULL); - - // strip off the rightmost "-.*" - char* parentTagEnd = strrchr(tag, '-'); - if (parentTagEnd == NULL) { - return SkLanguage(""); - } - size_t parentTagLen = parentTagEnd - tag; - char parentTag[parentTagLen + 1]; - strncpy(parentTag, tag, parentTagLen); - parentTag[parentTagLen] = '\0'; - return SkLanguage(parentTag); -} - -SK_DECLARE_STATIC_MUTEX(gGetInfoMutex); -const SkLanguageInfo* SkLanguage::getInfo(const char* tag) { - SkAutoMutexAcquire lock(gGetInfoMutex); - - static const size_t kDictSize = 128; - static SkTDict<SkLanguageInfo*> tagToInfo(kDictSize); - - // try a lookup - SkLanguageInfo* info; - if (tagToInfo.find(tag, &info)) { - return info; - } - - // no match - add this language - info = new SkLanguageInfo(tag); - tagToInfo.set(tag, info); - return info; -} - -void SkPaintOptionsAndroid::flatten(SkFlattenableWriteBuffer& buffer) const { - buffer.writeUInt(fFontVariant); - buffer.writeString(fLanguage.getTag().c_str()); -} - -void SkPaintOptionsAndroid::unflatten(SkFlattenableReadBuffer& buffer) { - fFontVariant = (FontVariant)buffer.readUInt(); - char* tag = buffer.readString(); - fLanguage = SkLanguage(tag); - sk_free(tag); -} - -#endif diff --git a/src/core/SkScalerContext.cpp b/src/core/SkScalerContext.cpp index 1f71bf0885..ba14908c2e 100644 --- a/src/core/SkScalerContext.cpp +++ b/src/core/SkScalerContext.cpp @@ -110,15 +110,6 @@ SkScalerContext::SkScalerContext(SkTypeface* typeface, const SkDescriptor* desc) desc->findEntry(kPathEffect_SkDescriptorTag, NULL), desc->findEntry(kMaskFilter_SkDescriptorTag, NULL)); #endif -#ifdef SK_BUILD_FOR_ANDROID - uint32_t len; - const void* data = desc->findEntry(kAndroidOpts_SkDescriptorTag, &len); - if (data) { - SkOrderedReadBuffer buffer(data, len); - fPaintOptionsAndroid.unflatten(buffer); - SkASSERT(buffer.offset() == buffer.size()); - } -#endif } SkScalerContext::~SkScalerContext() { @@ -134,8 +125,7 @@ SkScalerContext::~SkScalerContext() { SkScalerContext* SkScalerContext::allocNextContext() const { #ifdef SK_BUILD_FOR_ANDROID SkTypeface* newFace = SkAndroidNextLogicalTypeface(fRec.fFontID, - fRec.fOrigFontID, - fPaintOptionsAndroid); + fRec.fOrigFontID); if (0 == newFace) { return NULL; } diff --git a/src/core/SkScalerContext.h b/src/core/SkScalerContext.h index 06f5f94e17..d17b423496 100644 --- a/src/core/SkScalerContext.h +++ b/src/core/SkScalerContext.h @@ -14,10 +14,6 @@ #include "SkPaint.h" #include "SkTypeface.h" -#ifdef SK_BUILD_FOR_ANDROID - #include "SkPaintOptionsAndroid.h" -#endif - struct SkGlyph; class SkDescriptor; class SkMaskFilter; @@ -221,10 +217,6 @@ private: // never null SkAutoTUnref<SkTypeface> fTypeface; -#ifdef SK_BUILD_FOR_ANDROID - SkPaintOptionsAndroid fPaintOptionsAndroid; -#endif - // optional object, which may be null SkPathEffect* fPathEffect; SkMaskFilter* fMaskFilter; @@ -270,9 +262,6 @@ private: #define kPathEffect_SkDescriptorTag SkSetFourByteTag('p', 't', 'h', 'e') #define kMaskFilter_SkDescriptorTag SkSetFourByteTag('m', 's', 'k', 'f') #define kRasterizer_SkDescriptorTag SkSetFourByteTag('r', 'a', 's', 't') -#ifdef SK_BUILD_FOR_ANDROID -#define kAndroidOpts_SkDescriptorTag SkSetFourByteTag('a', 'n', 'd', 'r') -#endif /////////////////////////////////////////////////////////////////////////////// diff --git a/src/ports/SkFontHost_android.cpp b/src/ports/SkFontHost_android.cpp index aeeec953d3..ce478def6b 100644 --- a/src/ports/SkFontHost_android.cpp +++ b/src/ports/SkFontHost_android.cpp @@ -801,15 +801,15 @@ SkTypeface* SkFontHost::CreateTypeface(const SkTypeface* familyFace, return tf; } -SkTypeface* SkAndroidNextLogicalTypeface(SkFontID currFontID, SkFontID origFontID, - const SkPaintOptionsAndroid& options) { -#if !defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) +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. // Clients can use GetFallbackFamilyNameForChar() to get the fallback // font for individual characters. return NULL; -#endif +#else SkAutoMutexAcquire ac(gFamilyHeadAndNameListMutex); load_system_fonts(); @@ -845,6 +845,7 @@ SkTypeface* SkAndroidNextLogicalTypeface(SkFontID currFontID, SkFontID origFontI // i.e. gFallbackFonts[0] != 0. const SkTypeface* firstTypeface = find_from_uniqueID(list[0]); return SkRef(find_typeface(firstTypeface, origTypeface->style())); +#endif } /////////////////////////////////////////////////////////////////////////////// |