Add new RGBA_F16 bitmap config
This configuration uses 64 bits per pixel. Heach component is stored as a half precision float value (16 bits). Half floats can be decoded/encoded using android.util.Half. RGBA_F16 bitmaps are used to decode wide-gamut images stored in 16 bit formats (PNG 16 bit for instance). aapt is currently not aware of PNG 16 bits so such files must be placed in raw/ resource directories. This first pass provides only partial drawing support with hardware acceleration. RGBA_F16 bitmaps are stored in linear space and need to be encoded to gamma space with the appropriate OETF to be rendered properly on Android's current surfaces. They are however suitable for linear blending. Full rendering support will be provided in a future CL (BitmapShaders might be a bit tricky to handle properly during shader generation). Bug: 32984164 Test: bit CtsGraphicsTestCases:android.graphics.cts.BitmapRGBAF16Test Change-Id: I328e6b567441a1b9d152a3e7be944a2cf63193bd
Showing
- api/current.txt 21 additions, 15 deletionsapi/current.txt
- api/system-current.txt 21 additions, 15 deletionsapi/system-current.txt
- api/test-current.txt 21 additions, 15 deletionsapi/test-current.txt
- core/jni/android/graphics/Bitmap.cpp 70 additions, 7 deletionscore/jni/android/graphics/Bitmap.cpp
- core/jni/android/graphics/BitmapFactory.cpp 4 additions, 3 deletionscore/jni/android/graphics/BitmapFactory.cpp
- core/jni/android/graphics/Graphics.cpp 18 additions, 1 deletioncore/jni/android/graphics/Graphics.cpp
- core/jni/android/graphics/GraphicsJNI.h 2 additions, 0 deletionscore/jni/android/graphics/GraphicsJNI.h
- core/jni/android_view_GraphicBuffer.cpp 4 additions, 0 deletionscore/jni/android_view_GraphicBuffer.cpp
- core/jni/android_view_Surface.cpp 4 additions, 0 deletionscore/jni/android_view_Surface.cpp
- core/jni/android_view_SurfaceControl.cpp 10 additions, 0 deletionscore/jni/android_view_SurfaceControl.cpp
- core/jni/android_view_TextureView.cpp 8 additions, 0 deletionscore/jni/android_view_TextureView.cpp
- docs/html/reference/images/graphics/colorspace_ucs.png 0 additions, 0 deletionsdocs/html/reference/images/graphics/colorspace_ucs.png
- graphics/java/android/graphics/Bitmap.java 30 additions, 13 deletionsgraphics/java/android/graphics/Bitmap.java
- graphics/java/android/graphics/ColorSpace.java 159 additions, 55 deletionsgraphics/java/android/graphics/ColorSpace.java
- graphics/java/android/graphics/PixelFormat.java 23 additions, 9 deletionsgraphics/java/android/graphics/PixelFormat.java
- libs/hwui/OpenGLReadback.cpp 7 additions, 0 deletionslibs/hwui/OpenGLReadback.cpp
- libs/hwui/Texture.cpp 6 additions, 0 deletionslibs/hwui/Texture.cpp
- libs/hwui/hwui/Bitmap.cpp 4 additions, 1 deletionlibs/hwui/hwui/Bitmap.cpp
Loading
Please register or sign in to comment