diff --git a/include/core/SkMath.h b/include/core/SkMath.h index 683a1ac30..0c8906585 100644 --- a/include/core/SkMath.h +++ b/include/core/SkMath.h @@ -162,7 +162,7 @@ static inline int SkNextLog2(uint32_t value) { With this requirement, we can generate faster instructions on some architectures. */ -#if defined(__arm__) && !defined(__thumb__) +#if defined(__arm__) && !defined(__thumb__) && !defined(__ARM_ARCH_4__) static inline int32_t SkMulS16(S16CPU x, S16CPU y) { SkASSERT((int16_t)x == x); SkASSERT((int16_t)y == y); diff --git a/samplecode/SamplePathClip.cpp b/samplecode/SamplePathClip.cpp index f4dd032d1..c4be2b896 100644 --- a/samplecode/SamplePathClip.cpp +++ b/samplecode/SamplePathClip.cpp @@ -15,6 +15,57 @@ #include "SkTime.h" #include "SkTypeface.h" +#if 0 +static void CFString2SkString(CFStringRef ref, SkString* str) { + str->reset(); + int count = CFStringGetLength(ref); + for (int i = 0; i < count; i++) { + SkString tmp; + UniChar c = CFStringGetCharacterAtIndex(ref, i); + tmp.setUTF16(&c, 1); + str->append(tmp); + } +} + +static size_t get_table_size(ATSFontRef font, uint32_t tableTag) { + ByteCount size; + OSStatus status = ATSFontGetTable(font, tableTag, 0, 0, NULL, &size); + if (status) { + SkDebugf("*** ATSFontGetTable returned %d\n", status); + size = -1; + } + return size; +} + +static void test_ats() { + OSStatus status; + ATSFontIterator iter; + status = ATSFontIteratorCreate(kATSFontContextLocal, NULL, NULL, + kATSOptionFlagsUnRestrictedScope, &iter); + + for (int index = 0;; index++) { + ATSFontRef fontRef; + status = ATSFontIteratorNext(iter, &fontRef); + if (status) { + break; + } + + CFStringRef name; + SkString str; + ATSFontGetName(fontRef, kATSOptionFlagsDefault, &name); + CFString2SkString(name, &str); + if (str.size() > 0 && str.c_str()[0] != '.') { + SkDebugf("[%3d] font %x cmap %d 'name' %d <%s>\n", index, fontRef, + get_table_size(fontRef, 'cmap'), + get_table_size(fontRef, 'name'), + str.c_str()); + } + CFRelease(name); + } + ATSFontIteratorRelease(&iter); +} +#endif + class PathClipView : public SkView { public: SkRect fOval; @@ -23,6 +74,8 @@ public: PathClipView() { fOval.set(0, 0, SkIntToScalar(200), SkIntToScalar(50)); fCenter.set(SkIntToScalar(250), SkIntToScalar(250)); + +// test_ats(); } virtual ~PathClipView() {}