summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2010-11-02 06:36:37 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-11-02 06:36:37 -0700
commit48735f195bdb1f681dba8e1d67f0b85b9b74c1a8 (patch)
tree64de4d080d8adea4eeb40007081c34c24e419e23
parent9cbef29ebdf64aed66ee6a7d5081127dc3f26b4c (diff)
parent5e2280268227ed65a21c4c27ed8f240bd3bea671 (diff)
downloadexternal_webkit-48735f195bdb1f681dba8e1d67f0b85b9b74c1a8.zip
external_webkit-48735f195bdb1f681dba8e1d67f0b85b9b74c1a8.tar.gz
external_webkit-48735f195bdb1f681dba8e1d67f0b85b9b74c1a8.tar.bz2
Merge "add function to find color on picture's edge"
-rw-r--r--WebCore/platform/graphics/android/BaseLayerAndroid.cpp26
-rw-r--r--WebCore/platform/graphics/android/BaseLayerAndroid.h2
2 files changed, 28 insertions, 0 deletions
diff --git a/WebCore/platform/graphics/android/BaseLayerAndroid.cpp b/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
index f91a3e7..c043edb 100644
--- a/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
+++ b/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
@@ -238,4 +238,30 @@ bool BaseLayerAndroid::drawGL(IntRect& viewRect, SkRect& visibleRect,
return ret;
}
+SkColor BaseLayerAndroid::getColor(const SkIRect& rect)
+{
+ SkBitmap sample, pixel;
+ SkCanvas canvas;
+ sample.setConfig(SkBitmap::kARGB_8888_Config, rect.width(), rect.height());
+ sample.allocPixels();
+ canvas.setBitmapDevice(sample);
+ canvas.save();
+ canvas.translate(-rect.fLeft, -rect.fTop);
+ draw(&canvas);
+ canvas.restore();
+ pixel.setConfig(SkBitmap::kARGB_8888_Config, 1, 1);
+ pixel.allocPixels();
+ canvas.setBitmapDevice(pixel);
+ SkPaint paint;
+ paint.setFlags(SkPaint::kFilterBitmap_Flag);
+ canvas.scale(SkScalarInvert(SkIntToScalar(rect.width())),
+ SkScalarInvert(SkIntToScalar(rect.height())));
+ canvas.drawBitmap(sample, 0, 0, &paint);
+ pixel.lockPixels();
+ uint32_t* colorAddr = pixel.getAddr32(0, 0);
+ SkColor result = (SkColor) *colorAddr;
+ pixel.unlockPixels();
+ return result;
+}
+
} // namespace WebCore
diff --git a/WebCore/platform/graphics/android/BaseLayerAndroid.h b/WebCore/platform/graphics/android/BaseLayerAndroid.h
index 73804a1..66bf119 100644
--- a/WebCore/platform/graphics/android/BaseLayerAndroid.h
+++ b/WebCore/platform/graphics/android/BaseLayerAndroid.h
@@ -56,6 +56,8 @@ public:
bool drawGL(IntRect& rect, SkRect& viewport,
float scale, SkColor color = SK_ColorWHITE);
+ SkColor getColor(const SkIRect& rect);
+
private:
#if USE(ACCELERATED_COMPOSITING)
bool drawBasePictureInGL(SkRect& viewport, float scale);