• Home
  • History
  • Annotate
  • only in /frameworks/base/core/jni/android/graphics/
History log of /frameworks/base/core/jni/android/graphics/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
547e66531d521eb1eadac87edb0f79f8c2f1bbe0 23-Oct-2012 Chet Haase <chet@google.com> Don't null the reference to Bitmap pixels until we're really ready

A change in the VM triggers a native memory error more aggressively than before,
showing that there's a bug in the logic of recycling bitmaps. Since the pixel
memory is allocated on the Java heap, nulling out the reference to that memory
in the Java level Bitmap object can cause that memory to get collected at any time.
Meanwhile, we may have a reference to that memory at the native level for rendering
purposes, causing an error if/when we access that memory after it has been collected
by the VM.

The fix is to avoid setting the reference to the pixels to null unless we are
not referring to it in native code. This is determined at the time we call
recycle() - we return a boolean to indicate whether the native code is still
using the memory. if not, the Java code can null out the reference and allow the
VM to collect it. Otherwise, it will get collected later when the encompassing
Bitmap object is collected.

Issue #7339156 HTML5 tests crash the app (Vellamo)

Change-Id: I3a0d6b9a6c5dd3b86cc2b0ff7719007e774b5e3c
itmap.cpp
0ee71adde01298784a2cbb667c4c1570bdbf0af0 17-Oct-2012 Bart Sears <bsears@google.com> Merge "Fix native crash while saving a panorama." into jb-mr1-dev
4b63f14c96841d02b6bffce987f7705b6aa8e2a9 16-Oct-2012 Wu-cheng Li <wuchengli@google.com> Fix native crash while saving a panorama.

YuvToJpegEncoder should handle the case when the height is not
multiples of 16.

bug:7165606

Change-Id: I02f142b233c4f5c0cd8df5e3d1eaebbf62d28052
uvToJpegEncoder.cpp
uvToJpegEncoder.h
713e1bb9df6bdfc21bd5c40d1a6ecf6c822a4be5 17-Oct-2012 Romain Guy <romainguy@google.com> Add API to enable mipmaps on Bitmap
Bug #7353771

This API can be used when scaling large images down to a small size
to get nicer looking results.

Change-Id: If09087eed36077eee5355f6047a3ca67747d7d9e
itmap.cpp
038953da05c641f6551134f710ac0e4f46b624b7 12-Oct-2012 Keun young Park <keunyoung@google.com> fix wrong read size in ToColor_S4444_Opaque

- S4444 takes 16bits, not 32bits
- This caused sporadic failure in CTS BitmapFactoryTest#testDecodeStream4

Bug: 7179389
Change-Id: Ib36a3a569b3149d74f36ae67a069a7b65a72e895
itmap.cpp
577b07197b1bf1b3903e0bc0f3d48fabfd927b2a 05-Oct-2012 Raph Levien <raph@google.com> Fix for 7281523 android.text.cts.SelectionTest#testMoveRight failures

