Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ce93283 authored by Chris Craik's avatar Chris Craik
Browse files

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
parent 3dab92c5
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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,