only look at globalAlpha when we draw images (not the alpha in fill-color)
http://b/issue?id=1817561
diff --git a/WebCore/platform/graphics/GraphicsContext.h b/WebCore/platform/graphics/GraphicsContext.h
index b52344d..233c14c 100644
--- a/WebCore/platform/graphics/GraphicsContext.h
+++ b/WebCore/platform/graphics/GraphicsContext.h
@@ -204,6 +204,8 @@
void setCMYKAFillColor(float c, float m, float y, float k, float a);
void setCMYKAStrokeColor(float c, float m, float y, float k, float a);
+ // initialize a paint for bitmaps
+ void setupBitmapPaint(SkPaint*);
// initialize a paint for filling
void setupFillPaint(SkPaint*);
// initialize a paint for stroking
diff --git a/WebCore/platform/graphics/android/GraphicsContextAndroid.cpp b/WebCore/platform/graphics/android/GraphicsContextAndroid.cpp
index 34b709b..46ac9da 100644
--- a/WebCore/platform/graphics/android/GraphicsContextAndroid.cpp
+++ b/WebCore/platform/graphics/android/GraphicsContextAndroid.cpp
@@ -247,6 +247,13 @@
paint->setColor(mState->applyAlpha(mState->mFillColor));
}
+ void setup_paint_bitmap(SkPaint* paint) const {
+ this->setup_paint_common(paint);
+ // we only want the global alpha for bitmaps,
+ // so just give applyAlpha opaque black
+ paint->setColor(mState->applyAlpha(0xFF000000));
+ }
+
/* sets up the paint for stroking. Returns true if the style is really
just a dash of squares (the size of the paint's stroke-width.
*/
@@ -831,10 +838,14 @@
///////////////////////////////////////////////////////////////////////////
+ void GraphicsContext::setupBitmapPaint(SkPaint* paint) {
+ m_data->setup_paint_bitmap(paint);
+ }
+
void GraphicsContext::setupFillPaint(SkPaint* paint) {
m_data->setup_paint_fill(paint);
}
-
+
void GraphicsContext::setupStrokePaint(SkPaint* paint) {
m_data->setup_paint_stroke(paint, NULL);
}
diff --git a/WebCore/platform/graphics/android/ImageAndroid.cpp b/WebCore/platform/graphics/android/ImageAndroid.cpp
index 16a450f..177aa1f 100644
--- a/WebCore/platform/graphics/android/ImageAndroid.cpp
+++ b/WebCore/platform/graphics/android/ImageAndroid.cpp
@@ -224,7 +224,7 @@
SkCanvas* canvas = ctxt->platformContext()->mCanvas;
SkPaint paint;
- ctxt->setupFillPaint(&paint); // need global alpha among other things
+ ctxt->setupBitmapPaint(&paint); // need global alpha among other things
paint.setFilterBitmap(true);
paint.setXfermodeMode(WebCoreCompositeToSkiaComposite(compositeOp));
fixPaintForBitmapsThatMaySeam(&paint);
@@ -292,7 +292,7 @@
SkCanvas* canvas = ctxt->platformContext()->mCanvas;
SkPaint paint;
- ctxt->setupFillPaint(&paint); // need global alpha among other things
+ ctxt->setupBitmapPaint(&paint); // need global alpha among other things
SkShader* shader = SkShader::CreateBitmapShader(bitmap,
SkShader::kRepeat_TileMode,