Adds a mechanism to tell Paint the scaling factor its target
canvas will have, for it to compute font metrics based on the
correct font size. Only TextView uses this, but that is enough
for the large majority of apps.
Change-Id: I6cacaa0dd26d40ee3ad959bed0028678d6e9016e
Remove the stuff that doesn't use preloaded drawables when in
compatibility mode, since this works fine ever since we were able
to deal with drawables in a different density than the canvas.
Change the snapshot function on View to return a snapshot at
the same size that will actually be drawn on screen (when in
compatibility mode), to be able to show scaling artifacts and
all.
This change was original an attempt to fix issue #2101917: Text
field edges appears to be improperly rounded. That turns out to
probably be something deeper in the graphics system, but also
included here is the debugging code I did to try to track down the
problem to make it easy to turn on again later.
Change-Id: I34bfca629639c7ff103f3989d88874112ef778d9
Previously we had been setting the imageSize parameter to 0, which was
incorrect. According to the OpenGL ES spec for glCompressedTexImage2D
this parameter should be the size in bytes of the compressed data.
Merge commit '6af2552d244ff933dfd54570121db455cc7c3cda'
* commit '6af2552d244ff933dfd54570121db455cc7c3cda':
use safeUnref() since the other macro is not defined in donut
Merge commit '7299d6ad9820bbb601034542c94d6dc73cc4829d'
* commit '7299d6ad9820bbb601034542c94d6dc73cc4829d':
check for null native objects, which never happens on a real subclass (we throw in that case)
* changes:
check for null native objects, which never happens on a real subclass (we throw in that case) but can happen because we allow the callers to create the base class from java.
It turns out we were not returning the density for anything retrieved from a
TypedArray... which basically means any bitmap references from a layout or style...!!!
This is now fixed.
Also fiddle with the density compatibility mode to turn on smoothing in certain situations,
helping the look of things when they need to scale and we couldn't do the scaling at
load time.
Merge commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8'
* commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8':
Allow for screen density drawables in compatibility mode.
This change allows us to use drawables that match the current screen
density even when being loaded in compatibility mode. In this case,
the bitmap is loaded in the screen density, and the bitmap and
nine-patch drawables take care of accounting for the density difference.
This should be safe for existing applications, for the most part, since
they shouldn't really be pulling the bitmap out of the drawable. For
the small rare chance of them breaking, it worth getting the correct
graphics. Also this will only happen when there is actually a resource
of the matching density, and no existing apps should have resources for
anything besides the default density (though of course all of the
framework resources will be available in the native density).
As part of this, the bitmap density API has been changed to a single
integer provider the DPI unit density.
The function is used to rebuild any caches associated with the bitmap.
In the case of purgeable bitmaps, this call ensures that the pixels
are decoded for drawing, and therefore prefetching techniques
implemented by callers can be leveraged.
Merge commit '066e6bfd01a5ddd4748eacdc82fee5374e2af929'
* commit '066e6bfd01a5ddd4748eacdc82fee5374e2af929':
when we reset a paint, it should return to the state it was in when it was first created.
Merge commit 'a41962065a93b63e7161cffd662b564e01a9e189'
* commit 'a41962065a93b63e7161cffd662b564e01a9e189':
Modify the decoding logic in the FD case when a purgeable flag is set,
and lower the threshold of bitmap size for using ashmem().
For the decoding logic, we now go through the "non-purgeable" path if isShareable is false,
irrespective of the value of the purgeable flag.
Merge commit '2bb3ea162a58c0f1dddccdbe68b64e02456f11f9'
* commit '2bb3ea162a58c0f1dddccdbe68b64e02456f11f9':
Fix native core runtime. A messy declaration was causing a problem at boot time.
Merge commit '3e3439d5ba0cf5eda060c4991219c32af917fc5b'
* commit '3e3439d5ba0cf5eda060c4991219c32af917fc5b':
Fixes#1847219. Add a new API to load fonts from arbitrary files: Typeface.createFromFile(String/File).