268 Commits

Author SHA1 Message Date
Fabrice Di Meglio
5c863f741e 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
2011-10-07 11:22:39 -07:00
Jeff Brown
6579a9d6fe Transfer large bitmaps using ashmem.
Bug: 5224703

Change-Id: If385a66adf4c6179a0bb49c0e6d09a9567e23808
2011-10-03 17:28:13 -07:00
Fabrice Di Meglio
8ebf1efd66 Merge "Fix potential issue with the TextLayoutCache with glyphs" 2011-10-03 09:56:39 -07:00
Fabrice Di Meglio
155fa38a71 Fix potential issue with the TextLayoutCache with glyphs
- there may be a mapping of one char to many glyphs

Change-Id: I48846d176d61dc8d8e513ca144fdf8ad805e63b7
2011-09-30 17:24:35 -07:00
Fabrice Di Meglio
717060b076 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
2011-09-30 14:08:25 -07:00
Fabrice Di Meglio
5293cea4e0 Fix bug # 5376028 Arabic text is kinda broken - disappearing glyphs
- make the log clusters happy

Change-Id: I73ca9512f0ca02549dad5270d6ec198ae9b00a4e
2011-09-26 18:29:54 -07:00
Fabrice Di Meglio
79df5323e7 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
2011-09-21 20:02:47 -07:00
Jeff Brown
7aac297960 TextLayoutCacheKey needs to store start and count.
Bad merge.

Change-Id: Id6507b3a7e35808a6d34501a45d79fcb7470657d
2011-09-19 16:19:13 -07:00
Fabrice Di Meglio
4dd99e5912 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
2011-09-19 14:46:37 -07:00
Fabrice Di Meglio
e0d558ac92 Merge "Fix potential leak in TextLayouCache" 2011-09-19 11:41:01 -07:00
Fabrice Di Meglio
54dc642cc1 Make TextLayoutCache no more dependent on ICU
- move ICU call to TextLayout

Change-Id: Id5a21e7b69e484536cfb5b86fbb0c112fb661dfa
2011-09-18 15:38:08 -07:00
Fabrice Di Meglio
e74fef3b55 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
2011-09-18 14:30:21 -07:00
Fabrice Di Meglio
9c418dbc56 Revert "Fix bug #5332081 TextLayoutCache needs to be able to have more cache hits"
This reverts commit d686d76814f18061e06995df0d5de9feb9f70a7e
2011-09-18 12:54:38 -07:00
Fabrice Di Meglio
d686d76814 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
2011-09-16 13:47:34 -07:00
Fabrice Di Meglio
51f383d65f Fix some TextLayoutCache issues
- wrong ContextCount was passed
- better logs

Change-Id: Ie78ba70f98f3cf017c168ab8848cc080fc175f31
2011-09-13 15:57:58 -07:00
Fabrice Di Meglio
163268b3a8 Fix bug #5274332 TextLayoutCache is having multiple instances
- also fix the missing LOG_TAG define

Change-Id: I25e96d1ba372e84768604f18702e0724fdecefb0
2011-09-07 18:25:58 -07:00
Fabrice Di Meglio
abb0f299fd Update TextLayout logging
- centralize logging into TextLayoutCache
- add offset logging

Change-Id: I52f229b2a8aed121715b37a5a42936875b23f3c9
2011-08-18 17:59:29 -07:00
Fabrice Di Meglio
5960723061 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
2011-08-16 17:14:20 -07:00
Dianne Hackborn
f43fa5746e Turn off hinting by default for higher density displays.
Also adds an API for apps to control whether hinting is used.

Change-Id: I1a06b06255fbb8d0f02a8ce48c2cd60019088ed3
2011-08-12 18:59:39 -07:00
Ted Bonkenburg
1ee60119c4 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
2011-08-11 19:58:25 -07:00
Fabrice Di Meglio
5de5b1a91e 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
2011-08-09 14:37:22 -07:00
Fabrice Di Meglio
6ab90ed017 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
2011-08-08 18:52:27 -07:00
Fabrice Di Meglio
f957618265 Merge "Revert "Adapt TextLayoutCache for new Harfbuzz scripts"" 2011-08-08 12:56:05 -07:00
Fabrice Di Meglio
f09e46e938 Revert "Adapt TextLayoutCache for new Harfbuzz scripts"
This reverts commit 7f4ae758ba4724f7c3031d33ad8e749c11d1e059

