Index: src/core/SkScalerContext.cpp |
diff --git a/src/core/SkScalerContext.cpp b/src/core/SkScalerContext.cpp |
index ba14908c2e62f008cf4e5fdf2c2c64e03f97a3ff..1f71bf088550a7bc782d14facde29cc7b5ca9f08 100644 |
--- a/src/core/SkScalerContext.cpp |
+++ b/src/core/SkScalerContext.cpp |
@@ -110,6 +110,15 @@ 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() { |
@@ -125,7 +134,8 @@ SkScalerContext::~SkScalerContext() { |
SkScalerContext* SkScalerContext::allocNextContext() const { |
#ifdef SK_BUILD_FOR_ANDROID |
SkTypeface* newFace = SkAndroidNextLogicalTypeface(fRec.fFontID, |
- fRec.fOrigFontID); |
+ fRec.fOrigFontID, |
+ fPaintOptionsAndroid); |
if (0 == newFace) { |
return NULL; |
} |