diff options
| author | 2014-06-23 17:48:09 -0700 | |
|---|---|---|
| committer | 2014-06-23 19:15:45 -0700 | |
| commit | 2ce932832e7caa1a6021539a9b7828ee5f49a610 (patch) | |
| tree | 39c93a36409a5aad0170a247923db74bdba41d4c | |
| parent | 3dab92c510381e5e768e2bce2500f138407fa441 (diff) | |
Fix xfermode usage in GLES20Canvas.drawColor
bug:15762917
Was previously casting the SkPorterDuff::Mode directly into
SkXfermode::Mode, which is incorrect. Now convert as a first step, as
Canvas does.
Change-Id: I66695b08866ca2008b17f2ff30a36d9ed4d2ed80
| -rw-r--r-- | core/jni/android_view_GLES20Canvas.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/core/jni/android_view_GLES20Canvas.cpp b/core/jni/android_view_GLES20Canvas.cpp index ca8fb301a8a2..2a1fd1bc70bc 100644 --- a/core/jni/android_view_GLES20Canvas.cpp +++ b/core/jni/android_view_GLES20Canvas.cpp @@ -32,6 +32,7 @@ #include <SkCanvas.h> #include <SkMatrix.h> #include <SkPaint.h> +#include <SkPorterDuff.h> #include <SkRegion.h> #include <SkScalerContext.h> #include <SkTemplates.h> @@ -437,9 +438,10 @@ static void android_view_GLES20Canvas_drawPatch(JNIEnv* env, jobject clazz, } static void android_view_GLES20Canvas_drawColor(JNIEnv* env, jobject clazz, - jlong rendererPtr, jint color, jint mode) { + jlong rendererPtr, jint color, jint modeHandle) { DisplayListRenderer* renderer = reinterpret_cast<DisplayListRenderer*>(rendererPtr); - renderer->drawColor(color, static_cast<SkXfermode::Mode>(mode)); + SkPorterDuff::Mode mode = static_cast<SkPorterDuff::Mode>(modeHandle); + renderer->drawColor(color, SkPorterDuff::ToXfermodeMode(mode)); } static void android_view_GLES20Canvas_drawRect(JNIEnv* env, jobject clazz, |