This CL created a regression:

#5134317 Arabic Keyboard does not appear
2011-08-08 11:31:39 -07:00
Russell Brenner
adc25267f8 Merge "Adapt TextLayoutCache for new Harfbuzz scripts" 2011-08-04 09:41:53 -07:00
Mathias Agopian
ec46b4e1ca Add a 'release' method to the SurfaceTexture public Java API
Bug: 5063618
Change-Id: I689cb0c01c14e597ccfb4eb0972e64fa570bd4e8
2011-08-03 17:23:44 -07:00
Russell Brenner
7f4ae758ba 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
2011-08-03 11:56:27 -07:00
Derek Sollenberger
4f7c380d51 Merge "Reverting until we can find a better way to address this issue without affecting nine-patches with large stretchable areas." 2011-08-02 10:39:43 -07:00
Derek Sollenberger
09a22e33e7 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
2011-08-02 05:17:49 -07:00
Romain Guy
0965a3244b Allow Canvas.setBitmap() to receive a null Bitmap.
Change-Id: I6096f0b44866e532ccd96a29c816bf34d48c1dc2
2011-08-01 17:39:21 -07:00
Derek Sollenberger
c4c458c678 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
2011-07-29 10:34:47 -04:00
Fabrice Di Meglio
c2063a5b18 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
2011-07-18 17:47:04 -07:00
Fabrice Di Meglio
796cc96243 Clean test APIs for Harfbuzz support
- also update unit tests

Change-Id: I557f61e84c4c4b6165163b783d9c679a6b3b4106
2011-07-15 17:49:22 -07:00
Romain Guy
99b7b7a7f8 Force bitmaps to load in ARGB8888 by default.
Bug #5024993

Change-Id: Id0c63f675ae188e5a786b7fdd63916e114b9ed4a
2011-07-14 12:42:19 -07:00
Jamie Gennis
3cf7cf5751 Merge changes I9fb59763,I8b2c6e00
* changes:
  SurfaceTexture: consume buffers after err checks
  SurfaceTexture: change onFrameAvailable behavior
2011-06-28 12:55:03 -07:00
Jamie Gennis
bd5404d031 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
2011-06-27 15:45:39 -07:00
Jean-Baptiste Queru
a2c8a7b573 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.
2011-06-27 14:15:01 -07:00
Jamie Gennis
436b50f0dc Merge "SurfaceTexture: detach from Dalvik when necessary." 2011-06-26 12:23:12 -07:00
Jean-Baptiste Queru
ec5039b372 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.
2011-06-24 12:20:24 -07:00
Fabrice Di Meglio
d3d4b4b86a Merge "Fix potential advances overrun in TextLayoutCache." 2011-06-24 12:02:58 -07:00
Doug Felt
b092f55c37 Fix potential advances overrun in TextLayoutCache.
Change-Id: Ibec544f249833a28fe8ef9a15fc8ab48fddfc51c
2011-06-24 11:54:00 -07:00
Grace Kloba
0904d0af81 Add allowSynchronousMode to SurfaceTexture constructor.
Change-Id: I54f30a3c16bbe6b813f3bcd1d389da5627531304
2011-06-23 21:21:47 -07:00
Jamie Gennis
0a8fd9b610 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
2011-06-23 15:12:16 -07:00
tedbo
0694cfe49a Merge "Add method to create a ParcelSurfaceTexture from android.view.Surface." 2011-06-23 14:45:30 -07:00
Vikas Arora
2305ac9e4a 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
2011-06-23 13:11:13 +05:30
tedbo
4e8a5c922c Add method to create a ParcelSurfaceTexture from android.view.Surface.
Change-Id: I05e343ab7e327478f60322af9373574b70c148f5
2011-06-22 16:18:09 -07:00
Grace Kloba
925bcaabde 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
2011-06-22 00:56:54 -07:00
Jamie Gennis
84293fb962 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
2011-06-17 16:42:46 -07:00
Derek Sollenberger
f11c52d246 Updates resulting from the Skia merge (revision 1327)
Change-Id: I1d2cecbad6c30e6ebc9579093404742f17e14e84
2011-06-13 15:07:30 -07:00
tedbo
cc5278a3e2 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
2011-06-13 14:27:39 -07:00