4625 Commits

Author SHA1 Message Date
Chet Haase
486590963e Skip eglSwapBuffers() call when we do not draw to GL
The fix is to track when we issue GL drawing commands, and to skip the
call to eglSwapBuffers() when a DisplayList does not result in
any actual rendering calls to GL.

Issue #6364143 QuickMuni list items and buttons flicker instead of fade

Change-Id: I60a02c61a58c32d92481a1e814b4c8a49c6a37a3
2012-05-31 17:22:27 -07:00
Chris Craik
9970bbac1f am 3534e134: Merge "Avoid crash if onDetachedFromWindow called after destroy" into jb-dev
* commit '3534e13486a0081b1229e698f13bd3a37efa3fb0':
  Avoid crash if onDetachedFromWindow called after destroy
2012-05-22 17:22:19 -07:00
Chris Craik
3534e13486 Merge "Avoid crash if onDetachedFromWindow called after destroy" into jb-dev 2012-05-22 17:20:07 -07:00
Chris Craik
9e08012869 Avoid crash if onDetachedFromWindow called after destroy
This also removes the temporary logging from commit
f8dafa14e058cdc2f408b59be7911abaceb73c47.

bug:6535911
Change-Id: Icf1d0438b349a0e92e7d9cefed57a252eed2b9b0
2012-05-22 16:52:00 -07:00
Chris Craik
49413bcccb am 7a9328a3: Merge "Add temporary functor lifetime logging" into jb-dev
* commit '7a9328a3118725389564fe2a9b926837fa3d58a9':
  Add temporary functor lifetime logging
2012-05-22 14:41:35 -07:00
Chris Craik
7a9328a311 Merge "Add temporary functor lifetime logging" into jb-dev 2012-05-22 14:39:13 -07:00
Romain Guy
5ba87a0076 am e5a4a3dc: Merge "Ensure we always set the proper blending mode Bug #6527305" into jb-dev
* commit 'e5a4a3dc1648844f06d29efd42c9306c3cdf177e':
  Ensure we always set the proper blending mode Bug #6527305
2012-05-22 14:32:20 -07:00
Romain Guy
e5a4a3dc16 Merge "Ensure we always set the proper blending mode Bug #6527305" into jb-dev 2012-05-22 14:28:58 -07:00
Chris Craik
f8dafa14e0 Add temporary functor lifetime logging
bug:6535911

Change-Id: Ida5cc1def7fe1fc314317bbc5df50e1465753deb
2012-05-22 14:26:15 -07:00
Romain Guy
ddf7437361 Ensure we always set the proper blending mode
Bug #6527305

At the beginning of a frame, always set the blending mode that we
think GL is using just in case it was modified by another entity
(for instance a WebView functor.)

Change-Id: I0e1d0abee8a2abb2b8e7622aed28346e89562c06
2012-05-22 14:08:10 -07:00
Chris Craik
1ff2c7fe91 am 12fd5db4: Merge "Don\'t clear the functor at every draw" into jb-dev
* commit '12fd5db435043681371ca7e9694744d71b6ba271':
  Don't clear the functor at every draw
2012-05-22 13:13:17 -07:00
Chris Craik
c8538ade8d Don't clear the functor at every draw
instead clear functors at invoke time, and let them detach themselves as needed.

bug:6511995
Change-Id: I9115fcadffb27eb850c1d1773c098d3d2e22788b
2012-05-22 11:54:06 -07:00
Romain Guy
d568e4d2ac am 196a7dae: Merge "Sanitize display list properties" into jb-dev
* commit '196a7dae6387b118f73c78b7ae16ebfa604ae249':
  Sanitize display list properties
2012-05-18 15:59:44 -07:00
Romain Guy
f26c8be01b Sanitize display list properties
The comparisons used in the various properties setters could fail badly
in some specific conditions. The scale properties in particular did not
use the same comparisons.

This change also clamps alpha to the 0..1 range which avoids overflow
issues with lowp registers in GLSL computations.