The failures were caused by the implementation of doTextRunCursor
passing a too-small value for contextCount into the underlying
getTextRunAdvances call (it wasn't accounting for the start offset).
Thus, when getTextRunAdvances made a copy of the text for its cache key,
it was getting a partial copy.

This patch fixes the size so the cache key always has a full copy of the
text.

Change-Id: I57e3ac6de7aef0e1f1c7000dc3d653f9b0d623d2
aint.cpp
e174ae210e4756985c17da5bf4457e2009ec5b61 04-Oct-2012 Raph Levien <raph@google.com> Fix for testPaintFlagsDrawFilter CTS test

This fixes bug 6948776
android.graphics.cts.PaintFlagsDrawFilterTest#testPaintFlagsDrawFilter
failures on JO

When we moved the drawing of text decorations (underline, strikethrough)
from Skia to our own drawing (so we could take into account the metrics
computed by TextLayoutEngine), we just used the raw flags from the
paint, which ignored the overrides that a DrawFilter can effect.

The patch simply checks for the existence of a DrawFilter in the canvas,
and applies it to a copy of the paint where present. This will be one
extra paint copy where the filter exists, but that's expected to be rare
(other than running this CTS test, of course).

Change-Id: I664c478b73a3a1cc43599ee11bbc02c69b7a96c2
anvas.cpp
832815cb53e951485ff5a0e6c705446d0bfb5883 02-Oct-2012 Raph Levien <raph@google.com> Fix for bug 7234184 F/TextLayoutCache: Failed to put an entry...

This bug was triggered by user code concurrently mutating the character
array while calling into a drawText method in another thread. When the
value of the array changed, it caused inconsistent state, leading to
assert failures.

This is arguably bad behavior by the user code, but it shouldn't cause a
native crash. The fix is to do a defensive copy of the text into the
key, so the value is guaranteed to remain constant throughout the text
layout process. The change is mostly deletion of code, because there was
an optimization to try to avoid such a copy. That optimization was not
actually effective, however, because the indexOfKey() operation in the
KeyedVector underlying the TextLayoutCache did the copy anyway. Thus,
even though this change looks like it's introducing a copy where there
wasn't one before, the actual performance impact should be nil.

Note that the ability to handle a mutating argument is now part of the
contract for TextLayoutEngine::getValue(), and is now documented. That
contract may change, as the result of future optimization. Also, care
was taken to only use the value after the copy.

Other performance issues with TextLayoutCache are tracked in bug
7271109.

Change-Id: I9c90e8e4d501f3f37e2f22a7851f032808d46fbe
extLayoutCache.cpp
extLayoutCache.h
6a2d17f71342f981c9df1dc5beff33e30eb3ae2b 30-Sep-2012 Chet Haase <chet@google.com> Fix texture corruption

When memory gets low on a device, activities flush everything they can.
Hardware-accelerated activites, such as Launcher, flush GL resources and destroy
the GL context. However, some resources were still hanging around, due to deferred
destruction policies (we don't delete layers until the DisplayLists they are in
are finalized, to ensure we don't deref deleted objects). This meant that we were
referring to obsolete GL data in these objects. in particular, it meant that we might
come around later, after a new GL context was created, and delete a texture object
that was incorrect. We use the layer's "texture id" to refer to the texture underlying the
layer. But if there's a new GL context, then this texture ID is no longer valid, and
we may be deleting the texture that a different object (layer, icon, whatever) is referring
to, because the driver may return that same ID under the new GL context.

The fix is to more aggressively delete things that we know will not be used again
when the GL context is destroyed. In particular, we delete all resources being used
by all DisplayLists at GL context destruction time.

Issue #7195815 Textures corruption on all devices, in many apps

Change-Id: I52d2d208173690dbb794a83402d38f14ea4c6c22
anvas.cpp
1b10241a8f0affab9f46719e46c6fedff9e69b8b 25-Sep-2012 Raph Levien <raph@google.com> Fix for bug 6936752 Tamil text gets truncated on right-hand side

The getTextRunAdvances() method wasn't accounting for the true width of
the text. On closer examination, in Tamil the clusters consist of a
number of glyphs each of which has a nonzero advance (in some other
scripts, the first glyph in the cluster has an advance, and others are
effectively zero). Previously, we were just using the advance of the
first glyph in the cluster. This patch changes the behavior to sum the
advances of all the glyphs within the cluster.

Change-Id: I77a51235f4bb0dfaa72cbb920a8c3b217ad25404
extLayoutCache.cpp
005bfc694d167b7da4b565a1c4de03592fdbe86e 21-Sep-2012 Raph Levien <raph@google.com> Fix for native crash on image decode OOM

When decoding an image with scaling, if the allocation of the bitmap
data for the scaled bitmap failed, we were just ignoring it and going
on. This was yielding strange native crashes (bug 7196860 and bug
7175536). This patch checks whether the allocation succeeds, and returns
a null bitmap if not.

Of course, if the app really is OOM because it's allocated too many
bitmaps, it'll still get the OOME, but that's a lot nicer than a native
crash or memory corruption.

Change-Id: I8384059ab11c2ab9e93e283b9438d79e6709b7b1
itmapFactory.cpp
94998c9c4e19d5b439228646f1b283201367b7a0 18-Sep-2012 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: remove call to doGLFenceWait" into jb-mr1-dev
917a3b34a33f703503d05aaef4af955a09553703 18-Sep-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: remove call to doGLFenceWait

This call is no longer needed as the default behavior of the native
SurfaceTexture class is to do the wait whenever updateTexImage is called.

Change-Id: I995686a5989409e21b00fac913bd33c11f806998
urfaceTexture.cpp
c1eff0857ebc6abce48ba8c267ab32109dd45ef0 14-Sep-2012 Raph Levien <raph@google.com> am e5905684: am eceb3171: am f4afc401: Merge "framework: fix bug for uninitialized variable"

* commit 'e590568417aa824e7b0e76ae727556d329cb57cf':
framework: fix bug for uninitialized variable
eceb317116d87dada85d06df8fe0e07dd4aec49d 14-Sep-2012 Raph Levien <raph@google.com> am f4afc401: Merge "framework: fix bug for uninitialized variable"

* commit 'f4afc40101c00800c4dc53f165b93f741327416d':
framework: fix bug for uninitialized variable
eb1f5349f8ac51e12e48497bbd2ae37badfe5009 13-Sep-2012 Raph Levien <raph@google.com> Merge "Fix for b7155617 race condition in TextLayoutCache.cpp" into jb-mr1-dev
13ba4e478d19001ddb6828bd1fd8fbc1e0cb208f 13-Sep-2012 Raph Levien <raph@google.com> Fix for b7155617 race condition in TextLayoutCache.cpp

There was the possibility for a race between clearing the caches and
using fonts. This patch simply protects both under the same mLock held
by the TextLayoutCache object.

Change-Id: Ib366e16a9a9ba702a46bc078d1bc0602713991e5
extLayoutCache.cpp
extLayoutCache.h
f09263e957a3f132899458fc5afe859ba9d62d2e 10-Sep-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: add updateTexImage synchronization

This change makes the SurfaceTexture JNI updateTexImage call the native
SurfaceTexture's doGLFenceWait method to perform the needed synchronization.

Change-Id: Ie70a1fe6b44d439d1ffe7b97689a421ff8c02fda
urfaceTexture.cpp
46e942d500d5ce67a58269cbac3307deca6a5c9f 27-Jul-2012 Zhou Chang <chang.zhou@intel.com> framework: fix bug for uninitialized variable

Some application display error due to uninitialized varibale.
This patch fix the bug

Change-Id: I660169e325ffae60d95c7774aaaeaebf693adf3d
Author: Chang Zhou <chang.zhou@intel.com>
Signed-off-by: Chang Zhou <chang.zhou@intel.com>
Signed-off-by: Chong Xing <chong.xing@intel.com>
Signed-off-by: Hongyu Zhang <hongyu.zhang@intel.com>
Signed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 45356
aint.cpp
38f197863a07cd600b45d752fdfa949d8b2e6fa6 29-Aug-2012 Jean-Baptiste Queru <jbq@google.com> am 14c0c989: am 4ba4caed: Merge "Fix SkBitmap::fPixels not being locked correctly"

* commit '14c0c989d21531056a5d0a0739c3ffdd1b04b295':
Fix SkBitmap::fPixels not being locked correctly
14c0c989d21531056a5d0a0739c3ffdd1b04b295 29-Aug-2012 Jean-Baptiste Queru <jbq@google.com> am 4ba4caed: Merge "Fix SkBitmap::fPixels not being locked correctly"

* commit '4ba4caede125ff602b0d93f577f9054a07791ff7':
Fix SkBitmap::fPixels not being locked correctly
35ef567140e42f354be4a98cce6a7666ac085c13 08-Jul-2012 Michal Stawinski <michal.stawinski@sonymobile.com> Fix SkBitmap::fPixels not being locked correctly

In some cases bitmap's pixels where freed during encoding, which
caused a null pointer dereference.
This fix makes sure that underlaying buffer is locked for the whole
process of compression.

Change-Id: I0ac56821f5d333072271dc2670fa30f1562adfa3
itmap.cpp
ac1cbaf2e5575ac75a0160e13089d51a0bb232fa 18-Jul-2012 Billy Hewlett <billyh@google.com> DO NOT MERGE Han Preference

Cherry-pick Ib5dd86950156c5a438f25c289acb839206bb455a from master.

Data: label MTLmr3m with "ja" locale attribute, fallback_fonts-ja.xml removed,
as we only need a single fallback font file
Code: Add locale and variant to TextLayoutCache. Paint.java sets textLocale as
the language (for example, "ja") rather than the language/locale concatenated
(for example "ja_JP")

This checkin, along with Change-Id: Id8c91ae0be6cad8a7ef77a0cd5803676290986c1,
allows text view objects to set their locale dynamically and skia will use the
correct font for the locale.

Change-Id: Ieb60b0d7a39fcfef4f8ce90cd4f6065d33673710
aint.cpp
extLayoutCache.cpp
extLayoutCache.h
42e1e0d482d774cf18a55773e434f02edb9e4462 30-Jul-2012 Romain Guy <romainguy@google.com> Improve gradients

Avoid using textures for common gradients (two stops from 0.0 to 1.0)

Change-Id: Iff55d21b126c8cfc4cfb701669f2339c8f6b131a
hader.cpp
a0aa479c0eadd446dc9159195c175e3a5fe083c0 28-Jul-2012 Romain Guy <romainguy@android.com> am 97e27072: am dfac68ea: Merge "Corrected typo when checking InputStream methods"

* commit '97e270721bf29d25b513c1f2be71a8543d048f5d':
Corrected typo when checking InputStream methods
97e270721bf29d25b513c1f2be71a8543d048f5d 28-Jul-2012 Romain Guy <romainguy@android.com> am dfac68ea: Merge "Corrected typo when checking InputStream methods"

* commit 'dfac68eacc60c130e54345d98bd45c99573cb627':
Corrected typo when checking InputStream methods
8ac41bb79e96e240e0e774ff2dff2654cb10669c 03-May-2011 Edward Savage-Jones <edward.savage-jones@sonyericsson.com> Corrected typo when checking InputStream methods

Corrected a small typo where Java InputStream methods are
incorrectly checked when creating a JNI InputStream adaptor.

Change-Id: I5f14897e0d5ddceb4b2af6be46769713f0487624
reateJavaOutputStreamAdaptor.cpp
161ebab85d976320f156cb4e55140533ae15f92d 19-Jul-2012 Raph Levien <raph@google.com> Increase text layout cache size in bytes

The mark positioning changes increase the number of bytes needed per
glyph from 6 to 14. This patch compensates by allocating more total
memory for the text layout cache.

Change-Id: I3cf59547394a41779cf6e92e67688b0fdc85f1a3
extLayoutCache.h
4f3c8f7026d89a5d79e2621eb6428d5b9b1a25f3 19-Jul-2012 Raph Levien <raph@google.com> Fix overly verbose logging in TextLayoutCache

I meant to log certain debug values only when DEBUG_GLYPHS was set, but
I used #ifdef instead of #if (when it's not set, it's 0, rather than
undefined).

Change-Id: Ic27fee7dd355009c1873f0a2e12614849bbceebd
extLayoutCache.cpp
2301d32f7e2ba584abc31ac177dde754385d3c04 18-Jul-2012 Raph Levien <raph@google.com> Software-only implementation of glyph positioning (bug 5443796)

This patch implements glyph positioning in the Skia-based renderer. Note
that it depends on a fix for bug 6833339 being in place (correct
calculation of advance widths under skew and scale transforms),
otherwise there will be regressions.

Careful attention was paid to correct results in a wide variety of
conditions: alignments, text decorations, scale, skew, etc. Many of
these are exercised in the test app attached to bug 6833339.

Note that this patch also changes slightly the way that the total
advance is calculated - the running is accumulated and passed through to
computeRunValues(), so that the x positions of each glyph can be set
according to the total advance of all glyphs (in all runs) appearing
before (plus, of course, the offset for mark positioning).

After committing this patch, text rendering will no longer match between
the software and hardware rendering cases. Implementing positioning in
the hardware renderer will resolve that, and fully implement bug 5443796.

Change-Id: Ie0f7835d48bc120475a19afbfe159aa5304fcaa8
anvas.cpp
extLayoutCache.cpp
extLayoutCache.h
cae28fa0511bb526b4e94e8acfa1ba3b1745576b 11-Jul-2012 Victoria Lease <violets@google.com> Merge "Remove hardcoded typeface pointers"
d6deccb346e913d906f484d279b19e0f6ea18d94 22-Jun-2012 Billy Hewlett <billyh@google.com> Remove hardcoded typeface pointers

There were a number of extraneous typeface pointers, one per
language, in TextLayoutCache. Removing these makes adding additional
supported fonts easier. This checkin now properly
unrefs typefaces returned by SkCreateTypefaceForScript. Additionally,
all harfbuzz shaped fonts (with exceptions Greek, Cyrillic, Hangul)
should call SkCreateTypefaceForScript.

Change-Id: I7dcf603a89e5ff52c6dab8fb87ae1807a79c351c
extLayoutCache.cpp
extLayoutCache.h
907524851af0d656ba049311f7535a4ba5d2b1d2 10-Jul-2012 Romain Guy <romainguy@google.com> Properly resize paletted bitmaps when adjusting for density

If an app used a GIF file in the wrong density bucket, the auto-scaling
code would not properly resize the bitmap.

This issue affects third party applications, here is the external bug
report:

http://code.google.com/p/android/issues/detail?id=34619

DO NOT MERGE

Change-Id: I7f99b28ad6e6c28bdbcb29bbbadcb215268ff710
itmapFactory.cpp
053a82cc18b8ad9b6cb321b57893225411ccf146 10-Jul-2012 Romain Guy <romainguy@google.com> Properly resize paletted bitmaps when adjusting for density

If an app used a GIF file in the wrong density bucket, the auto-scaling
code would not properly resize the bitmap.

Change-Id: I28f6506a94b20d11b3ba53ac442abec2b92e093e
itmapFactory.cpp
f62034d89611fbd3e1d41413847241757acd0c10 26-Jun-2012 Raph Levien <raph@google.com> Initialize shaper offset array. Needed for bug 5443796.

Harfbuzz apparently requires the offset array to be initialized to zero,
otherwise it can report corrupt glyph positions. This change also
contains a small amount of refactoring to avoid code duplication.

Change-Id: I2553974f40bc8e0549876c7d31243960ca92a8a2
extLayoutCache.cpp
extLayoutCache.h
6212a4f2ed2a5921de08b527cd1b25e1d155e56b 25-Jun-2012 Raph Levien <raph@google.com> Fix broken build when DEBUG_GLYPHS is set

Some of the logging lines referred to the "path" variable which no
longer exists. We log the Harfbuzz script instead, which hopefully
provides enough context.

This change only affects debug builds, but we will want to be working
intensively in this space.

Change-Id: I86c3b58c9fa2a8c47812ef5f0b5ce64fd8dcdc20
extLayoutCache.cpp
960511848ade732f7dab838a1625729698c7c952 21-Jun-2012 Billy Hewlett <billyh@google.com> Revert "Revert "Use Elegant fonts for Webkit, Compact fonts for Textview""

This reverts commit 6fadccd2484233ed570218b3f97c085ef1a1ec28
extLayoutCache.cpp
extLayoutCache.h
6fadccd2484233ed570218b3f97c085ef1a1ec28 21-Jun-2012 Billy Hewlett <billyh@google.com> Revert "Use Elegant fonts for Webkit, Compact fonts for Textview"

This reverts commit ecf80965d05e44b3701b3392aeb02028daacf1b0
extLayoutCache.cpp
extLayoutCache.h
ecf80965d05e44b3701b3392aeb02028daacf1b0 07-Jun-2012 Billy Hewlett <billyh@google.com> Use Elegant fonts for Webkit, Compact fonts for Textview

Fonts can be marked with elegant or compact in fallback_fonts.xml.
Webkit uses elegant fonts, Textview uses compact fonts (the default),
unmarked fonts are used by both.

Bug: 6649136

Change-Id: Ie0debcddc13350bf60fe3139cd7ae533e466f02b
extLayoutCache.cpp
extLayoutCache.h
29b9885c258b46b00a8caf72ea1a6835d4594981 07-Jun-2012 Victoria Lease <violets@google.com> Merge "Fix hardcoded font path. Allow adding new font path thru Skia changes. Bug: 6609231"
517f67fe4b70c5a1907cb503d62b906a1eed2e1e 05-Jun-2012 Billy Hewlett <billyh@google.com> Fix hardcoded font path. Allow adding new font path thru Skia changes.
Bug: 6609231

Change-Id: I7b28c6f7ac1c227c7059b486635cadb39a6eacc3
extLayoutCache.cpp
extLayoutCache.h
75394d6d1ba633f6bf0218f563b8876b824c6fcf 03-Jun-2012 Raph Levien <raph@google.com> Fix bug 6558006: SystemUI native heap is huge. Fix memory leak

TextLayoutCache was leaking HB_Face objects, not freeing them when
purging the mCachedHBFaces cache. More full analysis is in the bug.

Change-Id: Ie5cd8b00c36b9d31963183c601cde49cbb73fafb
extLayoutCache.cpp
f970c2e6de52ef0da91c3c8f3b48a44303d0eb73 25-Apr-2012 Owen Lin <owenlin@google.com> Nvidia's patch for reusing bitmap in image region decoding.

bug: 5884845
Change-Id: I43d4d86ee94591b0b53393dfba13c7cc5c4e428d
itmapFactory.h
itmapRegionDecoder.cpp
15cc68ced062a0dbd174718abfb1c783ac1aa433 15-May-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6495019 Character gets garbled when locale is changed

- add missing cached data clearing. The Shaper was caching the HB_Face so
clear them too
- do minor code refactoring

Change-Id: Ifa86cc63815bdb4b51ce688cf16e986415b1e8c1
extLayoutCache.cpp
extLayoutCache.h
8bd8d8969380e24fadca64b6977dc20b1cf4d569 10-May-2012 Jeff Brown <jeffbrown@google.com> Merge "Fix possible leak in bitmap decoding." into jb-dev
27d83834143c117cbc0d06147c4374553f26b683 10-May-2012 Jeff Brown <jeffbrown@google.com> Fix possible leak in bitmap decoding.

In one particular error case, we might exit the function without
destroying the bitmap.

Bug: 6467873 (tangentially related)
Change-Id: I3a213cc0a53023d9d0d2a080aed15774f4c4c10c
itmapFactory.cpp
92d7f9ff1c0c8a179ee935d86d3c94022980ead2 08-May-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #6408393 Character corruption is caused when locale is changed" into jb-dev
30ca5cd11a23f06f2f8eeaa587685450826f800f 08-May-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6408393 Character corruption is caused when locale is changed

- free the TextLayoutCache on Locale change

- also free TextLayoutCache when memory is low

Change-Id: I39a37ac8ec3c292cfb1c0eea4bb41ff71897d089
anvas.cpp
extLayoutCache.cpp
extLayoutCache.h
6162876067cbaa93b870aee6e62c682104935fde 26-Apr-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6318791 Replace the Lohit Devanagari and Tamil with Droid versions

- take care of ttf filename changes and regular/bold versions

Change-Id: Ib71d2537df16ff954cef9619c12d611948d19efe
extLayoutCache.cpp
extLayoutCache.h
b3482ffbeee30650359e6ab8f3950a83e06963b4 07-May-2012 Marco Nelissen <marcone@google.com> Merge "Fix crash when decoding bitmap" into jb-dev
b2fe3be4fffc9ff1bfbba0c450d64ccd6e6c4011 07-May-2012 Marco Nelissen <marcone@google.com> Fix crash when decoding bitmap

Externally reported crash when decoding corrupted .wmf file.
b/5048623

Change-Id: I1df0861cd36983cb4d1460caa221c54d3fc240af
itmapFactory.cpp
cf4284bce11acadb1c36564b067bce3b0b26a9f9 05-May-2012 Fabrice Di Meglio <fdimeglio@google.com> Update Arabic font for SystemUI

- bug #5987379 Need an Arabic font with metrics "compatible" with Roboto
- use the Alt version with GSUB optimizations

Change-Id: I4d8c62cab37a7b010abab602c39899084d347fdc
extLayoutCache.cpp
1637dcd16cd314574a58602337a2c7222130b1b9 02-May-2012 Raph Levien <raph@google.com> Use paint typeface for shaping when it supports the requested script.

This is a hackish but workable fix for bug 6415796.

Change-Id: Iaba91e1e53e688a3ee05a1fdb68fd05102e369f2
extLayoutCache.cpp
extLayoutCache.h
b294435b5c6e0fee8c431ed3f6d77427d3d79dde 01-May-2012 Raph Levien <raph@google.com> Make Arabic script runs longer (for performance) - bug 6426451.

This change avoids selecting the incorrect font for drawing characters
when the first character in a run is a space.

Change-Id: Ibc672560d364b8de8c3e21de1c738c6dc5639395
extLayoutCache.cpp
76344241719384f160ee623554f66987d0fcae41 30-Apr-2012 Dianne Hackborn <hackbod@google.com> Fix scaling of layout bounds.

Change-Id: I9d8c8924900fed69030ee3e8d6decee89ca67820
itmapFactory.cpp
8f8d9fb52c65e50a32babf67ef764e173d2a5473 26-Apr-2012 Romain Guy <romainguy@google.com> Keep opaque bitmaps opaque after scaling
Bug #6293845

Change-Id: If9e82993f4c9702244ddedb5667421a6fcc7a0c5
itmapFactory.cpp
66556c730deba60288adf66ba1685a9d2c724aae 25-Apr-2012 Raph Levien <raph@google.com> Merge "Improve char mirroring in TextLayoutCache"
3632b7f3ef0c6158507724a2496b24b457f3f007 25-Apr-2012 Fabrice Di Meglio <fdimeglio@google.com> Improve char mirroring in TextLayoutCache

- now use ICU u_isMirrored() instead of a small hardcoded list of unicode points

see bug #5961254 Harfbuzz should be able to support Bidi_mirrored unicode attribute

Change-Id: I3243a58558a97930f0e7fdf5e9c1d5695d9393de
extLayoutCache.cpp
57e9723134e295c75a5aa0b20ca4764fc3959d25 25-Apr-2012 Raph Levien <raph@google.com> Partial fix for bug 6132077 (incorrect line breaking of Arabic text).

Fixed getTextRunAdvances so that advances are correctly aligned with
UTF-16 code point offices, rather than runs being reversed in RTL.

Change-Id: Ife59c0c26f745654c16656c86072e9102d8f6bc7
extLayoutCache.cpp
721bfaa63d14f0ac858d32431ab2eff582143b0f 14-Apr-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: fix updateTexImage JNI

Sigh...

Change-Id: I0271bed44c58e0c9a03eda4886eb2c1ee76e041f
urfaceTexture.cpp
2b4bfa5efec7df408b4db127961cfc9aca9e57cf 13-Apr-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: update API docs

This change updates the SurfaceTexture API docs and modifies the behavior of
the updateTexImage to produce an IllegalStateException when not attached to a
GLES context.

Change-Id: I5a0875927785108960985c567d571d5f7033256a
urfaceTexture.cpp
62901af52a118c61579a81c84608c9f1118931a3 13-Apr-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Add Paint.setTextLocale()"
517825f1a9f14f92908bd7859b91b927c2eec6d9 07-Apr-2012 Fabrice Di Meglio <fdimeglio@google.com> Add Paint.setTextLocale()

- will be used for better shaping CJK and other goodies

Change-Id: If64945a337edd915f5ebb88f04b6fd18e92ca587
aint.cpp
276de3e1eb11d1eb93076dca5a69c791d3ef63d8 13-Apr-2012 Fabrice Di Meglio <fdimeglio@google.com> Add new Arabic font for SystemUI

- still work in progress
- bug #5987379

Change-Id: I0a7f7437c9061eab0abc9d5979c947eb5511992a
extLayoutCache.cpp
c6d993077761fc737bbb0f4db44b961a4e7b6bbb 05-Apr-2012 Jamie Gennis <jgennis@google.com> SurfaceTexture: add GL context attach & detach

This change adds Java API support for detaching a SurfaceTexture from one GLES
context and then attaching it to a different one.

Change-Id: I8eed4b0d0e339c11598cb0408d9f4f2d99b3aa06
urfaceTexture.cpp
ec4a50428d5f26a22df3edaf7e5b08f41d5cb54b 04-Apr-2012 Amith Yamasani <yamasani@google.com> Embed layout padding in nine patch images

- Added a new custom PNG chunk that carries the layout padding ints.
- Extract the padding ticks from .9.png images and store in the chunk.
- Load the padding information at runtime into Bitmap and NinePatchDrawable.

- The new chunk is ordered first so that it doesn't cause a problem in older
versions of the platform.

Bug: 6087201

Change-Id: I5de46167a1d44b3ec21065b0c165e594b1dc8399
itmap.cpp
itmapFactory.cpp
itmapRegionDecoder.cpp
raphics.cpp
raphicsJNI.h
inePatchPeeker.cpp
inePatchPeeker.h
43e4985abfcb69db8fb39a95794eb34a2f142214 29-Mar-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #6248364 Tamil and Denavagari text crash in Google+

- fix initialization of variables

Change-Id: Ibda4e1e6f55f867385eaf9a4c7a754c16815bbf0
extLayoutCache.cpp
7b2f8b8fb7064a1d3b6d942b978c30c24c9d7299 20-Mar-2012 Romain Guy <romainguy@google.com> Pre-scale bitmaps on the native heap

Change-Id: I9819b532b89a997ab775b31ffee46445f1d16e20
itmapFactory.cpp
caf813fe1ec10dda75cd752cb3ff80872ae7ac0b 16-Mar-2012 Romain Guy <romainguy@google.com> Remove unused private API

Change-Id: Iec9c2bc275fc7376f4e0b0b9c44059c56a9dd173
itmapFactory.cpp
a1cff5043d0fbd78fcf9c48e7658e56a5b0c2de3 21-Feb-2012 Chet Haase <chet@google.com> Handle view properties at the native level

Basic functionality of handling View properties (transforms,
left/right/top/bottom, and alpha) at the native DisplayList level.
This logic is disabled for now (via compile-time flags in View.java and
DisplayListRenderer.h) as we continue work on it (there is no advantage
to the new approach until we optimize invalidation and rendering paths
to use the new code path).

Change-Id: I370c8d21fbd291be415f55515ab8dced6f6d51a3
amera.cpp
d84e1ce0b535128f03416145554fb405f9fade3e 07-Mar-2012 Jeff Sharkey <jsharkey@android.com> Split Parcel JNI details away from Binder.

This is purely a refactoring, with no change to the underlying
functionality.

Change-Id: I41b59f14e57d1cc144274a01f77658d99a1bfe02
itmap.cpp
egion.cpp
ff40ab7a418dd06cfe4758ceda17a775f2d4c776 28-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5180841 TextLayoutCache needs to support Indic

- add Tamil and Devanagari shaping support

Change-Id: I331ec52cd1987e157100deb699db27f855881c32
extLayoutCache.cpp
extLayoutCache.h
325740fb444af8fc7fb0119b2e30ce322c2ae134 25-Feb-2012 Romain Guy <romainguy@google.com> Add hooks to implement Canvas.drawTextOnPath() in GL

Change-Id: I165c9e05facf5365aa6850605688e538640c7fcc
extLayout.cpp
b13b9bdad2baf6ad1ec2e56b6b7598fa20f55fc4 18-Feb-2012 Mathias Agopian <mathias@google.com> frameworks/base refactoring.

step 2: move libutils headers to their new home: androidfw

Change-Id: I14624ba23db92a81f2cb929f104386e1fab293ef
itmapFactory.cpp
itmapRegionDecoder.cpp
ovie.cpp
inePatch.cpp
inePatchImpl.cpp
inePatchPeeker.h
ypeface.cpp
tils.h
fb2cfa223b47db3ee46df22dcdb92f4fb013dcdd 03-Feb-2012 Chih-Chung Chang <chihchung@google.com> Comment out a warning message to avoid log spamming.

The warning message happens a lot when the region decoder is used (like
viewing a picture in the Gallery app).

Change-Id: I435f92eac8f322b091f3ed14ee48d0b5f0d84a8a
raphics.cpp
0a3f6d69b6e5242d5eaca6ede801eaabbff56cfd 06-Feb-2012 Jean-Baptiste Queru <jbq@google.com> am 33476f7a: am f79bcd2d: am 52da99fa: am a081c7b8: Merge "Skia API changes as a result of an update to the Skia library."

* commit '33476f7ad1c3b4dcaefddb306f315e201c4efb33':
Skia API changes as a result of an update to the Skia library.
52da99fac85d1e16a3c95bdd9c039801e920e6d1 06-Feb-2012 Jean-Baptiste Queru <jbq@google.com> am a081c7b8: Merge "Skia API changes as a result of an update to the Skia library."

* commit 'a081c7b8bc5a3ea19fc7562b333fac525b17bc5f':
Skia API changes as a result of an update to the Skia library.
ffd121233a38adfa49f7bb29bdceba7a4700e0c7 04-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Revert back to DroidSansArabic font for SystemUI"
ab8c73882e0c572f42a5c73ebabf18706b8cc7b6 31-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5929529 Parentheses aren't correctly rendered in RTL context

- do BiDi mirrored char mirroring in TextLayoutCache
- see BiDi mirrored chars list at:

http://www.unicode.org/Public/6.0.0/ucd/extracted/DerivedBinaryProperties.txt

Change-Id: Ia0af0e252dbb0c55cc689bc9db34e05591bb6ee8
extLayoutCache.cpp
9b255cac775064038a5548c983205b2dfb029841 02-Feb-2012 Fabrice Di Meglio <fdimeglio@google.com> Revert back to DroidSansArabic font for SystemUI

- see bug #5957987 Revert to use DroidSansArabic instead of DroidNaskh font for Arabic Shaping in SystemUI
- DroidNaskh was having FontMetrics not compatible with Roboto

Change-Id: I9f3031c250f907c80f3992f71d929dc91686e1e5
extLayoutCache.cpp
889a3fa6ab9710104af60db5f73d69f253ddf254 31-Jan-2012 Derek Sollenberger <derek@android.com> Skia API changes as a result of an update to the Skia library.

These changes are required to work with r3022 of Skia

Change-Id: Ib7cebeb2eba6790bb38edfc2397b311cf419e17c
anvas.cpp
a731b082b2c43204e6e9f927ab82fb732934a83b 24-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Code cleaning: centralize use of #if USE_TEXT_LAYOUT_CACHE

- also clean some destructors (was not quite compulsory because
they are related to some Singletons)

Change-Id: I3091cac7b38628cda593d72570ba7a5d7ea2a15c
anvas.cpp
aint.cpp
extLayout.cpp
extLayoutCache.cpp
extLayoutCache.h
e414613bb8d9b1ee0234a2b0858d6f447d0d956a 25-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5901103 all_source_project_146981_Android - Android ICS LQA Regression:FA, AR, HE and TH - Font Corruption"
3941a22bfd36fe2866c2e0da93dbea2c60ec7c22 25-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5901103 all_source_project_146981_Android - Android ICS LQA Regression:FA, AR, HE and TH - Font Corruption

- use the first char of the "run" instead of the "string" for the BaseGlyphCount

Change-Id: I647528ec912bb69655cf301bbc73b66dc1a6fc82
extLayoutCache.cpp
bd901dee317d10c6a921922c3d7d788b90306c82 21-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5846413 "phone" keyboard layout is broken on master

- was a subtle regression introduced when fixing bug #5753006
- as we are now using SkPaint::kGlyphID_TextEncoding (glyph encoding)
instead of SkPaint::kUTF16_TextEncoding (UTF16 encoding), we need to
force the UTF16 encoding in some cases that are NOT going thru
the TextLayoutCache / Harfbuzz shaping

- fix also breakText() the same way

- also clean some old comment

- Warning: depends also on a CL from Skia for having getBaseGlyphCount() "const"

Change-Id: I3d1fc87f070884876c679b33541f810fbfb5df3f
anvas.cpp
aint.cpp
extLayoutCache.cpp
extLayoutCache.h
12b7da69957ef894ce5134989e38479c64308ea1 20-Jan-2012 Jean-Baptiste Queru <jbq@google.com> am 6df477be: Merge "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)"

* commit '6df477be186233e36fc370c4d2db6c1ed928a740':
Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)
f3f650db96d40014a0203393c585c368b0dd7a9a 20-Jan-2012 Jean-Baptiste Queru <jbq@google.com> am a826f9e2: Merge "Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)"

* commit 'a826f9e2c4f6329d8d48c927f6e942e78ffaf92f':
Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)
08d3c6e5ba5c3e5fcc386b07efa709325d45b9ff 20-Jan-2012 Jean-Baptiste Queru <jbq@google.com> am 4f367f33: Merge "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)"

* commit '4f367f3387887c538c81c34cc8becaea6fa5e430':
Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)
7ae84204c14b4abff70fcc19c3c33de2591df34b 20-Jan-2012 Jean-Baptiste Queru <jbq@google.com> am ba7f0d2a: Merge "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)"

* commit 'ba7f0d2a03643ce429421b81febf18fd50473070':
Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)
97aa8ee81198234aedffceaf71ad216b96323393 20-Jan-2012 Jean-Baptiste Queru <jbq@google.com> Merge ee4618bc

Change-Id: Ie1dc6ad38e7c30636d80f6caef11cf6673144940
36b48c30adf7236b00eccf87f3b5691359526540 20-Jan-2012 Jean-Baptiste Queru <jbq@google.com> am c318bbb0: Merge "Rename (IF_)LOG() to (IF_)ALOG()"

* commit 'c318bbb05e02a0080e129623ec8029d31be0d60e':
Rename (IF_)LOG() to (IF_)ALOG()
c6aacce37191e1cc79cfeba13b39899f59c68c3b 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)

