diff --git a/graphics/java/android/graphics/Gainmap.java b/graphics/java/android/graphics/Gainmap.java index 470a06c1f1f50..a7c508c75ac99 100644 --- a/graphics/java/android/graphics/Gainmap.java +++ b/graphics/java/android/graphics/Gainmap.java @@ -96,8 +96,8 @@ public final class Gainmap implements Parcelable { throw new RuntimeException("internal error: native gainmap is 0"); } - mGainmapContents = gainmapContents; mNativePtr = nativeGainmap; + setGainmapContents(gainmapContents); NoImagePreloadHolder.sRegistry.registerNativeAllocation(this, nativeGainmap); } diff --git a/libs/hwui/hwui/Bitmap.cpp b/libs/hwui/hwui/Bitmap.cpp index cbebae9ed4389..ecf6cfc054448 100644 --- a/libs/hwui/hwui/Bitmap.cpp +++ b/libs/hwui/hwui/Bitmap.cpp @@ -464,7 +464,7 @@ bool Bitmap::compress(JavaCompressFormat format, int32_t quality, SkWStream* str SkBitmap baseBitmap = getSkBitmap(); SkBitmap gainmapBitmap = gainmap()->bitmap->getSkBitmap(); SkJpegEncoder::Options options{.fQuality = quality}; - return SkJpegGainmapEncoder::EncodeJpegR(stream, baseBitmap.pixmap(), options, + return SkJpegGainmapEncoder::EncodeHDRGM(stream, baseBitmap.pixmap(), options, gainmapBitmap.pixmap(), options, gainmap()->info); } #endif diff --git a/tests/SilkFX/assets/gainmaps/granddam.jpg b/tests/SilkFX/assets/gainmaps/granddam.jpg new file mode 100644 index 0000000000000..823f14efcbb2a Binary files /dev/null and b/tests/SilkFX/assets/gainmaps/granddam.jpg differ diff --git a/tests/SilkFX/assets/gainmaps/lightbulb.jpg b/tests/SilkFX/assets/gainmaps/lightbulb.jpg new file mode 100644 index 0000000000000..232c5f0937df2 Binary files /dev/null and b/tests/SilkFX/assets/gainmaps/lightbulb.jpg differ diff --git a/tests/SilkFX/assets/gainmaps/porsche911.jpg b/tests/SilkFX/assets/gainmaps/porsche911.jpg new file mode 100644 index 0000000000000..50f4fc83910e9 Binary files /dev/null and b/tests/SilkFX/assets/gainmaps/porsche911.jpg differ