aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/core/SkMath.h2
-rw-r--r--samplecode/SamplePathClip.cpp53
2 files changed, 54 insertions, 1 deletions
diff --git a/include/core/SkMath.h b/include/core/SkMath.h
index 683a1ac303..0c89065855 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 f4dd032d13..c4be2b8965 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() {}