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

Commit 8168f6fa authored by Nader Jawad's avatar Nader Jawad Committed by Android (Google) Code Review
Browse files

Merge "Added support for additional Blend Modes"

parents 2f4644d5 55e49d88
Loading
Loading
Loading
Loading
+48 −5
Original line number Diff line number Diff line
@@ -13572,6 +13572,46 @@ package android.graphics {
    ctor public BitmapShader(android.graphics.Bitmap, android.graphics.Shader.TileMode, android.graphics.Shader.TileMode);
  }
  public final class BlendMode extends java.lang.Enum {
    method public static android.graphics.BlendMode valueOf(java.lang.String);
    method public static final android.graphics.BlendMode[] values();
    enum_constant public static final android.graphics.BlendMode CLEAR;
    enum_constant public static final android.graphics.BlendMode COLOR;
    enum_constant public static final android.graphics.BlendMode COLOR_BURN;
    enum_constant public static final android.graphics.BlendMode COLOR_DODGE;
    enum_constant public static final android.graphics.BlendMode DARKEN;
    enum_constant public static final android.graphics.BlendMode DIFFERENCE;
    enum_constant public static final android.graphics.BlendMode DST;
    enum_constant public static final android.graphics.BlendMode DST_ATOP;
    enum_constant public static final android.graphics.BlendMode DST_IN;
    enum_constant public static final android.graphics.BlendMode DST_OUT;
    enum_constant public static final android.graphics.BlendMode DST_OVER;
    enum_constant public static final android.graphics.BlendMode EXCLUSION;
    enum_constant public static final android.graphics.BlendMode HARD_LIGHT;
    enum_constant public static final android.graphics.BlendMode HUE;
    enum_constant public static final android.graphics.BlendMode LIGHTEN;
    enum_constant public static final android.graphics.BlendMode LUMINOSITY;
    enum_constant public static final android.graphics.BlendMode MODULATE;
    enum_constant public static final android.graphics.BlendMode MULTIPLY;
    enum_constant public static final android.graphics.BlendMode OVERLAY;
    enum_constant public static final android.graphics.BlendMode PLUS;
    enum_constant public static final android.graphics.BlendMode SATURATION;
    enum_constant public static final android.graphics.BlendMode SCREEN;
    enum_constant public static final android.graphics.BlendMode SOFT_LIGHT;
    enum_constant public static final android.graphics.BlendMode SRC;
    enum_constant public static final android.graphics.BlendMode SRC_ATOP;
    enum_constant public static final android.graphics.BlendMode SRC_IN;
    enum_constant public static final android.graphics.BlendMode SRC_OUT;
    enum_constant public static final android.graphics.BlendMode SRC_OVER;
    enum_constant public static final android.graphics.BlendMode XOR;
  }
  public final class BlendModeColorFilter extends android.graphics.ColorFilter {
    ctor public BlendModeColorFilter(int, android.graphics.BlendMode);
    method public int getColor();
    method public android.graphics.BlendMode getMode();
  }
  public class BlurMaskFilter extends android.graphics.MaskFilter {
    ctor public BlurMaskFilter(float, android.graphics.BlurMaskFilter.Blur);
  }
