diff options
| author | 2012-10-03 15:58:35 -0700 | |
|---|---|---|
| committer | 2012-10-03 15:58:36 -0700 | |
| commit | 5a829cbf5862d6c41f709b86ed5fc1085fea95ee (patch) | |
| tree | 46b3fac2fd780d58748246053a12108bf7e055a0 | |
| parent | 8abd7021a681dd9db355ad7b17e0249200d6cc17 (diff) | |
| parent | e174ae210e4756985c17da5bf4457e2009ec5b61 (diff) | |
Merge "Fix for testPaintFlagsDrawFilter CTS test" into jb-mr1-dev
| -rw-r--r-- | core/jni/android/graphics/Canvas.cpp | 11 |
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); |