Change-Id: I3e73b584e907a14e2c33d0865ca0d2d4d5bff31d
2012-05-18 10:58:45 -07:00
Romain Guy
952a4512a8 am 2298fe22: Merge "Avoid unnecessary copy when invoking drawBitmap(int[]) Bug #6483390" into jb-dev
* commit '2298fe223f1ae45d45dbdd69e115a24a8ea2df10':
  Avoid unnecessary copy when invoking drawBitmap(int[]) Bug #6483390
2012-05-15 11:32:55 -07:00
Romain Guy
d5cfec8d34 am 7b8523aa: Merge "Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)" into jb-dev
* commit '7b8523aaed11a3b5ee286776023233036ac0759d':
  Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)
2012-05-15 11:31:54 -07:00
Jeff Brown
aebfdc231a am e4db99cf: Merge "Detect when pointer has stopped moving." into jb-dev
* commit 'e4db99cf87c47730e80dc1431f07f4f1062c648e':
  Detect when pointer has stopped moving.
2012-05-15 11:31:47 -07:00
Jeff Brown
634ec69aa9 am 08b544c7: Merge "Fix pointer indexing issue in VelocityTracker." into jb-dev
* commit '08b544c7be67343b10a4130611318b8273d06433':
  Fix pointer indexing issue in VelocityTracker.
2012-05-15 11:31:45 -07:00
Jeff Brown
7469f8bb94 am 47a4a50d: Merge "Improve touch event resampling." into jb-dev
* commit '47a4a50df09b5ab76ee06cb8845fe5a02952ec32':
  Improve touch event resampling.
2012-05-15 11:31:32 -07:00
Jeff Brown
e2ec70bf92 am 00ff4748: Merge "More VelocityTracker refactoring." into jb-dev
* commit '00ff47484f8137aa3e59f680ff07d2662cfb4088':
  More VelocityTracker refactoring.
2012-05-15 11:31:08 -07:00
Romain Guy
769bccea29 am c9ade202: Merge "Forget the name of a texture after freeing Bug #6408362" into jb-dev
* commit 'c9ade202ed6a43a4edba6596492aa810530b88b6':
  Forget the name of a texture after freeing Bug #6408362
2012-05-15 11:30:21 -07:00
Romain Guy
f0e5e27bf4 am 2be45697: Merge "Fix two memory leaks Bug #6408362" into jb-dev
* commit '2be45697f93291e1740c3b7e4ba0af5d4ae81ed6':
  Fix two memory leaks Bug #6408362
2012-05-15 11:30:00 -07:00
Romain Guy
49c5fc0b9e Avoid unnecessary copy when invoking drawBitmap(int[])
Bug #6483390

Change-Id: I4d2d725ef50c9401b4bd998b6160128102b40745
2012-05-15 11:15:24 -07:00
Romain Guy
7b8523aaed Merge "Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)" into jb-dev 2012-05-14 20:12:09 -07:00
Romain Guy
e651cc6239 Remove all Dalvik allocations from Cavnas.drawBitmap(int[], ...)
Change-Id: Ie28538a2104d21154fdc78a56525e7403f08287d
2012-05-14 19:44:40 -07:00
Romain Guy
8efd02cc49 am 00fdfe41: Merge "Properly pre-cache latin glyphs Bug #6408362" into jb-dev
* commit '00fdfe4106922502232d747d87bedc5343b5d4be':
  Properly pre-cache latin glyphs Bug #6408362
2012-05-14 19:34:12 -07:00
Jeff Brown
e4db99cf87 Merge "Detect when pointer has stopped moving." into jb-dev 2012-05-14 19:18:15 -07:00
Jeff Brown
08b544c7be Merge "Fix pointer indexing issue in VelocityTracker." into jb-dev 2012-05-14 19:17:48 -07:00
Jeff Brown
90729403d5 Detect when pointer has stopped moving.
Some input devices do not generate ACTION_MOVE events while all
pointers have stopped, thereby lulling the VelocityTracker into
a false sense of complacency.  Before handling the following sample,
reset the VelocityTracker state so as not to be influenced by
earlier samples before the pointer stopped.  The velocity after
stopping is assumed to be discontinuous.