Change-Id: I1de629b4632a4b3187ca1a28d6416daccd35f924
anvas.cpp
raphics.cpp
urfaceTexture.cpp
a51f0e707f1f3142358aa919ea60ad2842803139 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)

Change-Id: I8fbdfa7a7581f481968dbb65aa40f7042936d7cb
urfaceTexture.cpp
extLayout.cpp
extLayoutCache.cpp
933e85615059b85a87747da57288384541cc56da 04-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)

Change-Id: I26f76452ac49e2890b14d133c065493d8df0fb4a
inePatchImpl.cpp
1afd5bab4e0eaba8b5bc2ab5c7b556cd602cf2e7 20-Dec-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)

Change-Id: I44f267700356967dc51e8f85ebf457dc85cfb229
anvas.cpp
arfbuzzSkia.cpp
extLayout.cpp
extLayoutCache.cpp
06ade6ae1bd015e8b8ad0685847911213c93cc5b 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)

Change-Id: I5321ebd12e9c6248a108529e82c4e1af2a4405e3
inePatch.cpp
inePatchImpl.cpp
ad3f5145fe513c4abb36388ab41508edf2be2a7c 12-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOG() to (IF_)ALOG()

Change-Id: If49c81a2793182771c6160fbca93905daa6f44c1
extLayout.cpp
11d06a73df371be0b11d5cf586e24601d796c048 17-Jan-2012 Romain Guy <romainguy@google.com> Merge "Fix text encoding when drawing with drawPosText in software"
62b6eaa7f3a8111311a7ee097f278eb55865a499 17-Jan-2012 Romain Guy <romainguy@google.com> Fix text encoding when drawing with drawPosText in software

Change-Id: I0cd8ee526189c38c50953a1a08b50e0b31c55d8c
anvas.cpp
c7c09960ff9cc71d4f27f57b456986f4b634310d 17-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5870701 Thai text can be clipped when there are more glyphs generated than the initial number of code points"
03e250aefa29387f30a01243682eab2371103f8e 14-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5870701 Thai text can be clipped when there are more glyphs generated than the initial number of code points

- compute total advances correctly by iterating on the advances array for up to mShaperItem.num_glyphs
- update unit tests

Change-Id: I00af68bef88702215e9222ed80dbffcc81df51a7
extLayoutCache.cpp
3762c311729fe9f3af085c14c5c1fb471d994c03 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c
anvas.cpp
raphics.cpp
urfaceTexture.cpp
extLayout.cpp
8564c8da817a845353d213acd8636b76f567b234 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: I00a4b904f9449e6f93b7fd35eac28640d7929e69
urfaceTexture.cpp
extLayoutCache.cpp
d4a69b4a1cb5b52035345abd8cb9595ae4cf9fa5 06-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5753006 Garbled Labels in Maps"
a0a117b4c1a9e45ca4b895df9a355b6922ae2242 05-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5822825 Paint.measureText (char[] text, int index, int count) cannot handle text more than 32K long - DO NOT MERGE

- do not clear the smart pointer when the cache entry does not fit the cache size

See http://code.google.com/p/android/issues/detail?id=23337

Change-Id: Id4533d9f8a396c310c9215157ec5a4c07f30c7f2
extLayoutCache.cpp
bd47cac4dfc8440a848b33107cba1d6773f3e124 05-Jan-2012 Steve Block <steveblock@google.com> Merge "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE"
c726ff02c7749f134885decadd2ea86877119c3d 05-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5822825 Paint.measureText (char[] text, int index, int count) cannot handle text more than 32K long"
c511bee87cda99a252d1a62487f47c8f05aee78c 05-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5753006 Garbled Labels in Maps

- it was a regression introduced into this CL: https://android-git.corp.google.com/g/#/c/154240/5
- basically needed to set the GlyphID encoding to the Skia Paint as we are now using glyphID resulting
from the Harfbuzz shaping
- also define GlyphID encoding as the default on the Paint class

Change-Id: Idb7c2c57ac67595425ce3be9421258962690fcdd
anvas.cpp
aint.cpp
extLayout.cpp
extLayout.h
bd7cdc32eb30e779edeec3e0d1715376aae6c546 04-Jan-2012 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5822825 Paint.measureText (char[] text, int index, int count) cannot handle text more than 32K long

- do not clear the smart pointer when the cache entry does not fit the cache size

Change-Id: I49f1aa1e70018bb7d6a8fb076d9269d0ec6a5d98
See: http://code.google.com/p/android/issues/detail?id=23337
extLayoutCache.cpp
6215d3ff4b5dfa52a5d8b9a42e343051f31066a5 04-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156801

Bug: 5449033
Change-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea
inePatchImpl.cpp
5baa3a62a97544669fba6d65a11c07f252e654dd 20-Dec-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: I4c4e33bb9df3e39e11cd985e193e6fbab4635298
anvas.cpp
arfbuzzSkia.cpp
extLayout.cpp
extLayoutCache.cpp
a4d077006306b49d85e7609e8f5a061e345f6f6d 14-Dec-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5674155 Segmentation issue for Thai

- force Harfbuzz to shape with the Thai font

Change-Id: I3830acae17385b050e2745fca277cf66af103099
extLayoutCache.cpp
extLayoutCache.h
65194adc9a5174fc88fb579472799e8b4771796b 14-Dec-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5727213 Rendering issues with Bengali in Textview in IML63B

- force Harfbuzz to shape with the Bengali font
- also fix potential returned NULL value from SkTypeface::CreateFromFile(path)

Change-Id: I25be09d06e449b89bb4a62444e27f77e436b77ba
extLayoutCache.cpp
extLayoutCache.h
902a5b31c50022a1b7707be4d333e4ce6ec4a8fa 09-Dec-2011 Fabrice Di Meglio <fdimeglio@google.com> TextLayoutCache - fix diacritics composition

- normalize (with ICU) each BiDi run before shaping them

We are normalizing by "chuncks" and starting from the end of the string. Each "chunck"
is composed of the main code point and its associated diacritics.

Fix bug #5738435 TextLayoutCache should be able to take care about diacritics during shaping

Change-Id: I7288027a7fa8eafb8b9f38d449625be60214548a
extLayoutCache.cpp
extLayoutCache.h
b02d0ca5553300063e4332192632312600caf4b9 08-Dec-2011 Fabrice Di Meglio <fdimeglio@google.com> Clean TextLayout code and remove RTL_USE_HARFBUZZ

- remove dependencies on ICU
- use TextLayouCache
- remove RTL_USE_HARFBUZZ define (we *are* using Harfbuzz now)
- also fix compilation warning

Change-Id: I022e11703438d07032e49e42724184f6bf16653e
anvas.cpp
aint.cpp
tlProperties.h
extLayout.cpp
extLayout.h
extLayoutCache.cpp
99cdc6a3b509d61b0072467f6ed47989aca528c1 06-Dec-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix TextLayoutCache issue when loading Font tables (DO NOT MERGE)

- disable GSUB / GPOS table loading

Change-Id: I2ae058c9d926242586f90dc2a98302ff886f1fe1
arfbuzzSkia.cpp
extLayoutCache.cpp
f98c2a67fe051cc92f3205bfc0267ddac90d3a71 06-Dec-2011 Jeff Brown <jeffbrown@google.com> Fix memory corruption issues in TextLayoutCache. (DO NOT MERGE)

Ensure log_clusters array is big enough.
Bug: 5714171

Explicitly handle the cases where the entire string or a single
run might have a length of 0.
Harfbuzz assumes the length of the item is at least 1.
If the length is zero, then it will clobber memory at index -1
into the log_clusters array.
Bug: 5705479

Change-Id: If28a9866221081f69973c1d12d7fe0cf8db2edd0
extLayoutCache.cpp
a03bdedbdf1022d1391f5f0a6ea507e2ebbb0e9a 06-Dec-2011 Jeff Brown <jeffbrown@google.com> Harfbuzz assumes the length of the item is at least 1.

If the length is zero, then it will clobber memory at index -1
into the log_clusters array.

Explicitly handle the cases where the entire string or a single
run might have a length of 0.

Bug: 5705479
Change-Id: Ibbd3a4edcb7e1cad09c34091b42bb315776ea558
extLayoutCache.cpp
738ef87eacd3e54132d1bf661dd9329050fddd2f 06-Dec-2011 Jeff Brown <jeffbrown@google.com> Ensure log_clusters array is big enough.

Bug: 5714171
Change-Id: I886f1af8af177827f052e6406a192f2fad5c2cec
extLayoutCache.cpp
extLayoutCache.h
868d1bdf3c01dbdcf15b780db72d1c9a3022829f 03-Dec-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "TextLayoutCache Fix compilation issue"
5448f0378ede9c5d33e7300fa318ef4a6925562f 03-Dec-2011 Fabrice Di Meglio <fdimeglio@google.com> TextLayoutCache Fix compilation issue

- fix compilation after refactoring and when setting DEBUG_ADVANCES to 1

Change-Id: I8eef7e3c4550c505325459948d3c8eebbdd5215a
extLayoutCache.cpp
2e5e96e9f06b3853dcade61c0aceb0dbaaff3032 01-Dec-2011 Fabrice Di Meglio <fdimeglio@google.com> TextLayoutCache Code cleaning

- remove commented code
- fix log

Change-Id: I8495b923c9426e33e645fe85ea04005520716f4e
extLayoutCache.cpp
56e6e5492780feb3824ff076551b563aade6a2ef 01-Dec-2011 Fabrice Di Meglio <fdimeglio@google.com> Improve TextLayoutCache logging

- make logs more consistent and readable
- add more logs information

Change-Id: Idfe5bb53e9163c4c07a9b4267b66b0d0e164a498
extLayoutCache.cpp
extLayoutCache.h
0af10b54bf110653b74cb92793484b412a90b657 19-Nov-2011 Fabrice Di Meglio <fdimeglio@google.com> Improve TextLayoutCache performances

- introduce TextLayoutEngine
- reduce calls to HB_NewFace as they are opening the font files under the cover
- refactor code for removing FontData structure
- fix logging

Change-Id: Id9658fcd454b74c34ecf4e9dfd1bd2201e04b988
arfbuzzSkia.cpp
arfbuzzSkia.h
aint.cpp
extLayoutCache.cpp
extLayoutCache.h
a4f5aa87c73de7a2581dc4dd72e0f90ccea79a18 18-Nov-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix TextLayoutCache Skia Typeface caching

- fix reference passing for globals

Change-Id: I806dd4406d455b98c6be733847419b06b6774ccc
extLayoutCache.cpp
extLayoutCache.h
bf677de46a039e07038511909576bfbf4406f7fd 15-Nov-2011 Jeff Brown <jeffbrown@google.com> Merge "Clean up GenerationCache."
d8fa1ad4523b6c04cab663ff4b65181fc00594d9 14-Nov-2011 Mathias Agopian <mathias@google.com> am 738d8cae: am c93a151f: Merge "Define, document, and test the behavior of very large SurfaceTextures" into ics-mr1

* commit '738d8cae2239d194429676f2889cfae3c8f7ba08':
Define, document, and test the behavior of very large SurfaceTextures
c93a151fde7d616c22b86ae458b3d015e3820d5e 14-Nov-2011 Mathias Agopian <mathias@google.com> Merge "Define, document, and test the behavior of very large SurfaceTextures" into ics-mr1
d9e688cab3015d858110fb8240cf7378c6befd82 12-Nov-2011 Jeff Brown <jeffbrown@google.com> Clean up GenerationCache.

Use const references to keys and values where appropriate to avoid
copying them unnecessarily.

Deleted some dead code.

Simplified a few pieces that were doing unnecessary redundant work.

Change-Id: Ib2145b7094a40db2d679e05dafe050fe1e87b846
extLayoutCache.cpp
ad169f49af9fac1b80faa124496103dff2ac29f4 12-Nov-2011 Jeff Brown <jeffbrown@google.com> am 0e4669c8: am f1f0c873: Fix bug in TextLayoutCacheKey handling embedded nulls.

* commit '0e4669c81009cea51d9d7b42b7ff665f44e78aa6':
Fix bug in TextLayoutCacheKey handling embedded nulls.
0e4669c81009cea51d9d7b42b7ff665f44e78aa6 12-Nov-2011 Jeff Brown <jeffbrown@google.com> am f1f0c873: Fix bug in TextLayoutCacheKey handling embedded nulls.

* commit 'f1f0c873b1d119a19342cb67ca77b59607951659':
Fix bug in TextLayoutCacheKey handling embedded nulls.
6f0464e79d6d41d8255a6b0b6695fa7f67a0f65f 12-Nov-2011 Jeff Brown <jeffbrown@google.com> am f1f0c873: Fix bug in TextLayoutCacheKey handling embedded nulls.

* commit 'f1f0c873b1d119a19342cb67ca77b59607951659':
Fix bug in TextLayoutCacheKey handling embedded nulls.
b89d88f531ee39927f8f554baaae5ecc9101ba9d 10-Nov-2011 Mathias Agopian <mathias@google.com> Define, document, and test the behavior of very large SurfaceTextures

updateTexImage() now throws a runtime exception when its native
counterpart fails

Bug: 5506633

Change-Id: I151a6f685d465966e7df4df624412ab2da62e95f
urfaceTexture.cpp
06daa7b6b2186cf1e83e14d2adbb0d2050b79c39 12-Nov-2011 Jeff Brown <jeffbrown@google.com> Improve the logging in TextLayoutCache.

Also deleted some dead code.

Change-Id: I1feb5744177ae751ff1417f49f3c45139a35246b
extLayoutCache.cpp
extLayoutCache.h
f1f0c873b1d119a19342cb67ca77b59607951659 12-Nov-2011 Jeff Brown <jeffbrown@google.com> Fix bug in TextLayoutCacheKey handling embedded nulls.

We were not passing the length of the UTF-16 string to
String16::setTo. As a result, it was copying the contents of
the text up to the first null it found.

First problem, these strings are not typically null terminated!

Second problem, if the string contained a null character, then
we might truncate it. However, we only truncated the string
when the copy constructor was invoked (say, when we called
get() on the cache) but not in internalTextCopy() (before
adding the key to the cache).

As a result of the second problem, we would first search
the cache for a key that matched a partially copied truncated
string (potentially reading uninitialized memory that followed it).
Finding none, we would add the entry to the cache using
the correct key.

If the cache already had a value associated with the correct key,
then the put would fail, returning false. Charging ever onwards,
we would add the size of the entry to the cache size.

Proceeding in this manner, it was possible for the cache to
believe it had less remaining space than it really did. At that
point, it was possible for the cache to evict all entries and
yet still not think it had room to add a new one, so it would
continue trying to make space indefinitely.

Bug: 5576812
Change-Id: I05251594f6b2da0a5dc09f7200f04fe9100ec766
extLayoutCache.cpp
208d4592f6e8db90eab30cfca3dc294731258d1c 09-Nov-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix potential crash when shaping Hebrew with bold

- make code more resilient
- make correct initialization of gHebrewRegularTypeface

Change-Id: I97e98d36b830ad35979184c1459e8c8503eb3d28
arfbuzzSkia.cpp
extLayoutCache.cpp
extLayoutCache.h
e187a2f55fe8684c853a0701cbc4a71392f437e0 08-Nov-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5559439 Bogus tab title in browser

- no need to shigt glyph IDs if we are a "common" script
- also code cleaning (suppress dead code)

Change-Id: I17bcf960f925a897a30894a3c581053f7fe5905f
extLayoutCache.cpp
extLayoutCache.h
4f4b83c50c67d4520af3d5b4733b1627208275ce 02-Nov-2011 Fabrice Di Meglio <fdimeglio@google.com> am 07b4b314: am bcf05a69: Fix bug #5553401 TextLayoutCache is too verbose: "computeValuesWithHarfbuzz -- need to force to single run"

* commit '07b4b3145333bc8ece9fdbb68ade726b3d6485cd':
Fix bug #5553401 TextLayoutCache is too verbose: "computeValuesWithHarfbuzz -- need to force to single run"
07b4b3145333bc8ece9fdbb68ade726b3d6485cd 02-Nov-2011 Fabrice Di Meglio <fdimeglio@google.com> am bcf05a69: Fix bug #5553401 TextLayoutCache is too verbose: "computeValuesWithHarfbuzz -- need to force to single run"

* commit 'bcf05a69090f342d328f1537d1d83406b883290b':
Fix bug #5553401 TextLayoutCache is too verbose: "computeValuesWithHarfbuzz -- need to force to single run"
bcf05a69090f342d328f1537d1d83406b883290b 02-Nov-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5553401 TextLayoutCache is too verbose: "computeValuesWithHarfbuzz -- need to force to single run"

- make single run case non verbose

Change-Id: I5c3b87aeb613697233290ddecac3ca00f58f8313
extLayoutCache.cpp
ef9bb3c3ea3aa08071ea0c32a505b379c322e5b5 17-Oct-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5438102 Double Arabic harakat overlap instead of stack In TextView

IMPORTANT: this change needs two patches for Harfbuzz:
- one concerning hb_utf16_script_run_prev() which was not returning the correct "previous" script
- one for the "script_properties" table that was missing Arabic code point ranges and declaring
HB_Script_Inherited instead of HB_Script_Arabic

The current change is doing the following:
- pass the correct typeface for Harbuzz shaping (depending on the script of the run)
- offset correctly the glyphIDs returned by Harfbuzz

We need to offset the glyphsID as Harfbuzz will return local glyphIDs (meaning in the
local range of the font used for shapping).

We then cannot use those glyphIDs when we are using a fallback Font (Arabic, Hebrews...)
because the FontRenderer needs glyphIDs in the range of all the Fonts (including the fallbacks)

Change-Id: I494897435bbc59293b02392ee2059cebcdf0e571
extLayoutCache.cpp
extLayoutCache.h
904221a342fe977fe05270b7dde6ac94d13383f6 25-Oct-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5504346 Hung in native_getTextRunAdvances - DO NOT MERGE

- better check of ICU returned values
- default to single run if ICU is returning errors

Change-Id: I836818bda4fc72a27b2201f01023cd23c5d99ecb
extLayoutCache.cpp
26e9ee28decfe934f57f6e8dcaf5620b5502e926 25-Oct-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5504346 Hung in native_getTextRunAdvances - DO NOT MERGE

- better check of ICU returned values
- default to single run if ICU is returning errors

Change-Id: I836818bda4fc72a27b2201f01023cd23c5d99ecb
extLayoutCache.cpp
ad41b7c0d42b34a039bd9055f2134f8708d0ee67 31-Oct-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #5504346 Hung in native_getTextRunAdvances"
5beeda08a7bd300ec22daaa9ae4e2d02a8c121ad 25-Oct-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5504346 Hung in native_getTextRunAdvances

- better check of ICU returned values
- default to single run if ICU is returning errors

