summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Raph Levien <raph@google.com> 2012-10-03 15:58:35 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2012-10-03 15:58:36 -0700
commit5a829cbf5862d6c41f709b86ed5fc1085fea95ee (patch)
tree46b3fac2fd780d58748246053a12108bf7e055a0
parent8abd7021a681dd9db355ad7b17e0249200d6cc17 (diff)
parente174ae210e4756985c17da5bf4457e2009ec5b61 (diff)
Merge "Fix for testPaintFlagsDrawFilter CTS test" into jb-mr1-dev
-rw-r--r--core/jni/android/graphics/Canvas.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/core/jni/android/graphics/Canvas.cpp b/core/jni/android/graphics/Canvas.cpp
index 2a02f7c82eba..5d6f73849b8c 100644
--- a/core/jni/android/graphics/Canvas.cpp
+++ b/core/jni/android/graphics/Canvas.cpp
@@ -20,6 +20,7 @@
#include "SkCanvas.h"
#include "SkDevice.h"
+#include "SkDrawFilter.h"
#include "SkGraphics.h"
#include "SkImageRef_GlobalPool.h"
#include "SkPorterDuff.h"
@@ -784,7 +785,15 @@ public:
#define kStdUnderline_Thickness (1.0f / 18.0f)
static void doDrawTextDecorations(SkCanvas* canvas, jfloat x, jfloat y, jfloat length, SkPaint* paint) {
- uint32_t flags = paint->getFlags();
+ uint32_t flags;
+ SkDrawFilter* drawFilter = canvas->getDrawFilter();
+ if (drawFilter) {
+ SkPaint paintCopy(*paint);
+ drawFilter->filter(&paintCopy, SkDrawFilter::kText_Type);
+ flags = paintCopy.getFlags();
+ } else {
+ flags = paint->getFlags();
+ }
if (flags & (SkPaint::kUnderlineText_Flag | SkPaint::kStrikeThruText_Flag)) {
SkScalar left = SkFloatToScalar(x);
SkScalar right = SkFloatToScalar(x + length);