Bug: 6413587
Change-Id: I6387bc036ff141d083d3d17a89e37eeaa3188349
2012-05-14 18:57:05 -07:00
Jeff Brown
47a4a50df0 Merge "Improve touch event resampling." into jb-dev 2012-05-14 18:52:59 -07:00
Jeff Brown
dcab190bd2 Fix pointer indexing issue in VelocityTracker.
VelocityTracker was implicitly assuming that the pointer ids in
a MotionEvent were ordered.  That is not necessarily the case
so we need to be careful while copying the pointer coordinates out.

Bug: 6413587
Change-Id: I3b23a954f893eebdf786f2a94207149b092ef036
2012-05-14 18:44:17 -07:00
Jeff Brown
7174a491bc Improve touch event resampling.
Fixed a few bugs related to the id-to-index mapping for
pointer coordinates.

Tightened the bounds on the resampling time interval to
avoid predicting too far into the future.

Only lerp X and Y components of motion events.

Alter the future to satisfy past predictions.  (Rewrite touch
events to conceal obvious discontinuities.)

Added a system property to control whether resampling is enabled
for debugging purposes.

Bug: 6375101
Change-Id: I35972d63278bc4e78148053a4125ad9abeebfedb
2012-05-14 18:31:53 -07:00
Jeff Brown
00ff47484f Merge "More VelocityTracker refactoring." into jb-dev 2012-05-14 17:12:32 -07:00
Romain Guy
99a6ddd4cd Forget the name of a texture after freeing
Bug #6408362

FontRenderer allocates large font textures when more room is needed
to store all the glyphs used by an application. Thse large textures
are the first to be freed when memory needs to be reclaimed by the
system. When freeing a texture, the renderer would however not set
the texture name to an invalid name, leading future allocations to
be performed on the same texture name. That name could have by then
be recycled by the driver and returned by a call to glGenTexture
and used to create an entirely different texture. This would cause
the font renderer to point to the wrong texture, thus leading to
the "corruptions."

Change-Id: I8a1e80e5b79e8f21d1baf5320c090df4f2066cd4
2012-05-14 15:32:18 -07:00
Romain Guy
9d9758ae30 Fix two memory leaks
Bug #6408362

Change-Id: I58543938e7b64d83504e11e97b0dd21ef8ebf3b6
2012-05-14 15:19:58 -07:00
Romain Guy
ae91c4cbc7 Properly pre-cache latin glyphs
Bug #6408362

Change-Id: Ie11644c5a9e2d87d3b851b7e619e5f04b60a7e02
2012-05-14 14:06:02 -07:00
Jeff Brown
85bd0d6283 More VelocityTracker refactoring.
Bug: 6413587
Change-Id: Ida1152e7a34d5fe5caab5e6b5e1bc79f6c7a25e6
2012-05-13 16:10:57 -07:00
Romain Guy
ce8b9c33b3 am 15e84399: Merge "Add call sites for OpenGL\'s debug label extension" into jb-dev
* commit '15e8439905cfae4605d101ae96a2694e69fb5017':
  Add call sites for OpenGL's debug label extension
2012-05-12 16:26:18 -07:00
Romain Guy
dfa1046eca Add call sites for OpenGL's debug label extension
Change-Id: I9c689127e8166cbef92c935f8aa07217ab806dda
2012-05-12 16:22:35 -07:00
Jeff Brown
47272c932a am b12b6b51: Merge "Minor refactoring before starting on velocity tracker changes." into jb-dev
* commit 'b12b6b5116e3d76474296b45f570693bb10d6c99':
  Minor refactoring before starting on velocity tracker changes.