Change-Id: I836818bda4fc72a27b2201f01023cd23c5d99ecb
extLayoutCache.cpp
71f2cf116aab893e224056c38ab146bd1538dd3e 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I0122812ed6ff6f5b59fe4a43ab8bff0577adde0a
inePatch.cpp
inePatchImpl.cpp
28d9f024e043817212b15f04128d0464330502ea 12-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOG() to (IF_)ALOG() DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/141576

Bug: 5449033
Change-Id: I42575e7c29cf1c0f465c357a5c97ab118df6f473
extLayout.cpp
44cd3f8f3daf45f85f6e977dcf28f75287fbb25b 21-Oct-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix compilation issue when DEBUG_GLYPHS define is activated"
a99ed6284eac0b00686ca60c595a0b98beddcb79 14-Oct-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix compilation issue when DEBUG_GLYPHS define is activated

Change-Id: I61693952ffdc02f77058311fc982fbbf8df24c6c
extLayoutCache.cpp
2c183fa5bf666c5f6b2221fd04db8ee3c738d1fd 19-Oct-2011 Romain Guy <romainguy@google.com> Notify a Bitmap is has changed when calling copyPixelFromBuffer

Change-Id: Ibff1a162edfe11473c5c167e764405bf83ec5822
itmap.cpp
5c863f741e8e484bb39decd516c9fa4c6322e671 06-Oct-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5371117 Regression : The Hebrew / Arabic text behavior in ICS latest build is wrong

- welcome back start / count
- goodbye log clusters
- clean Paint code
- make private some functions as they should be
- improve memory allocation (create only one Shaper and reuse it for for shaping the runs in
the same input text)

Change-Id: I89a320c7f041319851308c8c9a919fbeafa82cdd
anvas.cpp
aint.cpp
extLayout.cpp
extLayoutCache.cpp
extLayoutCache.h
6579a9d6fe2302fa149452f66c4062ebc60c2523 24-Sep-2011 Jeff Brown <jeffbrown@google.com> Transfer large bitmaps using ashmem.
Bug: 5224703

Change-Id: If385a66adf4c6179a0bb49c0e6d09a9567e23808
itmap.cpp
8ebf1efd66516340bedbf0d0a19d5e96cc28fa20 03-Oct-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix potential issue with the TextLayoutCache with glyphs"
155fa38a71ff11e1617b1e3dfda770543df8eb1d 01-Oct-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix potential issue with the TextLayoutCache with glyphs

- there may be a mapping of one char to many glyphs

Change-Id: I48846d176d61dc8d8e513ca144fdf8ad805e63b7
extLayoutCache.cpp
717060b076350ea811153290281075396a554fed 28-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Improve TextLayoutCache performances a bit

- the gain is about 5% and the timing is more stable
- use compare_type() and strictly_order_type()

Change-Id: Iab81869a8ba461ce786a468b6c59b8f34e8db838
extLayoutCache.cpp
extLayoutCache.h
5293cea4e05556b4144d9487b47282a21c9f6941 27-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug # 5376028 Arabic text is kinda broken - disappearing glyphs

- make the log clusters happy

Change-Id: I73ca9512f0ca02549dad5270d6ec198ae9b00a4e
extLayoutCache.cpp
79df5323e7ed541b854cea5684a89e8be8c2dfc9 20-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5332081 TextLayoutCache needs to be able to have more cache hits

- makes TextLayoutCache not carring about start/count. Basically he will cache the result for
the full string and gives back the "chunk" corresponding to start/count
- changed the TextLayoutCacheValue API to take start/count parameters
- add Harfbuzz LogClusters in TextLayoutCacheValue as it is needed for extracting the start/count "chunk"

Change-Id: I4b38a4442428606de9a093303bbbe98181e1f89c
anvas.cpp
aint.cpp
extLayout.cpp
extLayout.h
extLayoutCache.cpp
extLayoutCache.h
7aac2979605f4811cf096f7c62d363381c68f6b2 20-Sep-2011 Jeff Brown <jeffbrown@google.com> TextLayoutCacheKey needs to store start and count.

Bad merge.

Change-Id: Id6507b3a7e35808a6d34501a45d79fcb7470657d
extLayoutCache.cpp
4dd99e5912c73d5a9db165cefd4852b51ea438e8 19-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> TextLayoutCache code refactoring

- use vector (instead of array) for advances and glyphs
- reverse glyphs directly in computeRunValuesWithHarfbuzz() (instead of reversing them after)

Change-Id: I716a8f914fd043818d7cb80cca76ee5fb0effb96
extLayout.cpp
extLayout.h
extLayoutCache.cpp
extLayoutCache.h
e0d558ac92cd9e550b3d08bf09d9bb12c2a506c6 19-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix potential leak in TextLayouCache"
54dc642cc1e188b9eeecadb648b9e8c610f4b857 19-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Make TextLayoutCache no more dependent on ICU

- move ICU call to TextLayout

Change-Id: Id5a21e7b69e484536cfb5b86fbb0c112fb661dfa
extLayout.cpp
extLayout.h
extLayoutCache.cpp
e74fef3b55dc1b5daf40b3a6aea857582071560f 18-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix potential leak in TextLayouCache

- need a copy constructor for the key as the GenerationCache we are using
is actually a KeyedVector<K, sp<Entry<K, V> > >
- use the getText() API to access the text in the cache key

Change-Id: I5b60ebc062b62308ed7ac1284cfe2a9f28e2b8b1
extLayoutCache.cpp
extLayoutCache.h
9c418dbc56efd334c68872d281f75138e16eae46 18-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Revert "Fix bug #5332081 TextLayoutCache needs to be able to have more cache hits"

This reverts commit d686d76814f18061e06995df0d5de9feb9f70a7e
anvas.cpp
aint.cpp
extLayout.cpp
extLayout.h
extLayoutCache.cpp
extLayoutCache.h
d686d76814f18061e06995df0d5de9feb9f70a7e 14-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5332081 TextLayoutCache needs to be able to have more cache hits

- makes TextLayoutCache not carring about start/count. Basically he will cache the result for
the full string and gives back the "chunk" corresponding to start/count
- changed the TextLayoutCacheValue API to take start/count parameters
- added the Harfbuzz LogClusters in TextLayoutCacheValue as it is needed for extracting the start/count "chunk"
- fix potential issue of cache key leaking

Change-Id: I9276f9bec744e8de36349acfba8429f7c6f83394
anvas.cpp
aint.cpp
extLayout.cpp
extLayout.h
extLayoutCache.cpp
extLayoutCache.h
51f383d65f9ee3c7d73d0508b576550e7998c5b5 14-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix some TextLayoutCache issues

- wrong ContextCount was passed
- better logs

Change-Id: Ie78ba70f98f3cf017c168ab8848cc080fc175f31
aint.cpp
extLayoutCache.cpp
163268b3a8d4dd7e650e6c540f832bf60f6bf4c9 08-Sep-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5274332 TextLayoutCache is having multiple instances

- also fix the missing LOG_TAG define

Change-Id: I25e96d1ba372e84768604f18702e0724fdecefb0
anvas.cpp
extLayout.cpp
extLayout.h
extLayoutCache.cpp
extLayoutCache.h
abb0f299fdc72755a18cf8848d57919890f0cd42 19-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Update TextLayout logging

- centralize logging into TextLayoutCache
- add offset logging

Change-Id: I52f229b2a8aed121715b37a5a42936875b23f3c9
anvas.cpp
extLayout.h
extLayoutCache.cpp
596072306191932c3a7f845b549795380eeb4c53 17-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5174495 Harfbuzz shaping is broken after taking care of Indic

- revert back to old working code where the script was setup for Harfbuzz\
depending of the direction of the run

Change-Id: I7ec740732b51ccf05b6744b7f9d2fcb35555478d
extLayoutCache.cpp
f43fa5746ee5b81a6e386d36594094d079ac8160 13-Aug-2011 Dianne Hackborn <hackbod@google.com> Turn off hinting by default for higher density displays.

Also adds an API for apps to control whether hinting is used.

Change-Id: I1a06b06255fbb8d0f02a8ce48c2cd60019088ed3
aint.cpp
1ee60119c4fa51ebfa781cf5fdc33f192e8551b8 26-Jul-2011 Ted Bonkenburg <tedbo@google.com> Remove ParcelSurfaceTexture and update MediaPlayer

This removes the ParcelSurfaceTexture class since that functionality has been
folded into Surface.java. The change also updates the MediaPlayer to get rid
of setParcelSurfaceTexture() and modifies setTexture() to use the new Surface
functionality in order to simplify the code.

Change-Id: Iafa75ea3188263928128325d8a726786971b4de4
arcelSurfaceTexture.cpp
5de5b1a91e25ef4931661fdd089d7e0e2b7da035 09-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix Harbuzz shaper for being able to do select other scripts than Common or Arabic

- need to take care of diacritics marks that return HB_Script_Inherited for a script

Change-Id: Icbfea46b305e15849b25410fed07d9cd5dfeb818
extLayoutCache.cpp
6ab90ed017fb52aac4493a2fac897299d345874f 09-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Solidify and optimize Paint text related APIs

- better check parameters consistency
- return calls as soon as possible (when null or empty text)

Change-Id: I46744e517b04e3fba0ec37132d7de400177f214b
aint.cpp
f95761826590a953c927fd93b1e8ef627dbc3e5b 08-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Revert "Adapt TextLayoutCache for new Harfbuzz scripts""
f09e46e938cd041315f25de3d23560c12c08bf4e 08-Aug-2011 Fabrice Di Meglio <fdimeglio@google.com> Revert "Adapt TextLayoutCache for new Harfbuzz scripts"

This reverts commit 7f4ae758ba4724f7c3031d33ad8e749c11d1e059

This CL created a regression:

#5134317 Arabic Keyboard does not appear
extLayoutCache.cpp
adc25267f8ba29ccf1408d8840dc9e840e7c65c7 04-Aug-2011 Russell Brenner <russellbrenner@google.com> Merge "Adapt TextLayoutCache for new Harfbuzz scripts"
ec46b4e1ca89d7c3a9ad70ded58da08b5e19f08f 04-Aug-2011 Mathias Agopian <mathias@google.com> Add a 'release' method to the SurfaceTexture public Java API

Bug: 5063618
Change-Id: I689cb0c01c14e597ccfb4eb0972e64fa570bd4e8
urfaceTexture.cpp
7f4ae758ba4724f7c3031d33ad8e749c11d1e059 03-Aug-2011 Russell Brenner <russellbrenner@google.com> Adapt TextLayoutCache for new Harfbuzz scripts

The Harfbuzz script setting was wired to HB_Script_Common for left-
to-right text and HB_Script_Arabic for right-to-left. This change
selects from additional scripts using some utility APIs from
Harfbuzz.

Change-Id: I34a6f1e0407c8d122bc968443948e7863d1f91ed
extLayoutCache.cpp
4f7c380d5160a66274c96e1529928149ed9e9624 02-Aug-2011 Derek Sollenberger <djsollen@google.com> Merge "Reverting until we can find a better way to address this issue without affecting nine-patches with large stretchable areas."
09a22e33e7a912ef14982b91f9387f907cc015f5 02-Aug-2011 Derek Sollenberger <djsollen@google.com> Reverting until we can find a better way to address this issue without affecting nine-patches with large stretchable areas.

Revert "Fix NinePatch decoder when the target is smaller than the source."

This reverts commit c4c458c678567b899aae04631570460c5e729512
inePatchImpl.cpp
0965a3244b4c3009d08db2e084cdcb681ef66d26 02-Aug-2011 Romain Guy <romainguy@google.com> Allow Canvas.setBitmap() to receive a null Bitmap.

Change-Id: I6096f0b44866e532ccd96a29c816bf34d48c1dc2
anvas.cpp
c4c458c678567b899aae04631570460c5e729512 29-Jul-2011 Derek Sollenberger <djsollen@google.com> Fix NinePatch decoder when the target is smaller than the source.

If the target is smaller on a given axis than the source then we
just draw a downscaled version of the NinePatch. If we use the
current path and the source has transparency then areas of the
NinePatch overlap and are blended together resulting in visual
inconsistancy.

bug: 5041053
Change-Id: I0fcc6fb5c214b188a164acf0651aa4ab2f35946d
inePatchImpl.cpp
c2063a5b18bc2e54f000b411c82f43992a53854e 18-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #5037425 Canvas.drawText can't handle Right-to-Left text and text composing

- optimization for single run case was broken
- pass isRTL boolean along the call stack instead of the dirFlags integer
(which was only used as a "isRTL" in the shaper)
- update unit tests

Change-Id: I33110b76a433633a0b92fbd1db03785204e0c3e6
extLayoutCache.cpp
extLayoutCache.h
796cc96243a57cd1b652bd90c4e7ba7823c6c2fe 16-Jul-2011 Fabrice Di Meglio <fdimeglio@google.com> Clean test APIs for Harfbuzz support

- also update unit tests

Change-Id: I557f61e84c4c4b6165163b783d9c679a6b3b4106
anvas.cpp
99b7b7a7f896f8b98e84c4d87e1239541f518f76 14-Jul-2011 Romain Guy <romainguy@google.com> Force bitmaps to load in ARGB8888 by default.
Bug #5024993

Change-Id: Id0c63f675ae188e5a786b7fdd63916e114b9ed4a
itmapFactory.cpp
3cf7cf575138bcbe5b49c32eb4ae401f92e4c8f7 28-Jun-2011 Jamie Gennis <jgennis@google.com> Merge changes I9fb59763,I8b2c6e00

* changes:
SurfaceTexture: consume buffers after err checks
SurfaceTexture: change onFrameAvailable behavior
bd5404d0312752e7c8946e8540129f0d2d97bcd7 27-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: change onFrameAvailable behavior

This change alters the conditions under which the onFrameAvailable
callback gets called by the C++ SurfaceTexture class. The new behavior
is to call the callback whenever a frame gets queued that will be
visible to the buffer consumer. This means that buffers queued in
synchronous mode always trigger the callback, as those buffers will
remain pending until they are consumed. Buffers queued in asynchronous
mode will only trigger the callback if there was not previously an
unconsumed buffer pending.

The new behavior means that a consumer should perform a draw operation
exactly once for every onFrameAvailable call that it recieves. This
change also modifies SurfaceFlinger and the SurfaceTexture JNI to
support of the new behavior.

Change-Id: I8b2c6e00961d3d58b11c6af50b555b6e4c5f5b40
urfaceTexture.cpp
a2c8a7b5739c1febf8ffbf9461334343bdadab16 27-Jun-2011 Jean-Baptiste Queru <jbq@google.com> am ec5039b3: am 99c070d8: am 4fea5373: Merge "Add WEBP to the list of Image formats that support Compression."

* commit 'ec5039b3720ee9b92fb2a2c6dd9f468d2dcd7172':
Add WEBP to the list of Image formats that support Compression.
436b50f0dcfd0c3ec397d860e8f98abbce231e23 26-Jun-2011 Jamie Gennis <jgennis@google.com> Merge "SurfaceTexture: detach from Dalvik when necessary."
ec5039b3720ee9b92fb2a2c6dd9f468d2dcd7172 24-Jun-2011 Jean-Baptiste Queru <jbq@google.com> am 99c070d8: am 4fea5373: Merge "Add WEBP to the list of Image formats that support Compression."

* commit '99c070d8eb9f1ff9ea5c38991f15f091040226c2':
Add WEBP to the list of Image formats that support Compression.
d3d4b4b86ae5bc8301b64ee6d78a7a9343347398 24-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix potential advances overrun in TextLayoutCache."
b092f55c37f19aa4ee714242337136b9061f8ca8 24-Jun-2011 Doug Felt <dougfelt@google.com> Fix potential advances overrun in TextLayoutCache.

Change-Id: Ibec544f249833a28fe8ef9a15fc8ab48fddfc51c
extLayoutCache.cpp
0904d0af81e8a0a5404d6c03f4dcea02bea8170d 24-Jun-2011 Grace Kloba <klobag@google.com> Add allowSynchronousMode to SurfaceTexture constructor.

Change-Id: I54f30a3c16bbe6b813f3bcd1d389da5627531304
urfaceTexture.cpp
0a8fd9b610b2de92930c92d71ac184dc9e2bcb4d 21-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: detach from Dalvik when necessary.

This change adds a call to detach from the Davlik VM in SurfaceTexture
JNI calls that caused an attach.

Change-Id: I8e0d7d596680bd25ac42f8db4ca8343a62827255
urfaceTexture.cpp
0694cfe49a889788e185a265deed0c231fe31f4b 23-Jun-2011 tedbo <tedbo@google.com> Merge "Add method to create a ParcelSurfaceTexture from android.view.Surface."
2305ac9e4a262ed09fd034ae417e9b1dda4c0ccb 23-Jun-2011 Vikas Arora <vikasa@google.com> Add WEBP to the list of Image formats that support Compression.

Note: The integrator of this change to Android internal code-repo will
have to run one extra step 'make update-api' to update 'api/current.txt'
file corresponding to approved API. The AOSP branch didn't have this
file, hence I could not add the same to this change. The updated file
'api/current.txt' has to be submitted along with this change.

Change-Id: I29909e907a2e82d801e16654322190a808c5bda9
itmap.cpp
4e8a5c922c287ec97fec847194e930f8598a1941 23-Jun-2011 tedbo <tedbo@google.com> Add method to create a ParcelSurfaceTexture from android.view.Surface.

Change-Id: I05e343ab7e327478f60322af9373574b70c148f5
arcelSurfaceTexture.cpp
925bcaabde5a21687b51caa7ab329310a819f068 22-Jun-2011 Grace Kloba <klobag@google.com> Fix the issue where onFrameAvailable is not triggered if SurfaceTexture is in sync mode.

If there is more frame after updateTexImage, trigger the listener again.

Change-Id: I1415ae9a914cc8bb139cb369464b1f6a2aa24058
urfaceTexture.cpp
84293fb9625a3ab7d7d302436bea05441b8d7316 18-Jun-2011 Jamie Gennis <jgennis@google.com> SurfaceTexture: attach to Dalvik when needed.

This change fixes a bug in the SurfaceTexture JNI where a thread that
the Dalvik VM was not aware of calls the onFrameAvailable callback.
When this happens the callback needs to first attach the thread to the
VM before attempting to post the onFrameAvailable event for Java code to
handle.

Change-Id: I6a5470c32611ea6f38e9167779450f50635cabd3
urfaceTexture.cpp
f11c52d246d9e43c8533dff82979e7eeb72c1d50 16-May-2011 Derek Sollenberger <djsollen@google.com> Updates resulting from the Skia merge (revision 1327)

Change-Id: I1d2cecbad6c30e6ebc9579093404742f17e14e84
anvas.cpp
inePatchImpl.cpp
cc5278a3e258b30903102b718fb1cd832e79bb2b 10-Jun-2011 tedbo <tedbo@google.com> Support for setting a ParcelSurfaceTexture as the MediaPlayer sink.

This adds support for setting a SurfaceTexture as the MediaPlayer video
sink by using a ParcelSurfaceTexture object. The goal is to enable a
SurfaceTexture to pass through Binder (via ParcelSurfaceTexture) and then
be set on the MediaPlayer.

