summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDerek Sollenberger <djsollen@google.com>2011-06-24 11:30:07 -0700
committerAndroid Code Review <code-review@android.com>2011-06-24 11:30:07 -0700
commit96b3138148c51cb4ad4bddca665fc528677dd182 (patch)
treed7ca74c41d5024d5ba0d288630f228776a1dfa35
parent169f8bc5df73bcd9cd286f188d1c741ce5035c37 (diff)
parent09a404afe313667b9b937ae730f353f44b9cf285 (diff)
downloadexternal_webkit-96b3138148c51cb4ad4bddca665fc528677dd182.zip
external_webkit-96b3138148c51cb4ad4bddca665fc528677dd182.tar.gz
external_webkit-96b3138148c51cb4ad4bddca665fc528677dd182.tar.bz2
Merge "Update WebKit to work with the latest Skia (r1562)."
-rw-r--r--WebCore/platform/graphics/android/FontAndroid.cpp18
1 files changed, 12 insertions, 6 deletions
diff --git a/WebCore/platform/graphics/android/FontAndroid.cpp b/WebCore/platform/graphics/android/FontAndroid.cpp
index c783a0b..cd08480 100644
--- a/WebCore/platform/graphics/android/FontAndroid.cpp
+++ b/WebCore/platform/graphics/android/FontAndroid.cpp
@@ -71,24 +71,30 @@ static bool setupForText(SkPaint* paint, GraphicsContext* gc,
if ((mode & (cTextFill | cTextStroke)) == (cTextFill | cTextStroke)) {
SkLayerDrawLooper* looper = new SkLayerDrawLooper;
paint->setLooper(looper)->unref();
-
+
+ // Specify the behavior of the looper
+ SkLayerDrawLooper::LayerInfo info;
+ info.fPaintBits = SkLayerDrawLooper::kEntirePaint_Bits;
+ info.fColorMode = SkXfermode::kSrc_Mode;
+
// we clear the looper, in case we have a shadow
SkPaint* fillP = NULL;
SkPaint* strokeP = NULL;
if (gc->willStroke()) {
- strokeP = setupStroke(looper->addLayer(), gc, font);
- strokeP->setLooper(NULL);
+ strokeP = setupStroke(looper->addLayer(info), gc, font);
}
if (gc->willFill()) {
- fillP = setupFill(looper->addLayer(), gc, font);
- fillP->setLooper(NULL);
+ fillP = setupFill(looper->addLayer(info), gc, font);
}
SkPaint shadowPaint;
SkPoint offset;
if (gc->setupShadowPaint(&shadowPaint, &offset)) {
- SkPaint* p = looper->addLayer(offset.fX, offset.fY);
+ // add an offset to the looper when creating a shadow layer
+ info.fOffset.set(offset.fX, offset.fY);
+
+ SkPaint* p = looper->addLayer(info);
*p = shadowPaint;
if (strokeP && !fillP) {
// stroke the shadow if we have stroke but no fill