summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2023-02-16 21:53:50 -0500
committer John Reck <jreck@google.com> 2023-02-17 16:15:53 +0000
commit9eb7779ae052d2566268b81e884f243d65ecbb7d (patch)
treea3f22f5e68fdae85cb0dfdc362c4063a6a41d1aa
parent79d1135cb8913dbbb4e87e2d324394e830fc8165 (diff)
Fix null deref & update compress
Gainmap ctor always sets the native bitmap properly, avoids potential confusion over mGainmapContents vs. native bitmap pointer Also call the fancier newer compress function Test: SilkFX Bug: 266628247 Change-Id: I89728a66202b4cdad54e8f163bc04dc419b8187b
-rw-r--r--graphics/java/android/graphics/Gainmap.java2
-rw-r--r--libs/hwui/hwui/Bitmap.cpp2
-rw-r--r--tests/SilkFX/assets/gainmaps/granddam.jpgbin0 -> 1830308 bytes
-rw-r--r--tests/SilkFX/assets/gainmaps/lightbulb.jpgbin0 -> 2757109 bytes
-rw-r--r--tests/SilkFX/assets/gainmaps/porsche911.jpgbin0 -> 2869087 bytes
5 files changed, 2 insertions, 2 deletions
diff --git a/graphics/java/android/graphics/Gainmap.java b/graphics/java/android/graphics/Gainmap.java
index 470a06c1f1f5..a7c508c75ac9 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 cbebae9ed438..ecf6cfc05444 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 000000000000..823f14efcbb2
--- /dev/null
+++ b/tests/SilkFX/assets/gainmaps/granddam.jpg
Binary files differ
diff --git a/tests/SilkFX/assets/gainmaps/lightbulb.jpg b/tests/SilkFX/assets/gainmaps/lightbulb.jpg
new file mode 100644
index 000000000000..232c5f0937df
--- /dev/null
+++ b/tests/SilkFX/assets/gainmaps/lightbulb.jpg
Binary files differ
diff --git a/tests/SilkFX/assets/gainmaps/porsche911.jpg b/tests/SilkFX/assets/gainmaps/porsche911.jpg
new file mode 100644
index 000000000000..50f4fc83910e
--- /dev/null
+++ b/tests/SilkFX/assets/gainmaps/porsche911.jpg
Binary files differ