1. Rename LargeBitmap to BitmapRegionDecoder
2. Move the instantiations of BitmapRegionDecoder out of BitmapFactory.
3. Remove the use of MemoryFile in BitmapRegionDecoder, since MemoryFile's API had been modified in master. Otherwise, the change will break the master build.
4. Move AssetStreamAdaptor, AutoFDSeek and nullObjectReturn to Utils.h because BitmapFactory.cpp and BitmapRegionDecoder.cpp both need to use these utility functions.
Most of the modifications, except for (2) and (3), were reviewed in https://android-git.corp.google.com/g/#change,64716 .
However, that change broke the master build due to (3) and was reverted eventually.
So, instead of withdrawing this change and waiting for that change to be checked in again, I merge the two changes into one.
Change-Id: I2202c0fbbbd6d6676bbd9637e690023ea4099c40
This change also adds full support for local transformation matrices on
sweep and radial gradients.
Change-Id: Id8773bc0766575190e3f3d51984fc5e57b266c3f
Added null check in computeBitmapSize() to avoid unhandled
exception "java.lang.NullPointerException" at
android.graphics.Rect.<init>(Rect.java:72).
This problem was discovered in the wild.
Change-Id: I8a4729ceadcfc9744f11b8ceafdf24d6de88c645
In nativeCreateLargeBitmapFromFileDescriptor() if the file descriptor
can not be rewinded isShareable should be set to false.
Change-Id: I7dd545c9d52d21c226e11b8921e35a1d9bba9515
Bug #2988077
This change keeps the 8888 format for new bitmaps and also keeps,
when possible, the opaque flag.
Change-Id: Ia61f2e89936916b329212a4c59a7d815c329f84e
Merge commit '8fc6f8b2152564cab6ede025644f9bc3ee61ce16'
* commit '8fc6f8b2152564cab6ede025644f9bc3ee61ce16':
Revert "Rename LargeBitmap to BitmapRegionDecoder for having a better API."
Merge commit '1b214be92ac206d8ac6ef4967db6e2859d91ab49' into gingerbread-plus-aosp
* commit '1b214be92ac206d8ac6ef4967db6e2859d91ab49':
Revert "Rename LargeBitmap to BitmapRegionDecoder for having a better API."
Merge commit 'a295a3908befeb9dd30203c612d95411d68492ed'
* commit 'a295a3908befeb9dd30203c612d95411d68492ed':
Rename LargeBitmap to BitmapRegionDecoder for having a better API.
Merge commit 'b356f8acec9fdfd36f01e5cca4fe3a28ecd6e628' into gingerbread-plus-aosp
* commit 'b356f8acec9fdfd36f01e5cca4fe3a28ecd6e628':
Rename LargeBitmap to BitmapRegionDecoder for having a better API.
Move AssetStreamAdaptor, AutoFDSeek and nullObjectReturn to Utils.h because
BitmapFactory.cpp and BitmapRegionDecoder.cpp both need to use these utility functions.
Change-Id: I3e60c7fe4abd0289e1384e69a08fd20fe6fb0e10
Merge commit '72ecb00a89b7a49eadb9c3bb880102eef97c8eb6' into gingerbread-plus-aosp
* commit '72ecb00a89b7a49eadb9c3bb880102eef97c8eb6':
Revert "Don't recycle native bitmap after the finalizer is called."
Merge commit 'dc2eabd10847d8e7f016fec5232d40b723ce2828' into gingerbread-plus-aosp
* commit 'dc2eabd10847d8e7f016fec5232d40b723ce2828':
Don't recycle native bitmap after the finalizer is called.
If an object A's finalizer calls Bitmap B's recycle() when B's
finalizer is already called, we will have trouble because the
native bitmap is already freed in the finalizer.
Change-Id: Ic0be8ed75fb3aacee9ce6e3d9908178a55151eb9
Merge commit 'd018a0ce72124f668d859b19fe3e73f5637d3c7c' into gingerbread-plus-aosp
* commit 'd018a0ce72124f668d859b19fe3e73f5637d3c7c':
Text selection without trackball.
Backported from HC.
Squashed commit of the following:
commit af214a595c7a9fdd11a2dc384f7d4665abf751c0
Fixes in TextView's selection.
commit eb9fd59ebe6500a66c2003d46b5802299970ae8d
TextView with Selection Contextual Mode
commit 4c4c338ef355b369ce4b57d6c6fba7ee8f9dddf4
Cosmetic changes around TextView.
commit d4b4b054e87480d984ad18766f5e76553e3080d8
Double and one and a half tap removed from TextView.
commit 897c2847ba1fca8ef01eadadd1bc3de007af3ee5
Selection handlers in TextView
commit 832be74a5394649e28927484d9a86c6d53b430e7
New cursor controller in TextViews.
Change-Id: I01cc64736e2abea605317ee53907a1713617fc17
Merge commit '288471d8a57e1c318742cbfc28697877436fdb87' into gingerbread-plus-aosp
* commit '288471d8a57e1c318742cbfc28697877436fdb87':
DO NOT MERGE. Load assets in place instead of deferring until draw.
Before this change, all framework assets would be decoded at drawing time
outside of zygote. This was forcing all apps to re-decode the assets and
zygote to keep an in-memory copy of each asset. This behavior is now
opt-in by setting the inPurgeable flag on BitmapFactory.Options.
Change-Id: Ief823139163d8071b8ee1267746622faf52eb8ec
Before this change, all framework assets would be decoded at drawing time
outside of zygote. This was forcing all apps to re-decode the assets and
zygote to keep an in-memory copy of each asset. This behavior is now
opt-in by setting the inPurgeable flag on BitmapFactory.Options.
Change-Id: Ic703f57adb26b2a701ecff0a653d35a93e26d47c
This depends on a kernel patch that implements read(2)
in the ashmem driver.
Bug http://b/issue?id=2595601
Change-Id: Ie3b10aa471aada21812b35e63954c1b2f0a7b042
This change also removes the use of SoftReferences for View's
drawing cache.
A bitmap now creates a PhantomReference enqueued in a reference
queue provided by the new Finalizers class. This queue is polled
from a thread started after forking zygote. That thread is in charge
of clearing the references after GC runs and of calling reclaim()
on them. The reclaim() method is now how finalizers are run.
Note that a PhantomReference cannot be kept in the instance it
refers to, which is why they are kept in a separate List.
Change-Id: If3c1a5e9dc23fa49e34857860d730f5cf5ad5926
The makefile variable USE_OPENGL_RENDERER must be set to true to compile
libhwui and the related code in the JNI layer.
This change also removes obsolete APIs from Canvas that must not be used
and would be confusing if left in. These APIs were remnants of our first
attempt at an OpenGL renderer for the view hierarchy and had not been
taken out before Android 1.0 was released.
Change-Id: I2475ff1307212bab26c926724f3c508681c7dae1
Rendering is implementing by rasterizing the paths into A8 textures.
This cna be extremely inefficient if the path changes often.
Change-Id: I609343f304ae38e0d319359403ee73b9b5b3c93a
With this change, Skia shaders can easily be applied to any mesh. This change also
supports ComposeShader. For instance, this can be used to blend a gradient and a
bitmap togehter and paint a string of text with the result.
Change-Id: I701c2f9cf7f89b2ff58005e8a1d0d80ccf4a4aea