@@ -13634,7 +13674,8 @@ package android.graphics {
    method public void drawBitmapMesh(android.graphics.Bitmap, int, int, float[], int, int[], int, android.graphics.Paint);
    method public void drawCircle(float, float, float, android.graphics.Paint);
    method public void drawColor(int);
    method public void drawColor(int, android.graphics.PorterDuff.Mode);
    method public deprecated void drawColor(int, android.graphics.PorterDuff.Mode);
    method public void drawColor(int, android.graphics.BlendMode);
    method public void drawDoubleRoundRect(android.graphics.RectF, float, float, android.graphics.RectF, float, float, android.graphics.Paint);
    method public void drawDoubleRoundRect(android.graphics.RectF, float[], android.graphics.RectF, float[], android.graphics.Paint);
    method public void drawLine(float, float, float, float, android.graphics.Paint);
@@ -14256,6 +14297,7 @@ package android.graphics {
    method public float descent();
    method public boolean equalsForTextMeasurement(android.graphics.Paint);
    method public int getAlpha();
    method public android.graphics.BlendMode getBlendMode();
    method public int getColor();
    method public android.graphics.ColorFilter getColorFilter();
    method public boolean getFillPath(android.graphics.Path, android.graphics.Path);
@@ -14310,7 +14352,7 @@ package android.graphics {
    method public float getUnderlinePosition();
    method public float getUnderlineThickness();
    method public float getWordSpacing();
    method public android.graphics.Xfermode getXfermode();
    method public deprecated android.graphics.Xfermode getXfermode();
    method public boolean hasGlyph(java.lang.String);
    method public final boolean isAntiAlias();
    method public final boolean isDither();
@@ -14330,6 +14372,7 @@ package android.graphics {
    method public void setARGB(int, int, int, int);
    method public void setAlpha(int);
    method public void setAntiAlias(boolean);
    method public void setBlendMode(android.graphics.BlendMode);
    method public void setColor(int);
    method public android.graphics.ColorFilter setColorFilter(android.graphics.ColorFilter);
    method public void setDither(boolean);
@@ -14363,7 +14406,7 @@ package android.graphics {
    method public android.graphics.Typeface setTypeface(android.graphics.Typeface);
    method public void setUnderlineText(boolean);
    method public void setWordSpacing(float);
    method public android.graphics.Xfermode setXfermode(android.graphics.Xfermode);
    method public deprecated android.graphics.Xfermode setXfermode(android.graphics.Xfermode);
    field public static final int ANTI_ALIAS_FLAG = 1; // 0x1
    field public static final int CURSOR_AFTER = 0; // 0x0
    field public static final int CURSOR_AT = 4; // 0x4
@@ -14645,7 +14688,7 @@ package android.graphics {
    enum_constant public static final android.graphics.PorterDuff.Mode XOR;
  }
  public class PorterDuffColorFilter extends android.graphics.ColorFilter {
  public deprecated class PorterDuffColorFilter extends android.graphics.ColorFilter {
    ctor public PorterDuffColorFilter(int, android.graphics.PorterDuff.Mode);
  }
@@ -15201,7 +15244,7 @@ package android.graphics.drawable {
    method public final void setCallback(android.graphics.drawable.Drawable.Callback);
    method public void setChangingConfigurations(int);
    method public abstract void setColorFilter(android.graphics.ColorFilter);
    method public void setColorFilter(int, android.graphics.PorterDuff.Mode);
    method public deprecated void setColorFilter(int, android.graphics.PorterDuff.Mode);
    method public deprecated void setDither(boolean);
    method public void setFilterBitmap(boolean);
    method public void setHotspot(float, float);
+7 −5
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ public:
        return static_cast<jlong>(reinterpret_cast<uintptr_t>(&SafeUnref));
    }

    static jlong CreatePorterDuffFilter(JNIEnv* env, jobject, jint srcColor, jint modeHandle) {
    static jlong CreateBlendModeFilter(JNIEnv* env, jobject, jint srcColor, jint modeHandle) {
        SkBlendMode mode = static_cast<SkBlendMode>(modeHandle);
        return reinterpret_cast<jlong>(SkColorFilter::MakeModeFilter(srcColor, mode).release());
    }
@@ -61,8 +61,8 @@ static const JNINativeMethod colorfilter_methods[] = {
    {"nativeGetFinalizer", "()J", (void*) SkColorFilterGlue::GetNativeFinalizer }
};

static const JNINativeMethod porterduff_methods[] = {
    { "native_CreatePorterDuffFilter", "(II)J", (void*) SkColorFilterGlue::CreatePorterDuffFilter },
static const JNINativeMethod blendmode_methods[] = {
    { "native_CreateBlendModeFilter", "(II)J", (void*) SkColorFilterGlue::CreateBlendModeFilter },
};

static const JNINativeMethod lighting_methods[] = {
@@ -76,8 +76,10 @@ static const JNINativeMethod colormatrix_methods[] = {
int register_android_graphics_ColorFilter(JNIEnv* env) {
    android::RegisterMethodsOrDie(env, "android/graphics/ColorFilter", colorfilter_methods,
                                  NELEM(colorfilter_methods));
    android::RegisterMethodsOrDie(env, "android/graphics/PorterDuffColorFilter", porterduff_methods,
                                  NELEM(porterduff_methods));
    android::RegisterMethodsOrDie(env, "android/graphics/PorterDuffColorFilter", blendmode_methods,
                                  NELEM(blendmode_methods));
    android::RegisterMethodsOrDie(env, "android/graphics/BlendModeColorFilter", blendmode_methods,
                                  NELEM(blendmode_methods));
    android::RegisterMethodsOrDie(env, "android/graphics/LightingColorFilter", lighting_methods,
                                  NELEM(lighting_methods));
    android::RegisterMethodsOrDie(env, "android/graphics/ColorMatrixColorFilter",
+14 −3
Original line number Diff line number Diff line
@@ -845,12 +845,23 @@ namespace PaintGlue {
        static_assert(9 == static_cast<int>(SkBlendMode::kSrcATop), "xfermode_mismatch");
        static_assert(10 == static_cast<int>(SkBlendMode::kDstATop), "xfermode_mismatch");
        static_assert(11 == static_cast<int>(SkBlendMode::kXor), "xfermode_mismatch");
        static_assert(16 == static_cast<int>(SkBlendMode::kDarken), "xfermode_mismatch");
        static_assert(17 == static_cast<int>(SkBlendMode::kLighten), "xfermode_mismatch");
        static_assert(12 == static_cast<int>(SkBlendMode::kPlus), "xfermode_mismatch");
        static_assert(13 == static_cast<int>(SkBlendMode::kModulate), "xfermode_mismatch");
        static_assert(14 == static_cast<int>(SkBlendMode::kScreen), "xfermode_mismatch");
        static_assert(12 == static_cast<int>(SkBlendMode::kPlus), "xfermode_mismatch");
        static_assert(15 == static_cast<int>(SkBlendMode::kOverlay), "xfermode_mismatch");
        static_assert(16 == static_cast<int>(SkBlendMode::kDarken), "xfermode_mismatch");
        static_assert(17 == static_cast<int>(SkBlendMode::kLighten), "xfermode_mismatch");
        static_assert(18 == static_cast<int>(SkBlendMode::kColorDodge), "xfermode mismatch");
        static_assert(19 == static_cast<int>(SkBlendMode::kColorBurn), "xfermode mismatch");
        static_assert(20 == static_cast<int>(SkBlendMode::kHardLight), "xfermode mismatch");
        static_assert(21 == static_cast<int>(SkBlendMode::kSoftLight), "xfermode mismatch");
        static_assert(22 == static_cast<int>(SkBlendMode::kDifference), "xfermode mismatch");
        static_assert(23 == static_cast<int>(SkBlendMode::kExclusion), "xfermode mismatch");
        static_assert(24 == static_cast<int>(SkBlendMode::kMultiply), "xfermode mismatch");
        static_assert(25 == static_cast<int>(SkBlendMode::kHue), "xfermode mismatch");
        static_assert(26 == static_cast<int>(SkBlendMode::kSaturation), "xfermode mismatch");
        static_assert(27 == static_cast<int>(SkBlendMode::kColor), "xfermode mismatch");
        static_assert(28 == static_cast<int>(SkBlendMode::kLuminosity), "xfermode mismatch");

        SkBlendMode mode = static_cast<SkBlendMode>(xfermodeHandle);
        Paint* paint = reinterpret_cast<Paint*>(paintHandle);
+363 B
Loading image diff...
+3.75 KiB
Loading image diff...
Loading