summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chris Craik <ccraik@google.com> 2014-06-23 17:48:09 -0700
committer Chris Craik <ccraik@google.com> 2014-06-23 19:15:45 -0700
commit2ce932832e7caa1a6021539a9b7828ee5f49a610 (patch)
tree39c93a36409a5aad0170a247923db74bdba41d4c
parent3dab92c510381e5e768e2bce2500f138407fa441 (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.cpp6
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,