Change-Id: Ife5689ce673eb4bee1c377019db761685217b71d
arcelSurfaceTexture.cpp
urfaceTexture.h
050316184b01c0d1a01c46afae7429b89a27c31b 07-Jun-2011 tedbo <tedbo@google.com> Add ParcelSurfaceTexture Java class to enable ISurfaceTexture sharing via Binder.

This adds a new ParcelSurfaceTexture.java class that can be instantiated with
a SurfaceTexture and used to send the corresponding ISurfaceTexture interface
to another process via Binder. The ParcelSurfaceTexture java object can then
be used to create an ANativeWindow based on the SurfaceTextureClient interface.

Change-Id: Ie38ea948b866e52f36a6d0f6cde19b54a8546817
arcelSurfaceTexture.cpp
urfaceTexture.cpp
urfaceTexture.h
de267191531fef134f0171c9ddb91498fe9400cd 08-Jun-2011 Jean-Baptiste Queru <jbq@google.com> Tweak setViewport stuff for fwd-compat

Change-Id: I532336eced54544115dfd47d5557cc77bafdfc87
anvas.cpp
inePatchImpl.cpp
af033caf26ef4eca99c4024e59def7e42c3fa4cd 06-Jun-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix USE_TEXT_LAYOUT_CACHE define

- fix compilation issues

Change-Id: I3358457d94d2278804e81e4ca96c9633ed76a147
anvas.cpp
extLayout.cpp
9743547cde4e823a397cfdfd79a3229af1f7ec7e 26-May-2011 Marco Nelissen <marcone@google.com> Fix crash when nesting Picture recording.

b/4490619, http://code.google.com/p/android/issues/detail?id=16644

Change-Id: Ia227c87cba61e0d0b6f86b01a064a3eefe447fe1
icture.cpp
41701ac5f694074a41e3f1d2e0a889e8af792a37 18-May-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #4441002 Crash in SkPathEffectGlue::OneD_constructor"
78b868ff42cc368c45f851443678a822560dc266 18-May-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #4441002 Crash in SkPathEffectGlue::OneD_constructor

- take care of empty strings in TextLayoutCache when computing advances/glyphs with Harfbuzz

Change-Id: I8eb5f632feb7a86e5c4a6db03d073c4b7d859dbc
extLayoutCache.cpp
43124d22142f708b39e79fb0d91258e6234b5f26 17-May-2011 Derek Sollenberger <djsollen@google.com> Merge "Updates resulting from the Skia merge (revision 1327)"
d39d1affe82cb8c21d32baaa5fbb2d6afb806f8e 16-May-2011 Derek Sollenberger <djsollen@google.com> Updates resulting from the Skia merge (revision 1327)

Change-Id: I2a8f5869dbe95bb594f2ba5d7278f9b330e6f17a
anvas.cpp
inePatchImpl.cpp
35844a3a4e6f7383d4e77f4426fbd71d5990bf6e 16-May-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Fix bug #4415576 Gmail text looks broken"
8fb507171f68d4170cfeb1187ee7d1f70f98917d 14-May-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #4415576 Gmail text looks broken

- pass correct "contextCount" when needed

Change-Id: I56ebd9486e99e6ca5a3973ec403cf1ced874b4c3
anvas.cpp
aint.cpp
2ea75880142152b3a9993cb245754d73c05749a7 13-May-2011 Fabrice Di Meglio <fdimeglio@google.com> Prepare OpenGLRenderer to use glyphs from TextLayoutCache

- add OpenGLRenderer.drawGlyph()
- refactor glypth logging code

Change-Id: I797e6f1304d3f3f8f6ed31e7f9965d336233d2a4
anvas.cpp
extLayout.h
b0ca8b9dfd1a9dbd1fef2b44968c08c85771061f 13-May-2011 Jean-Baptiste Queru <jbq@google.com> am a84d29cb: am 6714e677: Merge "Ninepatch tweaks for better interop"

* commit 'a84d29cb0494310e9472884c7a459603eb305e38':
Ninepatch tweaks for better interop
0ceb9501b29cba97273ab983ba5d6efba037e75c 11-May-2011 Derek Sollenberger <djsollen@google.com> Adapt to latest skia

Change-Id: I39247db04ca8b7993b0f5a16fb0324828d04cc3a
itmapRegionDecoder.cpp
anvas.cpp
9faa34e6032e2d8759ae1ece72e78acda1730668 12-May-2011 Jean-Baptiste Queru <jbq@google.com> Ninepatch tweaks for better interop

Change-Id: I96781e2b27fcd6dd05d9726829e8e79ff365cbdc
inePatchPeeker.cpp
inePatchPeeker.h
c9e22e9affec97a8c68f838de29dc7f685d9247b 12-May-2011 Jean-Baptiste Queru <jbq@google.com> Switch to SkSafeUnref for better portability

Change-Id: Ia146a4728b5eb92626462effe42521ca73454a7d
itmap.cpp
anvas.cpp
olorFilter.cpp
rawFilter.cpp
askFilter.cpp
athEffect.cpp
asterizer.cpp
hader.cpp
fermode.cpp
e7cb25916c70625e9086386293247ec604753d5c 02-May-2011 Conley Owens <cco3@android.com> am 1eb31b43: am 718516f3: am 9fd8e057: Merge "Fix memory leak of SkMovie class"

* commit '1eb31b434fdc325c55b65ecf1783c63b2fdfa669':
Fix memory leak of SkMovie class
1eb31b434fdc325c55b65ecf1783c63b2fdfa669 30-Apr-2011 Conley Owens <cco3@android.com> am 718516f3: am 9fd8e057: Merge "Fix memory leak of SkMovie class"

* commit '718516f3b73468c480ef8d2283a1c80a6223658d':
Fix memory leak of SkMovie class
8f67eae87ae84fb0c17e7fd4c9b6a62e73b0de29 26-Apr-2011 Romain Guy <romainguy@google.com> Take the index parameter into account in drawTextOnPath.

Change-Id: I92ff9b2c0fe16a467996ae1973bbfd4fad5ef750
anvas.cpp
589e4e27ee071f028a4bc72b91a1fb053ab13404 26-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix bug #4338103 (Android Arabic and Hebrew input is broken)

- fix glyph order when there is only a single run
- update tests

Change-Id: I113f28a8c76cab622fb75ce84bc50d1d38fa254e
extLayoutCache.cpp
0a1413e4bf9dcda2a8abb2287e43f612a7fb2453 22-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> Clean getTextRunAdvances() APIs

- remove ICU reference in API names
- use a "reserved" int parameter to pass either "0" for Harfbuzz or "1" for "ICU"

Change-Id: I88b4f76feafd203a6999cd7349402fa36a9a4b2a
aint.cpp
010d5c4e5ba7a229f621f08f5d1c5cbff7643402 22-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> TextLayout cache - update size and improve logging

- set size to 256K
- add pid logging
- fix percent gain computation

Change-Id: Id6da4d606147294e05597022414531c346860f45
extLayoutCache.cpp
extLayoutCache.h
4f810c8535055bd9a8d89a7d1ba0a7c712a8843d 19-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> Use Harfbuzz for Paint drawText / measureText / breakText APIs

Change-Id: I35aa02bfd45629bf5c560f98a28399ff3d0fc900
aint.cpp
extLayout.cpp
b39d89735b8d88669c779b6a8549a179fd0f6f44 19-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> Use Harfbuzz for Canvas drawText APIs

Change-Id: I661d5e9e0bbe9a859e7a000cb161994d29add099
anvas.cpp
06732fde78b1caf8b5e6c0ef93357cfacedd1823 19-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> Return chars advances instead of glyphs advances

- take care of log_clusters for char/glyph mapping
- remove verbose logs

Change-Id: Id19af2b4a46cc4ada0b99263a3208de14a979ba5
tlProperties.h
extLayoutCache.cpp
f7b9e7848623efcb4f596aa06f055bb4d2ebe7f5 18-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Add Unicode BiDi Algo before drawing text in Canvas"
689e515ed2b8064c15e54d8ab69d87de54c5e0d6 14-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> Add Unicode BiDi Algo before drawing text in Canvas

- only for temporary API
- update BiDiTest

Change-Id: Ifd445799dc0fda4da896246e41978cd8d71aa035
anvas.cpp
tlProperties.h
extLayout.h
extLayoutCache.cpp
extLayoutCache.h
e9cf71dfd01f3e2006462de99d5c423038e20b65 13-Apr-2011 Elliott Hughes <enh@google.com> Merge "Don't allocate a raw object then call its constructor manually..."
cf6f7a0f006c0fcf59bb634cbe79f2a8500fd92a 13-Apr-2011 Elliott Hughes <enh@google.com> Don't allocate a raw object then call its constructor manually...

We can do this in one step.

Change-Id: Id6b70c83002038caf62fe89cc769eca54ae0c055
raphics.cpp
ovie.cpp
4cb1753ec6e90d7e747880c599dc1c164a568cf3 13-Apr-2011 Elliott Hughes <enh@google.com> Remove useless forward declarations.

Change-Id: I8f191367acb18ea9a3f807e791099e0485b1b249
itmap.cpp
amera.cpp
nterpolator.cpp
ayerRasterizer.cpp
askFilter.cpp
inePatch.cpp
athEffect.cpp
egion.cpp
hader.cpp
ypeface.cpp
uvToJpegEncoder.cpp
dd66bcbf9d6ef0c50a18d9c4b1b39ce7ef7afcc4 12-Apr-2011 Elliott Hughes <enh@google.com> More native code cleanup.

Don't keep unused global references to classes, don't throw exceptions
when an exception is already pending, and fix a (harmless) misunderstanding
about how GetStringChars works.

Change-Id: Ie445036f057daa8a1c76aceb7bad2a84fb81d820
reateJavaOutputStreamAdaptor.cpp
a3804cf77f0edd93f6247a055cdafb856b117eec 12-Apr-2011 Elliott Hughes <enh@google.com> You don't need to poke around inside FileDescriptor manually.

We can help you with that.

Note also that getParcelFileDescriptorFD did no such thing. All its callers
were passing in a regular java.io.FileDescriptor and expecting the int. No
ParcelFileDescriptors involved.

Change-Id: Idc233626f20c092e719f152562601f406cc1b64a
itmapFactory.cpp
itmapRegionDecoder.cpp
dcd2ef9acc34c70e7a3c698d7e01e8af0af00f20 09-Apr-2011 Elliott Hughes <enh@google.com> Merge "More JNI exception-throwing cleanup."
69a017bc1d1649350f830dfada5c6ed5eac0b770 08-Apr-2011 Elliott Hughes <enh@google.com> More JNI exception-throwing cleanup.

There are a few (unimportant) bug fixes here. There were several attempts to
throw exceptions in situations where there's already a pending exception.

There were also cases where the code was wrong; it was checking for a NULL
return from Get*ArrayElements and throwing NPE, but passing NULL is an error
that causes a crash and a NULL return means an exception has already been
thrown. I didn't want to get into the Scoped* classes just yet, but that
was by far the easiest way to fix this.

Change-Id: I0b31160ee51b96e82539f6514b8412b149dba7c3
raphics.cpp
inePatch.cpp
0343a7eb6d7cd2bd44dabe5119e2366e84427c93 08-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "TextLayoutCache - add glyphs caching"
fcf2be1846935e7983ea2fe87fdd4d7af27764b6 06-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> TextLayoutCache - add glyphs caching

- cache glyphs after Harfbuzz shaping
- use "m" prefix for member variables
- add temporary API for drawing text with glyphs
- update BiDiTest app

Change-Id: I619b3f313b15f010018daad21b3e5e486619b4e4
anvas.cpp
tlProperties.h
extLayout.cpp
extLayout.h
extLayoutCache.cpp
extLayoutCache.h
8451b25a4422656bbd6657a5855e69c0f4d53c74 08-Apr-2011 Elliott Hughes <enh@google.com> Use jniThrowException for exception throwing from native code.

I'll do media and the generated gl stuff separately. Otherwise, this
cleans up all direct calls of ThrowNew/Throw except the one in the
binder that needs to remain.

Change-Id: I8f95a5f020f53b25926ad31ac0c9477ddf85d04b
raphics.cpp
raphicsJNI.h
ovie.cpp
aint.cpp
46e18c11d46a2bc1a46174f963d0ed1224d94cd2 06-Apr-2011 Brian Carlstrom <bdc@google.com> Don't use local ref for cached jclass reference in JNI code

Change-Id: Id45b2acb358a819f2fd332e99f3a095f6fc7299b
related-to-bug: 4241138
ovie.cpp
48796a81be31e42ee267347156c94445cb9fb67a 06-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> TextLayoutCache - more code refactoring

- move code from .h file to .cpp file

Change-Id: Ib8201a20e2767ef5d92707a6f4d8d79a3673e04d
extLayoutCache.cpp
extLayoutCache.h
1de9e7a9dffb4391a446000f748e4c017d948f6b 05-Apr-2011 Fabrice Di Meglio <fdimeglio@google.com> Code refactoring for TextLayoutCache

- rename TextLayoutCache entry name
- update references to old name
- better variable names in TextLayoutCache::getRunAdvances()

Change-Id: I5173fbc8af79437ce4786084580426f130120ce8
aint.cpp
extLayout.cpp
extLayoutCache.cpp
extLayoutCache.h
0fb1ac0038c9e67b5f321aa2ec7f7bfec5db6db2 31-Mar-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Code cleaning - suppress non useful code"
99e95b0e1228dfeb2813590eedbef877ed2bd421 31-Mar-2011 Fabrice Di Meglio <fdimeglio@google.com> Code cleaning - suppress non useful code

Change-Id: I3f3bffdd1f5d64a6b601d56bee3b5fc8147086bd
extLayoutCache.h
aabe537f1ed3b64f755af9fc62022d6074eec169 31-Mar-2011 Fabrice Di Meglio <fdimeglio@google.com> Update TextLayoutCache key for supporting more SkPaint properties

Change-Id: I35bb991e536e662c1a0724ab7e311fba3d52487a
extLayoutCache.h
eee49c699c035ffba188417489f40d34f587d65c 25-Mar-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix text redering issue where the text was sometimes truncated

- mostly was visible in Settings apps / Wi-Fi networks summary info for each network
- correctly setup the local SkPaint for advances computation
- improve test app for adding live resizing

Change-Id: Ia031fe1b115b521ba55c7e68f2a26300f02e48ca
arfbuzzSkia.cpp
arfbuzzSkia.h
aint.cpp
tlProperties.h
extLayout.cpp
extLayout.h
extLayoutCache.h
08d7778f081aae745e6ad9e5350221b21dbf352e 28-Mar-2011 Kimiyoshi Kusaka <kusaka.kimiyoshi@sharp.co.jp> Fix memory leak of SkMovie class

Movie class doesn't have finalize method.
So memory leak of SkMovie class of native Skia occurs when Movie class is released.
I add finalize method to Movie class (Movie.java) and jni destructor method to SkMovie class (Movie.cpp).

Change-Id: I4dae9dd95f128cbfade50bef978b219ba99321dd
ovie.cpp
251ae9a7b466fe3938db359e3a61a198b315c40c 25-Mar-2011 Fabrice Di Meglio <fdimeglio@google.com> Fix text redering issue where the text was sometimes truncated

- mostly was visible in Settings apps / Wi-Fi networks summary info for each network
- use ceilf() instead of roundf()

Change-Id: I80310a9f00e8f7eb066d8ff03f52ea8f9cd85880
extLayoutCache.h
aa5eb64a0c0709a05731a934c033f213d6dbcc2f 23-Mar-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Use Harfbuzz instead of ICU4C for computing advances"
9f82b580d744ce4baf057b061994394dcf239eed 08-Mar-2011 Fabrice Di Meglio <fdimeglio@google.com> Use Harfbuzz instead of ICU4C for computing advances

- use Harfbuzz shaper for shaping and getting glyphs
- add test app for showing result of drawText() and drawGlyphs()
- add private API in Canvas and Paint for test app

Change-Id: Ia15be216f8636d2d864066e9b7de2f53008c30f6
anvas.cpp
arfbuzzSkia.cpp
arfbuzzSkia.h
aint.cpp
tlProperties.h
extLayoutCache.cpp
extLayoutCache.h
1a81aea8144b92ebaf807af9de69a0ab3415a5aa 21-Mar-2011 Romain Guy <romainguy@google.com> Update GL textures when changing a Bitmap's pixels
Bug #4146495

Change-Id: I4fe3f8501373b86b164af11ae51642b140035bb8
itmap.cpp
c5f94d8a4779050125145396ca83fbc862c7ed6b 18-Feb-2011 Eino-Ville Talvala <etalvala@google.com> Add support for timestamps into SurfaceTexture.

API addition: The timestamps are represented as nanoseconds from some
arbitrary time point. Like the SurfaceTexture transform matrix, the
timestamp retrieved by getTimestamp is for the last frame sent to the
GL texture using updateTexImage().

Camera HAL change: Expect vendors to set these timestamps using
native_window_set_buffers_timestamp(). For now, they are
autogenerated by SurfaceTextureClient if set_buffers_timestamp() is
never called, but such timing is likely not accurate enough to pass a
CTS test.

bug:3300707

Change-Id: Ife131a0c2a826ac27342e11b8a6c42ff49e1bea7
urfaceTexture.cpp
8329db39f2f55484352d58b1820eb31a22698f11 15-Mar-2011 Romain Guy <romainguy@google.com> am b245e31f: am ee7ace06: Merge "Fix rendering artifact in edge fades. Bug #4092053" into honeycomb-mr1

* commit 'b245e31fa8dd1ad6a59ccf858154f3c7b92e0eb8':
Fix rendering artifact in edge fades. Bug #4092053
ee7ace065f77b53a57cb6273b9f2f5d85caba90c 15-Mar-2011 Romain Guy <romainguy@google.com> Merge "Fix rendering artifact in edge fades. Bug #4092053" into honeycomb-mr1
7b5b6abf852c039983eded25ebe43a70fef5a4ab 15-Mar-2011 Romain Guy <romainguy@google.com> Fix rendering artifact in edge fades.
Bug #4092053

The problem always existed but was made visible by partial invalidation.
When saving a layer, the renderer would try to postpone glClear()
operations until the next drawing command. This however does not work
since the clip might have changed. The fix is rather simple and
simply gets rid of this "optimization" (that turned out to be
usless anyway given how View issues saveLayer() calls.)

This change also fixes an issue with gradients (color stops where
not properly computed when using a null stops array) and optimizes
display lists rendering (quickly rejects larger portions of the
tree to avoid executing unnecessary code.)

Change-Id: I0f5b5f6e1220d41a09cc2fa84c212b0b4afd9c46
hader.cpp
977d1fbf47be1a95c1f39ec559ba60b32d0bf749 12-Mar-2011 Glenn Kasten <gkasten@google.com> am dd264f21: am 76470914: Merge "Bug 3515073 Add ANativeWindow_fromSurfaceTexture" into honeycomb-mr1

