OSDN Git Service

Update WebKit to work with the latest Skia (r1562).
authorDerek Sollenberger <djsollen@google.com>
Thu, 23 Jun 2011 19:33:53 +0000 (15:33 -0400)
committerDerek Sollenberger <derek@android.com>
Fri, 24 Jun 2011 18:29:16 +0000 (14:29 -0400)
Change-Id: Iefa4e71603cfdfd8ecaff61994c007853cab2970

WebCore/platform/graphics/android/FontAndroid.cpp

index c783a0b..cd08480 100644 (file)
@@ -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