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

Commit c45c2d65 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Work around incorrect Skia gamma" into pi-dev

parents 83c4690f ce89a6e6
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -1269,6 +1269,15 @@ static jboolean Bitmap_isSRGB(JNIEnv* env, jobject, jlong bitmapHandle) {
    return GraphicsJNI::isColorSpaceSRGB(colorSpace);
}

static jboolean Bitmap_isSRGBLinear(JNIEnv* env, jobject, jlong bitmapHandle) {
    LocalScopedBitmap bitmapHolder(bitmapHandle);
    if (!bitmapHolder.valid()) return JNI_FALSE;

    SkColorSpace* colorSpace = bitmapHolder->info().colorSpace();
    sk_sp<SkColorSpace> srgbLinear = SkColorSpace::MakeSRGBLinear();
    return colorSpace == srgbLinear.get() ? JNI_TRUE : JNI_FALSE;
}

static jboolean Bitmap_getColorSpace(JNIEnv* env, jobject, jlong bitmapHandle,
        jfloatArray xyzArray, jfloatArray paramsArray) {

@@ -1614,6 +1623,7 @@ static const JNINativeMethod gBitmapMethods[] = {
        (void*) Bitmap_createGraphicBufferHandle },
    {   "nativeGetColorSpace",      "(J[F[F)Z", (void*)Bitmap_getColorSpace },
    {   "nativeIsSRGB",             "(J)Z", (void*)Bitmap_isSRGB },
    {   "nativeIsSRGBLinear",       "(J)Z", (void*)Bitmap_isSRGBLinear},
    {   "nativeCopyColorSpace",     "(JJ)V",
        (void*)Bitmap_copyColorSpace },
};
+3 −0
Original line number Diff line number Diff line
@@ -1669,6 +1669,8 @@ public final class Bitmap implements Parcelable {
        if (mColorSpace == null) {
            if (nativeIsSRGB(mNativePtr)) {
                mColorSpace = ColorSpace.get(ColorSpace.Named.SRGB);
            } else if (getConfig() == Config.HARDWARE && nativeIsSRGBLinear(mNativePtr)) {
                mColorSpace = ColorSpace.get(ColorSpace.Named.LINEAR_EXTENDED_SRGB);
            } else {
                float[] xyz = new float[9];
                float[] params = new float[7];
@@ -2092,5 +2094,6 @@ public final class Bitmap implements Parcelable {
    private static native GraphicBuffer nativeCreateGraphicBufferHandle(long nativeBitmap);
    private static native boolean nativeGetColorSpace(long nativePtr, float[] xyz, float[] params);
    private static native boolean nativeIsSRGB(long nativePtr);
    private static native boolean nativeIsSRGBLinear(long nativePtr);
    private static native void nativeCopyColorSpace(long srcBitmap, long dstBitmap);
}