* commit 'dd264f21e6e9952b3d2ef53ea8a8a9e918e5ce96':
Bug 3515073 Add ANativeWindow_fromSurfaceTexture
7647091436c45af2d82f12c9ea9ec77fa309b49b 12-Mar-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 3515073 Add ANativeWindow_fromSurfaceTexture" into honeycomb-mr1
1f507be1c1ff2ec022d2ced1ad38fc328c28d3bb 10-Mar-2011 Wei-Ta Chen <weita@google.com> am a2048056: am 2498b4b8: Merge "Fix 3510563: memory leak in BitmapRegionDecoder." into honeycomb-mr1

* commit 'a204805627eddeac0a1777c69ce62d31d339d4cd':
Fix 3510563: memory leak in BitmapRegionDecoder.
b1a04d545673a1eedbc679a65dd6942da8d33790 08-Mar-2011 Chih-Chung Chang <chihchung@google.com> Fix 3510563: memory leak in BitmapRegionDecoder.

Change-Id: If639d5974204f18fdfd119b9fc7a762977c66f26
itmapRegionDecoder.cpp
846db33313aa0899fa7928256c6734964bd92520 04-Mar-2011 Glenn Kasten <gkasten@google.com> Bug 3515073 Add ANativeWindow_fromSurfaceTexture

This is similar to ANativeWindow_fromSurface.

Change-Id: Iaadc06a5d0d50685c34876aa89488c16e7cfaa65
urfaceTexture.cpp
13492c848f0fcf1ee3868228622641ca8bce6fb1 03-Mar-2011 Leon Scroggins <scroggo@google.com> Add ifdef to prevent header being added multiple times.

Change-Id: I92bb0667bea98e43fca20dceb4fff20e446c03cf
inePatchPeeker.h
1eb12937329d0fcdc29d9c5ab6c549c42d2dcd52 03-Mar-2011 Fabrice Di Meglio <fdimeglio@google.com> Merge "Add TextLayout Cache"
a06d86ab8177ee9e631e0ee4e39688bf42179bde 02-Mar-2011 Leon Scroggins <scroggo@google.com> Move NinePatchPeeker into its own file.

This way it can be used by other clients that want to draw
ninepatches. Ultimately the goal is to allow ninepatch
drawing from native code for WebView. Bug:3009375

Change-Id: Id13cef17ed7655a07e9f055586b686cf1e4af392
itmapFactory.cpp
inePatchPeeker.cpp
inePatchPeeker.h
d313c665e618af3194f504064bcd284fe5368682 25-Feb-2011 Fabrice Di Meglio <fdimeglio@google.com> Add TextLayout Cache

- use GenerationCache for caching
- move GenerationCache.h from libs/hwui/utils to include/utils
- add #define for cache activation / deactivation

Change-Id: Ifaf519f0b5e33b087a453e4aa6430162d8438f20
tlProperties.h
extLayout.cpp
extLayout.h
extLayoutCache.cpp
extLayoutCache.h
447ee77431ddd68634bd49508de8573ab6c7065a 24-Feb-2011 Eric Hassold <hassold@google.com> Merge "Detect out of memory in extractAlpha"
ef7be262e5859efdf805d1b9612bc2b250d5971e 24-Feb-2011 Eric Hassold <hassold@google.com> Detect out of memory in extractAlpha

When extractAlpha() native method in Skia fails to allocate pixels,
it resets target bitmap. This change detects when such empty bitmap
is returned, and throws a OutOfMemory Java exception.

Depends on https://android-git.corp.google.com/g/97793

Bug: 3418381
Change-Id: I65a84998be089c49ed5005f6995bdc4f4d1669bc
itmap.cpp
62c7574c02f2d83bafe7fc91bba6dbdf01b92a62 24-Feb-2011 Derek Sollenberger <djsollen@google.com> Merge "Skia Merge (revision 808)"
47b8adec3904535c8d8ce2b6e42ecd736f2d90ce 24-Feb-2011 Romain Guy <romainguy@google.com> Add a new Camera API to control the camera's location

Change-Id: Id9a082d2def803eb527e1987875e0d8a22c6e8aa
amera.cpp
dd347df9f85e04d8b08a5249b8db731300699cc4 17-Feb-2011 Fabrice Di Meglio <fdimeglio@google.com> Code cleaning

- use constants whenever possible
- better memory allocation of buffers
- add logging thru conditional compilation

Change-Id: I486195b1cb35046ea00971630832978c1b2e64a0
extLayout.cpp
extLayout.h
6062c5912dc79704b489fc8c289b78a400ed05ee 22-Feb-2011 Derek Sollenberger <djsollen@google.com> Skia Merge (revision 808)

This is a companion CL to the one found in /external/skia

Change-Id: If81748545435cab20a5d8479329ab333cb973e16
itmap.cpp
anvas.cpp
olorFilter.cpp
rawFilter.cpp
askFilter.cpp
athEffect.cpp
asterizer.cpp
hader.cpp
fermode.cpp
90f4c18a868aa921feae953e380a2f9f6a4ade38 08-Feb-2011 Andy McFadden <fadden@android.com> Use JNI helper function to get buffer address

This replaces the Get/Release sequence with a call to
jniGetNonMovableArrayElements.

Bug 3409356

Change-Id: I847fd67ac71d904fef0c807ac25a29f802e6cd45
raphics.cpp
5a7e828842c26f64bb6e0ef3e0019e1949b245ee 04-Feb-2011 Chet Haase <chet@google.com> Fix crash when Paths are GCd in hw accelerated apps

A recent change to optimize path rendering didn't account for
the destruction of native objects by the VM finalizer. We may be
done with the Java level version before we're done with the native
structure that's used by the display list. For example, a drawing
method on a View that creates a temporary path to render into the
canvas will implicitly create a native structure that is put onto
the GL display list. That temporary path may go away, but the native
version should stick around as long as the display list does.

The fix is to refcount the original native version of the path
and only delete it when the refcoutn reaches zero (which means that
it is no longer needed by any display list). This is a similar mechanism
used for bitmaps and shaders.

Change-Id: I4de1047415066d425d1c689aa60827f97729b470
ath.cpp
120856c50a56595c0954ae1bf6f05888386937b9 19-Jan-2011 Joe Onorato <joeo@google.com> Pass SkRegion::toString() through to java.

Change-Id: I3814b491c689313c1f8da811a104d913175f6268
egion.cpp
4b26247e8b45850afc78e414a7007266dbdc5d18 18-Jan-2011 Owen Lin <owenlin@google.com> Merge "Change to stream decoding mode if the file descriptor cannot support seek." into honeycomb
a9d0d47076ecf2d1739bb3534abc9deead8ebebd 18-Jan-2011 Owen Lin <owenlin@google.com> Change to stream decoding mode if the file descriptor cannot support seek.

bug: 3298498
Change-Id: Id7ae46bf8e885a417753edbd6648332052fee469
itmapFactory.cpp
1689c3459b27657b6900429ae64ac5323c584ce3 17-Jan-2011 Romain Guy <romainguy@google.com> Merge "Add BitmapFactory.Options.inMutable to load mutable bitmaps." into honeycomb
2361098da3b9d9c3eeed410dc72ba62c0e9177cf 17-Jan-2011 Romain Guy <romainguy@google.com> Add BitmapFactory.Options.inMutable to load mutable bitmaps.

Change-Id: Iaa222127520f3aa55072d44af12ee3477908b876
itmapFactory.cpp
5cdf07524132722e0db69db1ca8dcaf3f0073265 17-Jan-2011 Jeff Brown <jeffbrown@google.com> Merge "Support non-rectangular input regions." into honeycomb
fbf097732137a32930d151f7ba6816a5b870c32a 16-Jan-2011 Jeff Brown <jeffbrown@google.com> Support non-rectangular input regions.

This enables the system bar to carve out a region through which
events will be sent to the IME behind it.

Bug: 3238092
Change-Id: I69b855a8d9b5b3ee525266c0861826e53e5b5028
egion.cpp
egion.h
376590d668e22a918439877b55faf075427b13f3 13-Jan-2011 Jamie Gennis <jgennis@google.com> Implement SurfaceTexture frame-available callback.

This change implements the onFrameAvailable callback for the
SurfaceTexture java class. It includes the C++ SurfaceTexture code as
well as the JNI and Java code to enable the callback.

Change-Id: Ifd8b8e7ad46ee70cba6da1c2e96dab8045d1ea30
urfaceTexture.cpp
b0ba48c95ea8768a051100c5adb4c906caa1e080 10-Jan-2011 Jamie Gennis <jgennis@google.com> Add getTransformMatrix to the SurfaceTexture API.

Change-Id: Icd11ed4982220be9d08b00498aef02531610ce1f
urfaceTexture.cpp
25bce3a673afef6a7858270afae4395b4ab53de3 24-Dec-2010 Wei-Ta Chen <weita@google.com> Do not merge.

Backport changes related to BitmapRegionDecoder from HoneyComb to
Gingerbread.

Bug: 3309014

////////////////////////////////////////////////////
This is a combination of 7 commits.
Revert "Do not merge."

This reverts commit f7681f84918c27f6a626681ce37ed2a236c44e82.

Change-Id: I46fd710600b1649773eaea2d9abc2b21a592f9a6

Fix a initialization bug in BitmapRegionDecoder.

Change-Id: I6c1151fd34970a84d4de52d664d9a5dc464892c5

Fix segfault when tring to throw IOException.

Change-Id: I530cc4409ba4ca17cec933afad077c5f60ba554f

Fix 3122139, where previewing an attachment for the second time will
fail.

Use AutoFDSeek to mark and restore the position before we read data from
the descriptor.

Change-Id: I3d4f012dce486e19b113bc90a98b94031cfa8195

Add inPreferQualityOverSpeed into BitmapFactory.Options.

The new field allows a developer to use a more accurate by
slightly slower IDCT method in JPEG decode. This in turns improves the
quality of the reconstructed image.

The field by default is not set and thus does not affect existing
applications.

Bug: 3238925
Change-Id: I93d55b7226e47a43e639325cd1a677694d6f2ee4

Unhide inPreferQualityOverSpeed in BitmapFactory.Options.

The new field allows a developer to use a more accurate by
slightly slower IDCT method in JPEG decode. This in turns improves the
quality of the reconstructed image.

The field by default is not set and thus does not affect existing
applications.

Bug: 3238925

Related changes: https://android-git.corp.google.com/g/#change,83291 and
https://android-git.corp.google.com/g/#change,83294

Change-Id: I969f5c413f9b2179454aeb90e18ae8222ee583b4

Correct the API comments.

BitmapRegionDecoder supports PNG as well.
itmapFactory.cpp
itmapFactory.h
itmapRegionDecoder.cpp
raphics.cpp
raphicsJNI.h
6714efc5e0c52953b65e774de0003e22377e7d39 20-Dec-2010 Jamie Gennis <jgennis@google.com> Add the SurfaceTexture java class.

This class exposes to Java the application-side interface to the
SurfaceTexture C++ class.

Change-Id: I0dba42aad90257c7adbde6fa362658c0717b70d0
urfaceTexture.cpp
a9ebfa6bcce62d7fee69693fe3dee6027afd3f0e 05-Jan-2011 Romain Guy <romainguy@google.com> Keep a reference to the local matrix.
Bug #3299324

This is needed for ADT, which does not rely on Skia's reference counting
to correctly keep track of the native objects.

Change-Id: Ia2fc5c1ec2b80bad226bc549fefc6bb064784609
hader.cpp
12d81c49a015ed8d5ef7af2d854eee1e80472219 18-Dec-2010 Carl Shapiro <cshapiro@google.com> Fix a constructor declaration to match its definition.

The second argument of the JavaPixelAllocator constructor was
eliminated by an earlier change but the class definition was not
updated to match that edit.

Change-Id: I27af0cc52c748cfdec02eb4edcf512dd13f72567
raphicsJNI.h
2118b25ad422e946d4d87e191c5710bfacd7503e 18-Dec-2010 Carl Shapiro <cshapiro@google.com> Eliminate tracked allocations and the inNativeAlloc option.

Change-Id: Ic10b2b41a26925d799e5d1e50be77fc480ec0f17
itmapFactory.cpp
itmapRegionDecoder.cpp
raphics.cpp
raphicsJNI.h
a2f0e2d6b7f9dff3a52dd78d6db307070a71e9b2 16-Dec-2010 Patrick Dubroy <dubroy@google.com> Allow a JNI local ref to be passed directly into globalRef().

Change-Id: If3063e88ec1eba7a13c983f5f71be6a2d84c4d60
raphics.cpp
raphicsJNI.h
afde46ed008f150e45e1b0d7e1dc588fc047b74f 15-Dec-2010 Patrick Dubroy <dubroy@google.com> Turn fatal assertion in decodeRegion into a warning.
itmapRegionDecoder.cpp
raphics.cpp
raphicsJNI.h
e4ac2d6b5723c95e648c489b187ddde449452c13 01-Dec-2010 Patrick Dubroy <dubroy@google.com> Allocate bitmap backing buffers in the Java heap.

Change-Id: I60f6ccff13357c1c518e9d56b02fe0171637edd1
itmap.cpp
itmapFactory.cpp
itmapRegionDecoder.cpp
raphics.cpp
raphicsJNI.h
dee4cb07a3652457e18a0bf4be57d2cedeca7359 13-Dec-2010 Jack Palevich <jackpal@google.com> Avoid SIGSEGV in Bitmap_writeToParcel.

SkBitmap::getPixels() can return NULL. The rest of the JNI Bitmap
code treats this NULL as if the SkBitmap has transparent black
pixels. Bitmap_writeToParcel now does the same.

Change-Id: I5e70b42b3d22a8aea898ce342e590000325bd0f9
itmap.cpp
decc8cd41eca3770c8f5ee13d81b9cd5f0c25ccd 11-Dec-2010 Chet Haase <chet@google.com> Add ability to reuse bitmaps when decoding PNG content

Change-Id: Ic74b62c6280954ff80bcf64f3989a36c7c0b5615
itmapFactory.cpp
37f74cad46c6f1799aec3c52e8f47598237f43d4 09-Dec-2010 Chet Haase <chet@google.com> Add ability to reuse bitmaps when loading new content

Change-Id: Ic5f5f40ee39787403977fb372b335dc21cf07243
itmapFactory.cpp
ddb76c4644756b31be948d70aaa8ee541dd94999 24-Nov-2010 Kenny Root <kroot@google.com> Change assets to use 64-bit API

The asset system and supporting libraries were using off_t instead of
off64_t to access files larger than 2GB (32-bit signed). This change
replaces all off_t with off64_t and lseek64.

There is a new utils/Compat.h added for Mac OS compatibility.

Also fixed some size-related compiler warnings.

Bug: 3205336
Change-Id: I9097b3cb7a602e811fe52f245939d8975da55e9e
itmapFactory.cpp
ypeface.cpp
tils.cpp
tils.h
953f9094a2ec14594fa8501d5f3e2d9e300b1b62 03-Dec-2010 Wei-Ta Chen <weita@google.com> Add inPreferQualityOverSpeed into BitmapFactory.Options.

The new field allows a developer to use a more accurate by
slightly slower IDCT method in JPEG decode. This in turns improves the
quality of the reconstructed image.

The field by default is not set and thus does not affect existing
applications.

Bug: 3238925
Change-Id: I93d55b7226e47a43e639325cd1a677694d6f2ee4
itmapFactory.cpp
itmapFactory.h
itmapRegionDecoder.cpp
fe48f65922d4a3cc4aefe058cee5acec51504a20 12-Nov-2010 Romain Guy <romainguy@google.com> Free resources only from the GL context thread.
Bug #3179882

Resources were freed following garbage collections on a worker thread.
This worker thread had no EGL context, which would cause the renderer
to incorrectly assume that the memory was liberated.

Change-Id: Ifdb51f94ddf42641e8654522787bfac532976c7c
ath.cpp
2a3d754549abc4b55e6cfc2d0c986d29782b2492 03-Nov-2010 Bryan Mawhinney <bryanmawhinney@google.com> Avoid copying byte arrays when just decoding bounds.

Currently, if a caller specifies both "purgeable" and "just decode
bounds" options when passing a byte array to decode, we create an
unnecessary copy of the byte array. This is probably not common,
but we may as well avoid the copy.

Change-Id: I27e573b0e1fb8f8516729882a84efa02b6da08a5
itmapFactory.cpp
ad93c2bb63dfc813b2eefa1043aa63afbddce655 23-Oct-2010 Chet Haase <chet@google.com> Optimizing ColorFilter in display lists

Change-Id: Ie4d5e5b0bc45e0ce47bba144049303c270762e54
olorFilter.cpp
hader.cpp
d98aa2de9ab18e09c2be1997f41212740f51f6e6 26-Oct-2010 Chet Haase <chet@google.com> DisplayList optimizations and fixes.

We now use a copy of SkPaint objects to avoid having it changed from under us.
We reuse copies that have not changed. We also copy the SkMatrix every time to
avoid the same problem.

Change-Id: If3fd80698f2d43ea16d23302063e0fd8d0549027
atrix.cpp
aint.cpp
50db92c452ece8d52d898d1ed289bbb3c43859ed 22-Oct-2010 Wei-Ta Chen <weita@google.com> Merge "Fix 3122139, where previewing an attachment for the second time will fail."
27f0b17d853d8bef918c3d869044e50cf3904ee3 22-Oct-2010 Chet Haase <chet@google.com> Fix native resource leak when OpenGL renderer is not being used.

Native resources (bitmaps, matrices, paints, shaders) are shared when display lists
are used, and a refcounting system is in place to take care of disposing when all
clients are finished with them. But the cache where these refcounts are tracked is
not enabled when the Open GL renderer is not being used. This results in the native
destructors not being called, and the resources are leaked.

Change-Id: Ic7aeb55e4636dcad229846601407e596160346e6
itmap.cpp
atrix.cpp
aint.cpp
58c1579ce2634de31d24429c1b870d4256ee4f21 22-Oct-2010 Wei-Ta Chen <weita@google.com> Fix 3122139, where previewing an attachment for the second time will
fail.

Use AutoFDSeek to mark and restore the position before we read data from
the descriptor.

Change-Id: I3d4f012dce486e19b113bc90a98b94031cfa8195
itmapRegionDecoder.cpp
5c13d89c1332fcc499379b9064b891187b75ca32 08-Oct-2010 Chet Haase <chet@google.com> Optimizing display lists by referencing pointers to resources instead of copying them

Change-Id: I81ad3551d74aa1e5bb64d69e33d2eb29a6c1eb6a
itmap.cpp
atrix.cpp
aint.cpp
hader.cpp
c9332fa3e9e9e0897482a9c26cf9d997e57376b7 13-Oct-2010 Bjorn Bringert <bringert@android.com> Delete unused WebView drag tracking code

