Replace setAlphaFlags with setUnpremultipliedRequired
Bug: 135133301
Test: I48e49ee08ab1954eddf62ecae87942aeb128c10d
As described in I3381582e27894e1072db9b8635f3762b801f5d69, this is a
more sensible API.
In addition, remove unused methods on ImageDecoder.
Lastly, update AImageDecoder methods in the map to document which API
level they were introduced in.
Change-Id: I1aff544e8d6932b9ed0931a00da66a0aba6cd536
diff --git a/native/graphics/jni/imagedecoder.cpp b/native/graphics/jni/imagedecoder.cpp
index 2ef203d..e663534 100644
--- a/native/graphics/jni/imagedecoder.cpp
+++ b/native/graphics/jni/imagedecoder.cpp
@@ -241,26 +241,12 @@
}
}
-SkAlphaType toAlphaType(int androidBitmapFlags) {
- switch (androidBitmapFlags) {
- case ANDROID_BITMAP_FLAGS_ALPHA_PREMUL:
- return kPremul_SkAlphaType;
- case ANDROID_BITMAP_FLAGS_ALPHA_UNPREMUL:
- return kUnpremul_SkAlphaType;
- case ANDROID_BITMAP_FLAGS_ALPHA_OPAQUE:
- return kOpaque_SkAlphaType;
- default:
- return kUnknown_SkAlphaType;
- }
-}
-
-int AImageDecoder_setAlphaFlags(AImageDecoder* decoder, int alphaFlag) {
- if (!decoder || alphaFlag < ANDROID_BITMAP_FLAGS_ALPHA_PREMUL
- || alphaFlag > ANDROID_BITMAP_FLAGS_ALPHA_UNPREMUL) {
+int AImageDecoder_setUnpremultipliedRequired(AImageDecoder* decoder, bool required) {
+ if (!decoder) {
return ANDROID_IMAGE_DECODER_BAD_PARAMETER;
}
- return toDecoder(decoder)->setOutAlphaType(toAlphaType(alphaFlag))
+ return toDecoder(decoder)->setUnpremultipliedRequired(required)
? ANDROID_IMAGE_DECODER_SUCCESS : ANDROID_IMAGE_DECODER_INVALID_CONVERSION;
}
diff --git a/native/graphics/jni/libjnigraphics.map.txt b/native/graphics/jni/libjnigraphics.map.txt
index 832770f..d5a3276 100644
--- a/native/graphics/jni/libjnigraphics.map.txt
+++ b/native/graphics/jni/libjnigraphics.map.txt
@@ -1,22 +1,22 @@
LIBJNIGRAPHICS {
global:
- AImageDecoder_createFromAAsset;
- AImageDecoder_createFromFd;
- AImageDecoder_createFromBuffer;
- AImageDecoder_delete;
- AImageDecoder_setAndroidBitmapFormat;
- AImageDecoder_setAlphaFlags;
- AImageDecoder_getHeaderInfo;
- AImageDecoder_getMinimumStride;
- AImageDecoder_decodeImage;
- AImageDecoder_setTargetSize;
- AImageDecoder_setCrop;
- AImageDecoderHeaderInfo_getWidth;
- AImageDecoderHeaderInfo_getHeight;
- AImageDecoderHeaderInfo_getMimeType;
- AImageDecoderHeaderInfo_getAlphaFlags;
- AImageDecoderHeaderInfo_isAnimated;
- AImageDecoderHeaderInfo_getAndroidBitmapFormat;
+ AImageDecoder_createFromAAsset; # introduced=30
+ AImageDecoder_createFromFd; # introduced=30
+ AImageDecoder_createFromBuffer; # introduced=30
+ AImageDecoder_delete; # introduced=30
+ AImageDecoder_setAndroidBitmapFormat; # introduced=30
+ AImageDecoder_setUnpremultipliedRequired; # introduced=30
+ AImageDecoder_getHeaderInfo; # introduced=30
+ AImageDecoder_getMinimumStride; # introduced=30
+ AImageDecoder_decodeImage; # introduced=30
+ AImageDecoder_setTargetSize; # introduced=30
+ AImageDecoder_setCrop; # introduced=30
+ AImageDecoderHeaderInfo_getWidth; # introduced=30
+ AImageDecoderHeaderInfo_getHeight; # introduced=30
+ AImageDecoderHeaderInfo_getMimeType; # introduced=30
+ AImageDecoderHeaderInfo_getAlphaFlags; # introduced=30
+ AImageDecoderHeaderInfo_isAnimated; # introduced=30
+ AImageDecoderHeaderInfo_getAndroidBitmapFormat; # introduced=30
AndroidBitmap_getInfo;
AndroidBitmap_getDataSpace;
AndroidBitmap_lockPixels;