2012-05-11 14:06:30 -07:00
Jeff Brown
8a90e6e317 Minor refactoring before starting on velocity tracker changes.
Bug: 6413587
Change-Id: I5eba2bb57193bff78cb3740de5f87aca0b31d154
2012-05-11 12:32:56 -07:00
Chris Craik
d9155605ab am aa997294: Merge "Revert "Add temporary functor lifetime logging"" into jb-dev
* commit 'aa9972943cab627db9b10e5c9c4bb80f99f8a4bd':
  Revert "Add temporary functor lifetime logging"
2012-05-09 01:48:04 -07:00
Chris Craik
aa9972943c Merge "Revert "Add temporary functor lifetime logging"" into jb-dev 2012-05-08 13:35:09 -07:00
Chris Craik
12d434a9be Revert "Add temporary functor lifetime logging"
bug:6445573

This reverts commit 2fe99801e81bb7c0ff846b536cbb7a12707410ed
2012-05-08 13:07:13 -07:00
Chet Haase
48fa471742 am 4bbcae7e: Merge "Fix issue where scale-animating text would jump temporarily a few pixels" into jb-dev
* commit '4bbcae7eb80704d919d8115d523196798e208439':
  Fix issue where scale-animating text would jump temporarily a few pixels
2012-05-07 13:21:52 -07:00
Chet Haase
4bbcae7eb8 Merge "Fix issue where scale-animating text would jump temporarily a few pixels" into jb-dev 2012-05-07 13:20:00 -07:00
Chet Haase
d3efd6920e Fix issue where scale-animating text would jump temporarily a few pixels
Some logic in the native matrix code would determine that a matrix was
'pureTranslate' based on the scale values of a matrix being close-enough to 1,
which was within a very small epsilon. This works in general, because screen space
coordinates make that epsilon value irrelevant, so close-enough really is close-enough.

However, TextView, when centering text, works in a coordinate system that is quite
huge, with left/right values about 500,000. These numbers multiplied times that small
epsilon value would give a result that was significant, and would cause a miscalculation
of up to 4-5 pixels, causing the snap that we'd see for a couple of frames as the
scale got "close enough" to 1.

The fix is to remove the optimization of "close enough". What we really need the matrix to
do is to identify itself as being translate-only when no scale as been set (which is the
default). For the purposes of that check, it is good enough to simply check the values against
1 directly. Similarly, the bounds-check logic needs to check against 0 and 1 directly.

Issue #6452687: Glitch when changing scale of a view containing text

Change-Id: I167fb45d02201fb879deea0e5a7ca95e38128e17
2012-05-07 12:18:19 -07:00
Chet Haase
d92c5c03d0 am 6c5f4cd0: Merge "Fix hang/crash in native path code" into jb-dev
* commit '6c5f4cd074e1ec4fd22a807aab409586f9b6b45f':
  Fix hang/crash in native path code
2012-05-04 10:48:52 -07:00
Chet Haase
d34dd71800 Fix hang/crash in native path code
An optimization for paths is to only create a texture for the original native
Path object, and have all copies of that object use that texture. This works in
most cases, but sometimes that original path object may get destroyed (when the
SDK path object is finalized) while we are still referencing and using that object
in the DisplayList code. This causes undefined errors such as crashes and hanging
as we iterate through the operations of a destroyed (and garbage-filled) path object.

The fix is to use the existing ResourceCache to refcount the original path until
we are done with it.

Issue #6414050 Analytics Dogfood App crashes reliably on Jellybean

Change-Id: I5dbec5c069f7d6a1e68c13424f454976a7d188e9
2012-05-03 11:14:50 -07:00
Chris Craik
0e693b249d am 3421f9fd: Merge "Add temporary functor lifetime logging" into jb-dev
* commit '3421f9fd6847faa0bbf3f1d8e1c8424bce52a9a4':
  Add temporary functor lifetime logging
2012-05-02 17:30:36 -07:00