This also removes android.graphics.utils.BoundaryPatch
which was only used by the Browser for the unused drag
tracking (and by a demo app that I'm also removing).

Change-Id: I48253ae005ab11cb4c70d132bc1ea4f2692e2bd2
anvas.cpp
f7681f84918c27f6a626681ce37ed2a236c44e82 01-Oct-2010 Wei-Ta Chen <weita@google.com> Do not merge.

Fix 3052285 by not publishing the BitmapRegionDecoder API until the honeycomb release.

Bug: 3052285
Change-Id: Ie339e414c1a5581e1d38684621e0e97162616977
itmapRegionDecoder.cpp
raphics.cpp
raphicsJNI.h
20e987bfc35d0ae6cb6344ead65ed44ee7cf8750 23-Aug-2010 Jeff Brown <jeffbrown@google.com> Add MotionEvent Matrix transformations.

Fixed issued in ViewGroup's transformation of MotionEvents to ensure
that the entire historical trace is transformed, not just the current
pointer.

Simplified the code in ViewGroup for splitting events across Views.
The new code also handles the case where some pointers are dispatched
to the ViewGroup in addition to its children whereas the previous
code would drop some pointers on the floor.

Change-Id: I56ac31903e1de8a9c376d9c935b7217b0c42d93e
atrix.cpp
atrix.h
e224fabb2c59e9f1274c3569c04b91787824add0 30-Sep-2010 Owen Lin <owenlin@google.com> Fix segfault when tring to throw IOException.

Change-Id: I530cc4409ba4ca17cec933afad077c5f60ba554f
raphics.cpp
0ab9851308c02928c34e7261c4d4521c07e64f0e 29-Sep-2010 Owen Lin <owenlin@google.com> Fix a initialization bug in BitmapRegionDecoder.

Change-Id: I6c1151fd34970a84d4de52d664d9a5dc464892c5
itmapRegionDecoder.cpp
a23cdda0a5fad7798454ecb05a7855cb9211ea22 23-Sep-2010 Wei-Ta Chen <weita@google.com> am ac487f70: am 6b849e21: Unhide BitmapRegionDecoder.

Merge commit 'ac487f708f7b58dbd4f3021b520c6ed5975daebe'

* commit 'ac487f708f7b58dbd4f3021b520c6ed5975daebe':
Unhide BitmapRegionDecoder.
6b849e2123be98eb2a1a25b8abf0b13a279ce952 07-Sep-2010 Wei-Ta Chen <weita@google.com> Unhide BitmapRegionDecoder.

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
itmapFactory.cpp
itmapRegionDecoder.cpp
raphics.cpp
raphicsJNI.h
argeBitmap.cpp
tils.cpp
tils.h
ddb80bebb0776e6d852aab6e8bba5d5591847a55 21-Sep-2010 Romain Guy <romainguy@google.com> Add support for circular gradients to the GL renderer.

This change also adds full support for local transformation matrices on
sweep and radial gradients.

Change-Id: Id8773bc0766575190e3f3d51984fc5e57b266c3f
hader.cpp
ee916f14cbd1fe1422c063ce2ef7b185e2bc5c6f 21-Sep-2010 Romain Guy <romainguy@google.com> Add support for SweepGradient in the GL renderer.

Change-Id: I7aa397ed4e34655ead9ba1f5b4ce087665e0f022
hader.cpp
94b19d37066a7739991bc73381f9296abad69265 10-Sep-2010 Joseph Wen <josephwen@google.com> am 94db0238: am 219eb7ec: Merge "Fix bug in JNI BitmapFactory" into gingerbread

Merge commit '94db0238a3b6cba3cbf0e037af74e898a4741204'

* commit '94db0238a3b6cba3cbf0e037af74e898a4741204':
Fix bug in JNI BitmapFactory
219eb7ec8403ef9b98125f2b58cc27669ae69712 10-Sep-2010 Joseph Wen <josephwen@google.com> Merge "Fix bug in JNI BitmapFactory" into gingerbread
2dcfbefbbeac406d16ec379c6430dd9ee9fd23a1 10-Sep-2010 Joseph Wen <josephwen@google.com> Fix bug in JNI BitmapFactory

In nativeCreateLargeBitmapFromFileDescriptor() if the file descriptor
can not be rewinded isShareable should be set to false.

Change-Id: I7dd545c9d52d21c226e11b8921e35a1d9bba9515
itmapFactory.cpp
9584a542e345fa18fc62eb0b5947f250226f211d 09-Sep-2010 Romain Guy <romainguy@google.com> Merge "Purge Skia objects from GL caches as needed."
a2341a9f6addcd79723965ec5b1a1c5ae0f8bd65 09-Sep-2010 Romain Guy <romainguy@google.com> Purge Skia objects from GL caches as needed.

Change-Id: I754c671cf790ad5ae8bf047ad328034217da4ecc
itmap.cpp
ath.cpp
hader.cpp
53e7ae9065e506da2f0337c7c77cf2749d9ee970 09-Sep-2010 Romain Guy <romainguy@google.com> Merge "Fix possible infinite loop when purging textures."
9aaa8269a3e7291aab84d01c3fc9c744d8f2d2f4 09-Sep-2010 Romain Guy <romainguy@google.com> Fix possible infinite loop when purging textures.

Change-Id: Ib05b398ae03e734da2dab0496df416fed4570b1c
itmap.cpp
cfa590392660fc4a50dc90c456d1fab69e6e0662 08-Sep-2010 Elliott Hughes <enh@google.com> am 664c48e9: am 4c7d3f28: Merge "Remove dead code: NIOBuffer." into gingerbread

Merge commit '664c48e991a70d07646d54125e97f579f3a33be4'

* commit '664c48e991a70d07646d54125e97f579f3a33be4':
Remove dead code: NIOBuffer.
7b29804ba2b0db1a627b680b3fe2c5036139513b 08-Sep-2010 Wei-Ta Chen <weita@google.com> am 8fc6f8b2: am 1b214be9: Merge "Revert "Rename LargeBitmap to BitmapRegionDecoder for having a better API."" into gingerbread

Merge commit '8fc6f8b2152564cab6ede025644f9bc3ee61ce16'

* commit '8fc6f8b2152564cab6ede025644f9bc3ee61ce16':
Revert "Rename LargeBitmap to BitmapRegionDecoder for having a better API."
340ce75b446f6a6afc12b0582be3fc34ac3a5364 08-Sep-2010 Wei-Ta Chen <weita@google.com> Revert "Rename LargeBitmap to BitmapRegionDecoder for having a better API."

This reverts commit 50ba3d2c09a9131f3578d271adf2bc8258ca1742.
itmapFactory.cpp
itmapRegionDecoder.cpp
raphics.cpp
raphicsJNI.h
argeBitmap.cpp
tils.cpp
tils.h
50cb7dc458e65b75fb69a3a3fed972e7ed913703 08-Sep-2010 Wei-Ta Chen <weita@google.com> am a295a390: am b356f8ac: Merge "Rename LargeBitmap to BitmapRegionDecoder for having a better API." into gingerbread

Merge commit 'a295a3908befeb9dd30203c612d95411d68492ed'

* commit 'a295a3908befeb9dd30203c612d95411d68492ed':
Rename LargeBitmap to BitmapRegionDecoder for having a better API.
edf7223bc2972b99306e31c5b424c365d9248817 08-Sep-2010 Elliott Hughes <enh@google.com> Remove dead code: NIOBuffer.

Working on speeding up our NIO implementation, I came across this suboptimal
code. Happily, it turns out to be unused.

Bug: 2935622
Change-Id: I07ae6e573d63e439f496d55af215b34598d8258a
raphics.cpp
IOBuffer.cpp
IOBuffer.h
50ba3d2c09a9131f3578d271adf2bc8258ca1742 07-Sep-2010 Wei-Ta Chen <weita@google.com> 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
itmapFactory.cpp
itmapRegionDecoder.cpp
raphics.cpp
raphicsJNI.h
argeBitmap.cpp
tils.cpp
tils.h
ce53603a4fdf07df8b6d993e1332a28321b5593b 21-Aug-2010 Wei-Ta Chen <weita@google.com> am 9f7257f0: am 8d124f70: Merge "Fix a bug, where one thread is using JNIEnv associated with another thread." into gingerbread

Merge commit '9f7257f0a14cd17d8b55bc3bd1584dac2f9dd1b2'

* commit '9f7257f0a14cd17d8b55bc3bd1584dac2f9dd1b2':
Fix a bug, where one thread is using JNIEnv associated with another thread.
18ef37258d897928c68b89535a93b99d8a817d3c 20-Aug-2010 Romain Guy <romainguy@google.com> DO NOT MERGE. Fix the build.

Change-Id: I3322faa948af015f7d8df31b9a4c281f5311f067
itmapFactory.cpp
4f0a8df9fe70b44e82eca40263b11e9331f38939 20-Aug-2010 Romain Guy <romainguy@google.com> Fix the build.

Change-Id: I71e77cb3c124b31b81d952dc3897ebc414a1f701
itmapFactory.cpp
288471d8a57e1c318742cbfc28697877436fdb87 19-Aug-2010 Romain Guy <romainguy@google.com> 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
itmapFactory.cpp
207b3ab604bcbe47fa55f26f358cde60cf8a784d 19-Aug-2010 Romain Guy <romainguy@google.com> 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: Ic703f57adb26b2a701ecff0a653d35a93e26d47c
itmapFactory.cpp
291303ba3dbb3a0173bcc82ded595ca75df7b50e 18-Aug-2010 Wei-Ta Chen <weita@google.com> Fix a bug, where one thread is using JNIEnv associated with another thread.

We see abort messages like this when using JavaPixelAllocator and JavaMemoryUsageReporter.
W/dalvikvm( 680): JNI WARNING: threadid=2 using env from threadid=10
W/dalvikvm( 680): in Landroid/graphics/LargeBitmap;.nativeClean (I)V (CallVoidMethodV)

To fix it, we keep JavaVM, rather than JNIEnv, in JavaPixelAllocator and JavaMemoryUsageReporter,
because JavaVM allows us to get the JNIEnv corresponds to the current thread.

Change-Id: Ibd4b394a53dd3fdccc5a442eeb0dedf836479575
raphics.cpp
raphicsJNI.h
1b10d3d23512f9f9a091e1f4c27bb3dc47806f6c 17-Aug-2010 Joseph Wen <josephwen@google.com> am 81dcea60: am f1f48bc7: Do JPEG tile-based decoding.

Merge commit '81dcea6093dfcdadd52982505249a5eacf47a81b'

* commit '81dcea6093dfcdadd52982505249a5eacf47a81b':
Do JPEG tile-based decoding.
f1f48bc7f200f54c76b22d845d8ba8419879b375 19-Jul-2010 Joseph Wen <josephwen@google.com> Do JPEG tile-based decoding.

Change-Id: I5c1b4ac3c02eb4350ef0ba9a7877b22cfd730cfb
utoDecodeCancel.cpp
utoDecodeCancel.h
itmapFactory.cpp
itmapFactory.h
reateJavaOutputStreamAdaptor.cpp
reateJavaOutputStreamAdaptor.h
raphics.cpp
raphicsJNI.h
argeBitmap.cpp
1e45aae5de003657e5d18f74d34998f5de5db5b7 14-Aug-2010 Romain Guy <romainguy@google.com> Add drop shadows.

Change-Id: Ic6a72409d4785968d1fbdff229f17ee5c00b240b
aint.cpp
48daa54d31fc59ec969dcff65eb3cbb0ce879a8d 11-Aug-2010 Romain Guy <romainguy@google.com> Add extra blending modes.

This change adds the following blending modes for shaders and color filters:
Add
Multiply
Screen
Overlay
Darken
Lighten

Change-Id: Iff22f5ce6041b43c71b1857d73013f5010ab3413
hader.cpp
61c8c9c5b2006d18e9310b6521c65b36ffe75ce4 10-Aug-2010 Romain Guy <romainguy@google.com> Fix tons of bugs and add new text rendering support.

Change-Id: I326c66b10784006f6df2f12d38e120cef94cd0d7
hader.cpp
extLayout.cpp
extLayout.h
163935113919a184122b8b3bd672ef08c8df65dc 08-Aug-2010 Romain Guy <romainguy@android.com> Make libhwui entirely optional.

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
anvas.cpp
olorFilter.cpp
hader.cpp
db1938e0e6ef816e228c815adccebd5cb05f2aa8 03-Aug-2010 Romain Guy <romainguy@google.com> Add support for ColorFilters.

Color filters are fully supported and can be used with shaders.

Change-Id: Id90ccf1c81cb462f2431f366f3f8f710d7971e04
olorFilter.cpp
06f96e2652e4855b6520ad9dd70583677605b79a 31-Jul-2010 Romain Guy <romainguy@google.com> Refactor Skia shaders handling.

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
hader.cpp
9226298891119acff6b5e8b65fb7074fb99dc0c0 26-Jul-2010 Romain Guy <romainguy@google.com> Fix text corruption when rendering RTL enabled text.

Change-Id: I5450fd9cad1c5a66875affdbcd34308aea4c36ac
extLayout.cpp
extLayout.h
e8e62a4a032a80409114a37908b5f18ab0080848 24-Jul-2010 Romain Guy <romainguy@google.com> Add text alignment support to drawText().

This change also integrates better support for RTL text.

Change-Id: I6da8f5cf5dc28ca7cf1b22e27b0d853c919e8481
extLayout.cpp
extLayout.h
8cd48574a755bea86243e9f9eabaee341ecf9c60 16-Jul-2010 Gilles Debunne <debunne@google.com> Fixed bug in BitmapFactory.decodeStream

Downloading images over a slow connection could result in errors and
null images.

The JavaInputStreamAdaptor::do_skip method was correctly called in a
loop (to handle the EOF case using read()), but the amount that was
skipped at each time was not decreased by the amount already skipped.

Bug http://code.google.com/p/android/issues/detail?id=6066

Cherry picked from master CL57808

Change-Id: Ie6856898b21ba31de1209e1f995b4ae784c919b9
reateJavaOutputStreamAdaptor.cpp
a1db574036c9bc2d397b69f8200594027e1fff16 20-Jul-2010 Romain Guy <romainguy@google.com> Add preliminary support for text rendering.

Change-Id: I547eb631dbda24d13960d54b4144fb8908fd8a49
ypeface.cpp
ea2604d966dfc62f50922a516caaa9cc411d9c64 17-Jul-2010 Romain Guy <romainguy@android.com> Merge "Add plumbing to support gradients in OpenGL renderer."
7fac2e18339f765320d759e8d4c090f92431959e 17-Jul-2010 Romain Guy <romainguy@android.com> Add plumbing to support gradients in OpenGL renderer.

The LinearGradient class keeps a copy of the various parameters that
define the gradient. The copies are native arrays to avoid copying
Java arrays on every draw call. The gradient code path is implemented
until OpenGLRenderer::drawRect() (see TODO.) The actual gradient
implementation will be added in a latter change.

Change-Id: I9300d250ef5e2e9c2e097c3116ee71dfc9d752d8
hader.cpp
fc224b3e5397f8a9246d373c866be55a7cbb6188 16-Jul-2010 Gilles Debunne <debunne@google.com> Fixed bug in BitmapFactory.decodeStream

Downloading images over a slow connection could result in errors and
null images.

The JavaInputStreamAdaptor::do_skip method was correctly called in a
loop (to handle the EOF case using read()), but the amount that was
skipped at each time was not decreased by the amount already skipped.

Bug http://code.google.com/p/android/issues/detail?id=6066

Change-Id: Id897cdbe027e2d8c56df9fc399b3c92affb89c59
reateJavaOutputStreamAdaptor.cpp
f7cb1f75fdaedf996cab7c4690b080adc7bc5b97 02-Jul-2010 Doug Felt <dougfelt@google.com> Support bidi/shaping for getTextPath

Move layout-related code into separate class since it's needed by both
canvas and paint.

Change-Id: Iba89a1d94d7cca650255ffa3cbc952b988a51b54
anvas.cpp
aint.cpp
extLayout.cpp
extLayout.h
4beb8ff7175ebd14b96942724a658f407d0b9951 09-Jun-2010 Doug Felt <dougfelt@google.com> Support bidi layout for drawTextOnPath.

Change-Id: Ie5867fdb66fe15336774e20d65fa63e0d05bf6fe
anvas.cpp
0bbae0836426ba2704e38e7f90a9d0ca502ab71d 16-Jun-2010 Romain Guy <romainguy@google.com> Add new API to check whether a Bitmap was modified.

Bitmap.getGenerationId() can be used by caches to find out if a Bitmap has been
modified. This simply exposes an existing Skia API.

This change also adds a small test app for Canvas hardware acceleration. The new
Bitmap API is required to implement a texture cache.

Change-Id: I8547b146cd14c8afe1a2327fcd6d71b1b1cb68fc
itmap.cpp
0c702b88c5d0d4380930b920f5be6e66dd95a0d8 14-May-2010 Doug Felt <dougfelt@google.com> Move shaping to native.

Add internal API (getTextRunAdvances) to Paint, use when measuring.
Add internal API (getTextRunCursor) to Paint, use when determining
valid cursor positions.

Remove java-level shaping code. Remove 'prep' code in TextLine
(except for replacement text) since shaping now is done on the fly as
needed in native.

Provide explicit shaping context bounds to internal text measuring,
cursor movement, and rendering APIs.

Update for to changes in external API in ushape.h.

Change-Id: I146958b624802ce8553125e5c3c6c03031bc9608
anvas.cpp
aint.cpp
f47d7405bbcb25d7cdf89ebb059f41520fe9ab87 22-Apr-2010 Doug Felt <dougfelt@google.com> Modify Canvas drawText to run bidi and shape.

Adds drawTextRun as internal API on Canvas and GraphicsOperations.
Adds implementation to implementors of GraphicsOperations.

Adds state and API on Paint to control the bidi algorithm when used
by Canvas. This API is currently hidden.

The drawText changes are incomplete since shaping is not yet available
in the native code.

Change-Id: I4368048aef9545df0953a349381771603e04b619
anvas.cpp
54900e8c05e92a0783e8468ad7c4513eb66adc80 25-Mar-2010 Mike Reed <reed@google.com> update dox that we ignore the exact parameter on computeBounds

Change-Id: I6051210ea2a73b4d1c6cd631a285209ab130b4e5
ath.cpp
39f10ec7dac59b5a8bc6f7e5b86846da77c30337 24-Mar-2010 Mike Reed <reed@google.com> If we detect a 9patch chunk, force the config chooser to avoid 565, with its pre-dithering madness

Change-Id: I0a2d1b094ccb16d479524779acec0216dc7a80ee
itmapFactory.cpp
36ad54acef82f80dbf0ecdd8c44f5764df1be119 10-Mar-2010 Mike Reed <reed@google.com> force purgeability for assets

Change-Id: I1067cfb91846a05290ed26ce9a62eb82d3170719
http://b/issue?id=1860187
itmapFactory.cpp
aa86859b1035f865147b4f76ad2a9eed7ee098a5 10-Mar-2010 Chia-chi Yeh <chiachi@android.com> YuvImage: jpeg_set_quality() should be called after jpeg_set_defaults().

Change-Id: I6579ad9241dd5ee6aabf54e1a1128d17b4f6b3e6
uvToJpegEncoder.cpp
1a9c27c312ba20b2ceafcde18ce451724782d2a5 06-Mar-2010 Ficus Kirkpatrick <ficus@android.com> Add a LOG_TAG for android.graphics.Graphics JNI.

It occasionally logs when it fails an allocation but wasn't
defining one before.

Change-Id: Ifc41addc870eb126616ad44465638423d51568d9
raphics.cpp
76d1e01d5e65c4631c827831e98ad4e300d99eab 05-Mar-2010 Mike Reed <reed@google.com> hidden api sameAs() to compare the pixels of 2 bitmaps for equality
itmap.cpp
a696f5d667227365da732481770767dcb330dd23 18-Feb-2010 Mathias Agopian <mathias@google.com> Add ImageFormat.java and move the Camera/YUV constants from PixelFormat to it.

PixelFormat's corresponding constansts are now deprecated.
uvToJpegEncoder.cpp
8f2423e8f394ae0666f1b61f83df4c0c7a4782d9 17-Feb-2010 Mathias Agopian <mathias@google.com> get rid off the YUV formats at the libui layer
uvToJpegEncoder.cpp
bca2d613e0d6d2630fedd302c0d779b7610adbcf 30-Nov-2009 Wei-Ta Chen <weita@google.com> Add a Java API that converts yuv data to a jpeg.

The compression is done in the native layer via calling libjpeg.

Bug: 2285598
uvToJpegEncoder.cpp
uvToJpegEncoder.h
ab4a0c164b5a44d5bfd37069cfe499db31e7620c 26-Jan-2010 Mike Reed <reed@google.com> add API to change default config on image decoders.

May be called by the browser to get high-quality images when running in a 32bit window
itmapFactory.cpp
31a69fdbe1edd8d686043e8ca7d278289f65808e 14-Dec-2009 Mike Reed <reed@google.com> throw if we have a null typeface native instance (so we don't crash in native code)
we may still have to native-destroy a Typeface with a null ref, so check for that
ypeface.cpp
58d30b69071363aba38307bc5ee3b2d81f22f09d 30-Oct-2009 Mike Reed <reed@google.com> am 1864d01f: Merge change Iae849da2 into eclair

Merge commit '1864d01f2be0e82da7d8844fa91bee8880282041' into eclair-mr2

* commit '1864d01f2be0e82da7d8844fa91bee8880282041':
add table maskfilter
0e1e62301112a51d9b91ac4ac31c406d726f93ab 29-Oct-2009 Mike Reed <reed@google.com> add table maskfilter

hidden for now, since it need only be seen by Launcher2

http://b/issue?id=2210685
askFilter.cpp
c04851fd0af87f44a7d7351e0c17442fa1d3fc28 28-Oct-2009 Mike Reed <reed@google.com> add boundary patch
anvas.cpp
raphics.cpp
raphicsJNI.h
a78b0a2d9ebb38b86ed802b3d86de07d0b301262 07-Oct-2009 Mike Reed <reed@google.com> add (hidden) setHasAlpha() to allow clients like the view's cache to hint that a bitmap is opaque.

Knowing that a 32bit bitmap is opaque is a performance boost for some blits.
itmap.cpp
afa78967b8553443aa32579d78970a076d7581f6 29-Sep-2009 Dianne Hackborn <hackbod@google.com> Hack to fix issue #2125365: Sports Trivia compatability with Eclair

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
aint.cpp
9251c344596847c4cd4cf5782fde078459fa4cea 24-Sep-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 26851 into eclair

* changes:
use new setDither on ImageRef to retain that setting for purgeable images
17154417e8ad488d18d9133bf802f598e7506483 24-Sep-2009 Mike Reed <reed@google.com> use new setDither on ImageRef to retain that setting for purgeable images
itmapFactory.cpp
de0dfb7b65a02d4dd74c271b558adee0973fc267 23-Sep-2009 Dianne Hackborn <hackbod@google.com> Fix issue #2125720 Weather Forecast Widget - graphics do not scale

I forgot to add the new density field to the Bitmaps' parcelable data.

Change-Id: I77cf3e93e356297e0caed6fc71b62b5cd8f79124
itmap.cpp
raphics.cpp
raphicsJNI.h
8cae124af2142687a6833dbaab8a43df6dd67b43 10-Sep-2009 Dianne Hackborn <hackbod@google.com> Various cleanup around resources and nine-patches.

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
inePatch.cpp
inePatchImpl.cpp
211db4a2874f1a2d0e7a8cb8d33e81fa08801763 11-Sep-2009 Mike Reed <reed@google.com> change default for dither to true
inePatchImpl.cpp
dbade9d6a075b1d5b8ebe10ee8961a5de296c93b 25-Aug-2009 Mike Reed <reed@google.com> expose runtime changes to gamma
ypeface.cpp
a31ce104f557212198cd7c95e05c7b67abcdbe8a 31-Jul-2009 Mike Reed <reed@google.com> am 6af2552d: use safeUnref() since the other macro is not defined in donut

Merge commit '6af2552d244ff933dfd54570121db455cc7c3cda'

* commit '6af2552d244ff933dfd54570121db455cc7c3cda':
use safeUnref() since the other macro is not defined in donut
93efb724ac60538bef3a4e9bae123b515a9deeeb 31-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 7299d6ad: Merge change 9159 into donut

Merge commit '7299d6ad9820bbb601034542c94d6dc73cc4829d'

* commit '7299d6ad9820bbb601034542c94d6dc73cc4829d':
check for null native objects, which never happens on a real subclass (we throw in that case)
afcf686cb070313ae5ce6c54ac381a3a86a60ed2 31-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 25dff70f: Merge change 9039 into donut

Merge commit '25dff70f153529b87f5ad4a92f4de21e8950b1de'

* commit '25dff70f153529b87f5ad4a92f4de21e8950b1de':
Fix #2018814: System cannot correctly render assets with "wrap_content" attribute in QVGA
6af2552d244ff933dfd54570121db455cc7c3cda 30-Jul-2009 Mike Reed <reed@google.com> use safeUnref() since the other macro is not defined in donut
askFilter.cpp
hader.cpp
7299d6ad9820bbb601034542c94d6dc73cc4829d 30-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 9159 into donut

* 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.
a04e555dc91b11ad833cb5db4a24e38082d1dc45 30-Jul-2009 Mike Reed <reed@google.com> 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.
askFilter.cpp
hader.cpp
0d221012ff5fd314711c00ed30e9b807b9c454c1 30-Jul-2009 Dianne Hackborn <hackbod@google.com> Fix #2018814: System cannot correctly render assets with "wrap_content" attribute in QVGA

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.
anvas.cpp
ead14576162b287ab10e473e3c2fb10604dcc052 27-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 8639

* changes:
explicitly set the hinting level for android apps (to match the old default)
3d63e0119dc763ed0a06fd7498375746fd391d80 27-Jul-2009 Mike Reed <reed@google.com> explicitly set the hinting level for android apps (to match the old default)
aint.cpp
e2dba02441b42afbae725109ac779877a4b72aa0 25-Jul-2009 Dianne Hackborn <hackbod@google.com> am 11ea3347: Allow for screen density drawables in compatibility mode.

Merge commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8'

* commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8':
Allow for screen density drawables in compatibility mode.
11ea33471e1a14a8594f0b2cd012d86340dd3bd8 23-Jul-2009 Dianne Hackborn <hackbod@google.com> 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.
anvas.cpp
raphics.cpp
raphicsJNI.h
inePatch.cpp
c634fdd8035cc06c34663b77ab199d29697273b4 18-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 09a903ab: Merge change 7696 into donut

Merge commit '09a903ab5b8d940605783ae4ee591c0f090a31d1'

* commit '09a903ab5b8d940605783ae4ee591c0f090a31d1':
add hidden Options field for native allocations
1b22b979256cf163ab9bbfd4fcfa16a8ce862ed1 17-Jul-2009 Mike Reed <reed@google.com> add hidden Options field for native allocations
itmap.cpp
itmapFactory.cpp
raphics.cpp
raphicsJNI.h
47c0d4eaa926d979c5ea366934750526c20af8ff 23-Jun-2009 Mike Reed <reed@google.com> remove deprecated use of porterduff
anvas.cpp
olorFilter.cpp
ce1311a3a0806d39dc675a3c702eebbfe741dec8 22-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am 766d7236: Merge change 4737 into donut

Merge commit '766d7236c84f636b816d71189e309e67db1f593a'

* commit '766d7236c84f636b816d71189e309e67db1f593a':
Add prepareToDraw() to Bitmap for fixing http://b/issue?id=1907995.
8cdcb12752b716d0407733fecefcf1d9e926310a 18-Jun-2009 Wei-Ta Chen <weita@google.com> Add prepareToDraw() to Bitmap for fixing http://b/issue?id=1907995.

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.
itmap.cpp
885f75187c95b0ca7f189b5f600e2c731e95fca1 19-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am 066e6bfd: Merge change 4792 into donut

Merge commit '066e6bfd01a5ddd4748eacdc82fee5374e2af929'

* commit '066e6bfd01a5ddd4748eacdc82fee5374e2af929':
when we reset a paint, it should return to the state it was in when it was first created.
290f5baf9192752287723a29ede4399ae3e4c826 19-Jun-2009 Mike Reed <reed@google.com> when we reset a paint, it should return to the state it was in when it was first created.
for java, this means setting its text-encoding to UTF16...
aint.cpp
7d53a6bf4d7992a31426b028fb6ba6dbfaee88d0 05-Jun-2009 Android (Google) Code Review <android-gerrit@google.com> am a4196206: Merge change 3074 into donut

Merge commit 'a41962065a93b63e7161cffd662b564e01a9e189'

* commit 'a41962065a93b63e7161cffd662b564e01a9e189':
Modify the decoding logic in the FD case when a purgeable flag is set,
2a2c5cd74128a7750f05683614c9824c9262addc 03-Jun-2009 Wei-Ta Chen <weita@google.com> 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.
itmapFactory.cpp
0795272aa226f4e965968a03daddc53ce30b7cda 20-May-2009 Mathias Agopian <mathias@google.com> move libbinder's header files under includes/binder
itmap.cpp
egion.cpp
7118a2cf547ed53900a7591ca93b99ee0508cea9 13-May-2009 Android (Google) Code Review <android-gerrit@google.com> am 807f23b: Merge change 1057 into donut

Merge commit '807f23b2d8c7148cf6fc95bb88cfc2f78e4be66a'

* commit '807f23b2d8c7148cf6fc95bb88cfc2f78e4be66a':
* Add regoin scaling for transparent support
15203958fda7d3bf551023b6bcdf9c706e2dba1e 13-May-2009 Romain Guy <romainguy@android.com> am 2bb3ea1: Fix native core runtime. A messy declaration was causing a p

Merge commit '2bb3ea162a58c0f1dddccdbe68b64e02456f11f9'

* commit '2bb3ea162a58c0f1dddccdbe68b64e02456f11f9':
Fix native core runtime. A messy declaration was causing a problem at boot time.
807f23b2d8c7148cf6fc95bb88cfc2f78e4be66a 13-May-2009 Android (Google) Code Review <android-gerrit@google.com> Merge change 1057 into donut

* changes:
* Add regoin scaling for transparent support
2bb3ea162a58c0f1dddccdbe68b64e02456f11f9 13-May-2009 Romain Guy <romainguy@android.com> Fix native core runtime. A messy declaration was causing a problem at boot time.
ypeface.cpp
b10f138e125b5656e810901d14c5f956ff5d9b64 12-May-2009 Mitsuru Oshima <oshima@google.com> * Add regoin scaling for transparent support
egion.cpp
bae1ca315b27973fee8daacec482bb633a464294 12-May-2009 Android (Google) Code Review <android-gerrit@google.com> am 3e3439d: Merge change 1478 into donut

Merge commit '3e3439d5ba0cf5eda060c4991219c32af917fc5b'

* commit '3e3439d5ba0cf5eda060c4991219c32af917fc5b':
Fixes #1847219. Add a new API to load fonts from arbitrary files: Typeface.createFromFile(String/File).
a87a132ebf1c2dd733cf52feff6e44525257c961 12-May-2009 Romain Guy <romainguy@android.com> Fixes #1847219. Add a new API to load fonts from arbitrary files: Typeface.createFromFile(String/File).
ypeface.cpp
3bc15fcfdc9239218f21e58b3688e4b1bceda0a2 01-May-2009 Android (Google) Code Review <android-gerrit@google.com> am e5c4725: Merge change 873 into donut

Merge commit 'e5c4725666da25138193bed83831b66b9c0b2c45'

* commit 'e5c4725666da25138193bed83831b66b9c0b2c45':
pass original ptrs to JNI release functions (instead of += index to them)
ad8b8f57a457ff615112b7fa4987f39e75fc5ff6 01-May-2009 Mike Reed <reed@google.com> pass original ptrs to JNI release functions (instead of += index to them)
anvas.cpp
a5a51e172495a3aa793903ce6c62b06f8c5d0b42 29-Apr-2009 Android (Google) Code Review <android-gerrit@google.com> am 77c9990: Merge change 599 into donut

Merge commit '77c9990ae0806575ae7a2750459f3e74f0bec092'

* commit '77c9990ae0806575ae7a2750459f3e74f0bec092':
Add call to (new) Canvas.freeCaches() in response to low-memory
cb49634c7373e3b48bb73e516331901525af36c0 29-Apr-2009 Android (Google) Code Review <android-gerrit@google.com> am 1fb758e: Merge change 546 into donut

Merge commit '1fb758e94b5b9e342b6dc6452cb5bd7cf0cc4ed6'

* commit '1fb758e94b5b9e342b6dc6452cb5bd7cf0cc4ed6':
Add (hidden for now) purgeable bitmaps
caf0df1b7f99736aed1a0b923ef278fc4fd0fcca 27-Apr-2009 Mike Reed <reed@google.com> Add call to (new) Canvas.freeCaches() in response to low-memory

This is in conjunction with removing a similar call made by the browser.
Now it will be centralized, and the browser's call site will be removed.
anvas.cpp
c70e06bbfac0d92ec218a32e35d9d7fa80f23cc9 24-Apr-2009 Mike Reed <reed@google.com> Add (hidden for now) purgeable bitmaps

BitmapFactory::Options now let you specify if the resulting bitmap can be
"purgeable". If so, then its decoded pixels may be purged when not actively
being drawn, freeing up that RAM. When such a bitmap is drawn, it will
automatically be re-decoded on demand. This is done by having the bitmap
keep a reference/copy of the encoded data.

Where it is a reference or a copy is controlled by the "shareable" flag in
Options. If this is true, the implementation *may* just reference the encode
data (e.g. a file descriptor) rathern than making a complete copy of it.

Currently, purgeable is not supported for generic inputstreams, but is
enabled for byte-array, file-descriptor, and assets, though for impl
reasons only file-descripts are currently enabled for "shareable", but that
may change in the future.
itmapFactory.cpp
43ca00b0e82711f67246030e70bfb1f423e4a67f 02-Apr-2009 Ray Chen <> AI 144209: am: CL 144176 To fix the race condition in case "requestCancelDecode"
happens earlier than AutoDecoderCancel object is added
to the gAutoDecoderCancelMutex linked list.
Original author: raychen
Merged from: //branches/donutburger/...

Automated import of CL 144209
itmapFactory.cpp
8ba88775fe9df1146de7683a6ef59e36e749b271 02-Apr-2009 Mike Reed <> AI 144018: change path to return its internal cached bounds, making it much lighter-weight to get the bounds.
BUG=1748928

Automated import of CL 144018
ath.cpp
0a6a0e9e95fffc3b53be92ba617e97fff66d1401 02-Apr-2009 Ray Chen <> AI 144176: To fix the race condition in case "requestCancelDecode"
happens earlier than AutoDecoderCancel object is added
to the gAutoDecoderCancelMutex linked list.
BUG=1692286

Automated import of CL 144176
itmapFactory.cpp
4df2423a947bcd3f024cc3d3a1a315a8dc428598 05-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@136594
ypeface.cpp
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
itmap.cpp
itmapFactory.cpp
amera.cpp
anvas.cpp
olorFilter.cpp
reateJavaOutputStreamAdaptor.cpp
reateJavaOutputStreamAdaptor.h
rawFilter.cpp
raphics.cpp
raphicsJNI.h
nterpolator.cpp
ayerRasterizer.cpp
askFilter.cpp
atrix.cpp
ovie.cpp
IOBuffer.cpp
IOBuffer.h
inePatch.cpp
inePatchImpl.cpp
aint.cpp
ath.cpp
athEffect.cpp
athMeasure.cpp
icture.cpp
orterDuff.cpp
asterizer.cpp
egion.cpp
hader.cpp
ypeface.cpp
fermode.cpp
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
itmap.cpp
itmapFactory.cpp
amera.cpp
anvas.cpp
olorFilter.cpp
reateJavaOutputStreamAdaptor.cpp
reateJavaOutputStreamAdaptor.h
rawFilter.cpp
raphics.cpp
raphicsJNI.h
nterpolator.cpp
ayerRasterizer.cpp
askFilter.cpp
atrix.cpp
ovie.cpp
IOBuffer.cpp
IOBuffer.h
inePatch.cpp
inePatchImpl.cpp
aint.cpp
ath.cpp
athEffect.cpp
athMeasure.cpp
icture.cpp
orterDuff.cpp
asterizer.cpp
egion.cpp
hader.cpp
ypeface.cpp
fermode.cpp
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
itmapFactory.cpp
anvas.cpp
reateJavaOutputStreamAdaptor.cpp
raphics.cpp
raphicsJNI.h
inePatch.cpp
f1e484acb594a726fb57ad0ae4cfe902c7f35858 22-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127436
itmap.cpp
b798689749c64baba81f02e10cf2157c747d6b46 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
itmap.cpp
anvas.cpp
hader.cpp
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
itmap.cpp
itmapFactory.cpp
reateJavaOutputStreamAdaptor.cpp
raphics.cpp
ovie.cpp
inePatch.cpp
inePatchImpl.cpp
aint.cpp
hader.cpp
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
itmap.cpp
itmapFactory.cpp
amera.cpp
anvas.cpp
olorFilter.cpp
reateJavaOutputStreamAdaptor.cpp
reateJavaOutputStreamAdaptor.h
rawFilter.cpp
raphics.cpp
raphicsJNI.h
nterpolator.cpp
ayerRasterizer.cpp
askFilter.cpp
atrix.cpp
ovie.cpp
IOBuffer.cpp
IOBuffer.h
inePatch.cpp
inePatchImpl.cpp
aint.cpp
ath.cpp
athEffect.cpp
athMeasure.cpp
icture.cpp
orterDuff.cpp
asterizer.cpp
egion.cpp
hader.cpp
ypeface.cpp
fermode.cpp